Multiple Meta Descriptions: How to Fix Duplicate Tags

No Comments
Multiple meta descriptions: how to fix duplicate tags

What "multiple meta descriptions" means

This check fires when a single page's <head> contains more than one <meta name="description"> tag. The stakes: you've handed a search engine two or more competing pitches for the same page, and you don't get to pick which one it keeps — it may take the first, the last, concatenate them, or ignore all of them and write its own.

A page is allowed exactly one description. Two is a bug, not a feature, and it usually means two systems are both trying to own the tag without knowing about each other.

A real example: two tags, one head

Here's the mess an audit flags — the theme prints one description and an SEO plugin prints another:

<head>
  <title>Cast Iron Skillets | Acme Kitchen</title>
  <!-- printed by the theme header.php -->
  <meta name="description" content="Welcome to Acme Kitchen,
  your home for quality cookware since 2004.">
  ...
  <!-- printed by the SEO plugin -->
  <meta name="description" content="Shop pre-seasoned cast iron
  skillets built to last generations. Free shipping over $50.">
</head>

The corrected head has exactly one, and it's the one you actually want to rank with:

<head>
  <title>Cast Iron Skillets | Acme Kitchen</title>
  <meta name="description" content="Shop pre-seasoned cast iron
  skillets built to last generations. Free shipping over $50.">
</head>

Where the duplicate comes from

Source of the duplicateHow it sneaks inFix
Theme + SEO pluginThe theme's header.php hard-codes a description and the plugin adds its ownRemove the theme's hard-coded tag; let the plugin be the sole author
Two SEO pluginsYoast and another SEO plugin both active, each emitting metaDeactivate one; never run two meta-writing SEO plugins together
Hard-coded in a static templateA base layout includes a default description and the page adds a specific oneDelete the layout default; set description per page only
Injected by a tag managerA GTM custom HTML tag writes a description on top of the server oneRemove the GTM meta injection; meta belongs in the page, not the tag manager
CMS field + component both outputA headless CMS field and a hard-coded component both render the tagPick one owner in code; strip the other

The order-of-output problem

Duplicate descriptions almost always come down to output order in the head. WordPress builds the <head> by firing everything hooked to wp_head in priority order: the theme might print its tag at priority 1, the SEO plugin at priority 10. Both run, both write, and you end up with two. The same pattern shows up in framework layouts where a base template and a page component each render meta. The lesson: it's not that one tag is "wrong," it's that two authors exist. Removing the extra author — not editing its text — is the actual fix.

How to detect it on your own site

  1. curl and count: curl -s https://yourpage/ | grep -c 'name="description"'. Anything above 1 is a duplicate.
  2. Screaming Frog: crawl, open the Meta Description tab, and use the Meta Description → Multiple filter. Frog lists every URL carrying more than one.
  3. View source: open view-source: and Ctrl-F for name="description"; the match counter tells you instantly how many are present.
  4. GSC URL Inspection: View crawled page shows the HTML Google fetched; search it for a second description tag.
  5. Browser devtools: in the Console run document.querySelectorAll('meta[name="description"]').length — a number above 1 confirms it in the rendered DOM.

How to fix it

  1. Decide which system should own the description — usually your SEO plugin or your framework's head manager.
  2. Find and remove every other emitter: hard-coded theme tags, layout defaults, tag-manager injections, second plugins.
  3. If a theme hard-codes it, edit the template (or use a child theme) to delete that line rather than leaving the plugin to fight it.
  4. Reload and re-run the grep -c count until it returns exactly 1.
  5. Re-crawl with Screaming Frog to confirm the "multiple" filter is empty.

Don't assume "Google just takes the first one" and move on. Behavior isn't guaranteed, it varies by crawler, and Bing or an AI crawler may resolve the conflict differently than Google does. One tag removes all doubt.

FAQ

Which description does Google use when there are two?

There's no reliable rule — Google may pick the first, the last, or ignore both and generate its own. Because the outcome is unpredictable and differs across search engines, the only safe answer is to ship a single tag.

Does having two descriptions cause a penalty?

No penalty, but it's a self-inflicted quality bug. You lose control of your snippet, which quietly costs click-through even without any ranking impact.

How do I know which tag is "winning" right now?

You can't count on it, which is the whole point. Rather than reverse-engineer crawler behavior, remove the duplicate so there's nothing to resolve.

My plugin and theme both add one — which do I keep?

Keep the SEO plugin's tag; it gives you per-page control and previews. Remove the theme's hard-coded description by editing the template or child theme.

Is this related to multiple title tags?

Same class of bug, different element — duplicate emitters in the head. If you've got two descriptions, check for two titles too: Multiple Title Tags.

Related: Head Contains Invalid Elements, WordPress SEO Setup Checklist, and Title Tags and Meta Descriptions: The Complete Guide.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog