# Canonical &amp; Redirect Graph — visualize every chain SEO crawlers hate

Redirect chains cost crawl budget and dilute PageRank. Canonical conflicts tell Google two different stories. This tool crawls your sitemap and renders the tangle as an SVG graph — the shape of the problem is the first useful diagnostic.

Author: J.A. Watte
Published: April 22, 2026
Source: https://jwatte.com/blog/blog-tool-canonical-redirect-graph/

---

Two of the most common site-wide technical-SEO bugs don't show up in a single-page audit:

1. **Redirect chains** — A → B → C → D. Googlebot has a cap on redirect hops (~10 but behavior degrades at 3+). Each hop drains crawl budget and the transferred PageRank decays at each hop.
2. **Canonical conflicts** — `/page-a/` canonicalizes to `/page-b/` but `/page-b/` canonicalizes to `/page-c/`. Or `/page-a/` sends a `rel=canonical` self-reference but `/page-b/` also points at `/page-a/`. The crawler picks one to trust; often not the one you wanted.

Both bugs hide in the gaps between pages. You can't see them by looking at one URL — you have to look at the graph.

[The Canonical & Redirect Graph](/tools/canonical-redirect-graph/) crawls up to 50 URLs from your sitemap and renders the full redirect + canonical relationships as an interactive SVG.

## What it surfaces

- **Redirect chains** of length 2+, with each hop labeled by status code (301/302/307/308)
- **Canonical conflicts** — page A's canonical points to B, but B's canonical points to C
- **Canonical self-reference loops** (page canonicalizes to itself — normal, flagged green)
- **Cross-protocol chains** — HTTP → HTTPS with a mid-chain HTTP step (security flag)
- **Cross-subdomain canonicals** — `www.` and apex disagreeing on canonical target
- **Canonical to 404** — canonical target returns 404 (kills indexation)
- **Canonical to noindex** — canonical target has `noindex` (intentional? usually not)
- **Canonical to non-200** — canonical target returns 3xx/5xx

Each node is one URL; edges show the relationship (redirect arrow, canonical arrow, canonical-to-noindex dashed arrow). Hover reveals the raw header/meta value.

## Why the visual matters

A spreadsheet of redirect pairs doesn't show you that three separate domains chain into the same target. A graph does — the chain becomes a visible V shape, and you see the fix (flatten to 1 hop) as a shape change rather than a list of rules.

Same for canonical conflicts: the bug is always a *cycle* or a *disconnected component*, and cycles/components are pattern-recognition problems, not lookup problems.

## How to use it

1. Go to [/tools/canonical-redirect-graph/](/tools/canonical-redirect-graph/)
2. Paste a sitemap URL (or the site root — tool auto-discovers `/sitemap.xml`)
3. Tool crawls up to 50 URLs (rate-limited, polite)
4. SVG renders with each node labeled by path and each edge color-coded (red = problem, green = clean)
5. Click a node to see its raw response headers

Typical runtime: ~30-60 seconds for a 50-URL crawl.

## What the tool can't check (yet)

- **JS-rendered canonicals** — if your canonical `<link>` is injected post-render by a React/Vue hook, the server-rendered HTML won't have it. Use [Prerender / JS Hydration Parity](/tools/prerender-js-hydration-parity/) alongside this tool.
- **Server-side redirects with cookies** — some sites return different redirects based on user-agent or cookie state. The tool uses a plain Googlebot-style UA.
- **Redirect intent** — the tool can't tell you whether a 302 *should* be a 301. That's a human judgment about whether the move is temporary.

## Related reading

- [URL Structure Hygiene Audit](/tools/url-structure-hygiene-audit/) — single-URL hygiene
- [Sitewide Crawl Sampler](/tools/sitewide-crawl-sampler/) — broader crawl coverage
- [Every new AEO tool for 2026](/blog/blog-new-aeo-audit-tools-2026/)

## Fact-check notes and sources

- **Redirect hop limits:** [Google Search Central — Crawl budget management](https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget).
- **Canonical tag behavior:** [Google Search Central — Consolidate duplicate URLs](https://developers.google.com/search/docs/crawling-indexing/canonicalization).
- **301 vs 302 PageRank transfer:** [Google's John Mueller on redirects](https://www.searchenginejournal.com/google-301-302-redirects-pass-pagerank/280345/).

_This post is informational, not SEO-consulting advice. Mentions of Google, Googlebot, and similar products are nominative fair use. No affiliation is implied._


---

Canonical HTML: https://jwatte.com/blog/blog-tool-canonical-redirect-graph/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/blog-tool-canonical-redirect-graph.webp
