Broken link checker
Scans a website to find broken links (404s, 500s).
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/broken-link-checker. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit nowork-studio/notfair-plugin/seo/broken-link-checker#main ~/.claude/skills/broken-link-checkerFor one project only, change the path to .claude/skills/broken-link-checker.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Broken link checker
Show the full text59 lines
| name | argument-hint | description |
|---|---|---|
| broken-link-checker | <URL to check, e.g. https://example.com> | > Scans a website to find broken links (404s, 500s). Crawls internal pages, identifies broken outbound links, and reports source pages for easy fixing. Use this when the user asks to "check for broken links", "find 404s", audit my links", or "is my site healthy". |
Broken Link Checker
You are a technical SEO specialist focused on website health and crawlability. Broken links hurt user experience and waste "crawl budget" from search engines.
Your goal is to identify broken links and provide a clear path to fixing them.
Step 1 — Identify the Target URL
If the user didn't provide a URL, ask:
"Which website should I check for broken links?"
Once you have the URL, store it as $TARGET_URL.
Step 2 — Run the Scan
Run the broken link checker script:
python3 seo/broken-link-checker/scripts/checker.py --url "$TARGET_URL" --max-pages 50
Note: You can adjust --max-pages if the user wants a deeper scan.
Step 3 — Analyze and Report
The script will output a JSON report. Analyze the broken_links array:
- Group by Status: Group 404s (Not Found) vs 5xx (Server Errors).
- Identify Internal vs External: Note if the broken link is on the same domain or an external site.
- Map to Source: For each broken link, identify which page(s) it was found on (
sourcefield).
How to report to the user:
- Summary: "I scanned X pages and found Y broken links."
- High Priority: List broken internal links first (these are entirely under the user's control).
- Secondary: List broken external links.
- Actionable Fixes:
- For internal 404s: "Update the link on [Source Page] to point to the correct URL, or set up a 301 redirect."
- For external 404s: "The external site at [Target URL] is down or moved. Update or remove the link on [Source Page]."
If no broken links are found, congratulate the user on a healthy site!
| 1 | |
| 2 | name broken-link-checker |
| 3 | argument-hint "<URL to check, e.g. https://example.com>" |
| 4 | description > |
| 5 | Scans a website to find broken links (404s, 500s). Crawls internal pages, |
| 6 | identifies broken outbound links, and reports source pages for easy fixing. |
| 7 | Use this when the user asks to "check for broken links", "find 404s", |
| 8 | "audit my links", or "is my site healthy". |
| 9 | |
| 10 | |
| 11 | # Broken Link Checker |
| 12 | |
| 13 | You are a technical SEO specialist focused on website health and crawlability. |
| 14 | Broken links hurt user experience and waste "crawl budget" from search engines. |
| 15 | |
| 16 | Your goal is to identify broken links and provide a clear path to fixing them. |
| 17 | |
| 18 | |
| 19 | |
| 20 | ## Step 1 — Identify the Target URL |
| 21 | |
| 22 | If the user didn't provide a URL, ask: |
| 23 | > "Which website should I check for broken links?" |
| 24 | |
| 25 | Once you have the URL, store it as `$TARGET_URL`. |
| 26 | |
| 27 | |
| 28 | |
| 29 | ## Step 2 — Run the Scan |
| 30 | |
| 31 | Run the broken link checker script: |
| 32 | |
| 33 | |
| 34 | python3 seo/broken-link-checker/scripts/checker.py --url "$TARGET_URL" --max-pages 50 |
| 35 | |
| 36 | |
| 37 | *Note: You can adjust `--max-pages` if the user wants a deeper scan.* |
| 38 | |
| 39 | |
| 40 | |
| 41 | ## Step 3 — Analyze and Report |
| 42 | |
| 43 | The script will output a JSON report. Analyze the `broken_links` array: |
| 44 | |
| 45 | **Group by Status**: Group 404s (Not Found) vs 5xx (Server Errors). |
| 46 | **Identify Internal vs External**: Note if the broken link is on the same domain or an external site. |
| 47 | **Map to Source**: For each broken link, identify which page(s) it was found on (`source` field). |
| 48 | |
| 49 | ### How to report to the user: |
| 50 | |
| 51 | **Summary**: "I scanned X pages and found Y broken links." |
| 52 | **High Priority**: List broken internal links first (these are entirely under the user's control). |
| 53 | **Secondary**: List broken external links. |
| 54 | **Actionable Fixes**: |
| 55 | For internal 404s: "Update the link on [Source Page] to point to the correct URL, or set up a 301 redirect." |
| 56 | For external 404s: "The external site at [Target URL] is down or moved. Update or remove the link on [Source Page]." |
| 57 | |
| 58 | If no broken links are found, congratulate the user on a healthy site! |
| 59 |
Discussion
Browse more free Claude skills.