Report: Page indexing · Status: Not indexed · Source: Google Search Console
Quick answer: Search Console shows "Alternate page with proper canonical tag" when a URL points its rel=canonical at a different page and Google agrees with it. The alternate is left out of the index on purpose, so usually nothing is broken. Fix it only if a page you want ranked is listed, or the count jumps after a deploy.
"Alternate page with proper canonical tag" is one of the reasons Google Search Console lists under Why pages aren't indexed in the Page indexing report. It sounds like an error. Most of the time it is the opposite: it is Google confirming that your canonical tags are doing their job.
TL;DR
- What: The URL has a
rel=canonicalpointing at a different page, and Google accepted that page as the canonical. - Is it a problem? Usually not. The URL is a duplicate or near-duplicate, and it is excluded from the index because you asked for that.
- When to act: A page you actually want to rank is on the list, the count jumps sharply after a deploy or theme change, or your sitemap and internal links point at these alternates instead of the canonicals.
What does "Alternate page with proper canonical tag" mean?
Every indexable page should have one canonical URL, the version Google should index and rank. When several URLs show the same content, you mark the preferred one with a canonical tag:
<!-- On https://example.com/products/linen-shirt?variant=4412 -->
<link rel="canonical" href="https://example.com/products/linen-shirt">
Search Console reads that tag, compares the two pages, and if it agrees that they are the same content, it indexes the canonical and records the other URL as an alternate. The word "proper" is the important part: the tag is valid, and Google followed it.
So the status means three things at once:
- This URL is not in Google's index.
- It declares a different URL as its canonical.
- Google agreed with that declaration.
If Google had disagreed, you would see a different status instead: "Duplicate, Google chose different canonical than user". That one deserves a closer look.
Is "Alternate page with proper canonical tag" an error?
No. It sits under the "Not indexed" heading because the URL is, by design, not indexed. Google's own Page indexing help says the alternate points to a canonical that is already indexed, so there is nothing you need to do.
A large count is normal on any site with URL variations. A store with 500 products and four variants each can easily show 2,000 alternate URLs and be perfectly healthy. The number itself tells you nothing; the URLs in the list do.
Which URLs normally show up as alternates?
These are expected and correct. Leave them alone.
- Parameter URLs: tracking tags (
?utm_source=,?gclid=,?fbclid=), sort and filter parameters (?sort=price,?color=blue), session or referral IDs. - Product variants:
?variant=URLs that all canonicalize to one product page. - Duplicate paths to the same content: a product reachable at both
/collections/shirts/products/linen-shirtand/products/linen-shirt. - AMP pages and separate mobile URLs (
m.example.com) that canonicalize to the regular page. These are the two examples Google's own help page gives. - Print, share or preview versions of an article.
- HTTP or trailing-slash variants, when your canonical tags consolidate them but redirects do not.
How do I fix "Alternate page with proper canonical tag"?
For the expected URLs above, there is nothing to fix. For everything else, work through the list in this order.
- Export the examples. In Search Console, open Pages, click the Alternate page with proper canonical tag reason, and export the table.
- Group the URLs by pattern. Most lists collapse into a handful of patterns: a parameter, a variant, a path prefix. Look at patterns, not individual URLs.
- Find any real content page. A blog post, a category page, a product, a location page: anything you expect to see in search results. Those should not be here.
- Inspect it. Paste the URL into URL Inspection and compare User-declared canonical with Google-selected canonical. If the page points at a different URL on purpose, it is working. If it points somewhere by mistake, fix the tag.
- Make the canonical self-referencing. A page that should rank needs a canonical pointing at its own URL. Then click Request indexing.
- Clean up the signals around it. Your XML sitemap should list canonical URLs only, and internal links should point to canonicals, not to parameter or variant URLs.
When is "Alternate page with proper canonical tag" a real problem?
These patterns mean a template or plugin is canonicalizing pages it should not:
- Every page canonicalizes to the homepage. A hardcoded
<link rel="canonical" href="https://example.com/">in a shared layout. The whole site shows up as alternates of/, and only the homepage ranks. - Paginated pages canonicalize to page 1.
/blog/page/2pointing at/bloghides every post that is only linked from later pages. Each page in a series should canonicalize to itself. - Language versions canonicalize to the default language. A French page pointing its canonical at the English page drops the French page from the index, and it contradicts any hreflang tags. Each language version canonicalizes to itself.
- Staging or old-domain canonicals. A canonical still pointing at a staging host or a pre-migration domain.
- A sudden jump in the count after a release. Canonical tags are almost always emitted by a template, so one bad change affects thousands of URLs at once. Compare the report's chart with your deploy dates.
What does this look like on Shopify?
Shopify stores are among the most common sites to show a long list here, and almost all of it is expected. Themes output the canonical from Liquid:
<link rel="canonical" href="{{ canonical_url }}">
canonical_url strips variant parameters and collection prefixes, so:
/products/linen-shirt?variant=4412canonicalizes to/products/linen-shirt/collections/summer/products/linen-shirtcanonicalizes to/products/linen-shirt
Every one of those URLs appears as an alternate, which is Shopify working correctly. Two things are worth checking. First, that your theme's internal product links use product.url rather than a collection-scoped URL, so Google crawls the canonical version directly. Second, that no app or custom snippet has added a second canonical tag. Two conflicting canonicals on one page make Google ignore both.
What does this look like on WordPress?
The canonical is usually emitted by an SEO plugin (Yoast, Rank Math, All in One SEO) or by WordPress core if no plugin is active. Typical alternates are comment-reply links (?replytocom=), tracking parameters, and AMP versions, all of which are fine.
Problems usually come from a plugin setting, not from core: a canonical manually set on a page and then copied when the page was duplicated, or two SEO plugins active at the same time, each printing its own canonical. View the page source and search for rel="canonical". There should be exactly one.
Should I click "Validate fix" for this status?
Not for expected alternates. Validation checks whether the listed URLs are now indexed. A correctly canonicalized alternate will never be indexed, so validation reports Failed and the status looks worse than it is. Only start validation after you have fixed pages that should have been canonical, and expect it to take up to two weeks, sometimes longer.
How do I check the canonical tag on a page?
- View source and search for
rel="canonical". There should be exactly one, it should be an absolute URL, and it should return 200. - URL Inspection in Search Console shows both the canonical you declared and the one Google selected.
- Lighthouse runs a
canonicalaudit that catches invalid tags: a relative URL, a canonical pointing to a different domain, or several conflicting canonicals. It cannot see which canonical Google picked, so pair it with URL Inspection. See Document does not have a valid rel=canonical for that audit.
Related
- Document does not have a valid rel=canonical, the Lighthouse audit for the tag itself
- Hreflang, where language versions and canonicals must agree
- Avoid multiple page redirects, the other way to consolidate duplicate URLs
Audit your URL at https://lighthouse-md.com.
Audit your page now
Paste your URL, get scores plus a CLAUDE.md plan for Claude Code.