SkillAtlasSkill 详情

seo-local

Codex-first SEO analysis suite with 1 orchestrator skill, 26 specialist workflows, 24 TOML agent...

审核状态:已审核Quality 80Security 100

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月25日

Codex SEO: SEO audit skill suite for Codex

Watch on YouTube

Codex SEO - SEO Audit Skill Suite for Codex

Codex-first SEO analysis suite with 1 orchestrator skill, 26 specialist workflows, 24 TOML agent profiles, MCP/API extensions, deterministic headless runners, and premium audit report generation.

CI Release Codex Skill License: MIT Python Workflows

Codex SEO is a Codex-native port of AgriciDaniel/claude-seo, synchronized to upstream main at a9cf338 and adapted for Codex skills, Codex plugins, TOML agents, shared cache artifacts, and repeatable local/API execution.

It covers technical SEO, on-page analysis, content quality, E-E-A-T, schema markup, image optimization, sitemap architecture, Core Web Vitals, GEO/AEO for AI search, backlinks, local SEO, maps intelligence, Google APIs, semantic clustering, SXO, drift monitoring, e-commerce SEO, hreflang, FLOW prompts, DataForSEO, Firecrawl, and Gemini/nanobanana image workflows.

Contents

Status

  • Repository visibility: public.
  • Current release: v1.9.6-codex.5.
  • Installer default ref: v1.9.6-codex.5.
  • Latest local validation: 52 tests passing, full installed smoke suite passing, demo readiness passing.
  • Runtime credentials stay outside the repo under Codex/local config paths.
  • Discovery topics: codex, codex-cli, codex-skills, seo, ai-seo, ai-search, technical-seo, generative-engine-optimization, core-web-vitals, schema-markup, local-seo, ecommerce-seo, content-strategy, google-search-console, dataforseo, mcp, python, automation, marketing-automation, open-source.

Install

One-Line Install

curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/codex-seo/v1.9.6-codex.5/install.sh | bash

Windows:

irm https://raw.githubusercontent.com/AgriciDaniel/codex-seo/v1.9.6-codex.5/install.ps1 | iex

Review Before Installing

git clone https://github.com/AgriciDaniel/codex-seo.git
cd codex-seo
bash install.sh

Windows:

git clone https://github.com/AgriciDaniel/codex-seo.git
cd codex-seo
powershell -ExecutionPolicy Bypass -File .\install.ps1

The installer copies the skill suite into ~/.codex/skills/, installs TOML agents into ~/.codex/agents/, creates a Python virtualenv at ~/.codex/skills/seo/.venv/, installs core runtime dependencies, attempts optional capability groups, and verifies the runtime.

Installer Overrides

CODEX_HOME=~/.codex \
CODEX_SEO_REPO=https://github.com/AgriciDaniel/codex-seo \
CODEX_SEO_REF=v1.9.6-codex.5 \
bash install.sh
VariablePurpose
CODEX_HOMEAlternate Codex home. Defaults to ~/.codex.
CODEX_SEO_REPOGit URL, fork URL, or local repository path.
CODEX_SEO_REFBranch, tag, or commit. Defaults to v1.9.6-codex.5.
CODEX_SEO_SKIP_PLAYWRIGHT_BROWSER=1Skip Chromium install for visual/PDF workflows.
CODEX_SEO_PLAYWRIGHT_WITH_DEPS=1Ask Playwright to install system dependencies where supported.

Quick Start

Restart Codex after installation. Then ask naturally; a /seo command is not required:

Do a full SEO check on https://example.com following best practices.
Review this page for schema, Core Web Vitals, image SEO, and AI search readiness.
Create an SEO strategy and content roadmap for a local dental clinic.

Command-style prompts also work:

/seo audit https://example.com
/seo technical https://example.com
/seo schema https://example.com
/seo dataforseo serp "best seo tools"

Visual Overview

Codex SEO is designed as a Codex-first routing layer: the user can ask naturally, the orchestrator selects the right specialist workflow, and deterministic runners write repeatable artifacts instead of relying on invisible chat-only output.

%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","secondaryColor":"#06222a","tertiaryColor":"#ff9f1c","edgeLabelBackground":"#05080d","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
flowchart LR
  user["User prompt<br/>natural language or /seo"] --> orchestrator["skills/seo/SKILL.md<br/>main orchestrator"]
  orchestrator --> cache[".seo-cache<br/>shared evidence"]
  orchestrator --> skills["26 specialist<br/>SEO workflows"]
  skills --> agents["24 TOML agents<br/>parallel analysis slices"]
  skills --> scripts["scripts/<br/>deterministic runners"]
  scripts --> output["output/<br/>Markdown, JSON, HTML, PDF"]
  cache --> skills
  class user,orchestrator accent
  class cache,scripts data
  class output output
  classDef default fill:#07131c,stroke:#00d7e6,color:#f5fbff,stroke-width:1.4px
  classDef accent fill:#10151a,stroke:#ff9f1c,color:#fff7ed,stroke-width:2px
  classDef data fill:#06222a,stroke:#21e6c1,color:#ecfeff,stroke-width:1.5px
  classDef output fill:#15101a,stroke:#ff9f1c,color:#fff7ed,stroke-width:1.8px

