Fix “Duplicate, Google chose different canonical” (Blogger + WordPress guide)

multiple URLs on (or across) your site represent the same content. You told Google which URL is “main” (your canonical),
but Google decided a different URL is the best canonical.This is not automatically a disaster. Sometimes Google is correct (for example, you accidentally created duplicate variants).
But if Google picked the wrong URL, you can fix it with a clean system:
one preferred URL + correct canonical signals + consistent internal links + redirects for duplicates.
1) What this status means (simple explanation)
2) When it’s NOT a problem (and you can ignore it)
3) Why Google chooses a different canonical (real causes)
4) Step 1: Diagnose the exact URL variants in Search Console
5) Step 2: Choose the ONE URL you want indexed
6) Step 3: Fix canonical signals (HTML canonicals + sitemap + internal links)
7) Step 4: Redirect or consolidate duplicates (best practice)
8) WordPress guide (Yoast / Rank Math / common duplicates)
9) Blogger guide (the ?m=1 + labels + template traps)
10) Common examples + exact fixes (tables)
11) A repeatable “canonical hygiene” workflow
12) Copy/paste checklist
13) FAQs
1) What “Duplicate, Google chose different canonical” means
Google found your page, but it also found other URLs that look like the same page. You might be publishing one article,
but your site can accidentally generate multiple versions of it, for example:
https://example.com/post/https://www.example.com/post/http://example.com/post/https://example.com/post/?utm_source=twitterhttps://example.com/post/?amphttps://example.com/post/amp/https://example.blogspot.com/2026/01/post.html?m=1(Blogger mobile)
Canonical tags are your way of saying: “This is the main version. Index this one.”
But Google can override your choice when signals are inconsistent or when another URL looks “more canonical.”
internal links, redirects, sitemaps, URL parameters, content similarity, and overall site consistency.
2) When it’s NOT a problem
Sometimes this status is actually fine. It can mean Google is doing smart deduplication.
You can ignore it if:
- ✅ The URL Google chose as canonical is the one you prefer and it’s indexed.
- ✅ The excluded URL is truly an alternate version (parameters, tracking, mobile, amp variant).
- ✅ Your users still land on the correct page and it loads fast.
Fix only when Google picked the wrong canonical or duplicates are causing indexing/traffic issues.
3) Why Google chooses a different canonical (real causes)
Here are the most common reasons (especially on new blogs). You’ll likely recognize at least one:
Cause A: Mixed domain versions (http/https, www/non-www)
If your site works in multiple versions, Google sees duplicates. Even if you set a canonical, your internal links may still
point to the other version, making Google trust it more.
Cause B: Internal links point to the “wrong” version
Google trusts your internal linking heavily. If your menu, category pages, or related-post widgets link to
?utm= versions, http versions, or trailing-slash variations, Google may choose that version as canonical.
Cause C: URL parameters and tracking links
Parameters like ?utm_source=, ?fbclid=, or ?ref= create multiple URLs for the same content.
If you submit or link those versions, you multiply duplicates.
Cause D: AMP / mobile / printer-friendly variants
AMP pages and mobile variants can confuse canonicals if not implemented correctly. Blogger’s ?m=1 is a classic example.
Cause E: Duplicate content across multiple posts
Sometimes it’s not URL variants—it’s two different posts that are extremely similar. Google may pick one as canonical-like
(or simply index one and skip the other).
Cause F: Wrong canonical tags (or inconsistent canonicals)
Canonical tags can be wrong due to theme bugs, SEO plugin conflicts, caching issues, or custom Blogger templates.
If some pages declare canonical A and others declare canonical B, Google may choose whichever looks consistent.
4) Step 1: Diagnose the exact URL variants in Search Console
Don’t guess. Your job is to answer 3 questions:
(1) which URL is excluded? (2) which URL did Google choose? (3) why?
A) Find the issue example
- Search Console → Indexing → Pages
- Open the report that contains the issue: Duplicate, Google chose different canonical
- Open 5–10 example URLs and note patterns (parameters? www? http? amp? ?m=1?).
B) Use URL Inspection on one excluded URL
Open one example URL → URL Inspection → check:
- User-declared canonical: what your page says is canonical
- Google-selected canonical: what Google decided is canonical
- Indexing allowed? (noindex would be a different issue)
- Page fetch / crawl status
Excluded URL:
_____Your canonical:
_____Google canonical:
_____Pattern:
www / http / parameter / amp / ?m=1 / trailing slash / other5) Step 2: Choose the ONE URL you want indexed
Before you touch settings, choose your preferred canonical rules. This prevents endless confusion.
Decision checklist
- Protocol: Use
httpsonly - Host: Choose
wwwor non-www(one only) - Trailing slash: Prefer one format consistently (WordPress typically uses trailing slash)
- No parameter URLs as canonicals
- No AMP/mobile variant as the main canonical unless you have a special setup
https://example.com/post-name/Choose what to do with duplicates
If duplicates should never exist
- Redirect duplicates → preferred URL (301)
- Update internal links to preferred URL
- Do not submit duplicate variants in sitemap
If duplicates must exist (rare)
- Keep duplicates accessible
- Canonical duplicates → preferred URL
- Ensure sitemap only includes preferred URL
6) Step 3: Fix canonical signals (the 4 signals Google trusts most)
To influence Google’s canonical choice, you need to align these signals. If they disagree, Google picks what looks most reliable.
| Signal | What it should say | What breaks it |
|---|---|---|
| 1) Canonical tag | Preferred URL is canonical (usually self-referencing) | Canonical points to other URL by mistake |
| 2) Internal links | All internal links use the preferred URL format | Menu/related links point to http/www/parameter variants |
| 3) Redirects | All variants redirect to preferred URL (301) | Redirect chains, loops, or no redirects |
| 4) Sitemap | Sitemap contains only preferred canonicals | Sitemap lists duplicates, parameters, redirects, or noindex URLs |
A) Canonical tag: what “correct” looks like
On the page you want indexed, canonical should point to itself (or to the exact preferred version):
<link rel="canonical" href="https://example.com/post-name/" />B) Internal links: clean your most common sources
- Navigation menu links
- Sidebar widgets
- Related posts plugins
- Category pages / tag pages
- Homepage featured sections
- Footer links
C) Sitemap: only include the canonical URLs
Your sitemap should never be full of redirects or parameter URLs. If you use WordPress SEO plugins,
keep sitemap settings simple and exclude thin archives early (tags/author/date) if they create noise.
7) Step 4: Redirect or consolidate duplicates (best practice)
Canonicals are a hint. Redirects are stronger. When you truly have duplicate URLs that should not exist,
a clean 301 redirect is usually the best long-term solution.
When to use a 301 redirect
- You have multiple URL versions of the same content (http/https, www/non-www).
- You have old slugs that were changed and still exist.
- AMP pages should not be separate.
- Tracking/parameter URLs are being indexed.
- You merged two similar posts into one stronger post.
Redirect rules (avoid breaking things)
- Avoid redirect chains: A → B → C (make A go directly to C).
- Avoid loops: A → B → A
- Keep internal links pointing to the final URL (don’t rely on redirects internally).
- If you change a URL, update sitemap and internal links.
8) WordPress guide (Yoast / Rank Math / common duplicates)
WordPress usually handles canonicals well—until one of these happens: multiple SEO plugins, custom themes, caching plugins,
page builders, or inconsistent URL settings.
A) WordPress: set your preferred site URL (HTTPS + consistent host)
WordPress → Settings → General:
- WordPress Address (URL) should match your preferred domain
- Site Address (URL) should match your preferred domain
https://example.com or https://www.example.comB) Yoast: canonical settings (page level)
- Edit the post/page
- Yoast SEO → Advanced
- Canonical URL:
- Leave blank to use Yoast’s default self-canonical
- Or set it explicitly to your preferred URL (only if you know why)
C) Rank Math: canonical settings (page level)
- Edit the post/page
- Rank Math → Advanced
- Canonical URL:
- Keep default (self-canonical) unless you intentionally canonicalize elsewhere
D) The 6 WordPress duplicate sources that cause this error
- HTTP/HTTPS and www/non-www (server-level redirects missing)
- Trailing slash vs non-trailing slash
- Category base / tag base changes creating old URLs
- Attachment pages creating thin duplicates (often noindexed by plugins)
- AMP pages (plugin creating alternate URLs)
- Parameters (UTM links used internally or in sitemap)
E) Fix internal links in WordPress (practical method)
- Pick the preferred URL format (example: https + non-www + trailing slash)
- Update your menu links to the preferred format
- Update homepage featured links
- For old posts: when you edit them, update their internal links gradually (start with pillar posts)
9) Blogger guide (the ?m=1 + labels + template traps)
Blogger commonly triggers this issue because it can generate alternate views and parameter URLs. Google may choose a different canonical if:
your internal links point to the wrong variant, or your template outputs a broken canonical.
A) Fix the “?m=1” mobile parameter (biggest Blogger issue)
Blogger mobile URLs can appear like:
https://yourblog.blogspot.com/2026/01/post-title.html?m=1
- Do not link internally to the
?m=1version. - Share and link the clean URL only.
- If you use a custom template, ensure it does not force mobile URLs in internal links.
B) HTTPS redirect in Blogger settings
Blogger → Settings:
- Enable HTTPS availability
- Enable HTTPS redirect
C) Labels (tags) can create lots of thin pages
Too many label pages with 1 post each creates “URL noise.” Google sees many low-value pages and may handle canonicals oddly.
Keep labels limited and meaningful.
D) Custom templates can break canonical tags
If you installed a custom Blogger template, open your post HTML and check whether canonical looks correct.
A template can accidentally output:
- canonical pointing to homepage
- canonical missing
- canonical pointing to http instead of https
- multiple canonical tags
10) Common examples + exact fixes
Example 1: Google chose www version, you want non-www
| Problem | Fix | What to check |
|---|---|---|
Google canonical: https://www.example.com/post/ |
| URL Inspection should show Google-selected canonical = non-www after signals align. |
Example 2: Parameter URLs are being chosen as canonical
Bad canonical chosen: https://example.com/post/?utm_source=facebook
Fix:
- Never use UTM links in internal links (use clean URL internally)
- Canonical tag should point to clean URL
- Ensure sitemap includes clean URL only
- If parameter URL is indexed heavily, consider server-side normalization rules (advanced) or just clean internal linking and wait for recrawl
Example 3: Blogger chose ?m=1 version
Bad canonical chosen: ...post.html?m=1
Fix:
- Stop linking to
?m=1URLs anywhere - Use HTTPS redirect in Blogger settings
- Check template canonical output
- Link clean URLs from homepage/navigation
Example 4: Two very similar posts (content-level duplicates)
If you have:
/keyword-research-beginners/ and /easy-keyword-research/ with nearly identical content, Google may index one and exclude the other.
- Merge into one strong guide + 301 redirect the weaker URL
- Differentiate intent: one post “beginner steps”, the other “advanced tools” with unique sections
- Add unique examples/screenshots and distinct angles
11) A repeatable “canonical hygiene” workflow
Once you fix this once, you want a system that prevents it from coming back.
Use this workflow every time you publish or update your site.
Before publishing
- Decide URL format (https + www/non-www + trailing slash)
- Use ONE SEO plugin
- Ensure category/tag strategy doesn’t create lots of thin pages
- Never publish internal links with tracking parameters
After publishing
- Link to the post from 2–4 internal pages using the clean URL
- Confirm the post is in the sitemap (clean URL only)
- Use URL Inspection to confirm canonical signals look right
- Fix any accidental duplicates immediately (redirect/links)
If your own site always links to the preferred URL, Google usually follows.
12) Copy/paste checklist: fix “Google chose different canonical”
- ✅ Identify excluded URL + Google-selected canonical in URL Inspection
- ✅ Choose ONE preferred canonical format (https + host + slash)
- ✅ Canonical tag on preferred URL is correct (self-canonical)
- ✅ Internal links (menu/home/related) all point to preferred URL
- ✅ Redirect unwanted variants to preferred URL (301) where possible
- ✅ Sitemap lists preferred URLs only (no parameters, no redirects)
- ✅ Remove parameter URLs from internal links and submissions
- ✅ For content-level duplicates: merge or differentiate intent
- ✅ Recheck URL Inspection after fixes
13) FAQs
Will this error hurt my rankings?
Not directly. Google is deduplicating. The real risk is when Google chooses the wrong canonical (indexing the messy version),
or when duplicates create wasted crawl and confusing signals.
Should I force canonical URL in Yoast/Rank Math for every post?
No. For most posts, the default self-canonical is correct. Manually setting canonicals is useful only when you intentionally
want a page to canonicalize to another page (rare for regular blog posts).
What if Google keeps choosing the wrong canonical?
That usually means your strongest signals disagree with your canonical tag. Fix internal links first, then redirects,
then sitemap. If all signals align, Google typically follows.
Do I need to request indexing after canonical fixes?
You can request indexing for the preferred URL after you fix signals. But the main fix is consistency:
internal links + redirects + sitemap hygiene.
Blogger: how do I stop ?m=1 from causing canonical issues?
Never link to ?m=1 internally, ensure HTTPS redirect is enabled, and verify your template outputs a clean canonical.
Most canonical problems on Blogger start with internal links pointing to mobile/parameter versions.



