Skip to content

Web Design

Drupal SEO: Modules and Configuration Guide

Add saadrazaseo.com as a preferred source on Google

Takes about a minute. You hear back from me personally.

Drupal SEO relies on a handful of contributed modules plus careful configuration: Pathauto for clean URL patterns, Redirect for changed paths, Metatag for titles, descriptions and canonicals, Schema.org Metatag for JSON-LD, and Simple XML Sitemap for sitemaps. Add Hreflang for multilingual sites, then check the output yourself.

The 2024 Web Almanac SEO chapter found canonical tags on 65% of mobile pages and 69% of desktop pages, so a correctly configured canonical setup is still something many sites leave to chance.

Why Drupal SEO is a configuration job

Drupal is built for structured content: custom content types, taxonomies, multilingual sites, editorial workflows and complex permissions. That flexibility is why large organisations, universities and public bodies use it. It also means that SEO is not a switch you flip. Out of the box, you get a capable content system. The search-friendly layer, such as URL patterns, metadata templates, redirects and sitemaps, comes from modules and from how you configure them.

The drupal.org community documents the usual set on its SEO modules page, grouped into URL management, metadata and structured data, sitemaps and indexing, content analysis and monitoring. I will work through those groups in the order I use when I audit a Drupal site. If you are still choosing a platform, my CMS comparison for SEO puts Drupal in context against simpler systems.

URL management: Pathauto and Redirect

By default, Drupal content can be reached at paths like /node/123. Those are poor URLs for people and for search. The Pathauto project page says it automatically generates URL aliases for nodes, taxonomy terms and users using administrator-configurable patterns with tokens, and supports bulk generation of aliases. That gives you consistent, readable paths without editors typing each one.

My rules for URL patterns:

  • Design the pattern per content type. Articles, services, case studies and landing pages usually deserve different structures.
  • Keep paths short and stable. A pattern based on a title token will change the URL when an editor changes the title, so decide whether aliases should update automatically.
  • Avoid dates in paths unless the date is genuinely part of the content.
  • Test bulk generation on a staging copy before running it on a live site. A bulk update can rewrite thousands of URLs.

That last point is where the Redirect module comes in. Its project page says it provides manual redirects and maintains a canonical URL for content, redirecting other requests to that path. In Drupal 8 and later, it also redirects variations such as non-aliased paths and language-prefixed URLs. It includes a separate module for logging aggregated 404 errors and creating redirects from them, and wildcard and domain redirects are handled by a separate module.

The workflow I recommend: whenever a URL changes, whether by pattern, rename or restructure, confirm that a redirect exists from the old URL to the new one. Then check Search Console’s page indexing reports and server logs for 404s in the weeks that follow. A migration into or out of Drupal needs the same discipline, which is set out in my website migration SEO checklist.

Content model decisions that affect SEO

Drupal’s content types and taxonomies decide which pages exist, so plan them with search in mind. Give each type a clear purpose and fields that map to what a page needs: a proper summary, an author where relevant, an image with alt text and related-content references for internal linking. Taxonomy terms are the usual trouble spot. A tag vocabulary that editors extend freely can generate hundreds of near-empty term pages. Limit who can create terms, give important terms a real description and decide whether term pages belong in the sitemap.

Compare this with a publishing-first platform such as the one in my Ghost CMS SEO guide, where the content model is simpler and archives are fewer. Drupal gives you more control, and with it more ways to create thin pages.

Rather have an expert do this for you?

Hand it over and get back to running your business.

Hand it over to me

Metadata and canonicals: the Metatag module

The Metatag project page describes global settings for site-wide meta tags, per-entity-type and per-bundle defaults, individual overrides on each entity and a token system for dynamic values. It covers page titles, canonical URLs and descriptions, plus Open Graph and Twitter Cards.

That structure suits SEO well, because you can set sensible defaults at content-type level and override them where it matters. A practical setup:

  1. Global defaults: a title pattern that puts the page title first and the site name last.
  2. Content-type defaults: a description pattern that pulls from a summary field, if your editors actually fill it in.
  3. Canonical tags: confirm each page outputs a canonical URL pointing to its preferred, aliased path, and that it returns a 200 status.
  4. Manual overrides: your money pages and top articles get hand-written titles and descriptions.
  5. Review: crawl the site and look for duplicate titles, empty descriptions and canonicals pointing to unexpected URLs.

Token-based descriptions can look fine in the admin and produce odd output on the page, such as a truncated sentence or raw markup. Always inspect actual page output rather than the configuration screen.

