What gets collected from the page
The page is fetched once, following up to five redirects, and up to 2 MB of HTML is scanned. The checker takes the href of every anchor, the src of every image, script, iframe, video, audio and source element, and the href of link elements that declare a stylesheet, icon, preload, manifest, canonical or alternate relation. Relative addresses are resolved against the page, honouring a base element if there is one. If the page itself answers with an error status, the scan stops and reports that code.
Some things are skipped on purpose: mailto:, tel:, sms:, javascript: and data: addresses, and links that are only a #fragment. Fragments are stripped from full URLs too, so /guide#setup and /guide#faq count as one URL, and the checker does not confirm that the anchor exists on the target. Duplicates are tested once. Anchors are collected before images and other assets, so when a page exceeds the 100-URL cap, assets are what gets dropped.
How each URL is tested
Each URL first gets a HEAD request, which asks for headers without the body. Plenty of servers handle HEAD badly, so a 400, 403, 405, 501 or any 5xx answer is retried with a small GET before the result is recorded, and so is a HEAD that fails at the connection level. Requests run eight at a time, each with an eight second timeout, and each follows up to five redirects.
The status pill shows the final code after redirects. When there is no code at all it reads Error and a short reason is printed underneath: Domain does not resolve, Timed out, a TLS certificate failure, or too many redirects. Links to private addresses or to ports other than 80, 443, 8080 and 8443 are never requested and show up as errors too. The Type column names the source element and marks URLs outside your registrable domain as external. Subdomains count as internal.
Fixing what the scan finds
Start with broken internal links, because you control both ends. A 404 on your own URL is either a typo in the href or a page that moved without a redirect: fix the link, and add a 301 from the old address if other sites may point at it. Broken images, scripts and stylesheets come next, since they change how the page renders.
For broken external links, find the content's new address, link to an archived copy, or remove the link. Domain does not resolve often means the site is gone or the domain lapsed. DNS Lookup confirms whether any records remain. A 5xx or a timeout can be temporary, so test again before you edit anything.
- 404 or 410: the target is gone, so update or remove the link.
- 401, 403, 429 or 999: the server refused the checker. Confirm by hand.
- 200 followed by an arrow: the link works through a redirect. Replace the href with the final URL shown.
- Error with a certificate message: the target's TLS setup is broken, and browsers will warn visitors as well.
What a single-page scan cannot tell you
This is a one-page check, not a crawler. It does not follow links into the rest of your site, so a full audit means running it on each important template: the home page, a category page, an article. Because navigation and footer links repeat everywhere, fixing them once clears the same findings on every page.
A pass describes one moment and one client. Soft 404s (a friendly not-found page served with status 200) are counted as working because the checker judges by status code. Scans are rate limited as well: a few per minute and a daily allowance per IP address, and the error message says how long to wait.
For counts of internal and external links, nofollow attributes and missing anchor text, Website Link Analyzer reads the same page without requesting each target. To write the 301s for pages you moved on an Apache site, use .htaccess Redirect Generator.