Redirect Checker & Migration QA (Redirect Map Validator) avatar

Redirect Checker & Migration QA (Redirect Map Validator)

Pricing

from $1.20 / 1,000 url checkeds

Go to Apify Store
Redirect Checker & Migration QA (Redirect Map Validator)

Redirect Checker & Migration QA (Redirect Map Validator)

Check redirect chains and validate site-migration redirect maps. Records every hop and flags loops, 302s, HTTPS downgrades, wrong destinations, broken final pages, canonical mismatches and noindex. Plain HTTP, robots.txt-aware.

Pricing

from $1.20 / 1,000 url checkeds

Rating

0.0

(0)

Developer

Saiber Operations

Saiber Operations

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Check where your URLs really end up. Paste a list of URLs, or an old-URL → new-URL redirect map from a site migration, and get one row per URL with every redirect hop, the final destination and status code, and a pass / warning / fail verdict with plain issue codes.

Built for:

  • Site migrations and redesigns. Prove that every old URL lands on the right new page with a single permanent redirect, before rankings drop.
  • SEO audits. Find redirect chains, loops, temporary (302) redirects, HTTPS downgrades and pages that redirect to a 404.
  • Ad and email campaigns. Confirm final URLs still resolve, so you don't pay for clicks that land on broken pages.
  • Developers and AI agents. One API call returns clean JSON for a whole URL list.

What it checks

For each URL, the Actor follows redirects itself, one hop at a time, so nothing is hidden. It reports:

  • Every hop: URL, status code, Location header and response time.
  • The final URL and status code, and the redirect count.
  • Loops, chains longer than your limit, and redirects missing a Location header.
  • Temporary redirects (302, 303, 307), which search engines may not treat as permanent moves.
  • HTTPS → HTTP downgrades, and final pages that are not on HTTPS.
  • Expected vs. actual destination for each pair in your redirect map, with strict or relaxed matching.
  • Indexability of the final page: canonical link, robots meta tags and the X-Robots-Tag header, including canonicals that still point at the old domain.

Quick start

  1. Add URLs to URLs to check, or old/new pairs to Redirect map.
  2. (Optional) Set a Base URL if your map uses paths such as /old-page.
  3. Click Start. Results appear in the Overview, Redirect map and Indexability tabs.

Redirect-map entries can be objects or one-line strings:

[
{ "from": "https://old.example.com/pricing", "to": "https://www.example.com/plans" },
"https://old.example.com/about, https://www.example.com/company",
"/blog/launch -> /news/launch"
]

Sample output

{
"index": 3,
"status": "fail",
"inputUrl": "http://shop.example.com/legacy",
"expectedUrl": "https://shop.example.com/landing",
"finalUrl": "https://shop.example.com/",
"finalStatus": 200,
"matchesExpected": false,
"redirectCount": 1,
"chain": "302 → 200",
"issues": ["TEMPORARY_REDIRECT", "EXPECTED_MISMATCH"],
"hops": [
{ "url": "http://shop.example.com/legacy", "status": 302, "location": "https://shop.example.com/", "timeMs": 84 },
{ "url": "https://shop.example.com/", "status": 200, "location": null, "timeMs": 121 }
],
"canonicalUrl": "https://shop.example.com/",
"metaRobots": null,
"xRobotsTag": null,
"indexable": true,
"totalTimeMs": 212,
"stoppedAt": null,
"errorMessage": null,
"checkedAt": "2026-10-11T22:40:05+00:00"
}

Turn on Create a migration summary report to also get MIGRATION_REPORT (totals, redirect-map match rate, issue counts, slowest URLs) and FAILURES.csv (every URL that did not pass) in the run's key-value store.

Issue codes

CodeResultMeaning
EXPECTED_MISMATCHfailThe URL did not land on the expected URL from your redirect map
FINAL_CLIENT_ERROR / FINAL_SERVER_ERRORfailThe final page returned 4xx / 5xx
REDIRECT_LOOPfailThe chain comes back to a URL it already visited
TOO_MANY_REDIRECTSfailThe chain is longer than "Max redirects to follow"
MISSING_LOCATIONfailA 3xx response without a Location header
HTTPS_TO_HTTPfailA hop downgrades from HTTPS to HTTP
DNS_ERROR / CONNECTION_ERROR / TLS_ERRORfailThe host does not resolve, refuses connections, or has a certificate problem
TIMEOUTfailNo answer within the timeout (not charged)
INVALID_URLfailNot an http(s) URL (not charged)
TEMPORARY_REDIRECTwarningThe chain uses 302, 303 or 307 instead of 301 or 308
REDIRECT_CHAINwarningMore than one redirect before the final page
FINAL_NOT_HTTPSwarningThe final page is served over HTTP
CANONICAL_MISMATCHwarningThe final page's canonical points to a different URL
NOINDEXwarningThe final page has noindex in robots meta tags or X-Robots-Tag
POSSIBLY_BOT_BLOCKEDwarning401, 403 or 429, often bot protection (see FAQ)
SLOW_RESPONSEwarningThe whole chain took more than 3 seconds
BLOCKED_BY_ROBOTS / ROBOTS_UNAVAILABLEskippedrobots.txt disallows the URL, or returned a server error (not charged)

Pricing

Pay per event: you pay only for results.

EventFree planBronzeSilverGold
URL checked (per URL with a definitive answer)$0.0018$0.0015$0.00135$0.0012
Migration report (once per run, only when enabled)$0.06$0.05$0.045$0.04

That is $1.20–$1.80 per 1,000 URLs, plus Apify's standard Actor start fee. Not charged: timeouts, invalid URLs, URLs skipped because of robots.txt, and internal errors. Set Max cost per run to cap any run; the Actor stops cleanly when it reaches the cap.

Integrations and API

Run it from the Apify API, on a schedule (for example, a weekly check of your top landing pages), or from Make, Zapier, n8n and other tools through Apify's integrations. AI agents can call it through Apify's MCP server: input is plain arrays of URLs, and no credentials are needed.

FAQ

Does it follow JavaScript or meta-refresh redirects? Not yet. It follows HTTP redirects (301, 302, 303, 307, 308), which is what search engines and most migrations rely on.

Why do I see POSSIBLY_BOT_BLOCKED on my own site? Some firewalls block automated requests. The Actor identifies itself honestly as SaiberOpsBot. Allowlist that User-Agent on your firewall or CDN, then re-run.

Will it overload a website? No. It sends at most 4 requests at a time to any single host by default, and reads only the response headers of redirects and the <head> of the final page (up to 512 KB).

Can it check pages behind a login? No. It sends no cookies or credentials and only checks public URLs.

My map uses relative paths. Set Base URL (for example https://www.example.com), and paths such as /old-page resolve against it.

Responsible use

The Actor only requests the URLs you provide, plus each site's robots.txt. It respects robots.txt by default (switch this off only for sites you own or are authorized to test), identifies itself as SaiberOpsBot, never logs in, never solves CAPTCHAs, and does not rotate IP addresses to get around blocks. It collects no personal data: output is limited to URLs, status codes and HTTP headers. You are responsible for checking only sites you are allowed to test.

Support

Found a bug or need a feature? Open an issue on this Actor's Issues tab and we'll respond there.

Maintained by Saiber Operations LLC.