Commands

PromptPurpose
/seo audit <url>Full site audit with specialist routing and premium report support
/seo page <url>Deep single-page SEO analysis
/seo technical <url>Crawlability, indexability, security, JavaScript, CWV
/seo content <url>E-E-A-T, helpfulness, readability, AI citation readiness
/seo schema <url>Structured data detection, validation, and JSON-LD generation
/seo images <url>Alt text, image weight, formats, metadata, image SERP opportunities
/seo sitemap <url>XML sitemap discovery, quality gates, generation guidance
/seo geo <url>AI Overviews, ChatGPT, Perplexity, llms.txt, citability
/seo performance <url>Core Web Vitals, Lighthouse-oriented performance signals
/seo visual <url>Screenshots, mobile rendering, above-the-fold analysis
/seo plan <business-type>Strategic SEO roadmap and content plan
/seo programmatic <url>Programmatic SEO risk and scale planning
/seo competitor-pages <url>Comparison and alternatives page opportunities
/seo hreflang <url>International SEO, locale validation, content parity
/seo local <url>Local SEO, GBP signals, NAP, citations, reviews
/seo maps <command>Geo-grid, GBP audit, review intelligence, local maps signals
/seo google <command>GSC, PageSpeed, CrUX, Indexing API, GA4 workflows
/seo backlinks <url>Backlink profile summary and source-tier detection
/seo cluster <keyword>SERP-based topic clustering and hub-spoke planning
/seo sxo <url>Search Experience Optimization, intent/page-type fit
/seo drift baseline <url>Capture an SEO baseline before changes
/seo drift compare <url>Compare current SEO signals against a baseline
/seo ecommerce <url>Product SEO, marketplace visibility, product schema
/seo flow <stage>FLOW framework prompts for Find, Leverage, Optimize, Win
/seo dataforseo <command>Live SERP, keyword, backlink, content, and AI visibility data
/seo firecrawl <command>JS-rendered crawling and site mapping via Firecrawl
/seo image-gen <use-case>OG images, hero images, product visuals, infographics

Full command details live in docs/COMMANDS.md.

Features

Full Audit Pipeline

  • Detects site/business type.
  • Runs technical, content, schema, sitemap, performance, visual, GEO, image, and on-page analysis.
  • Adds conditional specialists for local, maps, Google APIs, backlinks, clusters, SXO, drift, and e-commerce.
  • Writes markdown reports, JSON summaries, cache artifacts, and optional premium HTML/PDF output.
%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","secondaryColor":"#06222a","tertiaryColor":"#ff9f1c","edgeLabelBackground":"#05080d","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
flowchart TD
  request["Audit request"] --> detect["Detect site type<br/>business model and context"]
  detect --> core["Core audit specialists"]
  core --> technical["Technical"]
  core --> content["Content"]
  core --> schema["Schema"]
  core --> sitemap["Sitemap"]
  core --> geo["GEO / AI search"]
  core --> images["Images"]
  core --> performance["Performance"]
  core --> visual["Visual"]
  detect --> conditional["Conditional specialists"]
  conditional --> local["Local / Maps"]
  conditional --> backlinks["Backlinks"]
  conditional --> google["Google APIs"]
  conditional --> ecommerce["E-commerce"]
  conditional --> drift["Drift"]
  technical --> report["Unified SEO report"]
  content --> report
  schema --> report
  sitemap --> report
  geo --> report
  images --> report
  performance --> report
  visual --> report
  local --> report
  backlinks --> report
  google --> report
  ecommerce --> report
  drift --> report
  report --> artifacts["SUMMARY.json<br/>FULL-AUDIT-REPORT.md<br/>ACTION-PLAN.md<br/>optional HTML/PDF"]
  class request,detect accent
  class core,conditional data
  class report,artifacts output
  classDef default fill:#07131c,stroke:#00d7e6,color:#f5fbff,stroke-width:1.4px
  classDef accent fill:#10151a,stroke:#ff9f1c,color:#fff7ed,stroke-width:2px
  classDef data fill:#06222a,stroke:#21e6c1,color:#ecfeff,stroke-width:1.5px
  classDef output fill:#15101a,stroke:#ff9f1c,color:#fff7ed,stroke-width:1.8px

Technical SEO

  • Robots.txt, sitemap discovery, canonical checks, indexability, URL hygiene.
  • Security headers, JavaScript rendering risk, mobile basics, IndexNow.
  • Core Web Vitals with INP, LCP, CLS, FCP, TTFB, and PageSpeed/CrUX integrations where available.

Content, GEO, And SXO

  • E-E-A-T and helpful content signals.
  • AI citation readiness, answer-first formatting, entity clarity, llms.txt support.
  • Search experience analysis: page type, user stories, persona fit, intent mismatch.

Structured Data

  • JSON-LD extraction and validation.
  • Schema recommendations for Organization, LocalBusiness, Product, Article, FAQ, Breadcrumb, and related types.
  • Generated schema artifacts for downstream use.

Local, Maps, And E-Commerce SEO

  • Local SEO signals, GBP readiness, citations, reviews, NAP consistency.
  • Maps intelligence via free sources and DataForSEO when configured.
  • Product schema, marketplace endpoints, merchant visibility, and e-commerce template checks.

Drift Monitoring

  • Capture SEO-critical baselines.
  • Compare deployments or page changes.
  • Track title, meta, headings, canonical, schema, robots, links, and content deltas.
%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","actorBkg":"#07131c","actorBorder":"#00d7e6","actorTextColor":"#f5fbff","actorLineColor":"#21e6c1","signalColor":"#21e6c1","signalTextColor":"#f5fbff","labelBoxBkgColor":"#10151a","labelTextColor":"#f5fbff","noteBkgColor":"#10151a","noteTextColor":"#f5fbff","activationBkgColor":"#06222a","activationBorderColor":"#ff9f1c","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
sequenceDiagram
  participant Before as Baseline
  participant Runner as Drift runner
  participant After as Current page
  participant Cache as .seo-cache
  participant Report as Drift report
  Before->>Runner: Capture titles, metas, canonicals, schema, headings
  Runner->>Cache: Store baseline snapshot
  After->>Runner: Re-check current SEO signals
  Cache->>Runner: Load prior snapshot
  Runner->>Report: Write changed, missing, and regressed signals

Deterministic Runners

  • scripts/run_skill_workflow.py standardizes output for every user-invokable workflow.
  • scripts/run_api_smoke_suite.py runs all supported workflows in one pass.
  • Setup-required workflows return structured fallback results instead of pretending live data exists.

Extensions

ExtensionSkillSetupNotes
DataForSEOseo-dataforseo, seo-maps, seo-ecommerce, seo-cluster./extensions/dataforseo/install.shLive SERP, keyword, backlinks, on-page, content, business data, AI visibility
Google APIsseo-google, seo-performancepython scripts/google_auth.py --setupPageSpeed, CrUX, GSC, URL Inspection, Indexing API, GA4
Firecrawlseo-firecrawl./extensions/firecrawl/install.shJS-rendered crawl, scrape, site map
Banana / Geminiseo-image-gen./extensions/banana/install.shAI image generation through nanobanana-mcp

Optional integrations enrich the same workflow surface. If credentials or MCP servers are missing, wrappers return setup_required or mcp_configured states with no fabricated live data.

%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","secondaryColor":"#06222a","tertiaryColor":"#ff9f1c","edgeLabelBackground":"#05080d","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
flowchart LR
  codex["Codex SEO workflows"] --> local["Local evidence<br/>HTML, robots, sitemaps, screenshots"]
  codex --> dfs["DataForSEO MCP<br/>SERP, keywords, backlinks, maps"]
  codex --> google["Google APIs<br/>GSC, PageSpeed, CrUX, GA4"]
  codex --> firecrawl["Firecrawl MCP<br/>JS crawl and site maps"]
  codex --> banana["Gemini / nanobanana<br/>SEO image assets"]
  local --> artifacts["Reports and .seo-cache"]
  dfs --> artifacts
  google --> artifacts
  firecrawl --> artifacts
  banana --> artifacts
  class codex accent
  class local,dfs,google,firecrawl,banana data
  class artifacts output
  classDef default fill:#07131c,stroke:#00d7e6,color:#f5fbff,stroke-width:1.4px
  classDef accent fill:#10151a,stroke:#ff9f1c,color:#fff7ed,stroke-width:2px
  classDef data fill:#06222a,stroke:#21e6c1,color:#ecfeff,stroke-width:1.5px
  classDef output fill:#15101a,stroke:#ff9f1c,color:#fff7ed,stroke-width:1.8px

Demo readiness:

python scripts/demo_readiness.py --target https://example.com --live-apis --workflows --json

One low-depth DataForSEO proof:

python scripts/demo_readiness.py --target https://example.com --live-apis --live-serp --serp-keyword "seo tools" --json

Headless/API Usage

Run a single workflow:

python scripts/run_skill_workflow.py --skill seo-technical https://example.com --json
python scripts/run_skill_workflow.py --skill seo-google https://example.com --json
python scripts/run_skill_workflow.py --skill seo-dataforseo https://example.com --json

Run the full smoke suite:

python scripts/run_api_smoke_suite.py https://example.com --json

Verify environment:

python scripts/verify_environment.py --target https://example.com --json

Bootstrap a clean runtime:

python scripts/bootstrap_environment.py --venv .venv --json

Artifacts are written to output/. Shared project cache is written to .seo-cache/. Both are ignored by git.

