---
title: "Redirect Chain Checker"
description: "Follow a URL through every redirect. See each hop's HTTP status code, the Location it points to and how long it took, up to the final page. Loops and private addresses are caught."
url: https://findutils.com/network/redirect-chain-checker/
category: network
---

# Redirect Chain Checker

Follow a URL through every redirect. See each hop's HTTP status code, the Location it points to and how long it took, up to the final page. Loops and private addresses are caught.

**Use this tool:** [Redirect Chain Checker](https://findutils.com/network/redirect-chain-checker/)

## Programmatic access

- REST id `redirect-chain-checker`: POST https://api.findutils.com/api/tools/redirect-chain-checker/execute (reference: https://findutils.com/api/redirect-chain-checker/)
- MCP tool `redirect_chain_checker` on https://mcp.findutils.com (reference: https://findutils.com/mcp/redirect-chain-checker/)
- Data: The REST API and the MCP tool are a separate path from this page: a call sends the input you include to FindUtils over HTTPS, where it is processed and the result returned. FindUtils does not store that input, and logs the request without its content.

## Why check a redirect chain?

A link can pass through several redirects before it reaches a page: http to https, the bare domain to www, an old path to a new one, a tracking link to its target. Each hop costs a round trip, a temporary redirect where a permanent one was meant can confuse search engines, and a loop means the page never loads. A status code table tells you what 301 means; this tool shows you which codes a real URL returns, in order, with the Location each hop points to and how long each one took.

## Tips for Clean Redirects

- Link to the final URL directly; every hop you remove saves a round trip.
- Use 301 or 308 for a permanent move and 302 or 307 only for a temporary one.
- Combine the https and www rules so a visitor makes one hop, not two.
- If a chain loops here but works in your browser, the site may be waiting for a cookie.
- Check the final status too: a chain that ends in a 404 is a broken link, however clean the redirects are.

## Frequently Asked Questions

### What does the Redirect Chain Checker show?

It shows every hop a URL goes through before the final page: for each hop, the URL requested, the HTTP status code (such as 301, 302 or 200), the Location it redirects to, and the time in milliseconds. Above the list you see the final URL, the number of redirects and the total time. If the chain loops, gets too long or points somewhere it may not follow, it says where and why it stopped.

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

301 (Moved Permanently) and 308 (Permanent Redirect) say the resource has moved for good; 302 (Found) and 307 (Temporary Redirect) say the move is temporary. 307 and 308 also require the client to repeat the same method and body, while a 301 or 302 may turn a POST into a GET. 303 (See Other) tells the client to fetch the target with GET. For a page that has moved for good, use 301 or 308.

### How many redirects does the checker follow?

At most 10 requests per chain. If the URL is still redirecting after that, the result stops with "Too many redirects". Each request also has a time limit, and so does the whole chain, so a server that hangs cannot hold the check open. A healthy chain is short: one redirect from an old URL to its new home is ideal.

### How does it detect a redirect loop?

It remembers every URL in the chain. When a redirect points back to a URL that was already requested, it stops and reports a loop instead of requesting it again. The checker sends no cookies, so a site that redirects until a cookie is set, such as a consent or login page, can show as a loop here even though a browser gets through.

### Does it detect meta refresh and JavaScript redirects?

It detects meta refresh redirects, but only by reading a capped amount of the page: when the final response is an HTML page, it reads up to the first 16 KB and looks for a meta http-equiv="refresh" tag with a URL, then follows it as a hop. It does not run JavaScript, so a redirect made by a script is not seen.

### Why are some URLs refused?

Only public http and https addresses are requested. A URL, or any redirect in the chain, that points to a private network address (such as 10.x.x.x or 192.168.x.x), to localhost, to a link-local address such as 169.254.169.254, to a name with no dot, to a non-web scheme such as ftp: or file:, or that carries a user name and password, is not requested. The chain stops at that hop and says why. This keeps the checker from being used to reach internal systems.

### Why does my browser end somewhere else than the checker?

The requests come from FindUtils's servers, not from your browser, and they send no cookies and a FindUtils user agent. A site can redirect differently by country, language, device, login state or user agent, so the checker shows the chain those servers get. Compare with your browser's network panel if the two differ.

### Why does a hop say GET instead of HEAD?

The checker asks for each hop with a HEAD request, which returns the status and headers without the page. Some servers refuse HEAD with 405 (Method Not Allowed) or 501 (Not Implemented); for those hops it repeats the request with GET and does not read the body. The hop is marked so you know which method gave the result.

### What leaves my browser, and is the URL stored?

This page sends the URL you enter to FindUtils at api.findutils.com over HTTPS, the same endpoint the REST API uses; nothing else on the page is sent. FindUtils then requests that URL, and each redirect it is allowed to follow, from its own servers, so those sites see a request from FindUtils, not from you. The REST API and MCP tool are a separate path: a call sends the input you include to FindUtils over HTTPS, where it is processed and the result returned. FindUtils does not store that input, and logs the request without its content.

## Related Tools

- [HTTP Status Code Lookup](https://findutils.com/network/http-status-code-lookup/)
- [Security Headers Analyzer](https://findutils.com/network/security-headers-analyzer/)
- [SSL Certificate Checker](https://findutils.com/network/ssl-certificate-checker/)
- [URL Parser](https://findutils.com/developers/url-parser/)
- [DNS Propagation Checker](https://findutils.com/network/dns-propagation-checker/)
- [Bot Crawl Checker](https://findutils.com/network/bot-crawl-checker/)
- [URL Safety Checker](https://findutils.com/security/url-safety-checker/)
