Sign in Start free

Canonical conflict resolution

Canonical is a hint, not an instruction, and search engines override it when other signals disagree. This skill finds where your declared canonical conflicts with your internal links, sitemap, hreflang or redirects, and makes them agree.

CATEGORY
Technical SEO
FORMAT
canonical-conflict-resolution.md
STEPS
6
PRICE
Free - no account
WHEN TO REACH FOR THIS

Use when pages are being consolidated into the wrong URL, or when Google reports a canonical different from the one you declared.

The skill file

canonical-conflict-resolution.md
---
name: canonical-conflict-resolution
description: Use when pages are being consolidated into the wrong URL, or when Google reports a canonical different from the one you declared.
---

# Canonical conflict resolution

Canonical is a hint, not an instruction, and search engines override it when other signals disagree. This skill finds where your declared canonical conflicts with your internal links, sitemap, hreflang or redirects, and makes them agree.

## What you need first

- A crawl exporting declared canonical per URL
- Search Console page indexing data showing Google-selected canonical
- Sitemap URLs

## Method

1. List every URL where the declared canonical differs from the Google-selected canonical.
2. For each, check the four signals that override a canonical: internal links pointing elsewhere, sitemap listing a different URL, redirects to a third URL, and hreflang naming a different self-reference.
3. Make every signal agree with the canonical you actually want. The canonical tag alone is rarely enough.
4. Confirm each canonical points at a URL that returns 200 - a canonical to a redirect or a 404 is ignored.
5. Check for self-referencing canonicals on paginated and filtered URLs, where a canonical to page one silently removes deeper pages from the index.
6. Recrawl and confirm the declared and selected canonicals now match.

## What this produces

A conflict table showing, per URL, which signal disagreed and what was changed to resolve it.

## Where this goes wrong

- Canonicalising paginated pages to page one and losing the deeper products
- Pointing a canonical at a redirecting URL
- Treating canonical as a directive that overrides internal linking

---

From the QuQi skill library - https://www.quqi.io/skills/canonical-conflict-resolution
Free to download · no account, no email

What you need first

  • A crawl exporting declared canonical per URL
  • Search Console page indexing data showing Google-selected canonical
  • Sitemap URLs

Method

  1. 01 List every URL where the declared canonical differs from the Google-selected canonical.
  2. 02 For each, check the four signals that override a canonical: internal links pointing elsewhere, sitemap listing a different URL, redirects to a third URL, and hreflang naming a different self-reference.
  3. 03 Make every signal agree with the canonical you actually want. The canonical tag alone is rarely enough.
  4. 04 Confirm each canonical points at a URL that returns 200 - a canonical to a redirect or a 404 is ignored.
  5. 05 Check for self-referencing canonicals on paginated and filtered URLs, where a canonical to page one silently removes deeper pages from the index.
  6. 06 Recrawl and confirm the declared and selected canonicals now match.

What this produces

A conflict table showing, per URL, which signal disagreed and what was changed to resolve it.

Where this goes wrong

  • Canonicalising paginated pages to page one and losing the deeper products
  • Pointing a canonical at a redirecting URL
  • Treating canonical as a directive that overrides internal linking

Use this skill in your own AI

The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.

Claude Code Save it as ~/.claude/skills/canonical-conflict-resolution/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.

Questions about this skill

When do I work through the conflicting signals rather than just setting the canonical tag again?

When Search Console reports a Google-selected canonical different from the one you declared, or pages consolidate into the wrong URL. Restating the tag and waiting rarely works, because canonical is a hint that other signals outvote. This method starts from the signals doing the outvoting, which is why it resolves cases that a tag edit leaves untouched.

What do I need in hand before starting?

A crawl exporting the declared canonical per URL, Search Console page indexing data showing the Google-selected canonical, and the sitemap URL list. Without the selected value there is no conflict list, only a set of tags that all look correct. Without the sitemap you are blind to one of the four overriding signals, and it is a common one because sitemaps are generated separately.

What do I end up with, and which part gets used?

A conflict table showing, per URL, which signal disagreed and what was changed to resolve it. The signal column is the part that gets used: internal links pointing elsewhere, a sitemap listing a different URL, a redirect to a third URL and hreflang naming a different self-reference are four separate fixes, and the tag itself is usually already correct.

What is the mistake that ruins this, and what does it cost?

Canonicalising paginated pages to page one. It looks like duplicate cleanup and it quietly removes every product that appears only on page three onwards, which nobody notices until the long tail stops converting. Use self-referencing canonicals on paginated URLs instead. The related error is pointing a canonical at a URL that redirects or 404s, which is ignored outright, so the conflict survives.

More in Technical SEO