%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","secondaryColor":"#06222a","tertiaryColor":"#ff9f1c","edgeLabelBackground":"#05080d","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
flowchart LR
  cli["run_skill_workflow.py<br/>single workflow"] --> json["JSON result"]
  cli --> markdown["Markdown report"]
  cli --> cacheWrite[".seo-cache update"]
  suite["run_api_smoke_suite.py<br/>all workflows"] --> json
  suite --> outputRoot["output/api-smoke-*"]
  verify["verify_environment.py"] --> readiness["ready / setup_required<br/>capability status"]
  markdown --> outputRoot
  json --> outputRoot
  cacheWrite --> cache[".seo-cache"]
  class cli,suite,verify accent
  class cacheWrite,readiness data
  class json,markdown,outputRoot,cache output
  classDef default fill:#07131c,stroke:#00d7e6,color:#f5fbff,stroke-width:1.4px
  classDef accent fill:#10151a,stroke:#ff9f1c,color:#fff7ed,stroke-width:2px
  classDef data fill:#06222a,stroke:#21e6c1,color:#ecfeff,stroke-width:1.5px
  classDef output fill:#15101a,stroke:#ff9f1c,color:#fff7ed,stroke-width:1.8px

Architecture

The repository separates Codex-facing instructions, deterministic runtime code, optional provider setup, and validation contracts. That keeps the skill system usable in chat, installable as a suite, and testable from CI/API workflows.

%%{init: {"theme":"base","themeVariables":{"background":"#05080d","primaryColor":"#07131c","primaryTextColor":"#f5fbff","primaryBorderColor":"#00d7e6","lineColor":"#00d7e6","secondaryColor":"#06222a","tertiaryColor":"#ff9f1c","edgeLabelBackground":"#05080d","fontFamily":"Inter, ui-sans-serif, system-ui, sans-serif"}}}%%
flowchart TB
  manifest[".codex-plugin/plugin.json"] --> skillsRoot["skills/"]
  skillsRoot --> orchestrator["seo/SKILL.md<br/>routing and orchestration"]
  skillsRoot --> specialists["seo-*/SKILL.md<br/>specialist workflows"]
  agentsDir["agents/seo-*.toml"] --> specialists
  scriptsDir["scripts/<br/>deterministic runners"] --> specialists
  extensionsDir["extensions/<br/>optional MCP setup"] --> specialists
  references["skills/seo/references/<br/>thresholds and shared contracts"] --> specialists
  specialists --> cacheDir[".seo-cache/<br/>cross-skill memory"]
  specialists --> outputDir["output/<br/>reports and artifacts"]
  testsDir["tests/<br/>contract and smoke coverage"] --> manifest
  testsDir --> skillsRoot
  testsDir --> scriptsDir
  class manifest,orchestrator accent
  class skillsRoot,specialists,agentsDir,scriptsDir,extensionsDir,references,testsDir data
  class cacheDir,outputDir output
  classDef default fill:#07131c,stroke:#00d7e6,color:#f5fbff,stroke-width:1.4px
  classDef accent fill:#10151a,stroke:#ff9f1c,color:#fff7ed,stroke-width:2px
  classDef data fill:#06222a,stroke:#21e6c1,color:#ecfeff,stroke-width:1.5px
  classDef output fill:#15101a,stroke:#ff9f1c,color:#fff7ed,stroke-width:1.8px
codex-seo/
├── .codex-plugin/plugin.json        # Codex plugin manifest
├── skills/
│   ├── seo/SKILL.md                 # Main orchestrator
│   └── seo-*/SKILL.md               # 26 specialist workflows
├── agents/                          # 24 Codex TOML agent profiles
├── scripts/                         # Deterministic runners and API helpers
├── extensions/
│   ├── dataforseo/                  # DataForSEO MCP setup and docs
│   ├── firecrawl/                   # Firecrawl MCP setup and docs
│   └── banana/                      # Gemini/nanobanana image generation setup
├── hooks/                           # Quality-gate hooks
├── schema/                          # Schema.org templates
├── docs/                            # Architecture, commands, installation, MCP, demo
└── tests/                           # Contract and workflow tests

Design principles:

  • skills/ is the source of truth.
  • skills/seo/SKILL.md routes natural-language SEO requests.
  • TOML agents are Codex-native and mirror specialist workflows.
  • Runtime credentials stay in ~/.config/codex-seo/ or ~/.codex/settings.json.
  • Legacy claude-seo config/cache paths are read only as migration fallback.

More detail: docs/ARCHITECTURE.md.

Verification

Local release gate:

python -m pytest tests/
bash -n install.sh uninstall.sh
python -m compileall -q scripts hooks
python scripts/run_api_smoke_suite.py https://example.com --json

PowerShell parse check:

$files = Get-ChildItem -Recurse -Filter *.ps1
foreach ($f in $files) {
  $tokens = $null
  $errs = $null
  [System.Management.Automation.Language.Parser]::ParseFile($f.FullName, [ref]$tokens, [ref]$errs) > $null
  if ($errs.Count) { $errs; exit 1 }
}

