Errorindexing.canonical-target

A canonical link points at a page that can't be indexed

Why it matters

A canonical link says "index that address instead of this one". If that address is missing or is itself set to noindex, the instruction can't be followed: you have told search engines not to index this page, and pointed them at one they can't index either. Google's advice, from its post on common canonical mistakes: "Double-check that your rel=canonical target exists (it's not an error or 'soft 404'). Verify the rel=canonical target doesn't contain a noindex robots meta tag." A canonical that points at an address which redirects sends two signals that disagree, which Google's current guidance warns against in general terms; that one is our reading, so it is a warning. The usual cause is a canonical written before a redesign or a move to https, still pointing at the old address.

Sources: 5 common mistakes with rel=canonical (Google, 2013: the current documentation doesn't repeat it, and nothing contradicts it); How to specify a canonical URL. Google treats a canonical as a hint and may disregard a broken one; it states no other consequence.

How to fix it

Point each canonical at the final, live address of the page: the one that answers 200 with no redirect, exactly as it appears in the address bar (https, with or without www and the trailing slash, whichever your site uses).

<link rel="canonical" href="https://www.example.com/cakes/" />

If many pages are affected, the address is built wrongly in one place: the site's base URL setting in the CMS, or the SEO plugin's canonical template.

Examples

These are the rule's own test pages, and what it says about each. They are run on every change to the rule book.

Warninghttps://www.example.com/cakes?sort=price names https://www.example.com/old-cakes as its canonical, which redirects to https://www.example.com/cakes.

Errorhttps://www.example.com/copy-of-hidden names https://www.example.com/hidden as its canonical, which is set to noindex.

fail-redirect-and-noindex
Example site
{
    "pages": [
        {
            "url": "/old-cakes",
            "finalUrl": "/cakes",
            "redirected": true,
            "inSitemap": false
        },
        {
            "url": "/cakes?sort=price",
            "inSitemap": false,
            "canonical": "/old-cakes"
        },
        {
            "url": "/hidden",
            "noindex": true,
            "inSitemap": false
        },
        {
            "url": "/copy-of-hidden",
            "canonical": "/hidden"
        }
    ]
}

PassedEvery canonical link we could follow leads to a page that can be indexed.

pass-live-target
Example site
{
    "pages": [
        {
            "url": "/cakes"
        },
        {
            "url": "/cakes?sort=price",
            "inSitemap": false,
            "canonical": "/cakes"
        }
    ]
}