301→302301→302
A temporary redirect where a permanent one belongs.
Found by Redirect checker →
redirect loopredirect loop
The URL redirects back to itself and never settles.
Found by Redirect checker →
Audit

Canonical tag checker

Canonical checks run per page and as a graph over the whole crawl: chains, canonicals to redirects or errors, relative or multiple canonicals, and targets nobody links to.

Canonical tag checker

Canonical graph

Built from the crawl to catch chains and groups of pages that all canonicalise to the home page.

Canonical tag checker

Policies

Pagination and filter canonical policies are configurable per project.

How it works

Three steps, one saved scan

  1. Read every canonical tag

    Each page's canonical is read and checked for a missing, multiple, relative or #fragment value.

  2. Map the canonical graph

    Canonical targets from the whole crawl form a graph, so chains and loops show up as paths between pages.

  3. Test each target

    Each target is checked for redirects, 4xx or 5xx errors, and whether any internal link points to it.

What it checks

Checks in this feature

CheckWhat it meansSeverityEvidence
CANONICAL_MISSINGIndexable page has no canonical URLImportantPage URL
CANONICAL_MULTIPLEPage declares more than one canonical URLImportantPage URL and every canonical value
CANONICAL_CHAINThe canonical target canonicalizes to another URL, two or more stepsImportantFull chain of canonical URLs
CANONICAL_TO_REDIRECTCanonical points to a URL that answers with a 3xx redirectImportantCanonical target and its redirect status
CANONICAL_TARGET_ERRORCanonical points to a URL that returns 4xx or 5xxImportantCanonical target and its status code
CANONICAL_HOMEPAGE_GROUPDistinct indexable pages in several sections all canonicalize to the home pageImportantList of pages that point to the home page
UNLINKED_CANONICALCanonical target has no internal link pointing to it anywhere in the crawlImportantCanonical target URL
How to run it

One command

bash
seohead parse --url https://example.com/page

Install first: installation guide. Every command also runs as an MCP tool for AI agents.

Related checks

From the check registry

CANONICAL_MISSINGCANONICAL_CHAINCANONICAL_TO_REDIRECTCANONICAL_TARGET_ERRORCANONICAL_MULTIPLEUNLINKED_CANONICAL
FAQ

Questions

Canonical tag checker
One URL with seohead parse shows its canonical value. Chain, redirect-target, error-target and home-page-group checks need the graph built from the whole crawl.
No. The checks only read pages. You edit the canonical tags yourself.
The graph checks are documented against Screaming Frog Internal:All exports, run with seohead sf run --exports-dir. A live crawl with --crawl needs the Screaming Frog CLI.
Two checks, PAGINATION_CANONICAL_POLICY and FILTER_CANONICAL_POLICY, compare each canonical with the project's policy and show the expected target.

Check your redirects locally