Broken Link Checker & Bulk URL Status Checker (Free) avatar

Broken Link Checker & Bulk URL Status Checker (Free)

Pricing

Pay per usage

Go to Apify Store
Broken Link Checker & Bulk URL Status Checker (Free)

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

EuroScrape

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

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.gz too) or just a website address; the sitemap is found in robots.txt and every page is checked. Each page gets sitemapIssue: redirects, noindex, canonical elsewhere or broken, 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; onlyBroken keeps only the problems. Links refused by a bot protection (Cloudflare, Akamai, DataDome, LinkedIn's 999…) are not counted as broken: they get blockedBy with 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.

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):

PortalLinksOK (200)Broken or unreachableRefused by a bot protectionRedirectedMedian response
lamoncloa.gob.es (ES)93921072.3 s
service-public.gouv.fr (FR)82790372.0 s
governo.it (IT)82784081.2 s
gov.uk (UK)57560101.2 s
gov.ie (IE)48410702.8 s
government.nl (NL)48480001.8 s
gov.pl (PL)38380051.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:

URLStatusRedirectsFinal URLTime
http://apify.com2001https://apify.com/221 ms
https://www.example.com/this-page-does-not-exist4040same127 ms
https://lemonde.fr2002https://www.lemonde.fr/en/629 ms
https://httpbin.org/redirect/32003https://httpbin.org/get121 ms
https://expired.badssl.com/error CERT_HAS_EXPIRED0251 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-free to Claude, Cursor, VS Code or any MCP client.

🧰 More tools from EuroScrape

🔌 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-free to 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.