A redirect chain happens when one URL redirects to a second URL that then redirects to a third, instead of sending visitors straight to the final destination. Fixing them is mostly a matter of finding every middle redirect and pointing it directly at the last URL in the chain. Below is the full process, from spotting a chain to cleaning it up in WordPress.
What a Redirect Chain Actually Is
Say you moved a blog post from /old-post/ to /new-post/ last year, and set up a 301 redirect. Then this year you renamed it again to /final-post/ and added a second redirect. Now anyone who visits /old-post/ bounces through /new-post/ before landing on /final-post/. That is a chain of two hops. Real sites often have three or four hops stacked on top of each other after several rounds of URL changes.
Search engines and browsers will usually still follow a short chain, but each hop adds:
- Extra load time, since the browser has to make a second or third request
- Wasted crawl budget, because Googlebot spends time following hops instead of crawling new pages
- A small amount of lost link equity at each redirect step
- Risk of the chain breaking entirely if one link in the middle gets deleted
Why WordPress Sites Build Up Chains
Chains rarely appear from a single mistake. They build up gradually from ordinary site maintenance:
- Switching from HTTP to HTTPS, which adds a redirect layer that then stacks on top of any existing URL redirects
- Changing your domain or moving from www to non-www (or the reverse) without updating older redirect rules to match
- Editing the permalink structure in Settings > Permalinks, which changes every post URL at once
- Rebuilding pages with a new page builder or theme and giving them new slugs
- Restructuring categories, since category-based permalinks change when a post is reassigned
Any one of these events on its own just creates a single redirect. The chain forms when a second event happens later and a new redirect gets layered on top of the first one instead of replacing it.
Step 1: Find Your Existing Redirects
Before you can find chains, you need a full list of the redirects already running on your site. Most WordPress sites manage redirects one of two ways:
- A redirect plugin, most commonly Redirection (free) or the redirect module inside an SEO plugin like Yoast or Rank Math.
- Server level rules in .htaccess on Apache and LiteSpeed hosting, or in nginx config.
If you use the Redirection plugin, go to Tools > Redirection in your WordPress dashboard. This gives you a full table of every source URL and where it points. Scan the Target URL column for any target that is itself listed as a source URL further down the table. That is your chain.
If your redirects live in .htaccess, open the file through your hosting file manager or FTP and look for repeated Redirect or RewriteRule lines. Chains are harder to spot here since there is no table view, so it helps to test suspicious URLs manually.
Step 2: Test URLs for Multiple Hops
You can check any URL for redirect hops without installing anything extra:
- Open your browser developer tools (F12) and click the Network tab.
- Visit the URL you want to test.
- Look at the list of requests. Each 301 or 302 response is one hop. Two or more means you have a chain.
For checking many URLs at once, a free online redirect checker or the free tier of Screaming Frog, which crawls up to 500 URLs at no cost, will list redirect chains automatically. Run a crawl, then check the Response Codes tab and filter for redirect chains in the report menu.
Step 3: Collapse Each Chain to a Single Hop
Once you know which URLs are chained, the fix is the same every time: point the first URL directly at the final destination, and remove the redirects in between.
In the Redirection plugin:
- Go to Tools > Redirection.
- Find the redirect for the original URL, the first hop.
- Click Edit and change its Target URL to the final destination URL, not the middle one.
- Delete the now unused redirect that used to sit in the middle, if nothing else points to it.
- Save, then re-test the original URL in your browser to confirm it lands on the final page in one hop.
Repeat this for every chain on your list. If you manage redirects through .htaccess, edit the RewriteRule so it points straight to the final URL and remove the intermediate rule.
Step 4: Fix the Internal Links Causing the Chain
Redirects patch a problem after the fact, but the real fix is updating the internal links that still point to old URLs in the first place. If ten posts on your site link to /old-post/, every one of those clicks is quietly passing through a redirect that did not need to exist if the links pointed to /final-post/ directly.
This is where a dedicated internal link tool earns its keep. The free WordPress plugin Interlink scans your whole site and flags exactly which internal links point to redirected or outdated URLs, so you can go update them at the source instead of relying on redirects to carry the traffic. Paid tools like Link Whisper offer similar reporting, but Interlink does the core auditing for free, which matters if you are running more than one WordPress site.
After running the scan, work through the flagged links one by one: open the post, find the old link, and repoint it to the current URL.
Step 5: Recheck the Whole Site Periodically
Redirect chains rebuild themselves over time as you rename posts, restructure categories, or migrate to a new URL structure. A quick habit that prevents chains from piling back up:
- Whenever you change a published URL, immediately search your content for internal links pointing to the old one and update them, rather than leaving the redirect to do the work.
- Re-run your redirect list every few months and scan for anything pointing to another redirect.
- Keep your redirect plugin list trimmed. Delete rules for URLs that no longer receive any traffic or links.
Common Questions
Do redirect chains actually hurt rankings?
A single extra hop rarely tanks a page on its own, but Google has said crawl budget and link equity both take a small hit with each redirect in a chain. On larger sites with hundreds of chains, that adds up.
How many hops is too many?
Anything beyond one hop is worth fixing. Two or three hops still generally resolve fine for users and crawlers, but four or more risk timing out or breaking if any link in the chain gets removed.
Should I use a 301 or 302 redirect when fixing a chain?
Use 301, permanent, redirects when the move is final, which is the case for almost all WordPress URL changes. Reserve 302, temporary, redirects for genuinely short term situations, like a page under maintenance.
