Alternate page with proper canonical tag: what Search Console means
You saw Alternate page with proper canonical tag in the Page indexing report. That means this URL points its canonical to another URL and Google agreed. The page is out of the index on purpose, unless you set the wrong canonical.
By Théophile Louvart, founder of Porteur · Updated 13 September 2026 · Markdown
What this status means, in plain English
Search Console shows Alternate page with proper canonical tag for URLs that declare a different canonical, and Google accepts it. Google will not index this URL. It will index the canonical URL instead.
Example: /pricing?ref=twitter has <link rel="canonical" href="https://yourproduct.com/pricing"/>. Google agrees that /pricing is the canonical. /pricing?ref=twitter shows as alternate, not indexed. /pricing is indexed.
When this status is fine
- Tracking or marketing parameters, like /features?utm_source=newsletter.
- Print, share, preview, or test variants you do not want indexed.
- Filtered or sorted catalog variants that should fold into the main list.
- Trailing slash or uppercase variants you want normalised to one URL.
- Both http and https, or both www and non www, but you want one canonical.
- Session IDs or duplicate paths in programme generated pages.
A fixed page in this case shows the clean URL as the canonical, returns 200, and the alternates all point to it with rel=canonical. Your internal links also use the clean URL.
When it signals a mistake
You set a canonical to a different page that is not a true duplicate. Google agreed, so the page you want is excluded. You lose the chance to rank that content.
| Symptom | Example | Why it is wrong | What to do |
|---|---|---|---|
| Wrong page ranks | /guides/getting-started canonicalises to /guides/overview | They serve different intents, now only /guides/overview can rank | Remove the canonical, or point each to itself |
| All locales fold into one | /en/pricing canonicalises to /pricing | Language or region pages are not duplicates | Use hreflang across self-canonical pages, one per locale |
| Paginated lists fold to page 1 | /blog/page/2 canonicalises to /blog/ | Page 2 is not a duplicate, users need it | Use rel=next/prev is deprecated, leave each page self-canonical |
| Canonical to non-existent URL | /features canonicalises to /feature | /feature 404s or redirects, signal is broken | Canonicalise to the final, indexable URL |
| Cross-type canonical | /blog/post canonicalises to /features | A post is not a feature page | Self-canonicalise each, add internal links if you want consolidation |
| Canonical to a noindex | /pricing canonicalises to /pricing?view=table with noindex | Noindex blocks the chosen canonical | Remove noindex on the canonical or change the canonical target |
If you see traffic fall for the alternate, it is expected. Search Console ties impressions and clicks to indexed pages. Traffic should accrue to the canonical instead.
How to confirm the canonical Google chose
Open URL Inspection
In Search Console, enter the alternate URL in Inspect any URL.
Check User-declared vs Google-selected canonical
Expand Coverage. You will see the canonical you set, and the canonical Google chose. For this status, they match.
Inspect the canonical URL
Click View crawled page or Inspect the canonical URL. Confirm it returns 200, is indexable, and has the content you expect to rank.
Fetch the HTML
Use View tested page, then HTML, and find the <link rel="canonical" ...>. Confirm it is absolute, the correct URL, and appears once.
Verify signals agree
Check internal links, sitemaps, hreflang, http headers, and redirects all point to the same canonical URL.
Also check the canonical URL in your browser with curl -I or your dev tools. Confirm 200 OK, not a redirect loop, and Cache-Control is not blocking crawlers.
Fixing a wrong canonical in common setups
Your goal is simple: each unique page that should rank declares itself as canonical, and its alternates point to it. Here is how to change it in practice.
- Static site or custom app: set a single <link rel="canonical" href="https://yourproduct.com/path"/> per indexable page. Remove duplicates. Use absolute URLs.
- WordPress: in the editor, set the canonical in your SEO plugin per post or page. For Yoast, Rank Math, or AIOSEO, find Advanced or Canonical URL and set it to the page’s own URL. Remove any global rule that points posts to a hub.
- Shopify: avoid theme code that forces collection or product canonicals to the first variant or to the collection. Each product page should self-canonicalise unless you consolidate variants.
- Headless CMS: render a canonical field from content, default to the resolved, final URL. Do not canonicalise to a URL that redirects.
- Pagination: leave /blog/page/2, /page/3 and so on self-canonical. Keep rel="prev" and rel="next" out, as of 2026 Google ignores them. Provide clear internal links.
- Faceted navigation: add noindex to throwaway combinations, keep indexable facets self-canonical, and link to them. Use parameter handling only if you must.
- UTM and tracking: never canonicalise to the URL with parameters. Always canonicalise to the clean URL without the UTM.
- International sites: each language page self-canonicalises. Use hreflang across equivalents. Do not canonicalise /en/ to /.
- HTTP and www: redirect to your primary host, and make the final URL the canonical.
Example fix: /guides/getting-started incorrectly canonicalises to /guides/. Change the canonical in your template to /guides/getting-started. Update internal links to point to /guides/getting-started. Remove any auto canonical rule for guides to the hub page. On recrawl, Google should index /guides/getting-started.
Edge cases that trip small sites
- Home duplicates: / and /index.html. Canonicalise to /. Redirect /index.html to /.
- Case and slash: /Pricing versus /pricing, with and without trailing slash. Pick one version, redirect, and canonicalise to it.
- Canonical to a redirected URL: point canonicals to the final URL, not the pre redirect version.
- Sitemap mismatches: sitemap lists /pricing/, page canonical is /pricing. Make sitemap and page match.
- Infinite scroll: page 2 reachable only via JS, canonical to page 1. Add real links to paginated pages, and self-canonical each.
- AMP: if you still serve AMP, amp page canonicals to the canonical web page, and the web page links to its amphtml. Do not cross canonicals between unrelated pages.
- Canonical in HTTP header and HTML: keep one truth. Prefer the HTML link tag for simplicity.
- Duplicate titles and H1s: canonicals used to paper over thin, near duplicates. Fix the content or merge the pages.
How to validate the fix in Search Console
Request a recrawl
In URL Inspection, click Test live URL on the fixed page. If indexable, click Request indexing.
Watch the canonical fields
After Google recrawls, Inspect the URL again. User-declared canonical should be the page itself. Google-selected canonical should match it.
Check the Page indexing report
The URL should move out of Alternate page with proper canonical tag. The canonical URL may show as Indexed, not submitted in sitemap or another relevant status.
Confirm performance moves
Open Performance. Filter to the fixed page. Over the next 28 days, impressions and clicks should accrue to the page that is now indexed.
Impressions are counted when a link to your page appears on a results page a user loaded. CTR is clicks divided by impressions. Position is the highest link’s position per results page. Average position is the mean over impressions. The report holds up to 16 months, and the default compares the last 28 days against the 28 before. Bear this in mind as you judge the change.
How this affects the Performance report
Alternate pages do not collect impressions or clicks. Their canonical does. If you filtered by the alternate URL before, your totals will look lower. That is normal. Use the canonical URL.
The query dimension omits rare and anonymised queries. So a table of queries rarely sums to the page or site total. If you see a flat line for an alternate page and a rise for its canonical partner, the fix worked. Check the canonical page’s queries for intent fit and edit the title and description if needed.
If average position worsens after consolidation, it might be because a weaker page became the canonical. Compare the two pages’ content and links. Merge the better content into the canonical and redirect the other to it if needed.
A quick checklist before you ship
- Each indexable page self-canonicalises to its final, 200 URL.
- All alternates point canonical to the main URL, not to each other.
- Noindex is not combined with a cross canonical.
- Canonical URLs in HTML are absolute, appear once, and match the sitemap.
- Internal links point to the canonical, not to tracked or filtered variants.
- Avoid canonicalising across different intents, types, or languages.
- Parameter and pagination pages that should be indexed self-canonicalise and are linked.
Questions
Fix it only if the canonical is wrong. If the page is a tracked or duplicate variant, ignore the status. If it is a unique page that should rank, change it to self-canonical and validate in Search Console.
Open the page or post. In your SEO plugin, set the Canonical URL to the page’s own URL. Remove any template rule that points posts to a hub. Update the sitemap and internal links to match. Inspect the URL in Search Console and request indexing.
Pointing to the wrong URL, pointing to a URL that redirects or 404s, using relative URLs, adding multiple canonicals, or combining noindex with a cross canonical. Also, canonicalising different languages, paginated pages, or different content types to one page.
In the HTML <head> of https://yourproduct.com/pricing, add <link rel="canonical" href="https://yourproduct.com/pricing"/>. For a tracked variant like /pricing?ref=twitter, set <link rel="canonical" href="https://yourproduct.com/pricing"/> on that variant.
After you change the page, request indexing in URL Inspection. It can take from a crawl or two to longer, depending on your site’s crawl rate. Watch the Google-selected canonical field. When it matches your declared canonical, the fix is in place.
Impressions and clicks accrue to the indexed, canonical URL. If Google changed the canonical to another page, the alternate will stop collecting data. Check Performance for the new canonical page. Judge changes over at least the last 28 days.
Sources
Check my site, free
Not sure which pages should be canonical, and which should fold in, for your site, today? Paste a URL to run the free check and see three concrete fixes.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideCanonical tags: what they do and the mistakes that cost rankings
- GlossaryCanonical URL
- GuideThe Search Console performance report, column by column
- GuideHow to use Google Search Console in ten minutes a week
- GuideTechnical SEO checklist for a small site
- GuideInternal linking for a small site: which pages link to which
- GuideDuplicate without user-selected canonical: the fix in three steps
- GuideCanonical tags in practice: the six situations you will meet