| name | seo-audit |
| description | Code-generation skill for diagnosing SEO problems in this repo and producing a repo-specific implementation brief or fix list. Use only when the task should lead to metadata, routing, schema, rendering, or internal-linking code changes. |
| metadata | {"family":"seo","owner":"seo + engineering","last_reviewed":"2026-04-30T00:00:00.000Z","version":"1.0.0","source_version":"2.0.0"} |
SEO Audit
This is a code-generation skill. Use it for diagnosis that directly feeds repo implementation work.
Use When
- rankings, indexation, or discoverability appear weak
- a page type may be missing metadata, canonicals, schema, or links
- the user asks for an SEO audit that should end in code changes
- you need to identify the highest-value SEO fixes before implementing them
Do Not Use When
- the task is already clearly โimplement metadata/schema/canonical changesโ
Then use
seo-page-rules or schema-markup.
- the task is primarily AI citation/extractability work
Then use
ai-seo.
- the task is mostly URL hierarchy or navigation design
Then use
site-architecture.
First Files To Inspect
nextjs-app/AGENTS.md
src/lib/seo/metadata.ts
src/lib/site/root-metadata.ts
src/shared/seo/JsonLd.tsx
src/shared/sitemap/*
- relevant
src/app/**/page.tsx
Audit Order
- crawlability and rendering
- metadata and canonicals
- structured data
- sitemap and robots coverage
- internal linking and orphan risk
- page-type completeness
When the audit needs SERP context (who is winning the keyword, what their pages look like), pull data via the semrush-research skill โ recipe competitor-snapshot.md for one competitor, keyword-gap.md for a missed-cluster check. Do not guess SERP data.
Repo-Specific Checks
Rendering and Crawlability
- confirm the important content is server-rendered HTML
- confirm critical pages are not hidden behind client-only shells
- confirm dynamic routes use the expected static/rendering pattern when applicable
Metadata
- every public page exports static
metadata or generateMetadata
- titles and descriptions are specific, not duplicated boilerplate
- canonicals point to the production URL shape
Structured Data
- use shared schema helpers instead of ad hoc JSON-LD duplication
- confirm the chosen schema matches the page type
Sitemap and Robots
- important routes are represented in shared sitemap logic
- no important pages are accidentally blocked or noindexed
Internal Linking
- important pages are reachable through hub/spoke or related-content patterns
- no obvious orphan routes
Schema Detection Limitation
Do not report โno schema existsโ from static fetch alone.
To confirm JSON-LD reliably, use:
- rendered DOM inspection
- Google Rich Results Test
- repo code inspection of schema components
Required Output
Return an SEO Audit Brief with:
scope
top_issues
likely_root_causes
owning_files_or_layers
recommended_skill_handoff
verification_commands
Handoff Rule
- if the problem is implementation-heavy, hand off to
seo-page-rules
- if the problem is schema-specific, hand off to
schema-markup
- if the problem is IA/internal-linking, hand off to
site-architecture