Skip to Content

Top Modules for Drupal 7

A whirlwind tour of dozens of useful contributed modules for building Drupal 7 sites.

There are many really useful contributed modules to take your site beyond the basics of Drupal core. There are modules to improve, allow, and/or help with everything from administration to workflow, from paths to views, and beyond.

One factor to consider when choosing contributed modules is the recommendations of other experienced Drupallers. So in the list below I've noted some Drupal-as-a-Service (DaaS) platforms that have included a module in their service, which is essentially groups of experienced Drupallers indicating they find a module useful (and reliable enough) for a very large number of sites. I've also noted when at least some of a module's features are part of core in Drupal 8, which is an indication that very senior indeed Drupallers consider it useful for most sites.

  • (This functionality is part of core in Drupal 8.) indicates some/all of module's functionality is part of core in Drupal 8.
  • (This module is included in Stanford Sites.) indicates module is included in Stanford Sites.
  • (This module is included in Drupal Gardens.) indicates module was included in the late, lamented Drupal Gardens.

A key principle of module usage is to use as many as you need, but no more. Some of the modules (or their submodules) listed below are really useful when you are building or configuring the site, but don't need to be enabled for just visiting it or editing its content and so should normally be disabled on live/production sites.

  • (This module should only be enabled on live/production site if truly required by content editors.) indicates module should only be enabled on live/production site if truly required by content editors.

Essentials

These are modules that I install on essentially every site I build.

