Redirect checker
Follow an address one hop at a time and see every status on the way: the 301 that hands over a page's standing, the 302 that does not, the chain of three that should be one, the loop nobody noticed. Each hop is timed and named (http to https, www to the bare domain, a trailing slash, another path), the final page is read for a meta refresh or a script that moves the visitor on, and the one rule that replaces the chain is there to copy.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
What it checks
The tool requests the address and, instead of letting the browser follow, reads the answer: the status and, when it is a redirect, the Location header. Then it requests the destination, and so on, up to ten hops, timing each one. Each hop is named by what it changes: the scheme (http to https), the host (www to the bare domain or the reverse), a trailing slash, the letter case, or the path. When the chain ends, the final page is fetched and read for a meta refresh tag and for a script that sets the location, the two redirects a server never shows and search engines follow late or not at all. From the first address and the last, it writes the one rule that would replace the chain, for nginx and for a Next.js config.
Why a redirect is worth a look
A redirect is a page telling the world it moved. Done with a 301 or a 308, the old address hands its standing to the new one and the links people wrote to it keep counting. Done with a 302 or a 307, it says the move is temporary, and search engines are entitled to keep the old address in the index and treat the new one as a stand-in. Most 302s on product sites are moves that were never meant to be temporary; the framework picked the code.
Chains cost more than they look. Each hop is a request, a wait and a chance to fail; Googlebot follows a handful and gives up. The common case is a site that moved to https, then to www, then to a new path: three hops on every old link, when one rule could send the old address straight to the last one.
How to read the result
- The verdict counts the hops, adds the time, and says whether the chain can be one rule. Two redirects that change the scheme and then the host are the common case, and one server rule does both.
- The table is one row a hop: the address, its status (permanent or temporary), the kind of hop, the milliseconds it took, and where it sent the request. The last row is where the request landed.
- Permanent (301, 308) hands the old address's standing to the new one. Temporary (302, 303, 307) keeps it on the old one; a move meant to last should not be temporary.
- Crosses hosts means the chain moves between domains, each of which needs its own certificate and its own rule.
- In the final page reports a meta refresh or a script redirect. Both work in a browser; make them a server redirect so every crawler follows.
- One rule in place of the chain is the nginx location and the Next.js redirect entry from the first address straight to the last, to copy.
How to fix a chain
Find where the rules live
A host's settings, a framework's config, an .htaccess or an nginx block. Chains happen when two of these each add a hop.
Send the first address to the last
Rewrite the rule so http://old goes to https://www.new/page in one hop, with a 301 or 308.
Keep the middle addresses answering
Links may point at them. Each should redirect straight to the end too, not to the next hop.
Redirect to the closest live page
Never to the home page by default. A visitor who followed a link to a specific page and lands on the home page leaves; so does the standing of the old link.
Check the whole family
A redirect on one old path usually means a family of them: run the sitemap checker on the old sitemap, or the broken link checker on a page that links to the old paths.
Limits
The tool sends a HEAD request and falls back to a small GET when a server refuses it. A server that answers bots differently from browsers, or a redirect that depends on a cookie, a country or a device, shows the bot's path here and another in your browser. Script redirects are read by pattern from the first sixty kilobytes of the page; a redirect built at runtime from pieces is not seen. Ten hops at most, which is about where Googlebot stops too.
Questions
A 301 says the page moved for good, and search engines pass the old address's standing to the new one. A 302 says the move is temporary and the old address should be kept. A move that will last should be a 301 or a 308.
Google has said it follows up to ten hops in one crawl and then stops. Long before ten, each hop is a delay and a chance to fail; keep chains to one hop.
Yes, with a 301, in one hop, straight to the final address, www or not. Two hops for the scheme and the host is the most common chain there is.
A permanent redirect passes the old address's standing to the new page, with a small loss at most. A temporary one, or a chain, or a redirect to an unrelated page, loses more.
Because a chain costs what its hops cost, on every visit and every crawl. A first hop of 300 ms from a redirect service, then two more on your own server, is half a second before the page starts loading. The time also shows which hop belongs to which server, which is where the fix goes.
Check my site, free
One address at a time here. The free check reads the whole site: the pages other sites still link to that answer nothing, the ones that redirect, and the ones Google shows and nobody clicks.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent