Drupal core (basic out-of-the-box Drupal) comes with a set of modules that provide for its basic functionality, which include Node (content), Views, User, Taxonomy (categories), etc. In addition, the large and active Drupal community provides a huge variety of contributed modules. What’s amazing—and in keeping with Drupal’s open-source ethos—is that the grand majority of Drupal modules are all open source and free to use. Having a large repository of open source modules that are actively maintained is in stark contrast to various other open source CMS platforms where some of the best plugins are hidden behind very expensive yearly licensing fees.
Here are 8 modules that we have found to be critical, and that we use in every Drupal project:
If you need granular control over your Drupal site’s SEO, including page titles and meta descriptions, you will need this module. The Metatag module allows for custom meta tag overrides for any entity, which is especially useful for the homepage as we will often write something custom for it, as opposed to inner pages which usually follow patterns. This module also allows for customized meta tag patterns for content types, so that your page titles are dialed-in and appropriate given varying context.
The module offers a lot of flexibility, and offers support for other tags such as canonical URL, Twitter Cards, Facebook’s Open Graph and the Dublin Core Metadata Element Set.
Nowadays, the design of a website needs to consider a wide variety of display sizes, orientations and resolutions. We can usually cover our bases in terms of design with a desktop design suite and a mobile design suite. But when the website is used in the real world, the images of a site are going to show up a thousand different ways due to thousands of different device displays.
The Focal Point module is used to define the most important part of an image, so that focal point is always in view.
A very valuable combo is to use the focal point module in conjunction with the Responsive Image and Image Optimization modules, creating a system in which optimized production images are automatically generated, using ideal image crops based on focal points, file sizes, filetypes (for example if WebP if it’s supported by the browser), as well various different aspect ratios for different screen sizes.
One of the things Drupal excels at is providing a lot of structure for content in the back end—and for CMS users—easy and consistent ways to create and edit content. The Paragraphs module allows you to provide CMS users with predefined Paragraph Types, so that all they need to do is work on content. This module makes it easy for users to manage and reorder repeatable layouts, and to manage complex elements such as image galleries, slideshows, accordions and tabs.
As an example, to provide a Paragraph for a testimonial slideshow, you might provide a field for a photo, text fields for name and position, and a multi-line text field for the testimonial itself. The CMS user can add as many testimonials as they’d like as well as reorder them, and on the front-end this element might be presented as a carousel.
With the Paragraphs Library module, you can create a database of Paragraphs and then reuse them anywhere on the site. It is a powerful way to build up a library of templated elements + content which can be reused anywhere, as well as being able to “detach” the content from the library version to create a customized instantiation of it.
Another really nice feature with Paragraphs is that you can have a hierarchy with nested Paragraphs, allowing for more-structured layouts. Normally with these kinds of systems, to move things around you’d often have to delete items and then recreate them at the desired level, but with Drupal’s Paragraphs you can drag and drop (to move and reorder) items into any level, giving content editors a lot of flexibility.
The Webform module is a highly flexible form management system, for anything from a simple contact form, to complex multi-step forms with conditional logic, and for integration with 3rd party CRM and marketing platforms such as Salesforce, HubSpot and Marketo.
The Pathauto module allows you to define automatic URL patterns, usually based on content/entity type or taxonomy. For example you could define that all new pieces of content of the content type Products, would all automatically get the URL alias /products/[current-page:title]. This module also allows you to bulk generate all existing URLs of a content type to your newer chosen pattern (rather than Drupal’s default, e.g. /node/1).
The Redirect module gives you a user-friendly interface to create and manage redirected pages. This is important when renaming a page title that you want to be also reflected in the URL, or moving a page to a new section of your site. It’s especially important when doing a migration, because chances are that there will be some (or a lot of) changes to the information architecture. In terms of SEO, it’s critical to properly do 301 redirects so that your site’s pagerank in search engines stays intact.
For curated content, you need to have control over which items of an entity type to include, and also the order in which they should be shown. Entityqueue is a simple module that does these exact things, and integrates nicely with Views.
Layout Builder is a WYSIWYG tool for page building, giving high-level and intuitive site building capability to both developers and non-developers. This module is part of Drupal core, but is turned off by default. Previous contributed modules that filled this need include Panels and Display Suite, and while they can be great solutions, are often incompatible with each other. Having this functionality as part of Drupal core has finally given Drupal an extremely powerful, flexible, and easy-to-use page builder, for building one-off layouts such as a homepage or landing pages, or defining consistent layouts for different content types.
Let's set up a Zoom meeting to talk about your project, or better yet, Starbucks and a walk around Green Lake!