Skip to content
DevMarDe
Crawl Audit check 38Crawl AuditTechnical SEO

More than one canonical tag: Crawl Audit check 38

Crawl Audit check 38 tests for two or more canonical tags on one page, why they confuse search engines, and where the second tag usually comes from.

Zain Kazmi2 min read
On this page
Check
38 of 200
Module
Technical SEO & Indexability
Group
Crawlability & Indexing
Impact
Medium

Short answer: a page should have exactly one canonical tag. Check 38 fails when it finds two or more. Even if they agree, a second tag is a sign that two parts of your site are each trying to set it, and the day they disagree, Google gets mixed signals about which URL is the main one.

What Crawl Audit checks

  • Pass: zero or one <link rel="canonical"> tag.
  • Fail: two or more.

A page with none passes this check. That case is covered by check 37.

What Google says

Google's JavaScript SEO guide warns that "Conflicting or multiple rel="canonical" link tags may lead to unexpected results." Its canonical guide makes the same point about mixing methods, calling the use of both a tag and a header for the canonical "more error prone".

Google treats a canonical as a strong hint, not a command (check 36). Two hints that disagree make it more likely Google ignores your preference and picks its own.

Where the second tag comes from

  • Two SEO plugins active at once on WordPress, each adding its own.
  • A theme plus a plugin: the theme hard-codes a canonical, and the SEO plugin adds another.
  • Custom code pasted into a header or code-injection field, on top of the platform's default.
  • JavaScript that adds a canonical after the page loads, while the server already sent one.

How to find and fix it

  1. Open the page's source (Ctrl+U) and search for rel="canonical". Count the matches.
  2. Work out which source each comes from: theme, plugin, or custom code.
  3. Keep one, usually the SEO plugin's or the platform's, and remove the others.

On your platform

  • WordPress: run only one SEO plugin, and check your theme's header template for a hard-coded canonical.
  • Wix and Squarespace: check any custom code you added to the site header (Squarespace calls this code injection).
  • Next.js: set the canonical through the metadata API only, not also in a manual <head> tag.

Sources

All 200 Crawl Audit checks

See how your site does on every check.

Crawl Audit runs this check and 199 others on your domain. The full report is $7.89, one time. The free check on this site covers 25.