How to fix redirect chains in WordPress
To fix a redirect chain, find every hop between the first URL and the final page, then edit the first rule so it points straight at the final destination, and update internal links to use the final URL directly. A redirect chain is any path with two or more redirects in a row, such as /old/ to /newer/ to /newest/.
Chains build up quietly: a slug changes twice, a site moves to HTTPS and later to www, or a category base is removed on top of older redirects. Each hop slows visitors, and Google's documentation says Googlebot follows up to 10 hops before giving up. Chains also make it more likely that a link's value gets lost along the way.
Step by step
1. Trace a URL hop by hop
Request the old URL and follow every redirect, printing only the status lines and destinations:
curl -sIL http://example.com/old-post/ | grep -iE "^(HTTP|location)"
A healthy result is one redirect then a 200. A chain looks like this:
HTTP/1.1 301 Moved Permanently
location: https://example.com/old-post/
HTTP/2 301
location: https://www.example.com/old-post/
HTTP/2 301
location: https://www.example.com/new-post/
HTTP/2 200
2. Find chains across the site
Test the URLs most likely to chain: old URLs with backlinks from Links → Top linked pages in Search Console, URLs you have renamed more than once, and the http and non-www versions of your homepage. Desktop crawlers such as Screaming Frog also report redirect chains in bulk. In Search Console, a Redirect error in the Pages report often means a chain that was too long or looped.
3. Work out which rule causes each hop
Each hop comes from somewhere different, and you fix it where it lives:
| Hop | Usually set by |
|---|---|
http to https | Host, CDN or server config |
Non-www to www | Host, CDN, or the WordPress Address setting |
| Old slug to new slug | A rule in Hydrogen SEO → Redirections, or WordPress core's old-slug redirect |
/category/news/ to /news/ | Hydrogen SEO's Strip Category Base |
4. Point the first rule at the final URL
Open Hydrogen SEO → Redirections, search the list for the old path, click Edit, and change To URL to the final destination, then save. If /a/ points at /b/ and /b/ points at /c/, change the first rule to point at /c/ and keep the /b/ rule, since /b/ may have its own links. Use the full final URL, with the correct protocol and host, so the redirect lands in one step.
5. Collapse protocol and host into one hop
The most common chain is http://example.com to https://example.com to https://www.example.com. Configure the server or CDN to send every variant straight to the final form in one redirect. On Nginx that is a server block for the old hosts:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
Make sure Settings → General in WordPress uses the same final address, or WordPress adds its own hop.
6. Update internal links and the sitemap
Your own links should never go through a redirect. Edit menus and content that point at old URLs so they use the final address. Check that the sitemap lists only final URLs; Hydrogen SEO builds it from current permalinks, so any old address there usually comes from a cached copy.
7. Check for loops and retest
A loop happens when a rule eventually points back at its own source, and the browser shows "too many redirects". If you find one, pause the rules involved using the switch in the Active Redirections list, then fix the target. Rerun the curl command for each URL you changed and confirm one hop, then 200.
Common mistakes
- Deleting the middle redirect. The old URL then dead-ends. Update the first rule instead, and keep the middle one for its own links.
- Fixing the plugin rules but not the server. An
httptohttpshop at the host still adds a step in front of every rule. - Relative targets on a site with mixed hosts. A target like
/new-post/resolves on whatever host was requested, which can add a host redirect afterwards. - Redirecting to a URL with a missing trailing slash. WordPress then adds another redirect to the slashed version. Copy the exact final URL.
Prevent chains in the future
Before adding a redirect, search the existing rules for the target you are about to use. If it is already the source of another rule, point at that rule's destination instead. Plan URL changes, such as changing permalinks or moving to a new domain, so each old URL maps straight to its final address in one table.
Common questions
How many redirects in a row is too many?
Aim for one. Google follows up to 10 hops, but every hop slows visitors and adds a chance to lose signals, so anything beyond one is worth fixing.
Do redirect chains hurt SEO?
They slow crawling and page loads, and long chains can stop Google reaching the final page at all. A single direct redirect is always the safer choice.
Will fixing a chain lose the value of old links?
No. The old URL still redirects, just in one step, which keeps value better than several hops.