How to resolve a noindex page with a self-referencing canonical URL?
robots-canonical-conflict page
The issue
A page that says both noindex and “I am the canonical URL” leaves the search engine to decide which you meant. If the noindex is the mistake, the page drops out of search. If the canonical is the mistake, nothing visible breaks, but the site is sending signals it doesn’t mean.
The cause is usually two features that don’t know about each other: a template or SEO plugin that adds a self-referencing canonical to every page, and a separate setting, meta tag or X-Robots-Tag header that marks some pages noindex.
Scope
Each page’s robots directive and canonical are read together. The noindex can come from a <meta name="robots"> tag or an X-Robots-Tag header; either one conflicts with a canonical pointing at the page itself.
How to check you have it
- By hand: view the page source for
<meta name="robots" content="noindex">and a<link rel="canonical">whosehrefis the page’s own URL. Runcurl -sI <url>to see whether anX-Robots-Tag: noindexheader is sent. - Across the site: crawl it with a tool that extracts both the robots directive and the canonical, and filter for pages where the directive includes
noindexand the canonical equals the page’s URL. - With a tool: Google Search Console’s page indexing report lists pages “Excluded by ‘noindex’ tag”. Check whether any of them should be indexed.
The fix
Decide whether the page should be indexed, then make both directives say the same thing.
If it should be indexed, remove the noindex and keep the self-referencing canonical. If it shouldn’t, remove the self-referencing canonical; where the page is a variant of an indexable page, point the canonical there instead. Then fix the template so canonical generation checks the page’s robots state.
Done when: no page combines noindex with a canonical pointing at itself, and the check above comes back clean.
Do not
- Do not rely on a search engine to resolve the conflict for you.
- Do not remove
noindexwithout confirming the page belongs in search. - Do not point a
noindexpage’s canonical at an unrelated or missing URL. - Do not configure canonicals and robots directives independently of each other.
FAQ
Does Google always honor noindex over a self-referencing canonical?
Don’t rely on it either way. The two signals contradict each other, and the only dependable outcome comes from removing the contradiction.
Why do CMS platforms add self-referencing canonicals to noindex pages?
Canonicals are usually added by the template for every page, while noindex is set per page by a different setting or plugin. Neither checks the other.
Should a noindex page canonicalize to a different URL instead of removing the canonical?
Only when it is a duplicate or variant of an indexable page, in which case the canonical points there. A page with no indexable equivalent, such as a staging page or an account page, needs no canonical.
Does this conflict affect crawl budget?
Not directly; the page is fetched either way. The cost is uncertainty about which signal is followed, which is a reason to fix it, not a cost to measure.
Can X-Robots-Tag headers create this same conflict with HTML canonical tags?
Yes. A noindex sent in an X-Robots-Tag header conflicts with a self-referencing canonical in the HTML just as a meta tag does. Header and template are often set by different teams, which is how it happens.
How do I find all pages with this conflict on my site?
Crawl the site and extract, per page, the robots meta tag, the X-Robots-Tag header and the canonical. Pages where the directive includes noindex and the canonical equals the page’s own URL are the conflicts.
Which product detects this
Probeo checks this on every page of your site as part of Site Clarity. This page explains one instance; the product tells you every page that has it.