broken-link-checker

$npx mdskill add nowork-studio/NotFair/broken-link-checker

Identifies broken links and categorizes them by status for easy fixing

  • Scans a website for broken internal and external links.
  • Deploys a Python script with optional max pages parameter.
  • Analyzes link statuses (404, 5xx) and identifies source pages.
  • Reports findings in a structured JSON format for user review.

SKILL.md

.github/skills/broken-link-checkerView on GitHub ↗
---
name: broken-link-checker
argument-hint: "<URL to check, e.g. https://example.com>"
description: >
  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:

```bash
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:

1.  **Group by Status**: Group 404s (Not Found) vs 5xx (Server Errors).
2.  **Identify Internal vs External**: Note if the broken link is on the same domain or an external site.
3.  **Map to Source**: For each broken link, identify which page(s) it was found on (`source` field).

### 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!

More from nowork-studio/NotFair

SkillDescription
backlink-audit>
competitor-pages>
content-planner>
content-writer>
ecommerce-seo>
geo-optimizer>
google-adsManage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings.
google-ads-auditGoogle Ads account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run an audit before. Also trigger proactively when other ads skills detect that business-context.json is missing.
google-ads-copyGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.
google-ads-landingScore and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Page Experience component, or compare an ad group's messaging against its landing page. Trigger on "landing page audit", "landing page score", "landing page quality", "why is my conversion rate low", "LPX", "landing page experience", "ad to page match", or when `/google-ads-audit` surfaces a high-CTR / low-CVR ad group.