Redirect Mapping Validator
Check a redirect map for chains, loops, self-redirects and duplicate sources before you deploy it.
Runs locally in your browser. Your input is never sent anywhere.
Or drop a CSV or TSV here,
Processed locally in your browser. The file is not uploaded.
0 redirects checked
- 0 errors
- 0 warnings
- 0 valid
| Row | Source | Target | Status | Issue |
|---|
What this checks
Paste or drop a two-column map — comma, tab or semicolon separated, with or without a header row. Quoted fields containing commas are handled. Nothing is uploaded.
Errors
- Redirect loop —
/a → /b → /a. The browser gives up and the page is unreachable. - Redirect chain —
/a → /b → /c. Each hop costs latency and dilutes signals; point the first straight at the last. - Self-redirect — source and target are the same URL.
- Duplicate source, different targets — which one wins is undefined.
- Missing or malformed — an empty cell, whitespace inside a URL, or a non-http scheme.
Warnings
- Several sources pointing at the same target, or an exact duplicate row.
- Mixed relative and absolute forms in one mapping.
- An HTTPS to HTTP downgrade, or a change of host.
- A
#fragmentin the target — fragments are never sent to the server. - Source and target differing only by query string.
- A path with no leading slash.
One limitation worth knowing
Chains are found by matching a row's target against other rows' sources, and that
match is exact apart from lower-casing the scheme and host. A relative
/b is not treated as the same URL as
https://example.com/b.
That is deliberate. Stripping the host so both forms compare equal would make a
domain migration — https://old.com/a → https://new.com/a — look like a
self-redirect, reporting a serious error that does not exist. Missing a warning is
better than inventing one, so when a file mixes both forms you get a
mixed forms warning telling you chains may be hidden. Normalise the file to
one form and re-run to be certain.