CommunityWriting & Editinggithub.com

aelena/seo-geo-audit

Claude Code skill — audit frontend codebases for SEO and Generative Engine Optimization (GEO)

What is seo-geo-audit?

seo-geo-audit is a Claude Code agent skill that claude Code skill — audit frontend codebases for SEO and Generative Engine Optimization (GEO).

Works withClaude Code~Codex CLI~Cursor
npx skills add aelena/seo-geo-audit

Installed? Explore more Writing & Editing skills: steipete/notion, affaan-m/seo, affaan-m/brand-voice · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does seo-geo-audit do?

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

Related Skills

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