To fix a redirect chain in WordPress, record every hop from the original URL to the final page, identify which system creates each redirect, and change the earliest editable rule to point directly to the correct final destination. Then update internal links and retest the original URL. If the path returns to an earlier URL, you have a loop; remove the conflicting rule rather than adding another redirect.
This guide is for freelancers maintaining client websites with old slugs, HTTPS changes, www rules, SEO plugins and hosting redirects. It gives you a practical tracing method and a small-batch repair process. It does not assume every redirect is harmful or that every removed page should be sent to the homepage.

Chain, loop and normal redirect: what is the difference?
A normal redirect takes a visitor from an old address to the correct current page. A chain makes that journey through intermediate addresses. A loop sends the visitor around a repeating path until the browser gives up. The page may appear to work in a browser when a short chain exists, so visual inspection alone is insufficient.
Pattern |
Example |
Action |
|---|---|---|
Single relevant redirect |
/old-service/ → /current-service/ |
Keep and verify |
Chain |
/old/ → /newer/ → /current/ |
Point /old/ directly to /current/ where feasible |
Loop |
/a/ → /b/ → /a/ |
Find and remove the conflicting rule |
Irrelevant destination |
Deleted article → unrelated homepage |
Reconsider the replacement decision |
Google’s migration documentation advises directing old URLs to the final destination. Multiple hops add latency and make the path harder to maintain. That is a practical reason to simplify them without inventing a universal penalty for every extra redirect.
Research method and tools
This workflow was checked on 13 October 2026 against Google Search Central’s redirect and crawling documentation. The examples are illustrative URL mappings, not reported outcomes from a client campaign. Use a browser’s Network panel, a crawler that records redirect chains, or an HTTP client such as curl. You do not need a new WordPress plugin simply to observe the response path.
Before editing, export the current redirect rules and save the relevant server configuration. Record the host, active redirect plugin, CDN and any hosting-panel forwarding rules. For a production client, agree on the test scope and make the change when someone can verify it immediately.
Step 1: gather original URLs worth testing
Start with old addresses that still have backlinks, referral traffic, internal links or known historical importance. Add navigation URLs, top landing pages, sitemap URLs and the links reported by a crawl. Do not prioritize thousands of random bot probes over an old service page that customers still use.
Include variants deliberately: HTTP and HTTPS, www and non-www, slash and no-slash where relevant. Note whether each is expected to normalize or represents a separately moved page. A variant list helps you discover a chain that an ordinary crawl of canonical links would miss.
Put the list in a worksheet with original URL, desired final URL, current hops, owner and verification state. This is more useful than a raw list of 301 responses because it captures whether the destination is actually correct.
Step 2: trace the response path
Open developer tools, select Network, preserve the request log and load the original URL. Inspect status codes and Location headers for the document requests. Disable local browser caching while checking, and repeat in a private session if an old cached permanent redirect might be hiding a change.
If you use a terminal, the following command prints response headers while following redirects. Replace the example address with a URL you are authorized to inspect:
curl -sS -L -D - -o /dev/null --max-redirs 10 'https://example.com/old-service/'
This sends a GET request and discards the body after printing headers. A HEAD request can be quicker but some servers handle it differently, so confirm with GET if the results disagree with a browser. Record each status and Location value rather than only the final 200.
Step 3: assign an owner to every hop
A WordPress request may pass through a CDN, a hosting rule, a web-server rewrite, a redirect plugin and WordPress’s own canonical handling. The fact that WordPress is installed does not mean WordPress created the first redirect. Editing a plugin rule cannot fix a conflicting rule at the edge.
Hop clue |
Possible source |
Where to investigate |
|---|---|---|
HTTP becomes HTTPS |
Hosting, CDN or server |
SSL and forwarding settings |
www changes to non-www |
CDN or server canonical-host rule |
Domain normalization settings |
Old slug changes |
Plugin or WordPress history |
Redirect export and post slug |
New destination redirects again |
Another old mapping |
Target URL and duplicate rules |
Host flips back repeatedly |
Conflicting canonical-host settings |
CDN, hosting and WordPress URL settings together |
Do not infer ownership from a single response header alone. Use configuration inspection and controlled testing to confirm it. A CDN may relay an origin redirect without creating it.
Step 4: choose the correct destination and status
Inspect the final page before changing any mapping. It should fulfill the same or closest appropriate intent, return a successful response, use the intended canonical URL and be accessible to visitors. Sending every deleted page to a generic homepage can confuse users and create misleading mappings.
Google’s redirect documentation distinguishes permanent moves, such as 301 and 308, from temporary redirects, such as 302 and 307. Choose the status to describe the change. Do not make a temporary experiment permanent solely because you heard that one status is universally better for SEO.
Where no relevant replacement exists, an honest not-found response may be more suitable than an unrelated redirect. This decision belongs in the content inventory, not in a catch-all rule that hides every missing URL.
Step 5: repair the smallest relevant rule
For an ordinary slug chain, change the original mapping to the final destination. If /seo-old/ sends visitors to /seo-new/ and that sends them to /seo-consulting/, update /seo-old/ to /seo-consulting/. Keep /seo-new/ mapped to the final page if people or external sites still use it.
Do not delete the intermediate rule simply to reduce the count in a dashboard. That address may remain a legitimate entry point. The goal is a direct route for each important source address, not the smallest possible rule inventory.
Change exact-match rules first. Broad regex edits can affect many paths, attachments or query strings. If a pattern is necessary, test representative positive cases and unrelated negative cases. Avoid patterns that send their own destination back into the redirect rule.
A worked chain with host normalization
Imagine an old brochure link that begins at http://www.example.com/old-service/. Its path is HTTP → HTTPS www → HTTPS non-www → /middle-service/ → /current-service/. The final page is correct, but the route combines host normalization and two historical slug changes.
The developer confirms that one server rule controls the host change and the redirect plugin controls the slug mappings. They update the old slug to the current service page and, where the host platform supports it safely, normalize scheme and host together. They also change the site’s menu to link directly to the current HTTPS URL.
The report records the before and after route. It does not claim a specific ranking improvement from the repair. The defensible result is fewer requests, a clearer mapping and removal of unnecessary intermediate destinations.
Fix loops by resolving the disagreement
A frequent loop occurs when one system forces www and another forces non-www, or when a plugin redirects a new URL back to an old one. Write the loop as a sequence and look for the repeating boundary. Confirm the intended host and URL before disabling the conflicting rule.
Back up server configuration before editing it. If you cannot identify the source, ask the hosting team for the relevant rewrite and forwarding configuration rather than turning off unrelated plugins on production. Change one layer at a time and retest from the original source.
Step 6: update links, sitemaps and other references
After repairing a mapping, update internal links to the final URL. Review menus, buttons, related-article links, image references, canonical tags and any hreflang mappings that use the old address. A direct mapping is useful for external entry points; internal links should not rely on the redirect unnecessarily.
Refresh the sitemap and confirm that it lists the intended live URLs. Keep the old source redirects for their legitimate purpose while publishing the current addresses as preferred references. Use the broader website migration checklist when the changes affect an entire site.
Step 7: verify and retain a rollback path
Retest the original URL and every important variant, record all hops, and inspect the final response. Test from a private browser session and an independent HTTP client. Confirm that unrelated pages, forms and query-string URLs still behave as intended.
For a small change, verification may cover a dozen addresses. For a rule that spans the whole domain, run a broader crawl and compare it with the baseline. Keep the old configuration and the changed rule export until the checks are complete. If behaviour worsens, restore the specific changed rule and investigate.
Monitor the important source addresses after deployment instead of clearing all logs immediately. Add the result to the client’s SEO audit report. A clean audit should include the destination relevance, not merely a green HTTP status.
Common mistakes
- Adding a new rule without checking which earlier rule intercepts the request.
- Deleting intermediate source mappings that still receive legitimate traffic.
- Redirecting every missing page to the homepage.
- Fixing the plugin while the CDN still applies a conflicting host rule.
- Using a broad regex before testing exact-match examples.
- Assuming browser success proves there is only one hop.
Frequently asked questions
Is one HTTP-to-HTTPS redirect a chain problem?
It is a normal normalization redirect. Investigate when unnecessary intermediate requests accumulate or the path produces a loop or wrong destination.
Should old redirects be deleted after a fixed number of days?
Do not use an arbitrary timer. Check external links, traffic and migration needs before retiring a source address. Useful old mappings may need to remain.
Can two redirect plugins cause problems?
They can create competing rules. Inspect their exports and decide which system owns each mapping; avoid maintaining duplicate overlapping rules without a clear reason.
Does fixing a chain guarantee higher rankings?
No. It improves routing and reduces avoidable requests, but ranking depends on many other factors. Report the verified technical result.
Conclusion
Trace first, assign ownership second, and edit the smallest rule that resolves the detour. A good WordPress redirect repair gives every important old address a direct, relevant route and leaves enough evidence to verify or reverse the change.