Home / Guides / How to check a website for broken links

How to check a website for broken links

Find broken links, redirects, and slow pages on a site or sitemap. Start with a free local checker. Use the Apify Actor when you want a scheduled cloud run and a ready-made report.

A page can look fine while a button, a citation, or an old blog post points at a URL that now returns 404. After a site move, some old addresses may also fail to redirect to the new ones. This page shows how to check a list of links, starting with a free local tool.

What you will get back

A useful check tells you, for each URL:

  • The HTTP status (200, 301, 404, 500, and so on)
  • Whether the address redirected, and to where
  • Whether the page was slow
  • A short report you can sort in a spreadsheet

No checker is perfect. Some sites block automated requests and return 403 even though the page works in your browser. Links that appear only after JavaScript runs will not be found by a simple scan of the HTML.

Free local tool: link-check-lite

link-check-lite is a free checker you run on your own computer. It has a command-line tool and an MCP server for AI apps. There is no API key.

What it does

  • Requests each URL and records the status code and redirects.
  • Runs offline in the sense that you keep the tool and the results on your machine (it still has to request the remote pages, or it cannot check them).

What it does not do

  • It does not crawl an entire site by itself. You give it the URLs (or a list / sitemap you already have).
  • It does not run page JavaScript.

Install and run

You need Python 3.

pip install link-check-lite
link-check-lite https://example.com/page

The repository README shows how to pass a list of URLs and how to write a CSV report. Start with a short list so you can see the output before you check a large sitemap.

Be kind to the site: do not hammer it. A short delay between requests to the same host is the right default.

Cloud option: the Apify Actor

Broken Link Checker runs on Apify. You can give it page links and, if you want, sitemap links. It checks the links it finds, and it writes a dataset plus report.csv and report.md.

Price (November 2026): $0.001 per link checked and $0.002 per page scanned. Duplicates and robots.txt skips are free. A broken link still counts as a checked link (that is the point of the tool). Apify also adds a small start fee per run.

Honest limits: it scans the pages you give it (or the pages listed in your sitemap input). It does not invent a full crawl of a site you did not list. It does not run JavaScript. Sites that block bots may show 403. You can turn on full GET requests if HEAD is blocked.

You can schedule the Actor once a week and send the report to a webhook, Slack, or email with Apify's integrations.

1. Open the Actor page.

2. Leave the sample URLs or paste your own (the sample includes a real page and a page that should 404, so you can see both outcomes).

3. Click Start.

4. Download report.csv or export the dataset.

After a site move

If you have a spreadsheet of old_url,new_url, you need a slightly different check: request the old URL and see whether it ends up at the new one. We published a free n8n template for that map, in addition to the tools above. A status of 200 on the old URL can still be a problem if it did not redirect.

A short way to choose

Your situationWhat to use
A list of URLs, and you can run PythonFree link-check-lite
A scheduled cloud run, a sitemap, and a ready-made reportApify Actor
A spreadsheet of old URL → new URL after a site moveThe free n8n redirect-map template (submit or import from our n8n Creator Hub pack once it is published)

Related guides

These tools are made by Tidy Byte Tools.