Duplicate, Google chose different canonical than user
Where you see it: Search Console → Indexing → Pages → Why pages aren’t indexed
This URL declares a canonical, but Google weighed the other signals around it and indexed a different URL from the same group. A canonical tag is a hint, and here the hint lost. When Google’s pick is the wrong page, you win it back by making every signal name the same URL.
Act if your choice was the right one; otherwise accept Google’s.
Compare the two canonicals in URL Inspection. If Google chose an http address, a thin tag archive or an old copy of a post, line your signals up behind your choice. If it chose the stronger of two near-identical posts, merge them.
Check the URL Search Console listed
Run the check on the listed URL, then on the URL Google selected. You want one canonical on the listed page, and a target that answers 200 and names itself.
Canonical report
Run a check to inspect canonical tags and robots directives.
Reading the result
- Two different canonical URLs: Google can set conflicting tags aside and choose on its own. Remove the extra one, usually the theme’s.
- Canonical URL status reads “HTTP 200 after redirecting to …”: your tag names an address that sends Google elsewhere, and Google follows the redirect.
- A www and non-www mismatch, usually with a redirect warning beside it: the tag names one host while the server redirects to the other.
- Canonical looks healthy on both URLs: the tags are fine, so look at internal links, the sitemap and how alike the pages are.
The same tool with its full guide: Canonical Checker
Why it happens on WordPress
Google weighs redirects and rel="canonical" as strong signals, a sitemap listing as a weak one, and prefers HTTPS unless something undermines it. On WordPress each is set on a different screen, often by a different plugin, which is how they drift apart.
A self-canonical on a page that copies another
SEO plugins give every page a canonical naming itself, including a tag archive holding one post, or a second post you wrote on the same topic. The tag says “I’m the original”, the content says otherwise, and Google often rightly sides with the content.
Internal links voting for the other version
Menu Custom Links, page builder buttons and older posts often hold hard-coded addresses: http:// from before the HTTPS move, or the host without www. Google asks you to link to the canonical consistently; these links vote for the other version.
A sitemap that lists the losing URL
A leftover static sitemap.xml in the site root or a second sitemap plugin can list the address you didn’t choose. A sitemap is a weak signal, but Google says not to name different canonicals through different methods.
A redirect pulling the other way
A rule left from an old merge, or a host rule that adds or strips www, can redirect the URL your canonical names. Your tag and the redirect then disagree, and the redirect wins.
HTTPS that Google doesn’t trust
Google prefers https URLs except when the certificate is invalid, the https page redirects to http, its canonical points to http, or it loads scripts or stylesheets over http. After a move, hard-coded http:// assets in theme options are the usual culprit.
Translations that are mostly the same text
A multilingual site where only the menus and footer are translated. Google treats language versions as duplicates when the main content stays untranslated, and picks one URL per group.
How to fix it
Decide first whether this is a fight worth having. Then align the signals from strongest to weakest.
1. Read both canonicals in URL Inspection
Paste the listed URL into the inspection bar and expand Page indexing. User-declared canonical is your tag; Google-selected canonical is what Google indexed. Open both side by side.
2. Choose: accept, merge, separate or contest
Each group gets one answer.
- Accept, when Google’s pick is a page you’d want anyway: point this URL’s canonical at it, except on translated pages.
- Merge, when two posts compete for one topic: fold the better parts into one and 301 the other to it.
- Separate, when the pages are meant to differ: rewrite so each says something the other doesn’t. A one-post tag archive can be noindexed in your SEO plugin instead.
- Contest, when Google picked an http address or a stale copy: work through the steps below.
3. Make sure your chosen URL answers 200
If it redirects, change the canonical to the final address, or delete the rule in your redirect plugin, SEO plugin or host panel.
4. Point internal links at your choice
Replace the losing address in post content with a search-and-replace plugin or WP-CLI, after a backup. Then fix Custom Links in Appearance → Menus or the Site Editor’s navigation.
5. List only your choice in the sitemap
Delete a static sitemap.xml left in the site root, keep one sitemap generator, and resubmit it in Search Console → Indexing → Sitemaps.
6. Clean up HTTPS
Every http URL should reach https in one 301 at your host or CDN, and the certificate must cover the exact host you use, www included. Replace scripts and stylesheets still loaded over http.
The signals, and the WordPress screen behind each
Google says the methods stack: using more than one raises the chance your preferred URL is shown. On WordPress no single screen shows them all.
| Signal | Weight in Google’s docs | Where it is set on WordPress |
|---|---|---|
| Redirect | Strong | Redirect plugin, SEO plugin, host panel, CDN or .htaccess |
| rel="canonical" | Strong | SEO plugin and each post’s Advanced tab; core on posts and pages; sometimes the theme |
| Sitemap listing | Weak | SEO plugin sitemap, core’s /wp-sitemap.xml, or a static file |
| HTTPS | Preferred unless undermined | Settings → General, your certificate, the http to https redirect |
| Internal links | Helps Google read your preference | Post content, menus and widgets |
Check the fix in Search Console
The live test in URL Inspection doesn’t check duplicates, so it can’t say which URL will win. Use it to confirm your signals are live.
- Run Test live URL on both pages and open View tested page. Both should carry one canonical naming your choice.
- Request indexing for your chosen URL once; Google says asking again doesn’t speed up crawling.
- Click Validate fix on the status in Indexing → Pages only when every listed URL should leave it. If you let some groups stand as Google chose, skip it: those keep the status and would fail the run, and the report moves on its own as Google recrawls.
- By Google’s estimate a validation can run for up to about two weeks. If it fails, inspect one of the URLs it still lists before changing anything else.
- When both canonicals match after a recrawl, the URL becomes indexed or moves to Alternate page with proper canonical tag.
If Google keeps choosing the other URL once every signal agrees, it is judging the content, and merging the pages settles it.
Can RankHive fix this?
Partly. On posts and pages RankHive changes the signals it can reach: the canonical field, links in your content, a 301 from a merged post, and the text of a near-duplicate. Sitemaps, HTTPS and archives stay with you.
What it writes, once you approve
- A canonical URL on a post or page, saved in Yoast SEO, Rank Math or SEOPress.
- Internal links in post content, repointed at the URL you chose.
- A 301 redirect from a merged-away post to the one you keep, served by the RankHive plugin.
- A rewrite of a near-duplicate post.
What it can’t do here
- Edit, regenerate or submit your XML sitemap.
- Fix certificates or http to https and www redirects at your host or CDN.
- Change canonicals on tag, category, author or date archives, or set noindex anywhere.
- Edit menus, widgets or WooCommerce products.
- Add hreflang, or click Validate fix or Request indexing for you.
Every change is drafted next to the current value and waits for your approval. Each one written is logged in the Change Log, with Revert.
Check the rest of your site while you’re here
The free site check reads your public pages for titles, meta descriptions, headings, canonical tags and schema, and shows what needs fixing. If you sign up, RankHive reads your Google Search Console data every week, drafts the fixes, and writes the ones you approve to WordPress. Nothing changes on your site until you say yes.
Related issues
- Duplicate without user-selected canonicalFix it only if Google picked the wrong URL.
- Alternate page with proper canonical tagLeave it alone, unless a page you want in Google is on the list.
- Page with redirectUsually leave it; tidy your own links that still use the old address.
- URL Inspection toolNothing to fix: it’s the tool you diagnose and confirm fixes with.
Common questions
Why did Google ignore my canonical tag?
Because a canonical is a hint, not a rule. When redirects, sitemaps, HTTPS or links point elsewhere, or the pages aren’t true duplicates, Google picks for itself.
Is “Duplicate, Google chose different canonical than user” bad for SEO?
Not always: one version of the content is indexed. It costs you when that version is one you don’t want people landing on.
Should I change my canonical to match Google’s choice?
Sometimes. If Google’s pick is a page you’d happily rank, pointing your tag at it ends the conflict. Don’t do it on translated or regional pages, which should keep naming themselves.
Why does Search Console show clicks for a URL I didn’t choose?
Because Search Console reports performance under the canonical Google selected. Once Google switches to your choice, new clicks and impressions are counted under that URL instead.
Sources
Checked against these pages on .
- Google Search Console Help: Page indexing report
- Google Search Console Help: URL Inspection tool
- Google Search Central: What is canonicalization
- Google Search Central: How to specify a canonical URL
- Google Search Central: Fix canonicalization issues
- Google Search Central Blog: Consolidating your website traffic on canonical URLs
- Google Search Central: Localized versions of your pages