Workflow guide · 4 minute read
Find and fix redirect chains
Redirects are useful. Redirects that send a visitor through several old URLs usually are not. This workflow isolates the chain, shows the next hop, and helps you replace a fragile route with one direct path to the intended page.
10-second workflow
Reduce a full crawl to one redirect chain.
The demo uses Lil Robots' public redirect fixtures, so the chain is deliberate, repeatable, and safe to investigate.
Why redirect chains deserve cleanup
A chain often grows quietly: one migration adds a redirect, a redesign adds another, and an old internal link keeps sending every request through both. Each hop adds latency, another failure point, and more ambiguity about which URL should be treated as authoritative.
The pain this removes
No manually opening every redirected URL, no guessing which hop is final, and no shipping a migration with old navigation links still bouncing through legacy routes.
What happens in the demo
Review the completed crawl
The Pages table keeps only the six columns needed for this check, while the Issues panel stays open for fast triage.
Choose Redirect chains
The Issues panel turns a mixed crawl into a focused list of URLs that require more than one request to reach their destination.
Keep the issue linked to the result
Redirect chains stays highlighted in the open Issues panel while the table shows the four matching rows and excludes unrelated URLs.
Move to the redirect columns
Dragging the horizontal scrollbar brings Redirect URL, Redirect Type, and Redirect Chain Count into view together.
Order every hop
Sorting Redirect Chain Count exposes positions 1.1 through 1.4, so the route can be read from redirect-a to redirect-final.
8-second manual check
Find the row without opening Issues.
The Issues drawer is the fastest route when you want a ready-made queue. The full Pages table is useful when you are already reviewing redirect data, checking one suspicious URL, or need the surrounding columns to understand what the crawler found.
Sort Redirect Chain Count to bring every hop together, then read the sequence from the first redirect through to the final destination.
Step 1
Keep Issues closed
Stay in the full Pages table when you want to inspect redirect data alongside the rest of the crawl rather than switching to an issue-only view.
Step 2
Find Redirect Chain Count
Scroll across the redirect columns until Redirect URL, Redirect Type, and Redirect Chain Count are visible together.
Step 3
Look for populated values
Blank cells have no chain position to investigate. The fixture values 1.1 through 1.4 belong to one chain and show the order of its redirect hops.
Step 4
Sort the chain into order
Select Redirect Chain Count to group populated rows and order the sequence. Read across Redirect URL and Redirect Type to trace each hop to the final 200 URL.
What the final row tells you
In the fixture, values 1.1 through 1.4 share the same chain number, while the decimal position orders each hop. Read across the sorted rows to trace redirect-a through three intermediate URLs to the final 200 page, then replace internal links with that destination.
Read the chain from entry to destination
In the fixture, the chain starts at redirect-a, passes through redirect-b, redirect-c, and redirect-d, then reaches redirect-final. The goal is not to remove every redirect. It is to remove the avoidable middle and make the intended route obvious.
| Role | URL | Response | Action |
|---|---|---|---|
| Chain entry | /seo-crawler/fixtures/redirect-a | 302 → redirect-b | Keep only if the old URL still needs to resolve, then point it directly to the final URL. |
| Intermediate hop 1 | /seo-crawler/fixtures/redirect-b | 302 → redirect-c | Remove this hop from the route taken by users, crawlers, and internal links. |
| Intermediate hop 2 | /seo-crawler/fixtures/redirect-c | 302 → redirect-d | Flatten this rule so requests do not have to continue through another old URL. |
| Intermediate hop 3 | /seo-crawler/fixtures/redirect-d | 302 → redirect-final | Point any URLs that still need to redirect straight to the final destination. |
| Final destination | /seo-crawler/fixtures/redirect-final | 200 OK | Use this URL in internal links when it is the intended permanent destination. |
Fix the route without breaking the old URL
Step 1
Confirm the intended final page
Open the final URL and make sure it is the closest useful replacement, returns 200, and is allowed to be indexed when appropriate.
Step 2
Update internal links
Change navigation, templates, body links, canonicals, sitemap entries, and hreflang references to point directly to the final URL.
Step 3
Flatten redirects that must remain
If an old public URL still receives traffic or backlinks, redirect it to the final destination in one hop instead of deleting it outright.
Step 4
Remove obsolete intermediate rules
Retire redundant hops only after checking that no active URL, campaign, integration, or external dependency still relies on them.
Verify the result with a fresh crawl
A redirect-rule change is not finished when the configuration deploys. Test the old URL, the final destination, and the internal links that used to enter the chain.
- The old URL reaches the intended destination in one redirect.
- Internal links point directly to the final 200 URL.
- Canonicals, sitemap entries, and hreflang references use the final URL.
- A fresh crawl no longer reports the chain or redirecting internal link.
Before removing redirects
Preserve redirects for old URLs that still receive users, backlinks, bookmarks, or campaign traffic. Check whether the response should be temporary or permanent, and confirm the destination is genuinely equivalent. Flattening a chain is useful; redirecting every retired page to an unrelated homepage is not.