Current GitHub CI runs:

  • dependency install
  • shell syntax checks
  • Python compile checks
  • --help checks for runner scripts
  • python -m pytest tests/
  • contract smoke checks for MCP-aware workflows

Requirements

  • Codex CLI with local skills support
  • Python 3.10+
  • Git
  • Optional: Playwright Chromium for screenshots and PDF reports
  • Optional: DataForSEO account for live SEO data
  • Optional: Google API credentials for PageSpeed/CrUX/GSC/GA4
  • Optional: Firecrawl API key for JS-rendered crawling
  • Optional: Google AI API key for Gemini/nanobanana image generation

Credentials And Cache

Codex SEO writes new local credentials and state to Codex-specific paths:

  • ~/.codex/settings.json for MCP server configuration
  • ~/.config/codex-seo/ for API configs and cost ledgers
  • ~/.cache/codex-seo/ for runtime caches
  • .seo-cache/ inside the active project for cross-skill summaries

Legacy ~/.config/claude-seo/ and ~/.cache/claude-seo/ paths are read only as migration fallback. Do not commit .seo-cache/, output/, .mcp.json, .env, OAuth tokens, service accounts, or provider keys.

Security

  • URL-aware scripts block private, loopback, reserved, multicast, unspecified, and metadata hosts.
  • Credential setup writes outside tracked repo files.
  • Sensitive local settings are expected to use 0600 file permissions.
  • DataForSEO calls use cost guardrails through scripts/dataforseo_costs.py.
  • Report vulnerabilities through SECURITY.md.

Uninstall

bash uninstall.sh

Windows:

powershell -ExecutionPolicy Bypass -File .\uninstall.ps1

Contributing

Use CONTRIBUTING.md for local setup and validation, CODE_OF_CONDUCT.md for project standards, SECURITY.md for vulnerability reporting, and CREDITS.md for project credits. Agent-facing project context is also available in llms.txt.

Related Projects

Credits

Special thanks to avalonreset for making the Codex conversion possible and for creating the initial Codex SEO version that this repository builds on.

Attribution

Original project and concept by AgriciDaniel in claude-seo. This Codex port preserves upstream SEO capabilities and adapts the runtime for Codex skills, TOML agents, plugin discovery, cache sharing, MCP extension setup, and API-safe wrappers.

Codex SEO is released under the MIT License. FLOW prompt references retain their upstream attribution and licensing notices where included.

内容与创作

低风险

  • 来源需自行核对维护者身份。
  • 未检测到明显脚本安装指令。
  • 未检测到明显外部权限要求。
  • 未检测到高风险命令。
  • 扫描发现:0 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/codex-seo.git
  3. 将 "skills/seo-local" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/codex-seo.git
  3. 将 "skills/seo-local" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/codex-seo.git
  3. 将 "skills/seo-local" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/codex-seo.git
  3. 将 "skills/seo-local" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/codex-seo.git
  3. 将 "skills/seo-local" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: seo-local
description: >
  Local SEO analysis covering Google Business Profile optimization, NAP
  consistency, citation health, review signals, local schema markup,
  location page quality, multi-location SEO, and industry-specific
  recommendations. Detects business type (brick-and-mortar, SAB, hybrid)
  and industry vertical (restaurant, healthcare, legal, home services,
  real estate, automotive). Use when user says "local SEO", "Google
  Business Profile", "GBP", "map pack", "local pack", "citations",
  "NAP consistency", "local rankings", "service area", "multi-location",
  or "local search".
user-invokable: true
argument-hint: "[url]"
license: MIT
metadata:
  author: AgriciDaniel
  version: "1.9.6"
  category: seo

Local SEO Analysis (March 2026)

Shared Data Cache

Step 0 -- Check shared data cache:

Before gathering, check .seo-cache/ for reusable context from related SEO skills. Reference: ../seo/references/shared-data-cache.md for schemas and dependency map.

Check these cache files when present:

  • .seo-cache/site-meta.json for domain, business type, industry, and crawl context

  • .seo-cache/audit-scores.json for prior full-audit priorities

  • .seo-cache/pages/{url-slug}/page-analysis.json for page-level context when a URL is provided

  • If found: parse and use clearly valid fields (note "Using cached [X] from [date]")

  • If missing, corrupt, or irrelevant: continue with fresh evidence

  • If the user says "refresh" or "re-run": ignore cache reads and overwrite on write

Key Statistics

MetricValueSource
GBP signals share of local pack weight32%Whitespark 2026
Proximity share of ranking variance55.2%Search Atlas ML study
Review signals share (up from 16%)~20%Whitespark 2026
Google searches seeking local info46%Industry data
Mobile "near me" searches leading to visit in 24h76%Google confirmed
ChatGPT/AI usage for local recommendations45% (up from 6%)BrightLocal LCRS 2026
ChatGPT local conversion rate15.9%Seer Interactive
Google organic local conversion rate1.76%Seer Interactive
Local pack ads growth (Jan 2025 to Jan 2026)1% to 22%Sterling Sky

Business Type Detection

Detect from page signals before analysis. This determines which checks apply.

Brick-and-Mortar

  • Physical street address visible in page content or footer
  • Google Maps embed with pin/directions
  • "Visit us at", "Located at", "Come see us"
  • Structured address in LocalBusiness schema

Service Area Business (SAB)

  • No visible physical address
  • Service area mentions: "serving [city/region]", "service area includes"
  • "We come to you", "On-site service", "Mobile [service]"
  • areaServed in schema without address.streetAddress

Hybrid

  • Both physical address AND service area language present
  • "Visit our showroom" combined with "We also serve [areas]"

Impact on checks: SABs skip embedded map verification and physical address consistency. Brick-and-mortar gets full NAP + map checks.


Industry Vertical Detection

Detect from page signals and GBP category patterns. Routes to industry-specific checks from references/local-schema-types.md.

VerticalDetection Signals
Restaurant/menu, menu items, reservations, cuisine types, food ordering, "dine-in", "takeout"
Healthcareinsurance accepted, patients, appointments, NPI, medical terms, "Dr.", HIPAA notice
Legalattorney, lawyer, practice areas, bar admission, case results, "free consultation"
Home Servicesservice area, emergency service, "free estimate", licensed/insured/bonded, "24/7"
Real Estatelistings, MLS, properties for sale/rent, agent bio, brokerage, "open house"
Automotiveinventory, VIN, test drive, dealership, service department, "new/used/certified"

If no vertical detected, use generic LocalBusiness analysis path.


Analysis Dimensions

1. GBP Signals (25%)

