Skip to content
Redirect chains and loops: 301 vs 302 vs 308, and how many hops is too many — illustrated banner

Redirect chains and loops: 301 vs 302 vs 308, and how many hops is too many

Use a 301 or 308 for a permanent move and a 302 or 307 for a temporary one; 307 and 308 also forbid changing POST to GET. Googlebot follows up to 10 redirect hops, but Google advises redirecting straight to the final URL and keeping chains ideally to 3 or fewer. A loop never resolves and is never indexed.

Share article:

Key takeaways

  • Google treats 301 and 308 as strong signals, 302 and 307 as weak ones.
  • 307 and 308 must not change the request method; 301 and 302 may, for historical reasons.
  • Googlebot follows up to 10 hops, and Google recommends ideally no more than 3.
  • Keep redirects from a site move in place for at least a year.

Redirects are how URLs survive a redesign. They are also where years of migrations pile up: http to https, then to www, then to a new path, then to a trailing slash. Each step was right when someone added it. Together they make a chain.

What is the difference between 301, 302, 307 and 308?

CodeMeaning (RFC 9110)Method may change?Google treats it as
301 Moved PermanentlyPermanentYes, “for historical reasons” POST may become GETStrong signal for the target
302 FoundTemporaryYes, same historical noteWeak signal for the target
307 Temporary RedirectTemporaryNo — the user agent “MUST NOT change the request method”Equivalent to 302
308 Permanent RedirectPermanentNoEquivalent to 301

For SEO the axis that matters is permanent versus temporary. In Google’s redirect documentation, a permanent redirect means the new target is shown in results; a temporary one means the source usually stays. The method distinction matters for forms and APIs: if a POST endpoint moves, a 308 keeps it a POST. RFC 9110 suggests exactly that: if the method change is undesired, “the 308 (Permanent Redirect) status code can be used instead.”

How many redirect hops will Google follow?

Google’s crawlers “follow up to 10 redirect hops”. That is a ceiling, not a target. Google’s site-move guide says: “we advise redirecting to the final destination directly. If this is not possible, keep the number of redirects in the chain low, ideally no more than 3 and fewer than 5.” Every hop is another round trip for a visitor on a slow connection and another point where a crawler, a link preview or an AI fetcher with a lower limit may give up. robots.txt has its own, tighter rule: RFC 9309 asks crawlers to follow “at least five consecutive redirects”.

$ curl -sIL http://example.com/old-page | grep -iE '^(HTTP|location)'
HTTP/1.1 301 Moved Permanently
location: https://example.com/old-page
HTTP/2 301
location: https://www.example.com/old-page
HTTP/2 301
location: https://www.example.com/new-page/
HTTP/2 200

Three hops. The fix is to make the first server answer point straight at https://www.example.com/new-page/, and to update internal links so most visitors never hit a redirect at all.

Every redirect was right when someone added it. The chain is what nobody decided.

Adnan Arodiya, Crawlwise

What causes redirect loops?

  • A CDN forcing HTTPS while the origin, seeing plain HTTP from the CDN, redirects back.
  • Two trailing-slash rules that disagree — one adding the slash, another removing it.
  • A www rule in the server and the opposite rule in the application.
  • Language or geo redirects that send a crawler from /en/ to / and back.

A loop never reaches a 200, so there is nothing to index. Browsers show “too many redirects”; crawlers record an error and move on.

How long should redirects stay in place?

Google’s site-move guidance: “Keep the redirects for as long as possible, generally at least 1 year.” Removing them early turns every old link into a 404. It also says to use server-side permanent redirects “if technically possible” — 301 or 308. If you are consolidating duplicates rather than moving pages, a redirect is also the strongest canonical signal Google lists; see how Google treats rel=canonical.

How Crawlwise checks this

The free redirect chain checker requests a URL without following redirects automatically, then follows each Location itself, recording the status code, the Location header and the time to response headers for every hop. It stops after six requests and reports anything longer as a likely loop rather than following it forever. The HTTP status code checker does the same for up to 10 URLs at once and adds a note when any hop is a 302 or 307. Both read HTTP only: a JavaScript or meta refresh redirect is invisible to them, and they make one request from one location, so a CDN that answers bots or other regions differently can give a browser a different chain. To write the rules themselves, use the 301 redirect generator.

What each check reads, what counts as a failure, and what the checks cannot see are written up on the methodology page.

What a plan actually costs

The free tools stay free. You can open them, run them, and leave without an account. A plan is for the moment you want the report saved, a few sites watched, or the same checks from the API. The price on this table is the price at checkout. A yearly plan is ten months of the monthly price, so two months are on us.

PlanMonthlyCreditsA good fit when
Starter$4.9910You look after one site and check it now and then
Pro$14.9940A few sites, plus the API and a handful of watched URLs
Studio$49.99150Client work that would burn through Pro mid-month
Agency$99.99400Many locations, reported under your own name

A single-page audit is about 1.25 credits, and that includes the live probe of answer-engine crawlers. You see the estimate before anything runs. If a hold is not used, it comes back to your balance. Extra credits, when you already subscribe, are $9.99 for 20.

Frequently asked questions

Does a 302 pass less value than a 301?

Google describes a 301 as a strong signal that the target should be processed and a 302 as a weak one. Use the code that matches reality: 301 or 308 for a permanent move, 302 or 307 for a temporary one.

How many redirects is too many?

Googlebot follows up to 10 hops, but Google advises redirecting to the final destination directly, and otherwise keeping chains to ideally no more than 3 and fewer than 5.

Are JavaScript redirects OK?

Google lists a JavaScript location change as a permanent redirect it can follow, but recommends a permanent server-side redirect whenever possible. Many other crawlers do not run JavaScript at all.

Sources

Documentation was read on 2026-10-05. Search engines change these pages without notice, so check the original before you act on a detail.

Crawlwise redirect checks vs checking by hand

  • Lists every hop with status, Location and timing

    Crawlwise
    Yes, up to six hops
    By hand
    curl -IL and a careful read
  • Flags a likely loop instead of hanging

    Crawlwise
    Yes, past six hops
    By hand
    curl stops at its own limit
  • Checks several URLs at once

    Crawlwise
    Up to 10 in the status checker
    By hand
    A shell loop
  • Sees JavaScript or meta refresh redirects

    Crawlwise
    No — HTTP only
    By hand
    A real browser

Meet the author

Photo of Adnan Arodiya

Related articles