AMP Canonical Points to Non-Indexable URL: How to Fix It
- January 21, 2025
- AMP, Canonical Issues

AMP Canonical Points to a Non-Indexable URL: How to Fix It
Your AMP page canonicalizes to a URL that Google has been told to keep out of the index — a noindex tag, an X-Robots-Tag header, or a redirect that lands on one. The AMP file is pointing at its "master copy," and the master copy is a page Google is under orders to drop. That contradiction voids the AMP version in search.
Note the difference from a robots block: here Google can fetch the canonical fine. It reads the page, sees a suppression directive, and honors it. The URL is reachable but deliberately excluded — which is arguably worse, because everything looks healthy until you check the directives.
What this check actually flags
An AMP document must declare a canonical, and that canonical is meant to name the indexable non-AMP page of record. This check fires when the named target is non-indexable. In practice the target is doing one of these:
<!-- on the canonical target page -->
<meta name="robots" content="noindex, follow">or serving the same instruction as a header:
HTTP/1.1 200 OK
X-Robots-Tag: noindexEither way, the AMP page says "the canonical version of me is over there," and "over there" is a page Google will not keep. AMP consolidates the variant onto its canonical; if the canonical is excluded, there is nothing valid to consolidate onto, and the AMP entry falls with it.
Why a noindex canonical voids the AMP
Canonicalization and noindex are conflicting hints when they land on the same target. A canonical says "treat this URL as the primary." A noindex says "do not index this URL at all." Point an AMP page at a noindexed canonical and you have asked Google to both prioritize and discard the same address. Google resolves the conflict by honoring the exclusion, so the whole cluster — canonical plus its AMP variant — stays out.
This is the mirror image of a more common indexation bug where a canonical points at a noindexed page from the standard side; the same logic breaks the AMP pairing here. If you want the mechanics of that contradiction in isolation, the write-up on a canonical that points to a noindex URL lays it out cleanly.
| Directive on canonical target | Where it lives | Indexable? | Fix |
|---|---|---|---|
noindex meta robots | <head> of the page | No | Remove the tag from the target |
X-Robots-Tag: noindex | HTTP response header | No | Drop the header at server/CDN |
| Redirect into a noindex page | 3xx chain | No (ends excluded) | Point canonical at the final 200 page |
| 4xx / 5xx target | Status line | No | Repair the page or repoint canonical |
| Clean 200, no directives | — | Yes | Correct — no action |
How to detect it
- Grab the exact canonical
hreffrom the AMP page's source — that is the URL whose indexability you are checking. - Fetch that URL's headers and body:
curl -sIL https://example.com/target/to catch anX-Robots-Tag, then view source for a<meta name="robots">withnoindex. - Run the canonical target through Google's URL Inspection tool. A verdict of "Excluded by noindex tag" or "Excluded by X-Robots-Tag" confirms it, and tells you which directive is responsible.
- Crawl with Screaming Frog storing AMP, then look at the AMP tab's non-indexable canonical filter — it flags every AMP page whose canonical resolves to a noindexed or errored URL.
- Follow any redirects to the end (
curl -sILshows the full chain) and check the final URL's directives — a canonical that hops into a noindex page fails the same way.
How to fix it
Get the canonical pointing at a genuinely indexable page, or stop advertising AMP.
If the target should be indexed: remove whatever is suppressing it. Delete the noindex meta tag or strip the X-Robots-Tag: noindex header from that URL. Confirm the page now returns 200 with no exclusion directive and carries its own self-referencing canonical. Then verify the AMP page still points at it and the standard page links back with rel="amphtml".
If the AMP was pointed at the wrong page: repoint the canonical to the correct indexable non-AMP URL. A noindexed thank-you page, filtered variant, or staging URL should never be an AMP page's canonical — fix the template that emits the value.
If you are done with AMP: remove the amphtml links, 301 the AMP URLs to their standard equivalents, and let the pairing dissolve. Given AMP no longer buys you anything in ranking, this is often the least-effort permanent fix. Understanding how meta robots and X-Robots-Tag interact will keep you from reintroducing the exclusion elsewhere.
Common mistakes
The classic error is "fixing" it by adding a noindex to the AMP page too, reasoning that matching directives will calm the crawler. It does the opposite — now both URLs are excluded and the content disappears entirely. Another is assuming a noindex, follow is harmless because it still passes link equity; follow does not make the page indexable, and the AMP pairing still voids. The target has to be genuinely indexable, full stop.
FAQ
How is this different from the canonical being blocked in robots.txt?
A robots block stops Google from fetching the canonical at all; a noindex lets Google fetch it and then excludes it. Different mechanism, different fix. If your canonical is robots-blocked instead, see AMP canonical points to a disallowed URL.
The target returns 200 and looks fine — why is it flagged?
A page can return 200 and still be non-indexable via an X-Robots-Tag: noindex response header, which is invisible in the rendered page. Always check headers with curl -I, not just the visible HTML.
Does the AMP page need its own canonical if I fix the target?
Yes. The AMP page's canonical should point to the indexable standard page, and that standard page should self-canonicalize and link back with rel="amphtml". Both halves of the handshake have to be right.
Is it worth keeping AMP given it does nothing for rankings now?
For most sites, no. Google removed AMP as a Top Stories condition in 2021 and the badge is gone. Unless you have a specific reason to maintain a parallel AMP set, retiring it is cleaner than chasing pairing bugs like this one.
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.







