Baron Munchausen’s Crawl Test Lab

Canonical Chain Example

The Sultan sent me to his hearer, who sent me to his runner, who sent me to his marksman, who sent me back to the Sultan.

The short answer

What it is
A canonical chain occurs when the target of a canonical tag has its own canonical that points somewhere else. Page A names page B, and page B names page C.
Why it matters
Search engines want one clear main URL, and a chain gives them several. They may stop early, ignore the tags, or pick a page you did not want.
How a crawler should report it
A crawler should show a canonical chain warning with each URL in order and the final target. If the chain loops, it should say so and list the URLs in the loop.
Live examples
A long line of ducks strung together on one cord, like pearls on a necklace.
Fig. 80. Each duck points to the next, and none will land.

When page A names page B, and page B names page C

A canonical chain is a series of canonical tags where each target points on to another URL. Chains build up over time. A page is merged into a second page, and later that page is merged into a third. No one goes back to update the first tag. Rules that add parameters or a trailing slash can also make a one-step chain out of what was meant to be a self-reference.

Browsers take no action on any of this. Search engines might follow a short chain and reach the last URL. No standard promises that they will. Each step adds doubt, and the tag is only a hint in the first place. An engine may treat the middle page as the main one, or drop your hint and choose by other signals. A loop, where page C points back to page A, gives it no answer at all.

To detect a chain, read the canonical URL of each page, and then read the canonical URL of that target. Keep going until you reach a page that names itself. Set a limit so that a loop cannot run forever. Report any path with more than one step. In this lab, page A names page B, and page B names page C. On the clean page, the target names itself, so the check stays quiet.

To fix a chain, point every page in it straight at the final URL. The final page should have a self-referencing tag. It should return a 200 status and be open to indexing. If the middle pages have no purpose, redirect them to the final URL with a 301. Update your internal links and sitemap to match. When you merge pages in the future, make a search for old tags part of the job.