There is no shortage of articles on the web about a company's choice for top modules for a Drupal website, but it's important to note that each project has different needs. Our own goals are: keep the site simple to use, quick to respond, well organized for SEO, and easy to manage. You may be building a site for an intranet, in which case SEO is not important, or maybe you don't care about semantics (hang your head in shame), but in any case, some modules are essential no matter what your need. Below we've presented our top 10 choices plus some extras for certain types of projects.
Top 10 Modules for any Drupal 7 Site
- Admin Menu - it's hard to live without this gem because nobody wants to click 3 times to get to an often used submenu. It's important to note, however, that the module is demanding on resources so if you don't need to give this to your users, use the built-in shortcut menu
- Chaos Tools - a set of APIs and tools to improve the developer experience. It also contains a module called the Page Manager whose job is to manage pages.
- Backup Migrate - Although a hosting server might make daily backups, this is handy for making hourly backups for quick rollbacks to a previous save. Just make sure you're only keep a reasonable amount of the backup files.
- Libraries - Many modules make use of external libraries for things like CKEditor, MailChimp, Superfish. This gives a central place to store those libraries.
- Link - this should've been in core but is in Drupal 8.
- Superfish - I've wavered between this and Nice Menus, but either is a good choice.
- Pathauto - automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias.
- Token - small bits of text that can be placed into larger documents via simple placeholders, like %site-name or [user]
- Views - we all know this is a given and is now part of Drupal 8 core.
- WYSIWYG - combined with the CKEditor library, this is also a given on any modern website. The TinyMCE library deserves second place as an alternative.
To complement the list above, we've listed a number of other modules you should consider for your project depending on the need:
The Other Drupal Essential Modules
- Module Filter - let's face it, large sites are going to have a lot of modules. This eases the pain of finding various modules by narrowing your search with keywords in a neatly put together module page.
- Features - enables the capture and management of features in Drupal. A feature is a collection of Drupal entities which taken together satisfy a certain use-case.
- Environment Indicator - it's too easy to mistake a development site, staged site and production site because ideally, they should all look the same. The environment indicator along with carefully chosen colors specified in your settings.php file will make it simple to keep the similar sites clearly distinct at a glance.
- Logintoboggan - This is arguable essential for sites with many users because people easily forget their usernames, so make it easy for them by allowing sign-in with their email address.
Drupal Modules for Controlling Layout and Markup
- Display Suite - you're either a user of Panels, or of Display Suite (avoid using both if possible). Both modules can help to configure layouts, markup and much more. We would consider Display Suite actually more of an essential module
- Context - does all kind of helpful things with a relatively low overhead, such as re-use blocks in various regions; change layouts depending on a path argument. On and on...
- HTML5 Tools - if you're not already using HTML5, you should be.
- Semantic Views - makes unformatted styles, field row styles and other output more readily configurable without needing to override template files.
Drupal Modules for SEO
- Search404 - especially important when rebuilding an old site that had different URLs, as this will help users at least land somewhere useful by doing a search for their original url.
- Metatag - although these are less used nowadays by Google, many search engines still use metatag info. This module allows you to automatically provide structured metadata, aka "meta tags", about a website
Drupal Modules for Media
- Float Filter - this little module makes floating inline images a breeze. It adds surrounding tags around floated
- IMCE - excellent module for controlling where your files go and what roles can access them. Can be used with WYSIWYG via a bridge module.
- Media - quick and dirty way to insert images and videos inline or as fields.
- Pathologic - when you need to keep relative file paths for uploaded files working between environments, this does the trick.
- Transliteration - Maintaining control over the files that folks upload to a Drupal site is going to save you pain down the road.