website-seo-audit · git:20260714.03e3db6 · 2026-07-14 · sha256 1770436dbd88eae9

website-seo-audit git:20260714.03e3db6A

Immutable. This exact content never changes and is served at /api/v1/blob/1770436dbd88eae9.

---
name: website-seo-audit
description: >-
  Crawl any website and produce a graded SEO diagnosis — on-page (title, meta,
  headings, canonical, mobile viewport, image alt, thin content), technical
  (HTTPS, robots.txt, sitemap.xml, broken internal links, duplicate titles/meta,
  near-orphan pages), and structured data (JSON-LD / Schema.org validity and
  required fields). Zero config, no API keys, pure Python standard library. Use
  when the user wants to audit, diagnose, check, or review a website's SEO, find
  SEO problems, or asks "how is my site's SEO / 帮我诊断这个网站的SEO".
---

# Website SEO Audit (网站SEO诊断)

Diagnose any website's SEO by crawling it and checking dozens of on-page,
technical, and structured-data signals. No API keys, no setup, no third-party
packages — it runs on the Python standard library alone.

## When to use this skill

- The user asks to **audit / diagnose / check / review a website's SEO**.
- The user shares a URL and asks what's wrong with it for search.
- The user wants a before/after SEO comparison, or a report they can act on.

## How to run

From this skill's directory:

```bash
python3 -m seo_audit https://example.com
```

If you're calling it from another working directory, run it from the skill
folder (the package must be importable):

```bash
cd /path/to/website-seo-audit && python3 -m seo_audit https://example.com
```

Useful options:

| Option | Meaning |
|---|---|
| `-1`, `--single` | Audit only the given URL (no crawl) |
| `--max-pages N` | Max pages to crawl (default 50) |
| `--max-depth N` | Max crawl depth (default 3) |
| `--json` | Machine-readable JSON instead of Markdown |
| `-o FILE` | Write the report to a file |
| `--ignore-robots` | Crawl even if robots.txt disallows (use on sites you own) |
| `--no-link-check` | Skip broken-link detection (faster) |

The command prints a Markdown report to stdout and exits non-zero if any
**critical** issue was found (handy for CI).

## How to interpret and report back

1. Run the tool on the URL the user gave. Use the default crawl unless they only
   want a single page (`--single`) or a bigger sweep (`--max-pages`).
2. Read the Markdown report. **Lead with the score/grade and the issue counts.**
3. Walk through findings in order: 🔴 critical first, then 🟡 warnings, then the
   highest-value 🟢 notices. For each, state the problem and its concrete fix.
4. Offer next steps: re-run after fixes, crawl deeper, or export JSON.

Do not dump the whole raw report unless asked — summarize the score, the
critical/warning items, and what to fix first.

## What it checks

- **On-page:** title (presence/length/uniqueness), meta description, H1 &
  heading hierarchy, canonical, mobile viewport, `html lang`, image alt text,
  thin content, Open Graph, mixed content on HTTPS.
- **Technical:** HTTPS, robots.txt (missing / blocks-all / sitemap directive),
  sitemap.xml (presence/validity), broken internal links (HTTP 4xx/5xx),
  duplicate titles/meta across pages, pages with no internal links.
- **Structured data:** JSON-LD syntax validity and required Schema.org fields for
  Article, Product, Organization, BreadcrumbList, FAQ, Recipe, Event, and more —
  the signal most crawl-based tools ignore, and what AI answer engines read.

## Notes

- Requires **Python 3.8+**. No `pip install` needed.
- Respects `robots.txt` by default; pass `--ignore-robots` on your own sites.
- Stays on the same site (apex + `www`); external links are not followed.