50 Drupal modules every Drupal professional should know about

Modules are what make Drupal great. For almost any problem there is a module that solves it. In this blog post I will share 50 modules that I frequently use.
Robert Roose
By Robert Roose

50 Drupal modules every Drupal professional should know about

  1. Admin toolbar
    Replaces the default menu in the backend making it easier to navigate. The added dropdown menus can save you a lot of extra clicks.
     
  2. CKEditor Browser Context Menu
    Disables the default right click menu when editing in a CKEditor enabled field which makes it possible to use the default browser context menu. Now you can correct your text in a textarea with your browser's spell check.
     
  3. Linkit
    Easily link to other nodes in your Drupal website maintaining the correct path when these are updated. Giving you an extra WYSIWYG button which opens a dialog where you can easily search for existing content within your Drupal website. 
     
  4. Save & Edit
    Enables an extra button next to the Save button on the bottom of a node edit form making it possible to save the node but return to the edit form instead of being redirected to the node. Allows quickly saving your work in between editing.
     
  5. Title Field For Manage Display
    Makes the title behave as a field in the manage display tab of a content type enabling you to place fields above the title or remove the title.
     
  6. Asset Injector
    Place javascript or CSS code on specific pages in your Drupal website without having to edit the theme. This can be useful to place external scripts, such as a support chat.
     
  7. Field Permissions
    Determine which roles can view or edit a field in a content type. This way you can hide fields, such as protected downloads, for anonymous users. 
     
  8. Block Field
    Select any block in a field. Useful when you want to show a block in a paragraph between other paragraphs.
     
  9. Field Group
    Group multiple fields together to enhance visibility when creating or editing nodes. This can also be used to wrap fields in a HTML element on the frontend to extend styling options with CSS.
     
  10. ImageWidgetCrop
    Set different crops for the same image so you can reuse the same image for different sizes (such as a thumbnail or hero image).
     
  11. SVG image
    Adding SVG functionality to image fields. Now you can use SVG images (for your icons and illustrations) the same way you use other image formats.
     
  12. AJAX Comments
    Makes it possible to comment on other comments without redirecting (to the individual comment) or reloading the page. 
     
  13. Allowed Formats
    Limit the text formats for text area fields. This can be useful when you want to prevent users from using the wrong text format for certain fields.
     
  14. Background Images Formatter
    Display images as a CSS background. Enabling you to use images as a background for any entity such as a paragraph.
     
  15. Block Class
    Add a class to a block for easier CSS styling. Enables an extra input field for all blocks where you can enter one or multiple CSS classes.
     
  16. Backup and Migrate
    Backup your Drupal website to a private HTML folder or as a download. It’s also possible to restore a backup but if needed I always resort to doing this manually (uploading files and restoring database).
     
  17. Exclude node title
    Exclude titles when displaying nodes for specific items or content types. Useful when you have a view that already displays the title (such as in a hero).
     
  18. Link attributes widget
    Add attributes to menu item links, such as id, class or name, to give you more flexibility styling these links.
     
  19. Ludwig
    Some modules require composer to install a module, but that might not always be an option. This module helps you by giving you the specific files (or libraries) that need to be installed and where they should be located.
     
  20. Rabbit Hole
    Redirects users to a 403 or 404 page for nodes that don’t need to be viewed individually. Like a customer quote that you only want to show in a paragraph.
     
  21. Paragraphs
    Enhance the content edit experience by providing different types of paragraphs which each can have their own field. You can create your own paragraph types. By creating a paragraphs field within a content type you have control on what types should be available.
     
  22. Paragraphs Library (included with the Paragraphs module)
    Create and reuse paragraphs throughout your Drupal website. If you need to repeat a block of text on different pages, you can use this module to make a paragraph containing this text, and display it in any paragraphs field.
     
  23. Paragraphs Type Permissions (included with the Paragraphs module)
    Determine which roles can view a certain type of paragraph. This way you can only show certain paragraph types (such as downloads) to logged in users.
     
  24. Classy Paragraphs
    Add classes to paragraphs which can be used to style certain types of paragraphs. 
     
  25. Search API
    Extends the default search option in Drupal creating search indexes. You can use Search API with the default database search or extend it with more advanced searching techniques such as Elastic.
  1. Facets
    Enables drilling down of a view which is generated by the Search API module. Based on the available fields a facet will be shown. Selecting an option filters the view results based on this selection.
     
  2. Metatag
    Gives you more control on how to display metatags which are useful for how your site is shown in search results or social media.
     
  3. Ajax Loader
    Allows you to change the default ajax loading icon. You can also choose to hide the loader or display it at full screen.
     
  4. External Links
    Determine what happens with external links such as opening it in a new tab or displaying an icon next to them.
     
  5. Password Eye
    Enables users to show the password they are typing when logging in to the Drupal website.
     
  6. Better Exposed Filters
    Extends the default exposed filter options such as combining sort fields, automatically submitting inputted values and hiding the apply and reset button.
     
  7. Webform
    Very extensive form module with which you can create almost any form for your Drupal website. Also includes mailing results based on field values or logging submissions.
     
  8. XML Sitemap
    Generates an XML document of all the links in your Drupal website that can be used by tools such as Google Search Console.
     
  9. Editor advanced link
    Gives you extra options when creating a link in the CKEditor such as CSS classes and an option to open the link in a new window.
     
  10. Real name
    With this module you can construct a ‘Real name’ for your users with tokens. For example a field in the User profile where users can put their first and last name. This name will be displayed throughout the site (such as views) instead of the actual username.
     
  11. Redirect
    Manually redirect one path to another. Helpful when you’ve created a new website, with new paths/links. Search engines such as Google can still send users to the old path/link so you can direct them to the new path.
     
  12.  Redirect 404 (included with the Redirect module)
    Creates an overview with paths/links that give a 404 error. A 404 error happens when a visitor tries to view a page or path that doesn’t exist anymore. In this overview you can easily create a redirect to the correct path.
     
  13. Responsive menu
    Enables a responsive menu when the viewport of the browser gets to a certain breakpoint. which you can determine yourself. The main menu, responsive menu and responsive menu icon are all available as blocks so you have full control over how and where to show them. 
     
  14. Token
    Although tokens are part of the Drupal core some tokens are still missing (most important tokens generated by fields). This module fills this void and also provides a very handy token browser so you can easily browse and insert tokens.
     
  15. PHP Authentication shield
    Enables an extra username and password dialog so you can hide your Drupal website for the public (or search engines) but still allow people who have the right credentials to view the site. Handy when you are developing a site and only want clients to view the site.
     
  16. Rename admin paths
    By default you can login to Drupal websites by navigating to /user/login. With this module you can change this (and other) paths. This is useful because hackers can use these default paths to determine if your website is a Drupal website. Also sometimes you want to use admin paths that reflect your brand, like /mycompany/.
     
  17. CKEditor Anchor Link
    Extends the default CKEditor with an option to add anchor links. Anchor links can be used to link to a position on the same page.
     
  18. Context
    A very powerful module that can be used to modify your Drupal website based on a predetermined context. For example you can make a menu item active based on a path such as the ‘Blog’ menu item needs to be active when the /blog/ is part of the path. Or you can add a class to the <body> tag in your HTML document based on the role of the user that is viewing the website. This way you can create a slightly different look and feel for logged in users.
     
  19. Context entity field
    This extends the context module making it possible to add context reactions based on the value of a field. For example you can create a boolean field and based on the value of this field (on or off) it’s possible to trigger a context reaction such as showing a specific block.
     
  20. Smart Date
    Extends the default date option where you can store starting as well as ending times with duration. 
     
  21. Weight
    Can be used to create an extra weight field within any content type. Each node can get their own weight (ranging from -100 to 100) and this can be used to sort a view. This way you can manually control the order in which nodes are displayed within a view.
     
  22. Views fieldsets
    Gives you the option to create a fieldset containing view fields within a view. I mainly use this to wrap fields together in order to have more control over the styling with CSS.
     
  23. View Field View
    With this module you can display a view within another view. Useful when you want to show relations (such as multiple authors) for the same node without getting duplicates.
     
  24. Scheduler
    This enables you to schedule (or unschedule) nodes of any content type in your Drupal website. You can set a schedule date and time on which the node should be published. Whenever a cron is run it will check if a node needs to be published or unpublished based on the scheduler settings.
     
  25. Automatic Entity Labels
    Automatically generate labels (such as node titles) based on tokens. This is useful when you don’t want the user to fill in the title of a node but generate this based on the field values of the node itself.

How many of these modules are you already using? And do you maybe have any suggestions I can add to this list? Let me know in the comments.

P.S: Subscribe to my Drupal newsletter to stay up to date about all my Drupal blog posts (and more).

More Drupal blogs

The content of this field is kept private and will not be shown publicly.

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Comments

Great list! I'm using a lot of them. Other interesting modules I'd like to recommend are: Key, Feeds, Masquerade, Automated logout, Swift mailer, Eu cookie compliance, Simple XML sitemap, google tag, twig tweak.

Thanks for the compliment and suggestions Arek. You mention a few modules that are new to me. I'll check them out and possibly write a follow up to include these as well :)

This article is awesome, thank you for sharing