Community寫作與編輯github.com

aelena/seo-geo-audit

審查前端程式碼庫的 SEO 與生成式引擎最佳化(GEO),產出附有檔案行號及具體修正建議的 Markdown 報告。

seo-geo-audit 是什麼?

seo-geo-audit 是一個 Claude Code 技能,用以對前端程式碼庫進行「經典 SEO」(Google 爬蟲關注的事項)與「GEO」(生成式引擎最佳化,即 LLM 讀取內容時如何易於提取、引用及推理)的審計。它支援 HTML、JSX、TSX、MDX、Astro、Vue 及 Svelte 等來源檔案,能偵測框架(如 Next、Astro、Nuxt、Svelte-Kit 等),並透過 Shell 腳本發現內容來源、抽取 `<head>` 與結構化資料。其核心價值在於 GEO 檢查:與傳統掃描器不同,Claude 會依據 `checks/geo.md` 與 `checks/seo.md` 中的清單進行深度推理,判斷中繼描述是否「好」、結構化資料是否有效、以及 LLM 能否正確理解內容的語義層級。審計結果會產出一份包含分級(0–100)、檔案行號引證、嚴重程度與具體修復建議的 Markdown 報告卡。使用者可透過 `/audit`、`/seo-geo` 或自然語言觸發。該技能預設唯讀,僅在 `/audit fix` 模式下會提出編輯提案,且需使用者逐一確認;它會主動避開建構產物(如 `dist/`、`.next/`),不讀取線上站點,亦不做政策檔案(如 `robots.txt`、`llms.txt`)的自動修改。若系統同時安裝了 `llms-txt` 技能,報告中會建議使用者執行之。

相容平台Claude Code~Codex CLI~Cursor
npx skills add aelena/seo-geo-audit

Installed? Explore more 寫作與編輯 skills: steipete/notion, affaan-m/seo, affaan-m/brand-voice · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

seo-geo-audit 是做什麼的?

Audit a frontend repository for classical SEO (the things Google's crawler cares about) and GEO — Generative Engine Optimization, the things LLMs care about when they read your content. Outputs a markdown report card with severities, file:line citations, and concrete fixes.

The novel value is GEO. Classical SEO scanners have existed for years. But "is your site easy for a language model to extract, cite, and reason about?" is a question only Claude can really answer — because Claude is the consumer.

Invocation

TriggerBehavior
/audit or /seo-geo or /seo-geo-auditStandard audit: SEO + GEO, root-level + key routes, ~30 files max
/audit deepWalk all routes/pages discoverable in the repo. Slower, more thorough
/audit seoClassical SEO only
/audit geoGEO only
/audit fixAudit, then propose concrete file edits for each high-severity finding (ask before each edit)
/audit report.mdWrite the report to a file instead of showing inline
Natural language: "audit this site for SEO", "is this LLM-friendly", "check my structured data"Same

Stop / disable

Not session-based. One-shot. Just don't invoke it.

Execution flow

  1. Detect framework by reading package.json. Look for next, astro, nuxt, svelte-kit, remix, gatsby, vite, vue, or fall back to plain HTML. The framework determines file globs and where pages live (pages/, app/, src/routes/, src/pages/, content/, etc.).
  2. Discover content sources via scripts/discover.sh <framework>.
  3. Extract <head> content and structured data via scripts/extract-head.sh and scripts/find-jsonld.sh. For JSX/TSX, look for <Head>, <Helmet>, <Metadata>, or framework-specific patterns (Next.js metadata exports, Astro frontmatter, Nuxt useHead).
  4. Run checks. Each check from checks/seo.md and checks/geo.md is a piece of Claude reasoning over the extracted data — not a regex. That's the point: classical scanners can tell you the meta tag exists; only Claude can tell you whether the description is good.
  5. Score per category using checks/scoring.md. Letter grade + numeric score per category.
  6. Render the report from templates/report-card.md, filling in findings with file:line citations, severities, and fix suggestions.
  7. If fix mode: for each high-severity finding, propose a concrete edit using the standard preview-then-apply pattern. Never apply without user confirmation.

Cross-skill awareness

If llms-txt skill is installed, recommend running it when GEO findings include "missing llms.txt". If a11y-audit skill exists, point to it at the bottom of every report ("This audit covers SEO and GEO. For accessibility, run /a11y-audit.").

Safety guardrails

  • Read-only by default. Only fix mode proposes edits, and every edit needs confirmation.
  • Don't fetch the live site. Audit the source repo. Live-site auditing is Lighthouse / PageSpeed territory — different tools, different concerns.
  • Don't assume framework conventions. Check package.json first. A pages/ folder means different things in Next vs Nuxt vs Gatsby vs vanilla.
  • Never modify policy files (robots.txt, noai meta tags, llms.txt) without explicit user request — those are stakeholder decisions, not technical ones.
  • Skip generated/build artifacts. Don't audit dist/, build/, .next/, out/, .nuxt/. Audit source.
  • Cap deep audits. Even in deep mode, refuse to scan more than ~500 files without a --no-limit confirmation.

Files in this skill

  • SKILL.md — this file
  • checks/seo.md — classical SEO checklist with severities
  • checks/geo.md — GEO checklist (the novel checks)
  • checks/scoring.md — how findings map to a 0–100 grade per category
  • templates/report-card.md — markdown template for the final report
  • scripts/discover.sh — find frontend source files by framework
  • scripts/extract-head.sh — pull <head> content from HTML/JSX/MDX
  • scripts/find-jsonld.sh — extract <script type="application/ld+json"> blocks
  • scripts/check-llms-txt.sh — does the repo have an llms.txt?
  • examples/good-site-report.md — example report on a well-optimized site
  • examples/bad-site-report.md — example report on a typical greenfield site

相關技能

steipete/notion

Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.

community

affaan-m/seo

Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.

community

affaan-m/brand-voice

Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.

community

affaan-m/crosspost

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

community

affaan-m/x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

community

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

community