Administration menu (drupal.org/project/admin_menu(This module is included in Stanford Sites.)
Provides a dropdown menu to most administrative tasks and other common destinations (to users with the proper permissions). (Don't forget to disable the core Toolbar module when using this.)
Administration views (drupal.org/project/admin_views) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.)
Requires Views, Views Bulk Operations, Chaos Tool Suite, Entity API.
"Replaces administrative overview/listing pages with actual views for superior usability" —in other words, you can customize them!
Advanced help (drupal.org/project/advanced_help(This module is included in Stanford Sites.)
Displays advanced help and documentation. Many contributed modules' help and documentation are primarily available through this module. (This module should only be enabled on live/production site if truly required by content editors.)
Chaos tool suite (drupal.org/project/ctools) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
A helper module required by Administration views, Views and a number of other modules.
Date (drupal.org/project/date) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Provides "a flexible date/time field type (Date field) and a Date API that other modules can use."
Entity API (drupal.org/project/entity(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Required by Administration views and Views bulk operations.
Extends the entity API of Drupal core in order to provide a unified way to deal with entities and their properties.
Libraries API (drupal.org/project/libraries(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Provides a common repository for external (non-Drupal) libraries in sites/all/libraries and sites/<domain>/libraries for use by contributed modules.
Module filter (drupal.org/project/module_filter(This module is included in Stanford Sites.)
Tames the modules list page, so you can quickly find the module you are looking for without tons of scrolling or having to rely on the browser's search feature. (This module should only be enabled on live/production site if truly required by content editors.)
Pathauto (drupal.org/project/pathauto(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Requires Token.
Provides a mechanism for modules to automatically generate URL aliases for the content they manage. Human-friendly URLs (e.g.,"about" rather than "node/72") are important for accessibility, usability, and SEO.
Pathologic (drupal.org/project/pathologic(This module is included in Stanford Sites.)
A filter that helps avoid broken links and incorrect paths in general text fields (e.g., Body, etc.). These tend to arise when full URLs ("http://sample.edu/about") or relative path URLs ("about") are used in general text fields instead of absolute path URLs ("/about") for internal content.
Redirect (drupal.org/project/redirect(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Redirects users from one URL to another. When used with Pathauto, "automatically generates path redirects to ensure that URL alias changes do not break existing links." This is considered the best practice for SEO and usability.
Token (drupal.org/project/token(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
The basic token API is now a part of Drupal 7 core, but this module provides a browsable token UI, as well as field & profile tokens that did not make it into core for Drupal 7.
Transliteration (drupal.org/project/transliteration(This module is included in Stanford Sites.)
Provides a central transliteration service (converting Unicode text to US-ASCII) to other Drupal modules (e.g., Pathauto), and sanitizes file names while uploading.
Views (drupal.org/project/views) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Requires Chaos tool suite.
Required by Administration views and Views bulk operations.
Creates customized lists and displays from already entered content. Along with fields, this is the heart of adding content once but being free to display it multiple places and multiple ways. (For those familiar with relational databases, fields & Views let you use the power of relational databases to wrangle your content, while still keeping content adding and editing as simple as word processing and online shopping.) Submodules include views_ui (This module should only be enabled on live/production site if truly required by content editors.)
Views Bulk Operations (drupal.org/project/views_bulk_operations(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Requires Views and Entity API.
Required by Administration views.
Exposes new Views style 'Bulk Operations' for selecting multiple nodes and performing actions on them all at once.
Wysiwyg (drupal.org/project/wysiwyg) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Requires installation of (non-Drupal) editor libraries.
Allows users to edit contents with rich text editors such as CKeditor (This functionality is part of core in Drupal 8.) and TinyMCE. Permits inclusion of more than one rich text editor in the same site.
Wysiwyg filter (drupal.org/project/wysiwyg_filter(This module is included in Stanford Sites.)
"Provides an input filter that allows site administrators to configure which HTML elements, attributes and style properties are allowed" (based on whitelists). This lets administrators permit content editors to include images in general text fields without giving them access to Full HTML. (Allowing Full HTML is a security risk and just generally a Bad Idea.)

Frequently used

These are modules I install on many sites, but not all of them need the functionality provided.

Fields

Address Field (drupal.org/project/addressfield)
"Defines a new field type to store international postal addresses, implementing a subset of the top-level address elements defined in the xNAL standard"
Automatic entity label (drupal.org/project/auto_entitylabel)
Allows automatic generation of entity label fields, such as node titles. (Replaces Automatic node titles module.)
Email field (drupal.org/project/email) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.)
Provides a field type for email addresses.
Entity Reference (drupal.org/project/entityreference) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Requires Entity API and Chaos tool suite.
Provides a field type that can reference arbitrary entities (nodes, etc.). Can display the field either as a link to the entity or as a rendered entity (for example, it can show either a link to a node or the node itself).
Field collection (drupal.org/project/field_collection) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Field Group (drupal.org/project/field_group(This module is included in Stanford Sites.)
Link (drupal.org/project/link) (This functionality is part of core in Drupal 8.) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Provides a link field type. This allows association of a link title with a link URL, while permitting either to be optional.
Smart trim (drupal.org/project/smart_trim(This module is included in Stanford Sites.)

Views

Better exposed filters (drupal.org/project/better_exposed_filters(This module is included in Stanford Sites.)
"[R]eplaces the Views' default single- or multi-select boxes with radio buttons or checkboxes, respectively. Description fields and Select All/None links can be added to exposed filters to make for a better user experience."
Calendar (drupal.org/project/calendar(This module is included in Stanford Sites.)
Enables displaying views containing date fields in calendar formats. Can display information by day, week, month, or year in either pages or blocks.
Date iCal (drupal.org/project/date_ical(This module is included in Stanford Sites.)
"provides a plugin for Views to enable exporting your site's calendar as an iCal feed, and a plugin for Feeds to enable importing external iCal feeds into your site's calendar."
EVA: Entity Views Attachment (drupal.org/project/eva)
"Provides a Views display plugin that allows the output of a View to be attached to the content of any Drupal entity", such as a node, user profile, comment, etc.
Views data export (drupal.org/project/views_data_export(This module is included in Stanford Sites.)
Provides a way to export data from views to CSV, Microsoft XLS, Microsoft DOC, plain TXT, or XML.
Views Datasource () (This module is included in Stanford Sites.)
Views field view (http://drupal.org/project/views_field_view(This module is included in Stanford Sites.)
Allows users to embed a view as a field in a view. A new field handler is made available, so this can also be used in area (header/footer/empty) handlers as well as rows.
Views slideshow (http://drupal.org/project/views_slideshow(This module is included in Stanford Sites.)
"Views Slideshow can be used to create a slideshow of any content (not just images) that can appear in a View." 

Blocks

Bean (drupal.org/project/bean(This module is included in Stanford Sites.)
Allows the definition of block types (like content types, only for blocks instead of nodes). This has various benefits, including making it easy to add distinct fields to blocks, use WYSIWYG editors for block content, and the like.
Block class (drupal.org/project/block_class(This module is included in Stanford Sites.)
Lets site builders add CSS classes to any block through the block's configuration interface. This lets you really take advantage of the block-centric responsive design of themes like Open Framework and Stanford Framework.
Block title link (drupal.org/project/block_titlelink(This module is included in Stanford Sites.)
Allows site builders to turn a block's title into a link.
Menu block () (This module is included in Stanford Sites.)

Context

Context (drupal.org/project/context(This module is included in Stanford Sites.)
Allows site builders more fine-grained control over what is shown, where it is shown, and how it is shown ("reactions") on any given page based on a much wider and more flexible range of criteria/"conditions" than Drupal core. There is a lot of power in this module: with it you can have the same block show up in the header of one page but in the footer of others or have different themes depending on the path and much, much more.
Context accordion (drupal.org/project/context_accordion(This module is included in Stanford Sites.)
Requires Context
Improves the user interface (UI) of the Context module by adding a nice javascript accordion effect.
Context HTTP headers (drupal.org/project/context_http_headers) (This module is included in Stanford Sites.)
Requires Context
"Provides a set of Context reactions that allow you to set HTTP Response Headers for each context on your site. It is a generalized framework for response header handling that allows the sending of any arbitrary header value(s)." You can thank Whitehouse.gov for this one!
Context list (drupal.org/project/context_list(This module is included in Stanford Sites.)
Requires Context
Improves the administration experience of the Context module by providing "a list of contexts, their conditions and reactions in a simple view … The intention of this module is to provide a means of inspecting all contexts in one easy screen."
Context list active (drupal.org/project/context_list_active(This module is included in Stanford Sites.)
Requires Context
Like the Context list module, but lists the contexts, conditions, and reactions only for the current page.
Context respect (drupal.org/project/context_respect(This module is included in Stanford Sites.)
Requires Context
"Extends the Context module by making it respect default block settings. This makes it so you can retain your block visibility when assigning them into various Contexts."
Context user agent (drupal.org/project/context_useragent(This module is included in Stanford Sites.)
Requires Context
"Adds a new condition to the Context module that allows performing regular expression tests on the useragent string ($_SERVER['HTTP_USER_AGENT']). This allows adding different reactions based on the user's browser, operating system, or other needed contexts that may be found in the useragent string." 
Delta (drupal.org/project/delta(This module is included in Stanford Sites.)
Requires Context
Allows site builders "to make duplicates of your theme settings for any context on your site. This gives you the ability for alternative layouts as a reaction in Context" 
Contextual Block Class(es) (drupal.org/project/cbc(This module is included in Stanford Sites.)
Requires Context
Allows site builders "to contextualize block classes" 

Appearance/Theme

Colorbox (drupal.org/project/colorbox) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
CSS injector (drupal.org/project/css_injector(This module is included in Stanford Sites.)
Allows site builders to add new CSS (and override the theme's CSS) without editing (or even access to) the theme's files on the server.
Display suite (drupal.org/project/ds(This module is included in Stanford Sites.)
"[A]llows you to take full control over how your content is displayed using a drag and drop interface. Arrange your nodes, views, comments, user data etc. the way you want" by defining custom view modes. Site builders can define how one piece of content should be displayed in different places such as teaser lists, search results, the full node, views, etc."
JS injector (drupal.org/project/js_injector) (This module is included in Stanford Sites.)
Like CSS injector, only for JavaScript (SJ).

Development

Bundle copy (drupal.org/project/bundle_copy(This module is included in Stanford Sites.)
Allows administrators to export and import content types and other entity definitions (taxonomy, user, field definitions, field groups). This is great for sharing structures between sites, instead of rebuilding them by hand each time. (Note, it does not import/export the content/data, just the structure/definitions.)
Features (drupal.org/project/features) (This module is included in Stanford Sites.)
"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."
Strongarm () (This module is included in Stanford Sites.)

Data Import

Feeds (drupal.org/project/feeds(This module is included in Stanford Sites.)
"Import or aggregate data as nodes, users, taxonomy terms or simple database records."
Feeds JSONPath Parser (drupal.org/project/feeds_jsonpath_parser(This module is included in Stanford Sites.)
Feeds Tamper (drupal.org/project/feeds_tamper) (This module is included in Stanford Sites.)
Feeds XPath Parser (drupal.org/project/feeds_xpathparser) (This module is included in Stanford Sites.)
Path redirect import () (This module is included in Stanford Sites.)

Files and Images

File entity (fieldable files) (drupal.org/project/file_entity(This module is included in Stanford Sites.)
"File entity provides interfaces for managing files. It also extends the core file entity, allowing files to be fieldable, grouped into types, viewed (using display modes) and formatted using field formatters."
File (Field) Paths (drupal.org/project/filefield_paths(This module is included in Stanford Sites.)
Requires Token. 
Adds the ability to use node tokens in destination paths and filenames. 
FileField Sources (drupal.org/project/filefield_sources
Extends file and image fields to allow referencing existing files, remote files, and server files.
Insert (drupal.org/project/insert(This module is included in Stanford Sites.)
Adds a button to file and image fields so images and links to files may be inserted inline into general text fields (e.g., the Body field).

Other

Backup and migrate ( drupal.org/project/backup_migrate (This module is included in Stanford Sites.)
"Back up and restore your Drupal MySQL database, code, and files or migrate a site between environments. Backup and Migrate supports gzip, bzip and zip compression as well as automatic scheduled backups." [I use this when I can't use shell scripts in the command line on the server.]
Better formats (drupal.org/project/better_formats(This module is included in Stanford Sites.)
Adds more flexibility and control to Drupal's core text format system. It allows site builders to: set allowed text formats and/or default order of text formats per field; hide format tips and/or hide more format tips link per role; and hide format selection per role per entity.
Bibliography module (drupal.org/project/biblio(This module is included in Stanford Sites.)
For managing and displaying lists of scholarly publications, including importing from PubMed, BibTex, RIS, MARC, EndNotee and XML and exporting to BibTex, EndNote, and XML. Output styles include AMA, APA, Chicago, CSE, MLA and others.
Content Access (drupal.org/project/content_access(This module is included in Stanford Sites.)
Allows granular control of access to content by content types and, optionally, specific nodes by role and author, by specificing independent view, edit and delete permissions.
Custom breadcrumbs (drupal.org/project/custom_breadcrumbs(This module is included in Stanford Sites.)
"Allows you to create and modify your own breadcrumbs based on node type." (Breadcrumbs are that trail of links indicating the way to your current page, usually displayed just above or below the page title.)
Diff (drupal.org/project/diff(This module is included in Stanford Sites.)
"[A]llows pretty viewing of all added/changed/deleted words between revisions."
Drupal Commerce (drupal.org/project/commerce)
Flag () (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Google analytics (drupal.org/project/google_analytics(This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
"Adds the Google Analytics web statistics tracking system to your website."
Inline entity form ()
"Provides a widget for inline management (creation, modification, removal) of referenced entities. … Existing entities can also be referenced." This solves the chicken or egg problem for referencing content that hasn't been created yet!
Job Scheduler (drupal.org/project/job_scheduler) (This module is included in Stanford Sites.)
An API (helper module) "for scheduling tasks once at a predetermined time or periodically at a fixed interval."
JW Player() (This module is included in Stanford Sites.)
Link checker (drupal.org/project/linkchecker)
Periodically checks for broken links in node types, blocks and cck fields and reports the results.
Menu position () (This module is included in Stanford Sites.)
Metatag () (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Mollom () (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Node clone () (This module is included in Stanford Sites.)
Node convert (drupal.org/project/node_convert(This module is included in Stanford Sites.) (This module should only be enabled on live/production site if truly required by content editors.)
Node form columns () (This module is included in Stanford Sites.)
Panels ()
Relation () (This module is included in Stanford Sites.)
Rules (drupal.org/project/rules) (This module is included in Stanford Sites.)
Lets you define conditionally executed actions based on occurring events. In other words, add logic/processing without having to code a custom module. Also required/used by many other modules.
Services () (This module is included in Stanford Sites.)
Site verification () (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Taxonomy manager () (This module is included in Stanford Sites.)
Universally Unique IDentifier () (This module is included in Stanford Sites.)
Webform () (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Workbench (drupal.org/project/workbench) (This module is included in Stanford Sites.)
Workbench access (drupal.org/project/workbench_access) (This module is included in Stanford Sites.)
Workbench moderation (drupal.org/project/workbench_moderation) (This module is included in Stanford Sites.)
XML sitemap (drupal.org/project/xmlsitemap) (This module is included in Stanford Sites.) (This module is included in Drupal Gardens.)
Tagged in: