Drupal Core Modules Overview

Have you ever heard the comparison made between Drupal and LEGO? If not, it goes a little something like this: the Drupal content management system (CMS) is like those LEGO sets you played with as a child. While the base set was fun, you often felt limited in what you could do with it'which is why you wanted your parents to buy you add-on sets to extend the possibilities of play. This is the role of the Drupal module.

Modules, like any other CMS add-on or plugin, give developers the ability to enhance the power of their websites through a simple-to-use extension that integrates with the core. Whether they've been created by Drupal or were contributed by outside developers, you can find all of their current modules on their website.

67 Standard Core Modules to Get Acquainted With

Rather than try to sort through the tens of thousands of modules available within Drupal, let's instead focus on the standard core modules every developer should know about.

Actions

This module dictates what type of task should be completed once a designated action (see Trigger module below) takes place. For example, if someone submits a post, you can create an action that forces a notification email to be sent to you.

Aggregator

This module is a way for you to easily collect content from various sources. So if you want a list of content from external websites (as well as your own) to appear on your website, you can use this module to collect RSS and XML feeds into a single display.

Ban

This module is a simple way for you to block a specific user IP address from accessing a website.

Block

Block modules allow you to create various sections or blocks of content on your website. You can define themes, regions, pages, and content types where these blocks appear. You can also define user access to each block. The Block management screen is where you organize and position each block as it relates to other blocks that appear within a page or region.

Blog API

If your users want to develop content from their desktop and import it using an XML-RPC API program (eg, Blogger Data API, Movable Type API, etc), this module will enable you to do that.

Book

This module is a way you can tie together a number of pages within your website's structure. So if you've created a resource section with a title page and a number of sections or chapters below it, you'd use this.

Breakpoint

This module is where you can define the parameters for their website's responsive design. Width, height, and resolution can all be defined using a number of media queries.

CKEditor

This module is a text editor with a drag-and-drop WYSIWIG interface and a clean way to paste in content from other sources.

Color

This module is used to not only change the color of scheme of your themes, but also the elements (fonts, links, etc) within it.

Comment

This module, when activated, sets up a comment form on each node (or page) to which it is attached. You can customize the form fields, administration rules, and more here.

Config

This module allows you to export and import live configuration settings for your website for the purposes of development, staging, testing, and moving a website.

Contact

This module is where you go to create different forms for your website. You can define email recipients, subject categories, user limitations, and more.

Contextual Links

This links module creates on-page links within certain modules. This way developers and other designated users don't always have to return to the dashboard to make updates and can just do so right on the page.

Dashboard

This module gives you the ability to turn the dashboard information on or off. If activated, users can visit the dashboard for important site information.

Database Logging

This module monitors and provides a log of your website's performance, activities, errors, and other usage data.

Datetime

This module enables you to include the Date field within your content (like if they wanted to include the publish date on their blog posts).

Edit

This is also known as the Quick Edit module which enables you to do in-place editing on content fields without having to work in the backend.

Editor

This module is the backbone of the CKEditor module. In essence, it allows other modules to more easily create and edit text without having to use HTML and instead rely on WYSIWYG.

Email

This module allows you to insert email addresses as a field, either as a clickable mailto: link or as plain text.

Entity

Entities in Drupal are the various pieces that come together to create your site's content, including comments, files, taxonomy, and users. This module gives you power of managing those pieces.

Entity Reference

This module is for when you want to include a reference or link to another entity (or piece of content) from your website.

Field

This module enables the Field API so that different types of data can be added to your content (like titles, tags, and images).

File

If you want to insert files into your content, this module will allow you to create a field whereby you can upload and manage your site's files.

Filter

For greater control over the types of HTML text formats users can add to your site's content (Drupal distinguishes them as full, restricted, and basic HTML), use this module.

Forum

This module allows you to set up forums and other discussion boards on your website.

HAL

HAL, also known as Hypertext Application Language, serializes your site's content into a HAL+JSON format which is then used by the RESTful Web Services module.

Help

This module creates a Help page for backend users of a website. So if you run into any issues with installed modules, you can find information on them on this page.

History

If you want to track which content is being read by various users on your website, you can use this module to do so. However, it will only show you data associated with known users.

Image

For image insertion and manipulation on your website, enable this module for access to the image and settings panel.

Language

This module enables you to set the standard language for their website. This module also allows you to assign other languages to various items (like menus, nodes) and gives users control over which language is used in their admin interface.

Layout

When enabled, this module allows you to create responsive layouts for your website's blocks and other entities.

Unlike the entity reference that allows you to insert internal links within your website, this one allows you to insert links to outside sources.

List

In order to create lists on your website, you'll need to enable this module. You'll then be able to define the specific type of list you want to use (eg, Boolean, integer, text list, etc)

This module will provide you with the ability to create, delete, and manage your website's navigation and other menus.

In order to create links and entities within your site's menus, you'll need to enable this module.

Node

A node is where each piece of content on your website is stored. So once enabled, you can create, edit, and change the settings of your content within this module.

Number

This module will enable you to create number fields on your website.

OpenID

This module gives your users the option to log into your site with an OpenID. It's a more secure system for logging in and also allows them to use the same username and password for any site equipped with an OpenID login option.

Options

When using the Number field, you may need to define the options for it. In this case, you'd elect whether the number can be selected by clicking on it, checking a box, or using a radio button.

Overlay

This module changes how your admin panel works. So without activating this module, any time you clicked into one of the admin options, a new page will open in your browser. When you have this module enabled though, the admin panel will open in an easy-to-close overlay.

Path

The standard URL path for pages on a Drupal website will look like this: http://website.com/?q=node/10. If you want the ability to change that, activate this module.

Ping

This is a simple module that lets other websites know when you've linked to their content (called a "pingback").

Poll

When you want to create a poll or survey on your website, use this module. It'll give you the ability to set a limit on votes, track answers, and let your users create their own.

Profile

If your website has a need to showcase users' or visitors' profile information (like in a message board or in blog comments), you can use this module to allow them to create their own profile.

REST

For websites that want to allow for third-party integration or for other applications to get information from your site, you'll need to enable this module in order to establish a REST API.

RDF

RDF stands for "Resource Description Framework". This module enables your website to easily share information with other sites, search engines, social media, and more.

Search

This module is for when you want to include a search function on your website. You can keep it as a basic search bar or expand it to allow for more advanced searches.

Serialization

This module works in conjunction with the REST and HAL modules. It is the process of serialization that allows the two to work together to translate data into JSON or XML.

Shortcut

The shortcut bar in your website's admin backend is where you can store commonly used functions (like "Add Content"), so enable this if you want to customize these options for your site's users.

Statistics

This module serves as the analytics for your website's content. You can track popular pages, view counts, site usage, and more.

Syslog

This module is something to consider in lieu of the Database logging module. It serves a similar purpose in that it tracks activity and issues on your site, but it's more lightweight so it's better for overall site performance.

System

For developers that want more control over scheduling regular system tasks and determining system defaults, use this module.

Taxonomy

Taxonomy is Drupal's version of metadata, tags, and categories. So if you want to optimize your site's content, you'll need this module.

Telephone

This module is for when you want to insert telephone number fields into your website.

Testing

This module allows you to run tests on your Drupal website. You can automate and schedule these tests or you can conduct them as one-offs as module testing is needed.

Text

When you want to insert text fields into your content, use this module.

Throttle

If your website should experience a surge in traffic (whether it's due to a referral from another website or from a security breach), you'll want to put a throttle in place so you site doesn't go down. This will allow you to set certain rules for how your website will function if the amount of traffic exceeds the typical threshold.

Toolbar

This module gives you power over your backend admin toolbar. So if you want to change what links or actions are included in the toolbar, if you want to customize the shortcuts, or if you want to disable it altogether, you can do so here.

Tour

If you've ever wanted to create a guided tour or insert tooltips on your website, this module will allow you to set that up.

Tracker

This module provides a rundown of the latest content submissions to your website and also tracks user activity in terms of content creation.

Content Translation

If you want to translate certain pages or pieces of content on your website into other languages, you'll use this module to do so.

Trigger

When a user wants a certain action (see Actions module above) to take place after a task is completed (like a new user added, a post deleted, or a comment submitted), they need to set a Trigger module to define it.

Update Status

This update manager is where you'll be notified of new versions of site software, modules, as well as themes. You can also add, install, and deinstall modules and themes from this module's panel.

Upload

If you want to be able to upload any type of file to your website, this module needs to be activated.

User

For websites with multiple users, this module gives you the ability to set those users up, grant them specific access privileges, revoke their access, and assign them roles. Users can then, in turn, use this module to manage their profile and login information.

Views

Any time you want to share certain pieces of content from your website with users, you'll need to use this module. This will allow you to create lists, galleries, blocks, posts, and more from this content.

XMLRPC

By enabling this module, you're giving external applications the ability to read and update content on your website using XML-RPC (see the Blog API module above).

Use Modules on Your Next Drupal Site

Once you know how to use Drupal'and know how to make use of its modules'you can get a lot more out of this powerful content management system than you might expect.


Further Reading and Resources

We have more guides, tutorials, and infographics related to website development and management:

Ultimate Guide to Web Hosting

Check out our Ultimate Guide to Web Hosting. It will explain everything you need to know in order to make an informed choice.