Check the redirects of a site migration

Paste the “old address; new address” list of your redesign or domain change: the tool requests each old address, follows its redirects and tells you whether it reaches the planned page in a single permanent hop.

One pair per line, separated by a semicolon, a tab, an arrow (->) or a comma, as in the 301 redirect generator. A first header line is ignored. 200 lines at most.

The file is read in your browser (5 MB at most).

Only if the first column holds paths such as /page/.

For paths in the second column. Empty: the old address’s domain.

How to use the tool

Paste the address mapping into the text box, or choose the CSV file you used to write the redirects. The format is the one of the 301 redirect generator: one pair per line, separated by a semicolon, a tab, an arrow or a comma. A first header line is ignored.

If the list holds paths (/page/) rather than full addresses, enter the old domain. The new domain is used for paths in the second column; left empty, the tool takes the old address’s domain, which suits a redesign on the same domain.

Click “Check”. Lines fill in batch by batch. A summary counts the lines per verdict, with their share of the whole list. The table can be filtered, sorted and exported as CSV, and the “Recheck failing lines” button only runs the non-compliant lines again, once your fixes are live.

What the tool checks

For each line, the tool reads the first response of the old address without following the redirect, then requests the address given in the Location header itself, and so on. It records the code of each step, the address reached at the end of the chain and its code. A line gets a single verdict, the most severe one; the other gaps stay listed below it.

How the obtained address is compared with the expected one

Both addresses go through the normalisation of the URI syntax: the scheme and the host name are case-insensitive, the default port is dropped and an empty path means “/”.5 https://Example.com and https://example.com/ are therefore the same address. When the tool had to lower capitals in a host name, it says so on the line.

The rest of the address is case-sensitive under the same standard.5 The tool therefore smooths over nothing else, and each gap has a name: different scheme (http instead of https), www on one side only, other host, trailing slash added or removed, path case, other path, different parameters. A destination that only differs by its trailing slash stays “different”, because /page and /page/ are two distinct addresses.

A fragment (#section) is never sent to the server: it is not part of the requested address.4 The tool removes it from the old address before requesting it and ignores it in the expected address, flagging it in both cases. If the expected address is reached mid-chain but redirects in turn, the line says so too.

How long a check takes

Each visitor has 20 requests per 10-minute window, shared by all the tools on this site, and one request carries a batch of 10 addresses. A clean migration needs two reads per line: the old address, then the new one at the end of the redirect. An address that appears several times is read only once.

200 lines, the maximum per check, therefore make 20 batches for the old addresses and up to 20 for the new ones, that is 40 requests: the first 20 go out at once, the rest after about ten minutes of waiting. 50 lines fit in 10 requests, with no wait. The tool shows its estimate under the list before you start, then a countdown if the limit is reached; each extra hop adds reads.

The tool’s limits

The tool checks the HTTP code and the address of each step, nothing more. It does not read the content of the destination page: a page that answers 200 with an error message, or with content unrelated to the old page, passes as compliant. Nor does it say anything about the indexing of the new address.

Redirects made in JavaScript or with a meta refresh tag are not seen, since page bodies are not read: the old address then shows as “No redirect”. Google does take them into account, an instant meta refresh as a permanent redirect and a delayed one as a temporary redirect, but advises using JavaScript only when the other methods are not possible, because rendering the page can fail.1

The tool follows 5 hops at most; beyond that, the line becomes “Destination failing”. An earlier version of the HTTP standard recommended a maximum of 5 redirects, and some clients may still apply that limit.4 Addresses are requested from this site’s server, with an agent named NemoCimentOutils: a server that answers differently depending on the bot, the country or cookies may give Googlebot another result.

This check does not replace monitoring in Search Console after the migration. Google advises watching traffic on the old and new sites, checking regularly for unexpected crawl errors and keeping redirects for at least a year.2 It considers a site move complete once Googlebot has visited every address of the old and new sites at least once; for a small to medium-sized site, most pages move within a few weeks.2

Before and after the migration

To prepare the rules, the 301 redirect generator turns the same mapping into Apache and nginx rules, and flags chains and loops before the new site goes live. For a single address whose every step and timing you want to see, the redirect checker follows up to 10 hops. The article on redesigning a site without losing SEO puts this check into the full preparation of a redesign.

Frequently asked questions

What list format does the tool accept?

The same as the 301 redirect generator: one “old address; new address” pair per line, separated by a semicolon, a tab, an arrow or a comma. Paths are accepted if you enter the old domain. A first header line is ignored.

Why is a 302 redirect not compliant?

Google reads 302, 303 and 307 codes as temporary redirects: it does not use them as a signal that the target should become canonical, and the old page may stay indexed. For a site move, it recommends permanent redirects, 301 or 308.

How many addresses can I check?

200 lines per check. Each batch of 10 addresses uses one request, out of a quota of 20 requests per 10-minute window shared with the other tools on this site. 200 lines that redirect once need about 40 requests, so roughly ten minutes of waiting halfway through.

Does the tool see JavaScript or meta refresh redirects?

No. It only reads the HTTP code and the Location header, not page bodies. An old address that redirects in JavaScript or with a meta refresh shows as “No redirect”.

Are the addresses I paste stored?

No. The list is read in your browser; only the addresses to request go to this site’s server, in batches of 10, and the response is limited to the code, the destination and the error. Nothing is recorded.

Sources

The passages on this page and the tool’s verdicts refer to one of these references, read on October 22, 2026.

  1. Google, “Redirects and Google Search”, Google Search Central, updated April 14, 2026. developers.google.com ↑
  2. Google, “Site moves with URL changes”, Google Search Central, updated August 20, 2026. developers.google.com ↑
  3. Google, “How HTTP status codes affect Google’s crawlers”, crawling infrastructure documentation, updated February 4, 2026. developers.google.com ↑
  4. IETF, RFC 9110, “HTTP Semantics”, June 2022, sections 7.1 (target URI, without fragment) and 15.4 (3xx redirection codes). rfc-editor.org ↑
  5. IETF, RFC 3986, “Uniform Resource Identifier (URI): Generic Syntax”, January 2005, sections 6.2.2.1 (case) and 6.2.3 (scheme-based normalisation). rfc-editor.org ↑

A redesign or a domain change coming up?

I prepare the address mapping and the SEO migration, then check the redirects once the new site is live. I reply within 24 working hours.

Contact me