The module that gives Drupal proper control over meta tags, Open Graph, and canonical URLs. We install it on every public Drupal site, alongside Pathauto, Simple XML Sitemap, and Redirect.
Metatag is the module we install on nearly every Drupal site we build, and it is also the one people overrate. Installing it does not “do SEO.” It gives you the fields to control meta tags properly, which Drupal core does not. The work is in configuring it, and in pairing it with two or three sibling modules that handle the parts Metatag does not touch.
Search for “drupal metatag” and almost everything you find is a setup tutorial or the drupal.org project page. Useful if you have already decided to use it. Less useful if you are trying to work out what role it plays in a real Drupal SEO setup. That is what this page is for.
Out of the box, Drupal gives you almost no control over meta tags. You get a page title and not much else. The Metatag module adds proper fields for meta description, canonical URL, robots directives, Open Graph, and Twitter card tags. The part that matters: you set defaults per content type using tokens, so an Article inherits a description pattern from its summary field and you are not editing tags node by node.
That token-based default system is the whole point. Configure it once for each content type and every new node gets sensible meta tags automatically. Override individual nodes only when you need to.
Metatag rarely works alone. On a public Drupal site, our default stack is four modules, and Metatag is one of them:
/blog/my-post instead of /node/42. Drupal core does not do this on its own, and people searching “drupal pathauto” are usually missing exactly this piece.For structured data, add the companion Schema.org Metatag project, which outputs JSON-LD in the page head. It is a separate download and easy to miss, which is why so many Drupal sites have meta descriptions but no rich-result markup.
Two things trip teams up. First, the defaults inherit in a specific order: global, then content type, then the individual node. If a node shows the wrong description, the override is usually sitting at a level you forgot about. Second, Views pages and custom routes do not get meta tags automatically. You handle those with the Metatag Views submodule or by setting tags on the route directly. This is the single most common “Metatag isn’t working” complaint, and it is not a bug.
Any Drupal site that cares about search rankings or how it looks when shared on social. For a purely internal intranet, skip it. For everything public, it goes in on day one alongside Pathauto. We install and configure the whole stack as part of our Drupal development services, or as a standalone job if your site is already live. You can also browse the other Drupal modules we recommend.
Search is a separate job from meta tags. For site search, see the Search API module for Drupal.
Title, description, canonical, and robots directives set once per content type with token defaults, inherited by every node.
Control how pages look when shared on Facebook, LinkedIn, and X, including the share image.
Build description and title patterns from node fields so new content is optimized automatically.
Override the defaults on any individual node when a page needs something specific.
The Schema.org Metatag companion project outputs JSON-LD for rich results.
We use this in real client projects β here's what we've learned.
Install Metatag on every public Drupal site, on day one, together with Pathauto, Simple XML Sitemap, and Redirect. Add the Schema.org Metatag companion when you want rich results. It is free, maintained, and has no real downside. The only catch is that installing it does nothing on its own. Budget an hour to set up the per-content-type defaults, and remember Views pages need their own handling.
Yes. It is GPL-licensed, hosted on drupal.org, and maintained by the community with stable releases for Drupal 9, 10, and 11. There is no paid tier and no license to buy.
Barely. Core gives you a page title and little else. There is no built-in way to set meta descriptions, canonical tags, or Open Graph data per content type. That gap is exactly what Metatag fills, which is why nearly every public Drupal site installs it.
Drupal has no single all-in-one plugin like Yoast. The closest is a stack: Metatag for the tags, Pathauto for clean URLs, Simple XML Sitemap, and Redirect. There is also a Real-Time SEO module that adds Yoast-style content analysis on top of Metatag, but Metatag is the base layer everyone starts from.
Not by itself. You add the companion Schema.org Metatag project, which extends Metatag to output JSON-LD structured data in the page head. It is a separate download, so it is easy to overlook.
For clean URLs, yes. Drupal serves node pages at /node/42 by default. Pathauto generates readable aliases like /blog/my-post from a pattern. Metatag and Pathauto solve different problems and we install both on every public site.
Views listing pages and custom routes do not pick up Metatag defaults automatically. Add the Metatag Views submodule, or set the tags on the route directly. This is the most common Metatag complaint and it is expected behavior, not a bug.
We can install, configure, or customize it for you.
Don't want to install yourself? Our developer connects via FTP, installs, configures, tests with a real transaction. Usually takes one business day.