Crawls a website and finds broken links. Unlike other similar SEO analysis tools, the actor also reports broken URL #fragments. The results are stored in a JSON and HTML report.
Our Broken Links Checker is an easy-to-use SEO tool to help you keep your UX and SEO score healthy, improve your website ranking, and prevent link rot.
Broken Link Checker can crawl any website and do all of the following:
Using our basic plan, the scraper's run will cost you around USD 0.25 in Apify platform credits per 1,000 scraped results. For more details about the plans we offer, platform credits and usage, see the platform pricing page.
Broken Links Checker is highly adaptable to your SEO requests and can scan your web pages quickly and regularly. To check a website for bad links, repeat the following steps:
For a more detailed instruction with visual aids of how to set up a broken links checker and why, see our step-by-step tutorial on checking for broken links.
Broken Links Checker will start the link check at a given URL and will crawl all linked pages under that website. So for example, if the crawler starts at https://www.example.com/something
, then it will also crawl linked pages such as:
1https://www.example.com/something/index.html 2https://www.example.com/something/else 3https://www.example.com/something/even/more/deeper/file.html
On every checked page, the crawler will also analyze whether links to other pages are working or not. For example, if the page contains a link to https://www.example.com/another/page#anchor
, the actor will open the inspected page https://www.example.com/another/page
, check whether it loads correctly and then it also check if it contains the #anchor
.
If this actor is run on the Apify platform, our user-friendly UI will help you configure all the necessary and optional parameters of this scraper before running it. Our Broken Links Checker recognizes the following input fields:
Website URL The initial URL to start the broken links inspection from.
Max pages Use this field to set the maximum number of pages to be checked. If left empty, the number will be unlimited.
Notification emails Add the email address to receive a notification after the crawler discovers all broken links.
Save only broken links
If set to true
, you'll get only the broken links in the report. If set to false
, the crawler will include into the report both broken and healthy links (not a CSV friendly option).
Crawl subdomains
If set to true
, the crawler will search broken links not only on the main page but also in deeper subdomains.
For more technical details on the input, head over to the Input tab.
Here's an input example for checking the Apify Blog for bad links. We've enabled the crawler to check subdomains as well but limited the inspection to 1,000 pages.
1{ 2 "baseUrl": "https://blog.apify.com", 3 "maxPages": 1000, 4 "notificationEmails": [ 5 "your.email@apify.com" 6 ], 7 "saveOnlyBrokenLinks": true, 8 "crawlSubdomains": true 9 }
Once the links checker finishes the crawl, it will save a report of the broken links into your key-value store. You will find reports in two formats there:
OUTPUT
contains a machine-readable JSON reportOUTPUT.html
contains an easy-to-read HTML reportHere's an example of dataset of a successful Broken Links Checker run. The error message is included in the report and can be found at the bottom of the example.
1[ 2 { 3 "url": "https://blog.apify.com", 4 "title": "Apify Blog: Web scraping and automation stories", 5 "links": [ 6 { 7 "url": "https://apify.com/", 8 "normalizedUrl": "https://apify.com", 9 "httpStatus": 200, 10 "fragment": "", 11 "fragmentValid": true, 12 "crawled": true 13 }, 14 { 15 "url": "https://apify.com/about", 16 "normalizedUrl": "https://apify.com/about", 17 "httpStatus": 200, 18 "fragment": "", 19 "fragmentValid": true, 20 "crawled": true 21 }, 22 { 23 "url": "https://apify.com/jobs", 24 "normalizedUrl": "https://apify.com/jobs", 25 "httpStatus": 200, 26 "fragment": "", 27 "fragmentValid": true, 28 "crawled": true 29 }, 30 { 31 "url": "https://apify.com/web-scraping", 32 "normalizedUrl": "https://apify.com/web-scraping", 33 "httpStatus": null, 34 "errorMessage": "Error: Navigation timed out after 120 seconds.\n at handleRequestTimeout (/home/myuser/node_modules/apify/build/crawlers/crawler_utils.js:19:11)\n at PuppeteerCrawler._handleNavigationTimeout (/home/myuser/node_modules/apify/build/crawlers/browser_crawler.js:418:54)\n at PuppeteerCrawler._handleNavigation (/home/myuser/node_modules/apify/build/crawlers/browser_crawler.js:401:18)\n at async PuppeteerCrawler._handleRequestFunction (/home/myuser/node_modules/apify/build/crawlers/browser_crawler.js:343:13)\n at async wrap (/home/myuser/node_modules/@apify/timeout/index.js:73:27)", 35 "fragment": "", 36 "fragmentValid": true, 37 "crawled": true 38 }, 39...
You can find other free SEO tools in the Related actors tab: Web Page Analyzer, SEO Audit Tool, Google Search Results Scraper. You should also check out 5 powerful scrapers to add to your SEO tool kit.
Yes, if you're scraping publicly available data for personal or internal use. Always review Websute's Terms of Service before large-scale use or redistribution.
No. This is a no-code tool — just enter a job title, location, and run the scraper directly from your dashboard or Apify actor page.
It extracts job titles, companies, salaries (if available), descriptions, locations, and post dates. You can export all of it to Excel or JSON.
Yes, you can scrape multiple pages and refine by job title, location, keyword, or more depending on the input settings you use.
You can use the Try Now button on this page to go to the scraper. You’ll be guided to input a search term and get structured results. No setup needed!