seo-audit-report
SEO audit report (scaffold instructions)
Use this skill when the user wants an interactive, client-side report that imports Search Console exports and keeps them in a lightweight SQLite database for repeated inspection.
Shared context first
Before asking repeated discovery questions, check whether .agents/seo-context.md exists.
If it does:
- read it first
- reuse the saved site, KPI, and tooling context
- ask only for project-specific scaffold details that are still missing
Required inputs
- Project directory name.
- Data source: GSC MCP export (JSON/CSV) or manual file.
- Persistence target: in-browser IndexedDB via
sql.js.
Tooling & credentials
- Auth mode:
manual-file - Requires: no live credential
- Input path: GSC MCP export or manual CSV/JSON file
- Fallback: manual file remains the default fallback when live MCP access is unavailable
Follow the shared setup and missing-access rules in docs/credentials-and-tooling.md.
Workflow
-
Scaffold the project
- Run
npm create vite@latest <project-name> -- --template react-ts(orbun create vite@latest ...if Bun is preferred). - Enter the new folder and install deps (
npm install/bun install). - Use
exa(or web search) to confirm the latest Vite React template command if the tooling switches.
- Run
-
Add dependencies
- Install
react,react-dom(if not already) along withzod. - Install runtime helpers:
sql.jsfor the SQLite engine andidb-keyvalfor Persisting exported bytes. - Keep
typescript+vitedev dependencies aligned with the template.
- Install
-
Implement the app
- Configure
sql.jsusing thesql-wasm.wasmbundle; wrap initialization in a helper to reuse across hooks. - Build an import flow that accepts CSV/JSON and normalizes rows into
{ date, query, page, clicks, impressions, ctr, position }. - Store normalized rows into a
gsc_rowstable with indexes ondate,query, andpage, then export the database and persist viaidb-keyval. - Surface KPIs: total clicks/impressions/CTR/weighted position, top queries, top pages, and CTR gap opportunities filtered by impressions/position buckets.
- Include file + fetch controls (
<input type="file">, fetch from/gsc/latest.json), custom filters, and a reset button. - Style the layout with CSS variables and card/grid patterns, keeping readability front-and-center (sticky header, callouts, narrow text width).
- Configure
-
Run & iterate
- Start the dev server with
npm run devorbun run dev. - Load sample exports (provide a
public/gsc/latest.jsonfor convenience) and verify persistence across reloads. - Document expected import schema and heuristics for CTR opportunities in README or inline comments.
- Start the dev server with
Tool checks
- When unsure which packages to add or how to initialize
sql.js, run anexasearch such asexa "vite react sql.js setup"to gather up-to-date commands. - Refer to the
Skill creation processsection ofseo-skills/README.mdwhen expanding the skill further.
More from younesbenallal/seo-skills
illustration-ideas
Generate high-quality illustration/chart ideas for a URL, including placement + layout suggestions (HTML-like or Mermaid).
37seo-roast
Roast a landing page or article from an SEO perspective (technical + on-page + content/intent). Optionally generate a screenshot-rich HTML report.
23geo-state-report
Create a GEO (LLM visibility) tracking report using Bright Data datasets (mandatory) and output an HTML report with actions.
20search-intent-coverage
Determine what to cover to satisfy search intent by analyzing SERPs (preferred) or extracting competitor pages to Markdown.
19subkeyword-injector
For a given URL, pull Search Console queries it already ranks for and propose (or apply) content edits to capture more long-tail traffic.
16programmatic-seo
When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," or "integration pages." For auditing existing SEO issues, see seo-audit.
15