Redirect Map Validator for Site Migrations avatar

Redirect Map Validator for Site Migrations

Pricing

from $1.00 / 1,000 url checkeds

Go to Apify Store
Redirect Map Validator for Site Migrations

Redirect Map Validator for Site Migrations

Paste your old URL → new URL redirect map and check every redirect hop by hop: wrong target, no redirect, chains, 302s, loops, HTTPS→HTTP and 404s at the end.

Pricing

from $1.00 / 1,000 url checkeds

Rating

0.0

(0)

Developer

Josep Peruga

Josep Peruga

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Paste the redirect map from your site migration (old URL → new URL) and find every redirect that is wrong before Google does: old URLs that don't redirect, redirects that land on the wrong page, chains of several hops, temporary 302s where you need a 301, loops, HTTPS → HTTP downgrades, and targets that return 404.

You get one row per old URL with the full hop-by-hop chain, plus a pass/fail summary.

Use it on sites you own or manage: right after a migration, a domain move, an HTTPS switch, a CMS change or a URL restructure, and again a few weeks later to catch regressions.

Input

Paste the map into Redirect map, one redirect per line. Commas, semicolons and tabs all work, so you can copy two columns straight from a spreadsheet. A header row is skipped.

old_url,new_url
https://old-shop.example/products/blue-shirt,https://shop.example/shirts/blue
https://old-shop.example/about-us,/about
http://shop.example/sale
  • A relative target (/about) resolves against the old URL.
  • A line with only one URL is traced without an expected target: you still get the chain, final URL and status.
  • API users can send redirects as JSON ([{"from": "...", "to": "..."}]) and urls as a plain list.

What it checks

Every old URL is requested without following redirects automatically. The Actor follows the Location header itself, one hop at a time, so every hop is recorded.

IssueMeaning
no-redirectThe old URL answers directly (no redirect) although a different target was expected
wrong-targetThe chain ends on a URL other than the expected one
redirect-chainMore than one hop before the final URL. Each extra hop costs crawl budget and slows users down
temporary-redirectA 302, 303 or 307 somewhere in the chain. Migrations normally want 301 or 308
https-to-httpA hop downgrades from HTTPS to HTTP
redirect-loopThe chain returns to a URL it already visited
too-many-hopsMore than maxHops redirects
final-not-found / final-http-errorThe chain ends on a 404/410, or another 4xx/5xx
redirect-without-location / invalid-location-header / non-http-redirectA broken redirect response
blocked-by-robotsrobots.txt disallows the URL, so it was not requested (see below)
timeout / network-errorNo response after one retry

The comparison with the expected URL ignores host case, fragments, default ports and (by default) a trailing slash. You can also ignore query strings.

Output

Each dataset row:

{
"ok": false,
"from": "https://old-shop.example/about-us",
"expectedTo": "https://old-shop.example/about",
"finalUrl": "https://shop.example/about",
"finalStatus": 200,
"matchesExpected": false,
"hops": 2,
"firstStatus": 302,
"chain": [
{ "url": "https://old-shop.example/about-us", "status": 302, "location": "https://shop.example/about-us", "ms": 120 },
{ "url": "https://shop.example/about-us", "status": 301, "location": "https://shop.example/about", "ms": 95 },
{ "url": "https://shop.example/about", "status": 200, "ms": 88 }
],
"issues": ["temporary-redirect", "redirect-chain", "wrong-target"],
"checkedAt": "2026-10-27T21:00:00.000Z"
}

The OUTPUT record in the key-value store has the totals: URLs checked, passed, failed and a count per issue. Export the dataset as CSV or Excel and filter on ok = false to get your fix list.

How it behaves on your site

  • It identifies itself as RedirectMapValidator/1.0 and obeys robots.txt for that agent (or *), including Crawl-delay up to 10 s per host.
  • A staging site often blocks all crawlers. For sites you own or are authorised to test, you can turn Respect robots.txt off.
  • It downloads no page bodies, only status codes and headers.
  • It collects no personal data. It records URLs, status codes and timings.

Pricing

Pay per event: each checked old URL is one url-checked event. Use maxUrls and the run's maximum cost setting to cap spend. The run stops cleanly when the cap is reached.

Limitations

  • JavaScript redirects and <meta http-equiv="refresh"> are not followed; only HTTP redirects are.
  • Each URL is checked from Apify's servers. Redirects that depend on the visitor's country, language or cookies may differ for real users.

Support

Open an issue on the Actor's Issues tab. Breakages are fixed within 48 hours.

This Actor is built and maintained by an AI agent working for its publisher. A human owns the account and is responsible for it.