“Alternate page with proper canonical tag” is Search Console telling you that a canonical tag worked. The URL names another page as its canonical, Google agreed, and the canonical page is indexed. Google’s help page ends its explanation with “there is nothing you need to do”. Most of the time that is the whole answer. The rest of the time, the list hides a page you wanted in search results, and that is worth an afternoon to find.
This guide covers what the status means in Google’s words, the five cases where it is a real problem, how to audit the list without inspecting a thousand URLs by hand, and how AMP, separate mobile URLs and language versions fit in. The free canonical tag checker shows what any URL declares and whether its canonical answers 200, which is most of the audit.
The status text and the 1,000-row limit are from the Page indexing report help[1]; the multiple-canonical warning is from Google’s post on common canonical mistakes[10].
What “Alternate page with proper canonical tag” means
Put simply: the page has a canonical tag (or another canonical signal) naming a different URL, Google treated the two as the same content, kept your choice, and indexed the canonical. In Google’s terms, the user-declared canonical and the Google-selected canonical are the same URL, and it is not this one. That is canonicalization working: Google picks one representative URL for a set of duplicates and shows that one in results[3].
Google’s examples are AMP and mobile pairs, but the list holds any URL whose canonical points elsewhere. Third-party write-ups name parameter URLs, http and www variants and paginated pages as common entries[11]. On most sites today, campaign links, sort orders and filters make up most of it.
The report’s own guidance sets the expectation: “Duplicate or alternate pages shouldn’t be indexed. Having a page marked duplicate or alternate is usually a good thing; it means that we’ve found the canonical page and indexed it.”[1]
When it is fine, and when it is not
| Example | Verdict | What to do | |
|---|---|---|---|
| Tracking or campaign variant | /pricing?utm_source=linkedin pointing to /pricing | Fine | Nothing |
| Sort or filter variant | /shoes?sort=price pointing to /shoes | Fine | Nothing, unless the count is huge: then reduce crawling of filters |
| Separate mobile URL | m.example.com/page pointing to example.com/page | Fine | Check the desktop page has the matching rel=alternate |
| AMP page | /amp/story pointing to /story | Fine | Keep the AMP and canonical content equivalent |
| A page you want to rank | /services/seo pointing to the home page | Problem | Fix the canonical so the page names itself |
| Paginated page | /blog/page/3 pointing to /blog | Problem | Each page in a series names itself |
| Category page | /pastry pointing to today's featured article | Problem | Self-referencing canonical, or none |
| Translated page | /de/preise pointing to /pricing | Problem | Canonical in the same language, plus hreflang |
The five cases that need fixing
1. A page you want in search results is on the list
This is the case that matters. If a service page, a product or a post you want people to find shows as an alternate, its canonical points somewhere else and Google believed it. Search will show the other URL instead. The usual causes, from Google’s post on canonical mistakes: a template copied without changing its canonical, an SEO plugin adding a default canonical “possibly unbeknownst to the webmaster”, and canonicals written as relative URLs that resolve to the wrong address[10]. A theme that prints the home page URL as every page’s canonical is the extreme version.
Fix: make the page name itself as canonical, then request indexing for it in URL Inspection. Google suggests reserving that quota for the URLs that matter most[2].
2. Page 2 and beyond point to page 1
Google: “Don’t use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL”[8]. Pointing later pages at page 1 “would result in the content on pages 2 and beyond not being indexed at all”[10]. For a blog or a category, that can mean older posts and deeper products lose their path into the index. If Google accepted the tag, those pages show up here.
3. A category or landing page points to an article
Google’s example is a dessert site whose “pastry” category page features one article a day and points its canonical at it. If Google accepted that, “your pastry category page would not appear in search results”. Its advice: “it’s best to only have a self-referential rel=canonical on the category page, or none at all”[10].
4. Language versions point to the original
Search Console does not report language alternates as such: “Alternate language pages are not detected by Search Console”[1]. So if a translated page appears in this list, it is because its canonical names another URL, usually the original language version. That asks Google to drop the translation. Google’s guidance is the opposite: with hreflang, “specify a canonical page in the same language, or the best possible substitute language if a canonical page doesn’t exist for the same language”[4], and “localized versions of a page are only considered duplicates if the main content of the page remains untranslated”[7].
Fix: every language version names itself as canonical and lists the others, and itself, in hreflang. The checker fetches up to 5 hreflang alternates of a page and checks each answers 200, names itself and links back.
5. The list is huge and keeps growing
A count in the hundreds of thousands on a site with a few thousand products is a sign that filters, sort orders or internal search results produce endless URLs. Indexing is fine; crawling is not. Google says a canonical to the unfiltered page “may, over time, decrease the crawl volume” of filter URLs, but calls canonicals and nofollow “generally less effective in the long term” than blocking filter parameters in robots.txt or moving filters into URL fragments[9]. If the filtered pages have no search value, stop them being crawled at the source.
How to audit the list in four steps
1. Filter by your sitemap. The Page indexing report can be filtered to the URLs in one sitemap; Google suggests the same filter to speed up validation[1]. A sitemap is your list of canonical URLs, so a URL that is in it and also shows as an alternate is sending two answers: the sitemap says “index me”, the tag says “index that one”. Google asks you not to specify different URLs as canonical with different methods[4]. Either the sitemap or the tag is wrong. The XML sitemap validator lists every URL a sitemap holds and tests each for redirects and blocks.
2. Group by pattern. The report shows at most 1,000 example URLs per issue and doesn’t promise to show every URL even under that[1], so treat the export as a sample. Sort it: rows with ?utm_, ?sort= or ?variant= are usually fine and can be skimmed. Rows that are bare paths deserve a look, because a bare path pointing elsewhere is a page somebody built on purpose.
3. Inspect a sample. In URL Inspection, the Page indexing section shows the User-declared canonical and the Google-selected canonical. For an alternate they match, and they are not the inspected URL. Read them in the indexed result: Google says the live test “cannot predict whether or not the tested version will be considered canonical”[2].
4. Check the canonical targets. A canonical should point at a final, indexable page: no redirect, no 404, no noindex, and naming itself. Google’s best practices say to double-check the target exists and that it doesn’t carry a noindex[10]. Paste a few alternates into the checker, 5 at a time in bulk mode, and it follows each canonical and reports what it finds there.
Self-referencing canonicals: the default worth having
A self-referencing canonical is a canonical tag that names the page it is on. Google’s best practices say: “Do include a rel="canonical" link on the canonical page itself (also known as a self-referential canonical)”[4]. It looks redundant on the clean URL, but it is served on every variant of that URL too, so a link with a tracking parameter you never planned for already points home. That is exactly how most rows in this report come about, and why most of them are fine.
<!-- On https://www.example.com/guides/trail-running/ -->
<head>
<link rel="canonical" href="https://www.example.com/guides/trail-running/" />
</head>
<!-- The same tag is served on every variant of that address, so each one
points back to the clean URL:
https://www.example.com/guides/trail-running/?utm_source=newsletter
https://www.example.com/guides/trail-running/?ref=sidebar
http://example.com/guides/trail-running (if it is not redirected) -->A page without any canonical is not broken. URL Inspection’s help says that if a page is not a duplicate, “None is fine here”, and recommends declaring one for pages that belong to a set of similar or duplicate pages[2]. Without one, Google picks, and those pages land in Duplicate without user-selected canonical instead of here. That status is the one this report is the opposite of: no preference given, rather than a preference accepted.
AMP and separate mobile URLs
These are the cases Google’s status text was written for. For a site with separate mobile URLs, Google’s mobile-first indexing guide says “The desktop URL is always the canonical, and the mobile version is the alternate of that URL”. The mobile page points to the desktop URL as canonical, and the desktop page points to itself as canonical and to the mobile page with rel="alternate"[5]:
<!-- Desktop page: https://example.com/ --> <link rel="canonical" href="https://example.com/"> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/"> <!-- Mobile page: https://m.example.com/ --> <link rel="canonical" href="https://example.com/">
With that in place, every m. URL appears as an alternate, which is correct. The thing to check is that the pair is complete: Google’s canonical guide says that if the canonical page has a mobile variant on a separate URL, you add a rel="alternate" link to it pointing to the mobile version[4].
For AMP, URL Inspection’s help says “the canonical should be the non-AMP version unless it is a self-canonical AMP”[2]. Google’s AMP guide adds that users must be able to see the same content and complete the same actions on AMP pages as on the canonical pages, where possible[6]. An AMP page listed as an alternate of its regular page is the intended setup.
Shopify and other platforms
On Shopify, the list often fills with collection-scoped product URLs such as /collections/sale/products/item. Shopify’s docs explain why they exist: the Liquid within filter builds a product URL in the context of a collection, and since both versions “have the same content on separate URLs, you should consider the SEO implications”[12]. When those URLs name the plain /products/ URL as canonical, this is the status they get. Nothing to fix; to reduce how many get crawled, link product cards to the product URL directly.
On WordPress, if a post you care about appears, view its source and look for a second canonical, from the theme or a second SEO plugin: with two, Google is likely to ignore both[10]. On Next.js, set alternates.canonical per route from the route, not the request; the Next.js SEO guide covers what crawlers receive.
Real examples, checked with the canonical checker
Five public URLs, run through the code behind the canonical checker on 11 October 2026. We can’t see these sites’ Search Console reports, so the last column is what the signals predict, not what Google shows them.
| URL checked | What it returned | Likely status, if Google agrees | |
|---|---|---|---|
| Campaign link | en.wikipedia.org/wiki/Canonical_link_element?utm_source=newsletter | 200, canonical: the URL without the parameter | Alternate page with proper canonical tag. Correct, nothing to do. |
| Language version | developers.google.com/search/docs/crawling-indexing/canonicalization?hl=de | 200, canonical: itself (?hl=de), with 21 hreflang links | Indexed in its own right. This is how a translation should look: self-canonical, in a cluster. |
| Separate mobile URL | en.m.wikipedia.org/wiki/Canonical_link_element | 301 to the desktop URL, which names itself | Not an alternate at all: a redirected URL shows as "Page with redirect". Wikipedia answers both devices on one URL here. |
| Shopify collection path | www.allbirds.com/collections/mens/products/mens-tree-runners | 200, canonical: /products/mens-tree-runners | Alternate, as intended. Its hreflang links name the collection URL, though, a second opinion worth tidying. |
| Paginated archive | www.smashingmagazine.com/articles/page/2/ | 200, canonical: /articles/ (page 1) | If Google accepts it, an alternate that shouldn't be: the case Google warns hides deeper content. |
The pattern is clear even in five URLs. The first two are what good canonicals look like, and the fourth is fine where it counts. The last one would sit in this report looking exactly like the first, which is why the audit reads bare paths and paginated URLs instead of trusting the count. Google can still overrule a canonical it thinks is wrong, and pages 2 and 1 of an archive list different articles, so this one may well end up in Duplicate, Google chose different canonical than user instead.
Checking every page
A wrong canonical usually comes from a template, so it is on every page built from it. CoreCited’s Site Audit crawls your site and checks that each page declares a canonical URL and answers a clean 200, so a template change shows up before Google recrawls. The free account audits 10 pages, and every limit is on the pricing page. For redirects between variants, the redirect checker shows every hop.
Questions people ask
What does "Alternate page with proper canonical tag" mean?
The URL names another page as its canonical, Google agreed, and the canonical page is indexed. So Google shows the canonical in Search instead of this URL. Google's help says there is nothing you need to do.
Is "Alternate page with proper canonical tag" an error?
No. It is listed under pages that are not indexed, but Google says having a page marked duplicate or alternate is usually a good thing, because it means Google found the canonical and indexed it. It only hides a problem when a URL you want in search results is on the list.
Why are so many of my pages listed?
Usually because many URL variants exist: tracking and campaign parameters, sort and filter options, AMP or mobile versions. Each variant that correctly points to its canonical is counted. A large or fast-growing count from filters can still be worth reducing, to save crawling, even though nothing is wrong with indexing.
What is a self-referencing canonical?
A canonical tag on a page that names the page itself. Google recommends it on every canonical page. It costs one line and means that any variant of the URL, such as one with a tracking parameter, points back to the clean address.
How do I fix it on Shopify?
Usually you don't. Shopify themes print a canonical, and collection paths such as /collections/sale/products/item normally name the plain /products/ URL, which puts the collection path in this list. If you want fewer of them crawled, link product cards to the product URL instead of the collection-scoped one.
Should I request indexing for these URLs?
No. They are not meant to be indexed. Requesting indexing for an alternate asks Google to look at a page whose own tag says another URL is the one to index. Spend the quota on canonical pages you want in Search.