Primary category is the single most important local pack factor (Whitespark #1, score: 193). Incorrect primary category is the #1 negative factor (score: 176).

Check for:

  • GBP embed or reference detectable on page (Maps iframe, place ID, reviews widget)
  • Primary category appropriateness (infer from page content vs visible GBP data)
  • Evidence of secondary categories (optimal: 4 additional per BrightLocal)
  • GBP posts presence (no direct ranking impact per WebFX, but triggers Post Justifications)
  • Photos/video evidence (45% more direction requests with photos, Agency Jet)
  • Q&A content (deprecated Dec 2025, replaced by Ask Maps Gemini AI -- recommend recreating Q&A content as FAQ sections on website; GBP removed existing Q&A with no export available)
  • Google Verified badge eligibility (replaced Guaranteed/Screened in Oct 2025)
  • GBP link URL strategy: do NOT link to strongest website page (Sterling Sky Diversity Update -- risks suppressing organic rankings)
  • Business hours visibility on page (businesses open at search time rank higher, factor #5)

Scoring guide:

  • Full: GBP embed present, category signals align, posts active, photos present
  • Partial: Some GBP signals present but incomplete
  • Low: No visible GBP integration on website

2. Reviews & Reputation (20%)

Review velocity matters more than total count. The 18-day rule (Sterling Sky): rankings cliff if no new reviews for 3 weeks.

Check for:

  • Total Google review count visible on page or schema (magic threshold: 10, Sterling Sky)
  • Star rating (31% of consumers only use 4.5+, 68% only use 4+, BrightLocal 2026)
  • Review recency indicators (74% only care about reviews in last 3 months)
  • aggregateRating in schema (ratingValue, reviewCount, bestRating)
  • Third-party review presence (consumers use average of 6 review sites, BrightLocal 2026)
  • Owner response patterns (88% would use business that responds, BrightLocal)
  • Review gating detection: any pre-screening of satisfaction before directing to review platform is prohibited by Google (fake engagement policy) and FTC ($53,088/violation)

Industry-specific:

  • Healthcare: HIPAA prohibits confirming/denying reviewer is a patient in responses
  • Legal: attorney-client privilege considerations in review responses

Scoring guide:

  • Full: 10+ reviews, 4.5+ stars, recent activity, owner responses, multi-platform presence
  • Partial: Some reviews but gaps in recency, rating, or response rate
  • Low: <10 reviews, no recent activity, no responses, single platform only

3. Local On-Page SEO (20%)

Dedicated service pages = #1 local organic factor AND #2 AI visibility factor (Whitespark 2026).

Check for:

  • Title tag contains city/service keywords
  • H1 tag with local intent (city + service)
  • NAP (Name, Address, Phone) visible in page HTML (footer, contact section, header)
  • Dedicated service pages (one page per core service)
  • Location page quality for multi-location sites:
    • >60-70% unique content minimum (industry consensus, no Google-confirmed threshold)
    • Swap test: if you can swap the city name and content still makes sense, it's a doorway page (RicketyRoo method). HVAC company lost 80% rankings + 63% traffic after March 2024 Core Update for this pattern
    • Local photos, area-specific testimonials, local FAQs
  • Embedded Google Map (geographic signal reinforcement, not direct ranking factor -- lazy-load to mitigate speed impact)
  • Click-to-call button (tel: link) and contact form above the fold
  • Internal linking architecture: hub-and-spoke, every critical page within 3 clicks of homepage
  • 2-5 contextual internal links per 1,000 words with descriptive anchor text

Multi-location specific:

  • Store locator with individual crawlable URLs (SSR/SSG preferred over CSR)
  • Subdirectory structure: domain.com/locations/city-name/ (subdirectories consolidate link equity better, Bruce Clay: 50%+ traffic lift)
  • Each location page has unique LocalBusiness schema with @id

Scoring guide:

  • Full: City in title + H1, NAP visible, dedicated service pages, no doorway patterns, good internal linking
  • Partial: Some local signals but missing service pages or doorway page risk
  • Low: Generic title/H1, NAP not visible, thin location pages

4. NAP Consistency & Citations (15%)

Citations declining for traditional pack rankings but 3 of top 5 AI visibility factors are citation-related (Whitespark 2026). Google's July 2025 documentation update removed "directories" from prominence definition.

Check for:

  • NAP extraction: compare Name, Address, Phone from:
    1. Visible page HTML (footer, contact page)
    2. LocalBusiness JSON-LD schema
    3. Any visible GBP data
    • Flag any discrepancies between these three sources
  • Citation presence on Tier 1 directories (check via WebFetch or site: search patterns):
    • Google Business Profile signals on page
    • Yelp: site:yelp.com "Business Name"
    • BBB: site:bbb.org "Business Name"
    • Facebook business page references
  • Apple Business Connect awareness (usage doubled to 27%, BrightLocal 2026 -- recommend claiming)
  • Bing Places awareness (powers ChatGPT, Copilot, Alexa -- recommend claiming and optimizing)
  • Industry-specific directory recommendations: load references/local-schema-types.md for per-vertical citation sources
  • Data aggregator awareness: Data Axle, Foursquare, Neustar/TransUnion (recommend submission for downstream distribution)

Scoring guide:

  • Full: Consistent NAP across page/schema, Tier 1 citations detected, industry directories present
  • Partial: NAP present but inconsistencies, some citations missing
  • Low: NAP discrepancies, no detectable citations, no schema address

5. Local Schema Markup (10%)

Schema is NOT a direct ranking factor (John Mueller confirmed). But enables rich results (43% CTR increase, Webstix case study) and helps AI systems parse business information.

Check for:

  • LocalBusiness schema presence (extract JSON-LD blocks)
  • Required properties: name, address with PostalAddress sub-properties
  • Recommended properties: geo (minimum 5 decimal places, Confirmed), openingHoursSpecification, telephone, url, priceRange (<100 chars), image, aggregateRating
  • Correct subtype for industry -- load references/local-schema-types.md:
    • Restaurant using Restaurant not generic LocalBusiness
    • Legal using LegalService not deprecated Attorney
    • Auto dealer using AutoDealer not deprecated VehicleListing
    • Healthcare using MedicalClinic/Hospital/Dentist not generic MedicalBusiness
  • SAB-specific: areaServed with named cities (recommended, not in Google's official list but Schema.org supported)
  • Multi-location: each location page has own LocalBusiness with unique @id, linked via branchOf to Organization on homepage
  • Industry-specific schema patterns (per references/local-schema-types.md):
    • Restaurant: Menu + MenuSection + MenuItem + ReserveAction
    • Healthcare: Physician (Person) + MedicalSpecialty + sameAs to NPI
    • Legal: LegalService + Person + Service (practice areas)
    • Home Services: Subtype + areaServed + Service
    • Real Estate: RealEstateAgent + Person + RealEstateListing
    • Automotive: AutoDealer + Car + Offer (separate dept schemas)

Scoring guide:

  • Full: Correct subtype, all recommended properties, industry-specific patterns, valid JSON-LD
  • Partial: LocalBusiness present but generic type or missing recommended properties
  • Low: No local schema, or schema with errors/placeholder content

6. Local Link & Authority Signals (10%)

Links declining for local pack but remain ~26% of local organic ranking (Whitespark 2026, #2 factor group). "Best of" list placements = #1 AI visibility citation factor.

Check for:

  • Local backlink indicators detectable from page:
    • Chamber of Commerce mentions or links (high Trust Flow, ~80% more consumer visits, GlueUp)
    • BBB accreditation/badge (Google uses BBB for business verification)
    • Local news/press mentions
    • Community involvement signals (sponsorships, local events, partnerships)
  • "Best of" list presence (top AI visibility factor per Whitespark 2026)
  • Digital PR signals: 66.2% of PR practitioners now track AI citations as KPI (BuzzStream 2026)
  • Brand mentions correlate 3x more strongly with AI visibility than traditional backlinks (Ahrefs: 0.664 vs 0.218 correlation)
  • Link velocity benchmark: 5-10 quality local links/month for small businesses (consensus)

Scoring guide:

  • Full: Local authority signals visible (chamber, BBB, press), community involvement evident
  • Partial: Some authority signals but limited local link indicators
  • Low: No detectable local authority signals

AI Search Impact on Local

Do not duplicate seo-geo analysis. Provide local-specific AI context and recommend /seo geo <url> for full analysis.

Key local AI facts:

  • AI Overviews appear on up to 68% of local searches (Whitespark Q2 2025)
  • ChatGPT converts at 15.9% vs Google organic at 1.76% (Seer Interactive)
  • 3 of top 5 AI visibility factors are citation-related (Whitespark 2026)
  • ChatGPT does NOT access GBP directly -- sources from Bing index, Yelp, TripAdvisor, BBB, Reddit
  • Bing Places is critical: powers ChatGPT, Copilot, Alexa
  • AI-powered local packs (mobile US) show only 1-2 businesses, 32% fewer shown (Sterling Sky)

Recommendation: Run /seo geo <url> for comprehensive AI search visibility analysis including citability scoring, llms.txt check, and brand mention audit.


Reference Files

Load on-demand as needed:

  • references/local-seo-signals.md: Ranking factors, review benchmarks, citation tiers, GBP feature status, algorithm updates
  • references/local-schema-types.md: LocalBusiness subtypes by industry, schema patterns, citation sources per vertical

Output

Generate LOCAL-SEO-ANALYSIS-{domain}.md with:

  1. Local SEO Score: XX/100 with dimension breakdown table
  2. Business type: Brick-and-mortar / SAB / Hybrid
  3. Industry vertical detected + industry-specific findings
  4. GBP optimization checklist (detected signals vs missing)
  5. Review health snapshot (rating, count, velocity indicators, response patterns)
  6. NAP consistency audit (page vs schema discrepancies, cross-source comparison)
  7. Citation presence check (Tier 1 directory status)
  8. Local schema status (present/missing/malformed + ready-to-use fix)
  9. Location page quality (if multi-location: unique content %, doorway risk, store locator)
  10. Top 10 prioritized actions (Critical > High > Medium > Low)
  11. Limitations disclaimer: What this analysis could NOT assess (geo-grid ranking, Domain Authority, comprehensive backlinks, GBP Insights data, real-time local pack position) and which paid tools can fill those gaps

Quick Wins

  1. Claim and optimize Apple Business Connect (usage doubled to 27%)
  2. Claim and optimize Bing Places (powers ChatGPT, Copilot, Alexa)
  3. Fix any NAP discrepancies between page, schema, and GBP
  4. Add LocalBusiness schema with correct industry subtype
  5. Add geo coordinates with 5+ decimal precision
  6. Ensure phone number uses tel: link for click-to-call
  7. Add city + service keyword to title tag and H1

Medium Effort

  1. Create dedicated page for each core service (Whitespark: #1 local organic factor)
  2. Build review generation strategy maintaining 18-day minimum cadence
  3. Submit to three data aggregators (Data Axle, Foursquare, Neustar/TransUnion) for downstream distribution
  4. Claim industry-specific directory listings (per vertical recommendations)
  5. Add industry-specific schema patterns (Menu for restaurants, Physician for healthcare, etc.)
  6. Implement hub-and-spoke internal linking for service/location pages

High Impact

  1. Build local digital PR strategy targeting "best of" lists (#1 AI visibility factor)
  2. Develop unique, non-swappable content for each location page (>60% unique)
  3. Establish presence on platforms ChatGPT sources from (Yelp, TripAdvisor, BBB, Reddit)
  4. Pursue Chamber of Commerce and BBB membership (authority + verification signals)
  5. Create community involvement content (sponsorships, local events, partnerships)

DataForSEO Integration (Optional)

If DataForSEO MCP tools are available, use local_business_data for live GBP data extraction, google_local_pack_serp for real-time local pack positions, and business_listings for automated citation auditing across directories.


Error Handling

ScenarioAction
URL unreachable (DNS failure, connection refused)Report the error clearly. Do not guess site content. Suggest the user verify the URL and try again.
No local signals detected on pageReport that no local business indicators were found. Suggest the user confirm this is a local business and provide the GBP listing URL if available.
NAP not found in page HTMLCheck schema and meta tags. If still absent, flag as Critical issue. Recommend adding visible NAP to footer and contact page.
Industry vertical unclearPresent the top two detected verticals with supporting signals. Ask the user to confirm before applying industry-specific recommendations.
Multi-location with 50+ location pagesApply the quality gates from seo orchestrator: WARNING at 30+ pages (enforce 60%+ unique), HARD STOP at 50+ pages (require user justification before continuing).

FLOW Framework Integration

For prompt-guided local optimization, use /seo flow local <url> — FLOW's 11 local-stage prompts cover GBP optimization, meta descriptions, title tags, and structured local audit workflows.

Write to shared data cache

After completing all work, write a concise JSON summary to .seo-cache/ when the workflow produced durable findings. Use the schemas and naming rules in ../seo/references/shared-data-cache.md; include at least cache_type, analyzed_at, source URL/domain, key findings, issues, recommendations, and tool limitations. Add .seo-cache/ to .gitignore if it is missing.

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!