Website Link Checker
Crawls a site and validates links, images, and assets, then reports what's broken and how to fix it. Broken links hurt user trust and SEO; this catches them before visitors do.
Workflow
- Confirm the source — a local build/source folder OR a publicly reachable URL (production or staging). Note any auth or robots.txt restrictions; report links that can't be reached rather than guessing.
- Build the link inventory — parse pages for
<a href>, <img src>, <link href>, <script src>, media/srcset, mailto:, tel:, and in-page #anchor targets. Note where each link lives (source page + line).
- Validate each link (see
reference/status-codes.md for how to interpret responses):
- Internal links resolve to a real page/asset.
- External links return a healthy status; distinguish broken (404/410/5xx) from merely slow.
- Images/assets load.
- No HTTP asset is referenced on an HTTPS page (mixed content).
- Redirects are single hops, not chains.
#anchor links point to an element with a matching id/name on the target page.
mailto:/tel: are well-formed.
- Find orphans — pages that exist but nothing links to them (unreachable by crawl from the homepage).
- Report using the format below. See
reference/fixes.md for the standard fix for each issue type.
Practical notes
- Some external sites block automated requests (403) or rate-limit. Report these as "could not verify," not confirmed-broken.
- A 200 with a slow response is a warning, not a break.
- Prefer
HEAD requests where supported, falling back to GET, to reduce load.
- For large sites, cap external-link concurrency and de-duplicate URLs before requesting.
Output Format
Lead with a summary, then findings grouped by severity.
Summary
- Links checked: N (internal / external / assets)
- Broken: N • Redirect chains: N • Mixed content: N • Orphans: N
- Quick wins (fix in under 5 min): N
Findings — for each issue:
| Severity |
Source page |
Link / target |
Status |
Fix |
Severity levels:
- Critical — broken internal links, mixed content on HTTPS, links to pages returning 5xx, missing images on key pages (home/pricing/CTA).
- High — broken external links on high-traffic pages, invalid email links, redirect chains, non-working social links.
- Medium — missing images on secondary pages, orphaned pages, broken anchor links, slow-but-working links.
- Low — outbound links to deprecated-but-working pages, slow external assets.
If URLs changed, also output a redirect map (old URL → new URL → 301/302).
Reference
- Read
reference/status-codes.md for the status-code table and what each means.
- Read
reference/fixes.md for the standard remediation and time estimate per issue type.
Standards
1---2name: aie-web-links3description: Website Link Checker4---56# Website Link Checker78Crawls a site and validates links, images, and assets, then reports what's broken and how to fix it. Broken links hurt user trust and SEO; this catches them before visitors do.910## Workflow11121. **Confirm the source** — a local build/source folder OR a publicly reachable URL (production or staging). Note any auth or robots.txt restrictions; report links that can't be reached rather than guessing.132. **Build the link inventory** — parse pages for `<a href>`, `<img src>`, `<link href>`, `<script src>`, media/`srcset`, `mailto:`, `tel:`, and in-page `#anchor` targets. Note where each link lives (source page + line).143. **Validate each link** (see `reference/status-codes.md` for how to interpret responses):15 - Internal links resolve to a real page/asset.16 - External links return a healthy status; distinguish broken (404/410/5xx) from merely slow.17 - Images/assets load.18 - No HTTP asset is referenced on an HTTPS page (mixed content).19 - Redirects are single hops, not chains.20 - `#anchor` links point to an element with a matching `id`/`name` on the target page.21 - `mailto:`/`tel:` are well-formed.224. **Find orphans** — pages that exist but nothing links to them (unreachable by crawl from the homepage).235. **Report** using the format below. See `reference/fixes.md` for the standard fix for each issue type.2425## Practical notes2627- Some external sites block automated requests (403) or rate-limit. Report these as "could not verify," not confirmed-broken.28- A 200 with a slow response is a warning, not a break.29- Prefer `HEAD` requests where supported, falling back to `GET`, to reduce load.30- For large sites, cap external-link concurrency and de-duplicate URLs before requesting.3132## Output Format3334Lead with a summary, then findings grouped by severity.3536**Summary**37- Links checked: N (internal / external / assets)38- Broken: N • Redirect chains: N • Mixed content: N • Orphans: N39- Quick wins (fix in under 5 min): N4041**Findings** — for each issue:42| Severity | Source page | Link / target | Status | Fix |43|----------|-------------|---------------|--------|-----|4445Severity levels:46- **Critical** — broken internal links, mixed content on HTTPS, links to pages returning 5xx, missing images on key pages (home/pricing/CTA).47- **High** — broken external links on high-traffic pages, invalid email links, redirect chains, non-working social links.48- **Medium** — missing images on secondary pages, orphaned pages, broken anchor links, slow-but-working links.49- **Low** — outbound links to deprecated-but-working pages, slow external assets.5051If URLs changed, also output a **redirect map** (old URL → new URL → 301/302).5253## Reference5455- Read `reference/status-codes.md` for the status-code table and what each means.56- Read `reference/fixes.md` for the standard remediation and time estimate per issue type.5758## Standards5960- Google Search Central on crawling and links — https://developers.google.com/search/docs/crawling-indexing61- MDN Mixed content — https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content62- MDN HTTP redirects — https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections