Redirect chains, loops and other redirect problems
Point every internal link straight at the final address, so no link passes through a redirect. Make each redirect a single hop to a page that answers 200, and never a loop. Use a permanent 301 or 308 for a move you will not undo, and a server-side redirect rather than a meta refresh. Each platform's redirect manager or your server configuration can do all of this.
Why it matters
Google sorts redirects into permanent ones (301 and 308) and temporary ones (302, 303 and 307). After a permanent redirect, Google shows the new address in results and takes the redirect as a signal that the new address should be the canonical one. After a temporary one, it keeps the old address in results and does not use the redirect as that signal.
Google's crawlers follow up to 10 redirect hops, and Search Console reports a redirect error for a chain that is too long or a loop. Google's advice for moved pages is to avoid chaining redirects and to redirect to the final destination directly. A loop never reaches a page at all, for visitors or crawlers.
Redirects are slow for users, Google says, so it asks you to update your own links to the new addresses rather than rely on the redirect, and to keep canonical tags and sitemaps on the new addresses too.
How you redirect matters. Google says a server-side redirect has the highest chance of being read correctly. It treats an instant meta refresh as permanent and a delayed one as temporary, and it may never see a JavaScript redirect if the page fails to render.
SERPCompass rates a redirect loop as critical and a chain of two or more hops as a warning. Internal addresses that redirect, temporary redirects (302, 303 and 307), meta refresh, links that point at a redirect and redirects that end on another domain are notices. In a workspace connected to Google Search Console, addresses Google still shows that now answer an error or redirect are a warning: redirect each one to the page that replaced it, or let it answer 404 or 410 if the page is gone for good.
The audit findings this guide fixes: Redirect chains (two or more hops); Redirect loops; Temporary (302/307) redirects; Internal URLs that redirect; Internal links pointing to redirects; Meta refresh redirects; Internal URLs that redirect to another domain; Pages Google still shows answer an error or redirect.
Find every page with this problem
Run the free scan on your domain. It follows the redirects it meets while crawling, counts the hops to the final page and flags loops, chains, temporary codes and meta refresh, with the number of pages each finding affects. A SERPCompass workspace lists the affected addresses and, when it is connected to Google Search Console, also checks the pages Google still shows in its results. To trace one address by hand, run curl -sIL followed by the address: it prints every hop with its status code and location.
How to fix it on your platform
WordPress (no SEO plugin)
- When you change a post's slug, WordPress remembers the old one and answers the old address with a permanent 301 to the new one, so you need no rule for that.
- For any other redirect, use an SEO plugin's redirect manager (below) or your web server's configuration (see plain HTML).
- Update the internal links that point at a redirect: open the post, select the linked text, edit the link and pick the page from the search results so the link holds its final address. Update the post.
- For menu links in a block theme, select the menu item in the Navigation block and change Link to in the Content tab of the settings sidebar, then save.
Sources: wp_old_slug_redirect() (WordPress developer reference); Link control (WordPress documentation); Navigation block (WordPress documentation).
WordPress with Yoast SEO
- The redirect manager is part of Yoast SEO Premium. Go to Yoast SEO > Redirects.
- Choose 301 Moved Permanently as the Redirect Type for a permanent move. The list also offers 302 Found and 307 Temporary Redirect, which are temporary, and 410 Content Deleted.
- Enter the old address under Old URL and the final page, not another redirect, under New URL. Click Add redirect.
- Yoast warns you when a new redirect would create a loop. When you change or delete a post, Premium asks what to do with the old address, so you can redirect it straight away.
- If a redirect does not work, clear every cache: the theme's, plugins', the server's, your CDN's and the browser's.
Sources: How to redirect a post or page in Yoast SEO Premium (Yoast); How to create a 301 redirect in WordPress (Yoast); What does the Redirect Manager in Yoast SEO do? (Yoast).
WordPress with Rank Math
- Turn on Advanced Mode, then enable the Redirections module in Rank Math SEO > Dashboard > Modules.
- Go to Rank Math SEO > Redirections and click Add New. Enter the old address in Source URLs and the final page in Destination URL, choose 301 as the Redirection Type (302 and 307 are temporary) and save the redirect.
- To fix a chain or a temporary redirect, edit the existing redirect in the same list so its Destination URL is the final page and its type is 301, and save.
- A redirect can also be set on a post itself: in the Advanced tab of the Rank Math meta box, turn on Redirect, choose the type and destination, and save the post. It then appears in the Redirections list too.
Sources: Setting up redirections (Rank Math); Advanced tab in the meta box (Rank Math).
Shopify
- In your Shopify admin, go to Content > Menus and click View URL Redirects.
- To add one, click Create URL redirect, enter the old address in Redirect from and the final address in Redirect to, and click Save redirect.
- To fix a chain, open the first redirect, change Redirect to to the final address and click Save redirect.
- A Shopify redirect only works when the old address no longer loads a page: delete or rename the old product or page first.
- Update menu links that point at a redirect: in Content > Menus, click Edit beside the item, click the x next to the link field, select the page, click Apply changes and save the menu.
Sources: URL redirects (Shopify Help Center); Editing menus (Shopify Help Center).
Wix
- Go to SEO & GEO in your site's dashboard, scroll to Tools and settings and click URL Redirect Manager.
- To add a redirect, click + New Redirect, select Single redirect, enter the old path under Old URL, pick the final page and click Save. Wix's redirects are 301s.
- To fix a chain, hover over the first redirect, click Edit, change it to the final page and click Save Changes.
- Wix adds a redirect itself when you change the slug of an editor page, a Wix Stores product or category, a Bookings service, an Online Program or an Event; for a blog post, add it by hand. The home page cannot be redirected here.
Source: Setting up a 301 redirect for a page on your site (Wix Help Center).
Squarespace
- Open the Developer tools panel and click URL mappings.
- Each line is the old path, an arrow, the new path and the type, such as
/old-url -> /new-url 301. Squarespace calls 302 a temporary change: change302to301on lines for pages that moved for good. - To fix a chain, make the line for the first address name the final page, and keep specific lines above broad ones: Squarespace runs redirects from top to bottom.
- Click Save. A redirect only works once the old page is deleted or disabled, and the home page
/cannot be redirected. - Squarespace sends a visitor to a 404 page when the same redirect fires more than once within two minutes, to stop loops. If you see that, look for two lines that point at each other.
Sources: URL mappings (Squarespace Help Center); Add links to your site (Squarespace Help Center).
Webflow
- Go to Site settings > Publishing > 301 redirects. Enter the old address in the Old path field and the final page in the Redirect to path field, click Add redirect path and publish your site.
- To fix a chain, click the Delete icon next to the old redirect, add one from the first address straight to the final page, and publish.
- Webflow runs redirects in the order they were added, older first: add specific redirects before broad wildcard ones.
- When you change a page's slug in Page settings, tick the box to permanently redirect the old URL; Webflow then creates the 301 for you.
Source: How do I set up redirects in Webflow? (Webflow Help Center).
Plain HTML
- Redirect on the server. In Apache:
Redirect permanent "/old" "https://example.com/new"; aRedirectwith no status is a temporary 302. In NGINX:return 301followed by the new address, inside alocationblock for the old path;return 302is temporary. - Replace each
<meta http-equiv="refresh">redirect with a server-side redirect, and remove the meta tag from the page. - For a chain, change the first rule so it points at the final address; for a loop, find the two rules that send the addresses back and forth and remove one.
- Update links,
rel="canonical"tags and sitemap entries to the final address.
Sources: Redirects and Google Search (Google Search Central); mod_alias, the Redirect directive (Apache HTTP Server documentation); Site moves with URL changes (Google Search Central).
Examples
-
Bad
http://example.com/offer 301 -> https://example.com/offer 301 -> https://www.example.com/offer 301 -> https://www.example.com/offers/ (200)Three hops to one page. Each redirect was right when it was added; together they form a chain.
-
Good
http://example.com/offer 301 -> https://www.example.com/offers/ (200)One hop, straight to the final page.
-
Bad
/shop 301 -> /store /store 301 -> /shopA loop: neither address ever reaches a page.
-
Bad
Redirect "/old-page" "https://www.example.com/new-page"No status means a temporary 302 in Apache, so Google keeps showing the old address.
-
Good
Redirect permanent "/old-page" "https://www.example.com/new-page"A permanent 301 for a page that moved for good.
-
Bad
<meta http-equiv="refresh" content="0; url=https://www.example.com/new-page">Google reads an instant meta refresh as permanent, but a server-side redirect has the best chance of being read correctly.
Common mistakes
- Adding a new redirect on top of an old one when a page moves twice, so the first address now takes two hops. Point every old address at the newest one.
- Leaving internal links, canonical tags and sitemap entries on the old address after setting up the redirect.
- Using a temporary redirect for a permanent move, often because it is the default: a plain Apache
Redirectis a 302. - Creating a redirect for an address that still has a page. Shopify, Squarespace and Webflow only redirect an address whose page is gone, disabled or renamed.
- Two rules that undo each other, such as one in the redirect manager and another in the server or CDN, which together make a loop.
- Removing redirects too soon. Google advises keeping them for as long as possible, generally at least a year.
- Forgetting the redirects that leave your site. An old campaign address or a lapsed domain can send visitors somewhere you no longer control: check each one the audit lists, and update or remove it.
- Testing a removed redirect in the same browser. Shopify notes that browsers and search engines cache 301 redirects, so an old one can seem to keep working.
Questions and answers
Is a 301 or a 302 redirect better for SEO?
It depends on whether the move is permanent. Google shows the new address in results after a permanent redirect, 301 or 308, and uses it as a signal that the new address is canonical. After a temporary redirect, 302, 303 or 307, it keeps the old address. Use a permanent redirect when you are sure it will not be reverted, and a temporary one only for a short detour.
How many redirects in a row are too many?
Google's crawlers follow up to 10 hops, and Search Console reports a redirect error for chains that are too long. Google advises against chaining and recommends redirecting to the final destination directly. SERPCompass flags any chain of two or more hops, because every hop delays the visitor and fixing it is usually a one-line change.
How long should I keep a redirect in place?
Google advises keeping redirects for as long as possible, generally at least one year, after a move. Bookmarks and links from other sites keep using old addresses long after Google has updated its index.
If the redirect works, do I still need to update my links?
Yes. Google says redirects are slow for users and asks site owners to update their own links, and high-volume links from other sites where they can, to point at the new addresses. It also asks for canonical tags and sitemaps to use the new addresses.
Can I redirect with a meta refresh or JavaScript?
Only when a server-side redirect is impossible. Google says a server-side redirect has the highest chance of being read correctly, and that a meta refresh may be a viable alternative. It treats an instant meta refresh as permanent and a delayed one as temporary. Use JavaScript last: Google may never see it if the page fails to render.
More guides
- Broken links to pages that answer an error
- Soft 404s: missing pages that answer 200 OK
- HTTPS that is missing, not enforced or has certificate problems
- Canonical tags that are missing, conflicting or pointing at the wrong URL
- All guides
- Free tools: checks for robots.txt and llms.txt that need no account.
Sources
- Redirects and Google Search (Google Search Central)
- How HTTP status codes, and network and DNS errors affect Google Search (Google Search Central)
- Site moves with URL changes (Google Search Central)
- Page indexing report (Search Console Help)
- mod_alias, the Redirect directive (Apache HTTP Server documentation)
- wp_old_slug_redirect() (WordPress developer reference)
- Link control (WordPress documentation)
- Navigation block (WordPress documentation)
- How to redirect a post or page in Yoast SEO Premium (Yoast)
- How to create a 301 redirect in WordPress (Yoast)
- What does the Redirect Manager in Yoast SEO do? (Yoast)
- Setting up redirections (Rank Math)
- Advanced tab in the meta box (Rank Math)
- URL redirects (Shopify Help Center)
- Editing menus (Shopify Help Center)
- Setting up a 301 redirect for a page on your site (Wix Help Center)
- URL mappings (Squarespace Help Center)
- Add links to your site (Squarespace Help Center)
- How do I set up redirects in Webflow? (Webflow Help Center)
Start with a free scan of your site.
Two to five minutes, no account. You get your three most urgent findings, and the exact count of everything else.