Canonical loop

canonicals.canonical_loop
Priority
Medium
Severity
Warning

What we look for

Following the canonical tags (lines naming a page's preferred address) from these pages through other crawled pages leads back to the start, and no page in the loop names itself.

Why it matters

Search engines cannot tell which page you prefer, so they ignore the tags and choose the version to show themselves.

How to fix

Pick one preferred page and give it a canonical tag that names its own address. Then point the canonical tags of the other pages in the loop straight at it.

Where you’ll see it

The id is stable, and every surface uses it, so it’s the thing to search for or hand to an agent.

Terminal
When it is one of the five findings under Fix first, raptor crawl prints the id under it.
Check: canonicals.canonical_loop
crawl.json and the CSV
The crawl JSON names the finding by this id, and so do the CSV and raptor_query.
"check_id": "canonicals.canonical_loop"
The HTML report
This link opens the finding in the report, and each finding shows its id.
crawl.html#finding=canonicals.canonical_loop
MCP
raptor_findings with this check_id returns the finding in full, with a fix brief ready to paste into a task. If it didn’t fire, it says why.
raptor_findings {
  "job_id": "...",
  "check_id": "canonicals.canonical_loop"
}