User guide
What this tool does
The Broken Link Checker finds every link on a page: anchors, images (including srcset), scripts, stylesheets, icons, frames and media. It checks each one and reports:
- Broken links: 404 and 410, server errors, hosts that don’t exist, and redirect loops.
- Redirects: links that redirect, with the final address, so you can update the link.
- Missing anchors:
#fragmentlinks whose target id no longer exists on the page. - Insecure resources:
http://images, scripts and styles on anhttps://page, which browsers block or warn about. - Blocked or unclear results: sites that refused the checker or timed out, so you can check them by hand.
It can check one page, or crawl a site (up to 100 pages) and check everything it finds. Export the results as CSV, with the page and line number of every link.
When to use it
- After a migration, redesign or URL change: find internal links still pointing at old addresses.
- Before a launch: catch links to staging,
localhostor unfinished pages. - As routine maintenance: external links rot over time, as other sites move or disappear.
- When an AEM page has been copied between sites or languages: references to the source site often survive.
How to use it
- Choose the input.
- Live site: enter a page, and pick This page or Crawl the site.
- Paste HTML: for pages behind a login. Paste the source and the page’s address, and the links are checked live.
- Set the options.
- Up to N pages limits a crawl.
- Stay in this folder keeps it inside, say,
/blog/. - Untick Images, scripts and CSS to check only links.
- Untick Links to other sites to check only your own site.
- Press Check links. Results appear as they come in, and you can Stop at any time.
- Read the list. It opens on Problems; switch to Broken, Redirects, Blocked or unclear or All, or search by address or link text. Open On … page under any result to see every page and line it appears on.
- Press Export CSV for a spreadsheet with one row per link per page.
What the results mean
| Result | Meaning | What to do |
|---|---|---|
| 200 | Works | Nothing |
| Redirects → 200 | Works after one or more redirects | Point the link at the final address, especially for permanent (301/308) redirects |
| 404 / 410 | The page doesn’t exist | Fix the link, or redirect the old address to the right page |
| 5xx | Server error | Often temporary; check again later, then tell the site owner |
| No connection | The host doesn’t exist or refused to connect | The domain may have expired; remove or replace the link |
| Redirect loop | Keeps redirecting | Fix the redirect rules |
| 401 / 403 / 429 / 999 | The site refused the checker | Usually bot protection. Open it in a browser to confirm |
| Timed out | No answer in 8 seconds | Slow or down; check again later |
| #anchor not found | The page works, but the id the link points to doesn’t exist | Update the fragment, or restore the id |
The checker asks each link with a quick HEAD request, and confirms any failure with a full GET, because some servers answer HEAD wrongly.
How the crawl works
The crawl starts at your page and follows ordinary links (not nofollow) to pages on the same host and protocol, skipping files such as PDFs and images. It reads up to the page limit, checks every link it finds, and checks #anchors against every page it read. To keep the load on your server low, it fetches a few pages and links at a time.
Limits
- It reads HTML as served, without running JavaScript. Links added by scripts in the browser aren’t found.
- Up to 100 pages and 2,000 distinct links per run. The checker allows 60 batches of 6 links a minute per visitor; if you hit that limit, it pauses and carries on by itself.
- It doesn’t log in or fill in forms: it checks what a visitor following the link would reach.
- A link that works for the checker can still fail for visitors in other countries, or behind a cookie wall.
FAQ
- Why does a link show as blocked when it works in my browser?
- Some sites (LinkedIn, many shops and anything behind strict bot protection) refuse automated requests with 403, 429 or 999. The link is probably fine; open it in a browser to be sure.
- Are redirects a problem?
- One redirect is fine for visitors, but each one costs time, and chains of several waste crawl budget. Update internal links to point straight at the final address, especially after a migration.
- What is a missing anchor?
- A link like /guide/#install points to an element with id="install". If that id no longer exists, the page opens at the top instead. The checker tests anchors on every page it reads.
- How many pages can it crawl?
- Up to 100 pages and 2,000 distinct links per run, a few at a time so it stays polite to your server. For larger sites, crawl one section at a time with “Stay in this folder”.
- Is the site I check stored or logged?
- No. Pages and links are fetched through a small proxy that keeps no logs or copies. The results exist only in your browser until you close the page.