Website Migration Checker – Find Broken Redirects & 404s avatar

Website Migration Checker – Find Broken Redirects & 404s

Pricing

Pay per usage

Go to Apify Store
Website Migration Checker – Find Broken Redirects & 404s

Website Migration Checker – Find Broken Redirects & 404s

Moving a website to a new domain or new URLs? Paste your list of old and new addresses: this tool opens every old link and checks it lands on the right new page. Get a 0-100 report of broken links and errors, or ready-made redirect rules for your hosting. Free during launch.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Mauberme

Mauberme

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

What is it for? Changing your website's domain or URL structure is the fastest way to lose Google traffic: every old link that does not send visitors to the right new page is lost. Give this tool your list of old address → new address and it opens every old link for you, tells you which ones are broken, and gives you a score from 0 to 100 you can show a client. It can also write the redirect rules for your hosting so you don't have to.

It can also generate the redirect rules for you, ready to paste into Next.js, Vercel, Netlify, nginx, Apache (.htaccess) or Cloudflare Bulk Redirects, fixing chains, duplicates and rule order on the way.

Built from the tooling used to migrate a real multilingual site (3 legacy domains, 89 redirects, 4 languages).

Who is it for

  • Agencies auditing a client migration before and after launch.
  • Developers who need a correct redirects file for their platform, not a hand-written one.
  • Multilingual sites checking that hreflang alternates are valid and reciprocal.

What it checks (audit mode)

CheckWhat it catches
RedirectsOld URL does not redirect, wrong destination, redirect loops, chains (A→B→C), temporary 302/307 instead of 301/308, too many hops, leftover query strings
DestinationsThe final page answers 404/5xx
Hreflang (from the sitemap)Non-reciprocal alternates, missing self-reference, missing x-default, invalid or duplicated language codes

Every redirect is followed one hop at a time, so you see the full chain and the status code of each hop.

Input examples

Audit a migration

{
"mode": "audit",
"redirectMap": "oldUrl,newUrl,status\nhttps://old-site.com/about,https://new-site.com/en/about,301\nhttps://old-site.com/blog?id=12,https://new-site.com/en/blog/my-post,301",
"sitemapUrl": "https://new-site.com/sitemap.xml",
"maxUrls": 500,
"concurrency": 5
}

Build redirect rules

{
"mode": "build-rules",
"platform": "nginx",
"redirectMap": "https://example.com/my-redirect-map.csv"
}

The redirect map can be CSV text, the URL of a CSV file, or an array of {oldUrl, newUrl, status} objects. Column names are flexible (from/to, source/destination, old_url/new_url…); status defaults to 301. Use oldSiteBaseUrl / newSiteBaseUrl if your map uses paths instead of full URLs.

Output

Dataset, one row per checked URL:

{
"type": "redirect",
"oldUrl": "https://old-site.com/about",
"expectedUrl": "https://new-site.com/en/about",
"finalUrl": "https://new-site.com/en/about",
"statusCodes": [301, 200],
"hops": 1,
"ok": true,
"issues": [],
"details": []
}

Key-value store

  • report.html – a self-contained report: overall score, redirect score, hreflang score, issues by type and the list of failing URLs (worst first).
  • OUTPUT – the same summary as JSON (score, counts per issue, report URL), handy for automations.
  • In build-rules mode: the rules file (next-redirects.mjs, vercel.json, _redirects, nginx-redirects.conf, redirects.htaccess or cloudflare-bulk-redirects.csv) plus warnings about duplicates, conflicts, loops, flattened chains and reordered rules.

How the score works

Each URL starts at 100 %. A broken redirect, a loop or an error page costs the whole URL; a wrong destination 80 %; a temporary 302/307 30 %; a chain 20 %; a leftover query string on the right page 10 %. Hreflang problems cost 10–40 % per page. The overall score is 70 % redirects and 30 % hreflang when both are checked.

Pricing

Free during launch. This Actor has no usage fee of its own: you only pay Apify's standard platform usage for your runs (on the free Apify plan that is covered by your monthly credit). A pay-per-result price may be introduced later; Apify notifies users in advance of any price change.

Limits and good manners

  • Up to 5,000 URLs per run (maxUrls, default 500).
  • Up to 20 parallel requests (default 5). A 429 Too Many Requests pauses the whole run for that host and respects Retry-After.
  • Identifiable User-Agent: SiteMigrationAuditor.
  • Only public http(s) addresses are visited: private networks, localhost and cloud metadata addresses are blocked, including when a redirect points to them.
  • Hreflang reciprocity is checked against the sitemap. If your sitemap lists only one language and declares the others as alternates, those alternates are reported as "not listed in the sitemap" (information only, not scored).

FAQ

Does it change anything on my site? No. It only sends GET requests to the URLs in your map and sitemap.

Can I run it before launch? Yes: use build-rules to create the config, deploy it to staging, then audit the staging URLs.

Why is a leftover query string only a small penalty? Some platforms (Next.js, for example) pass the old query string to the destination. The page is right, but you may want to strip it to avoid duplicate URLs.