HelloSEOTools

Broken Link Checker: find dead links across a site

Enter a site or a page. We read up to 10 of its pages and request every link on them, internal and external, then list the links that are broken, fail on the server, time out, or pass through more than one redirect.

Scope

We fetch the pages and links as HelloSEOToolsBot. Public hostnames only. Up to 150 links per page. Results are cached for 10 minutes, and each visitor can check 40 pages per hour.

How it works

Limitations

Frequently asked questions

What counts as a broken link?
A link is broken when the address it points to answers with a 4xx status, such as 404 Not Found or 410 Gone. A 5xx answer is reported separately as a server error, because the page may come back. Links that never answer are reported as timeouts or unreachable.
Does the checker include external links?
Yes. Every http and https link on the page is checked, whether it points to your own site or to another site. Links to email addresses, phone numbers, JavaScript, and fragments on the same page are skipped.
Why is a link that works in my browser shown as unreachable or 403?
Some sites refuse automated requests, block unknown crawlers, or do not answer HEAD requests. The checker identifies itself as HelloSEOToolsBot and does not run JavaScript or pass bot challenges, so those links can look broken here. Open them by hand to confirm before you change anything.
Which pages does the 10-page scan pick?
It uses the same page discovery as the Site Audit: the Sitemap lines in robots.txt, /sitemap.xml, and the internal links on the homepage, with pages that robots.txt disallows left out. The homepage comes first, then the next 9 pages in sitemap and link order.

API

The link check for one page is available as JSON, free, no key required, cached for 10 minutes:

GET https://helloseotools.com/api/page-links?url=https://example.com/

Response: { ok, page, finalUrl, links[], counts: { total, checked, broken, serverError, redirects, timeouts, unreachable, external, internal }, partial, elapsedMs, checkedAt }. Each link has url, anchor, internal, status, finalUrl, redirected, hops, ms, ok, problem, where problem is one of broken, server-error, redirect-chain, timeout, unreachable, or null. Errors return { ok: false, error }.

Related tools