How the check works
This page: we fetch the page, collect every <a href> in the HTML and drop duplicates, same-page anchors and non-web links like mailto:. Then we request up to 100 unique URLs, six at a time, internal links first. Each gets a HEAD request, retried as GET if the server doesn’t handle HEAD, and we follow up to five redirects by hand. Each link has an 8-second timeout and the whole run stops at about 25 seconds.
Whole site: we find your sitemap through robots.txt (or /sitemap.xml) and read up to 25 pages on the same host: the page you entered, then sitemap URLs in order, then links found on those pages. With no sitemap, we follow links from the page you entered instead. Every unique link across those pages is checked once, the same way as above, up to 150 of them, internal links and links on the most pages first. Links to pages we already read reuse that result. Each broken link lists the pages that contain it and the anchor text used there, and the CSV has one row per link and page. A scan takes up to about 25 seconds; if time runs out, you get the results so far and a note saying where we stopped.
Reading the results
- 4xx. 404 (not found) and 410 (gone) are broken. Fix the URL, point it at the replacement page, or remove the link.
- 401, 403, 429. Usually a login wall, bot protection or rate limiting, not a dead page. We report them apart from real 404s.
- 5xx. The other server failed. It may be temporary; re-run later before removing the link.
- No response. Timeouts, DNS failures or a domain that no longer exists. An expired domain is worth removing fast: someone else can register it and serve anything.
- Redirects. Working links that take a detour. Update internal ones to the final URL.
Keeping links healthy
- When you change a URL, add a 301 from the old one and update internal links in the same deploy.
- Build internal links from your routing data, not hand-typed paths, so renamed pages update everywhere.
- Re-check your most-linked pages, or run a whole-site scan, after big content or navigation changes.
Internal-link checks are one of the quality gates in our own content pipeline: an article doesn’t ship if its links don’t resolve. See how that fits together in the Versely case study. For anchor text and nofollow on the same page, use the internal link checker.
Limits
We read server HTML, so links added by JavaScript aren’t included. We don’t check images, scripts or CSS files, only anchor links. Very slow sites may leave some links marked as skipped. The whole-site mode reads at most 25 pages and checks at most 150 links per run, and stops early if the site starts rate-limiting us (HTTP 429).