Broken Link Checker & Bulk URL Status Checker (Free)
Pricing
Pay per usage
Broken Link Checker & Bulk URL Status Checker (Free)
Free bulk URL checker, sitemap checker & broken link checker: HTTP status code, redirect chain (301, 302, 307, 308), final URL, response time, SEO tags (title, meta description, canonical, robots, H1) for 100,000 URLs, a sitemap or every link of a page. Find 404s, redirect loops, noindex pages.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
EuroScrape
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Bulk URL Status & Redirect Checker (Free): Broken Links, SEO
Free bulk URL checker: get the HTTP status code, the full redirect chain, the final URL, the response time and the main SEO tags of up to 100,000 URLs in one run. Find broken links, 404 pages, redirect chains and loops, expired certificates and noindex pages, for example after a site migration. No Actor fee: you only pay the tiny Apify platform usage (7 URLs cost $0.00009 in our test).
- 🚦 Status codes: 200, 301, 302, 404, 410, 500… plus network errors (DNS not found, expired SSL certificate, timeout).
- 🔀 Redirect chains: every hop with its code (301, 302, 307, 308) and location, the number of redirects, the final URL, loops detected.
- ⏱️ Response time of each URL, redirects included.
- 🏷️ SEO tags of HTML pages: title, meta description, meta robots, canonical, first H1, language, X-Robots-Tag header.
- 🗺️ Sitemap checker: give a
sitemap.xml(sitemap index and.xml.gztoo) or just a website address; the sitemap is found in robots.txt and every page is checked. Each page getssitemapIssue:redirects,noindex,canonical elsewhereorbroken, the errors Google Search Console reports for sitemaps. - 🔗 Broken link checker: give pages (
pagesToScan) and every link on them is checked, internal and external, with the page it was found on and its anchor text;onlyBrokenkeeps only the problems. Links refused by a bot protection (Cloudflare, Akamai, DataDome, LinkedIn's 999…) are not counted as broken: they getblockedBywith the name of the protection, since the page opens fine in a browser. - 📊 Three views: “Status” for broken links and redirects, “SEO tags” for on-page checks, “Sitemap issues” for sitemap audits.
- ⚡ Fast: 10 URLs at a time by default (up to 50).
🚀 Examples
A list of URLs:
{"urls": ["http://apify.com","https://www.example.com/this-page-does-not-exist","https://httpbin.org/redirect/3"]}
Every page of a website's sitemap (a quick sample of 500 pages):
{"sitemaps": ["crawlee.dev"],"maxUrls": 500}
Broken links on your pages (every link of the page is checked, with the page it was found on):
{ "pagesToScan": ["https://en.wikipedia.org/wiki/Web_scraping"], "onlyBroken": true, "maxUrls": 300 }
Run on 23 October 2026: 300 links checked in 40 s, 8 really broken (404), each with foundOn and its anchorText, and 7 more that a bot protection refused (Cloudflare, DataDome, Google, a rate limit), kept apart with blockedBy instead of being reported as broken. Untick "Check links to other websites" to audit internal links only. Links to large files are checked by their headers only, never downloaded.
📊 Data Report · 2 Nov 2026: the links on 8 European government home pages
One free run: every link on the home page of eight national government portals, internal and external, checked with redirects, status and SEO tags (448 links):
| Portal | Links | OK (200) | Broken or unreachable | Refused by a bot protection | Redirected | Median response |
|---|---|---|---|---|---|---|
| lamoncloa.gob.es (ES) | 93 | 92 | 1 | 0 | 7 | 2.3 s |
| service-public.gouv.fr (FR) | 82 | 79 | 0 | 3 | 7 | 2.0 s |
| governo.it (IT) | 82 | 78 | 4 | 0 | 8 | 1.2 s |
| gov.uk (UK) | 57 | 56 | 0 | 1 | 0 | 1.2 s |
| gov.ie (IE) | 48 | 41 | 0 | 7 | 0 | 2.8 s |
| government.nl (NL) | 48 | 48 | 0 | 0 | 0 | 1.8 s |
| gov.pl (PL) | 38 | 38 | 0 | 0 | 5 | 1.3 s |
| bund.de (DE) | 0 | - | - | - | - | - |
Five links were dead: four on governo.it, all pointing to the old http:// address of the transparency section of presidenza.governo.it, and one on the Spanish portal (the recovery-plan site timed out). The Dutch and Polish portals were spotless. bund.de now redirects to a page built in JavaScript with no link in its HTML: the robot says so and asks for its sitemap instead. 448 links in under 10 minutes.
Reproduce it (then widen the list):
{"pagesToScan": ["https://www.governo.it"],"checkExternalLinks": true,"checkSeoTags": true}
More reports like this one, twice a week: EuroScrape on LinkedIn.
📦 Output
Real results of 14 October 2026:
| URL | Status | Redirects | Final URL | Time |
|---|---|---|---|---|
| http://apify.com | 200 | 1 | https://apify.com/ | 221 ms |
| https://www.example.com/this-page-does-not-exist | 404 | 0 | same | 127 ms |
| https://lemonde.fr | 200 | 2 | https://www.lemonde.fr/en/ | 629 ms |
| https://httpbin.org/redirect/3 | 200 | 3 | https://httpbin.org/get | 121 ms |
| https://expired.badssl.com/ | error CERT_HAS_EXPIRED | 0 | 251 ms |
On 22 October 2026, the sitemap of crawlee.dev listed https://crawlee.dev/search, a page marked noindex: the Actor flags it with sitemapIssue: "noindex".
Each row also contains redirectChain (every hop), contentType, contentLength, server, title, metaDescription, canonical, metaRobots, h1 and lang.
💰 Price
Free. This Actor charges no fee. Apify bills only the platform usage of your run: thousands of URLs for a few cents. The Apify free plan includes monthly credit.
❓ FAQ
How do I check all the pages of my website? Put the website address (or its sitemap.xml) in Sitemaps: every page listed is checked. You can also schedule the Actor weekly to catch new broken links.
Some sites answer 403 to the checker. When the 403 (or 429, 503, 999) comes from a bot protection, the row says so in blockedBy and broken stays false: the page exists. To get their real status, turn on Apify Proxy (residential) in the Proxy option.
Does it follow JavaScript redirects? No: it follows HTTP redirects (3xx with a Location header), which is what search engines rely on first.
🔗 Use it
- API:
POST https://api.apify.com/v2/acts/euroscrape~bulk-url-checker-free/run-sync-get-dataset-items - AI agents (MCP): add
https://mcp.apify.com?tools=euroscrape/bulk-url-checker-freeto Claude, Cursor, VS Code or any MCP client.
🧰 More tools from EuroScrape
- Website Technology Stack Detector: CMS, analytics, ads and ecommerce tools of any website.
- Google Autocomplete Keyword Tool (Free): long-tail keywords from Google, YouTube, Amazon, Bing.
- Google Trends Scraper (Free): interest over time, by region, rising searches.
- RSS Feed Reader (Free): any feed or website to JSON and CSV, only new items.
🔌 API, AI agents and integrations
- API: one call runs the Actor and returns the results,
POST https://api.apify.com/v2/acts/euroscrape~bulk-url-checker-free/run-sync-get-dataset-items(see the API tab for Python, JavaScript and cURL). - AI agents (MCP): add
https://mcp.apify.com?tools=euroscrape/bulk-url-checker-freeto Claude, Cursor, VS Code or any MCP client, and the Actor becomes a tool your agent can call. - No-code automation: start runs and pass the results on with Apify's integrations for n8n, Make and Zapier, or with a webhook when a run ends.
- Exports: every result set downloads as JSON, CSV, Excel or XML, and can be sent to Google Sheets.
- Data Reports: twice a week, EuroScrape turns a run of one of its Actors into a 30-second data report (used-iPhone prices in 18 countries, electricity prices, Ryanair fares…) on LinkedIn. Follow the page to see what the data looks like.
⭐ Your feedback
This Actor is free. If it saves you time, a short review on Apify Store helps other users find it. Missing an option? Say it in your review: the most requested features are added first.