Structured data with Schema.org Metatag

The drupal.org SEO modules page lists Schema.org Metatag as the way to output structured data as JSON-LD, enabling rich results such as ratings and FAQs where eligible. I like the approach because it hooks into the same entity-level configuration as Metatag, so types and properties can be mapped to fields in your content model.

Use it with restraint. Map markup only to content that is visible on the page: article headings and authors for articles, organisation details site-wide, event data on event pages. After setting it up, test sample URLs from each content type in Google’s Rich Results Test and the Schema Markup Validator, and fix warnings that affect eligible features. Structured data does not guarantee a rich result, and wrongly applied markup can do more harm than leaving it out.

Sitemaps and indexing: Simple XML Sitemap

The Simple XML Sitemap project page says the module generates multilingual sitemaps for entities, views and custom links, including hreflang and image sitemaps. It supports most content entity types and per-bundle or per-entity inclusion settings. It can submit sitemaps to search engines periodically and supports the IndexNow protocol for notifying participating search engines such as Bing and Yandex of changes.

The inclusion settings are the important bit. Treat the sitemap as a statement of what you want indexed:

Content typeInclude in sitemap?Reason
Landing pages, services, articlesYesThese are the pages meant to rank
Taxonomy term pagesOnly if they are useful hubsThin listings add noise
User profilesUsually noRarely valuable and sometimes private
Utility pages (search, login, thank-you)NoNo search value

After configuration, open the generated sitemap, check that it lists only canonical, 200-status URLs, and submit it in Google Search Console and Bing Webmaster Tools.

Multilingual SEO and hreflang

Drupal’s multilingual capability is one of its genuine strengths, and also a source of errors. The drupal.org page lists an Hreflang module that adds language tags for multilingual sites. Google’s documentation on localised versions says alternates can be declared through HTML tags, HTTP headers or sitemaps, that every version must link back to the others, and that annotations may be ignored if return links are missing. It also describes an x-default value as a fallback for users whose language does not match any version.

Pick one method and use it consistently. If you rely on Simple XML Sitemap for hreflang, do not also output conflicting tags in the page head. Then crawl the site and check that each translated page references all its alternates and itself. Translating the interface but leaving page content in the original language creates pages that do not deserve separate indexing.

Performance, extensions and maintenance

A Drupal site’s speed depends on hosting, caching configuration, theme quality, image handling and the number of modules and scripts in play. Measure the front end using field data where you have it, and check LCP, INP and CLS by template. Headless or decoupled front ends bring their own rendering questions, which I cover in my Next.js SEO guide.

On extensions, my rules are simple. Install only the modules you can explain. Prefer well-maintained projects with an active issue queue. Keep core and modules updated, and re-test SEO output after upgrades, because a change in a module can alter titles, canonicals or sitemap contents. Tools such as the SEO Checklist module can help track tasks, but a checklist is not an audit.

If you compare Drupal’s configuration-driven approach with an all-in-one commerce platform, my Adobe Commerce SEO guide shows a different set of trade-offs for catalogue-heavy sites.

Questions people ask about Drupal SEO

Which Drupal modules do I need for SEO?

The common set is Pathauto for URL aliases, Redirect for changed paths, Metatag for titles, descriptions and canonicals, Schema.org Metatag for JSON-LD and Simple XML Sitemap for sitemaps. Multilingual sites also need the Hreflang module or an equivalent method.

Is Drupal good for SEO?

It can be excellent, especially for large, structured or multilingual sites, because you control content models, URLs and metadata. The trade-off is that you must configure and maintain it. The result depends on setup quality, not on the platform name.

Does Drupal create redirects automatically when URLs change?

The Redirect module can maintain redirects and handle path variations, but you should confirm how your site is configured. After any URL change or bulk alias update, test old URLs and monitor 404s so nothing is left unredirected.

How do I handle hreflang in Drupal?

Use one method consistently, for example the Hreflang module or sitemap-based annotations, and make sure every language version references all alternates including itself. Google may ignore annotations that lack return links, so crawl to verify.

Next steps

A well-configured Drupal site is a strong SEO asset, and a poorly configured one hides its content from search. If you would like an independent review of your modules, URLs and sitemaps, my SEO web design and development service covers it, and you can request a free audit on my contact page.

More in this series (SEO by website platform): start with Best CMS for SEO: WordPress vs Shopify vs Webflow vs Custom, then explore:

Rather have an expert do this for you?

Tell me about your website and goals, and I will reply with a free first review.

Your details are only used to reply to your request. No spam.

Grow my trafficCall