Bulk URL Status, Redirect Chain & Migration Map Checker
Pricing
$2.00 / 1,000 results
Bulk URL Status, Redirect Chain & Migration Map Checker
Check thousands of URLs for status codes, redirect chains, loops, and broken links. Expand sitemaps automatically, and validate a site-migration redirect map: does every old URL land on its new URL?
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
CreativeFour LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does the Bulk URL Status, Redirect Chain & Migration Map Checker do?
It checks thousands of URLs in one run and reports each one's HTTP status code, the full redirect chain (every hop and its status), where it finally lands, and any problems: broken links, redirect loops, long chains, temporary redirects, and HTTPS-to-HTTP downgrades.
It can also expand sitemaps and validate a site-migration redirect map. Paste your old,new URL pairs, and every row comes back as pass or fail, with the URL it really landed on.
Because it runs on Apify, you get API access, scheduling (for example, a nightly broken-link check), integrations, and monitoring. There's no browser and no login, and you can choose to pay only for the problems it finds.
Why use it?
- Site migrations and redesigns. Prove that every old URL 301s to the right new page before Google finds out otherwise.
- Broken link audits. Find 404s, 410s, 5xx errors, timeouts, and DNS failures across a URL list or a whole sitemap.
- SEO redirect cleanup. Collapse chains of two or more hops, fix loops, and turn stray 302s into 301s.
- Indexability checks. Catch pages that are accidentally
noindex, or canonicalised to another URL. - Scheduled monitoring. Run it on a schedule and alert on any new broken URL.
How to use it
- Open the Input tab.
- Paste URLs, add a sitemap URL, or paste a redirect map from a spreadsheet (old URL, new URL).
- Optional: turn on Save only problems so you pay only for URLs that need attention.
- Click Start.
- Open the Output tab and export the results as CSV, Excel, JSON, or HTML.
Input
| Field | What it does |
|---|---|
| URLs to check | One per line. example.com/page is treated as https://example.com/page. Invalid entries are skipped, and you aren't charged for them. |
| Sitemaps to expand | Sitemap or sitemap-index URLs; nested indexes are followed. |
| Redirect map | One old,new pair per line (comma or tab separated, header row optional), or the same as JSON. |
| Save only problems | Skip saving healthy 200s. They're still counted in the run summary. |
| Check indexability | Also download each final HTML page to read its canonical and robots tags. |
| Request method | HEAD (fast) with automatic GET fallback, or GET only. |
| Limits | Max redirects, timeout, overall and per-host concurrency, max URLs, user agent. |
{"urls": ["https://example.com", "http://example.com/old-page"],"sitemapUrls": ["https://example.com/sitemap.xml"],"redirectMapCsv": "old,new\nhttp://example.com/old-page,https://example.com/new-page","onlyProblems": true}
Output
One result per URL. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. It has two ready-made views: Overview and Redirect chains.
{"url": "http://example.com/old-page","finalUrl": "https://example.com/new-page","finalStatus": 200,"statusClass": "2xx","redirectCount": 2,"redirectChain": [{ "url": "http://example.com/old-page", "status": 301, "location": "https://example.com/old-page" },{ "url": "https://example.com/old-page", "status": 302, "location": "https://example.com/new-page" }],"responseTimeMs": 184,"contentType": "text/html; charset=utf-8","xRobotsTag": null,"flags": ["redirect_chain", "temporary_redirect"],"expectedUrl": "https://example.com/new-page","redirectMatch": true,"error": null,"checkedAt": "2026-09-23T20:15:00.000Z"}
A SUMMARY record in the run's key-value store counts URLs by status class, along with broken URLs, redirected URLs, loops, errors, and redirect-map passes and failures.
Data fields
| Field | Description |
|---|---|
url | The URL you asked about |
finalUrl / finalStatus | Where it ended up, and that page's status code |
statusClass | 2xx, 3xx, 4xx, 5xx, or error |
redirectCount / redirectChain | Every redirect hop, with its status and Location |
flags | broken, redirect_chain, temporary_redirect, redirect_loop, too_many_redirects, https_to_http_downgrade, error |
expectedUrl / redirectMatch | Redirect-map target, and whether the URL really landed there |
canonical / metaRobots / indexable | With indexability checks on |
responseTimeMs, contentType, xRobotsTag, error, checkedAt | Details for each check |
Use it from AI agents (MCP)
AI agents can find and run this Actor through the Apify MCP server.
- Claude, ChatGPT, or any MCP client: add
https://mcp.apify.com?tools=creativefour/url-status-auditas a custom connector, and sign in to Apify when prompted. - Claude Code, Cursor, VS Code, or Codex: run
apify mcp install claude-code(swap in your client's name), then ask your agent to runcreativefour/url-status-audit.
The agent sends the same input as the Input tab, gets the same results, and pays the same per-result price.
How much does it cost to check URLs?
You pay per result: each URL saved to the dataset is one charge, and URLs skipped by Save only problems cost nothing. Set a maximum charge per run in the run options; the Actor stops cleanly at that limit and keeps everything checked so far. Checks use lightweight HEAD requests, so large lists finish quickly.
Tips
- Save only problems keeps big sitemap audits cheap: you pay for the 3% that are broken, not the 97% that are fine.
- Per-host concurrency (default 3) is polite to a single site. Raise overall concurrency, not per-host, when checking many different sites.
- GET only helps with the rare server that answers HEAD requests incorrectly.
- Schedule it in Apify to catch broken links the day they appear.
FAQ and support
Why does a URL show a different status than my browser? Some sites answer HEAD requests or bots differently. Switch the request method to GET only, or set a browser-like user agent.
Does it follow JavaScript or meta-refresh redirects? No. It follows HTTP redirects (301, 302, 303, 307, 308).
Is it allowed to check any site? Please check sites you own or are permitted to test. The Actor sends ordinary, rate-limited requests with a clear user agent and downloads no page content unless you turn on indexability checks.
Found a bug or need a feature? Open an issue on the Issues tab. Custom versions are available on request.