mcpField
S
seo-audit-report

seo-audit-report

github.com/younesbenallalMarketing & growth140 installsUpdated 2d ago
Repository

About seo-audit-report

seo-audit-report is a skill for building interactive, client-side SEO reports for projects that repeatedly inspect Search Console data in a browser. It outlines data import, browser-side persistence, filtering, and report views.

Key features

  1. 01Import GSC data from CSV and JSON
  2. 02Store data in-browser with sql.js
  3. 03Persist database bytes in IndexedDB
  4. 04Show clicks, impressions, and CTR metrics
  5. 05Filter by query, page, and date

Use cases

  1. 01Review Search Console exports repeatedly in a browser
  2. 02Import CSV or JSON and retain data between sessions
  3. 03Filter pages and queries to identify CTR opportunities

MCP support

The skill requires a specified MCP connection for GSC access, or JSON/CSV exported through that MCP. It specifies no fallback data source.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/younesbenallal/seo-skills --skill seo-audit-report

After installing, type/seo-audit-reportin Claude Code to confirm it loaded.

Details

From the project README

SEO audit report (scaffold instructions)

Use this skill when the user wants an interactive, client-side report for inspecting Search Console exports or connected data repeatedly in the browser.

Context and preflight

Run the shared preflight in ../docs/credentials-and-tooling.md before discovery or implementation. Reuse .seo-context.md when it exists. Resolve the project's canonical GSC property from accessible URL-prefix and sc-domain: variants. Record unresolved assumptions rather than inventing business priorities or edit permission.

Required inputs

  • Project directory name.
  • Data source: live connected GSC data or an export created from the connected MCP.
  • Persistence target: a serialized sql.js database persisted in the browser's IndexedDB.

Tooling & credentials

  • Auth mode: mcp
  • Requires: connected GSC access through the required MCP
  • Input path: live GSC data or an MCP export materialized to JSON/CSV
  • Fallback: none

Workflow

  1. Scaffold the project

    • Run npm create vite@latest <project-name> -- --template react-ts (or bun create vite@latest ... if Bun is preferred).
    • Enter the new folder and install deps (npm install/bun install).
    • Keep the generated project structure unless the requested report needs a different route or entry point.
  2. Add dependencies

    • Install react, react-dom (if not already) along with zod.
    • Install runtime helpers: sql.js for the in-browser SQLite engine and idb-keyval for persisting exported database bytes.
    • Keep typescript + vite dev dependencies aligned with the template.
  3. Implement the data layer

    • Configure sql.js with the sql-wasm.wasm bundle and isolate initialization in a reusable helper.
    • Parse CSV and JSON inputs into { date, query, page, clicks, impressions, ctr, position }, coercing numeric fields and handling missing optional values consistently.
    • Store normalized rows in a gsc_rows table with indexes on date, query, and page.
    • Export the database to bytes after imports and persist those bytes with idb-keyval; restore them when the app loads.
  4. Implement the report views

    • Surface total clicks, impressions, CTR, and weighted position, plus top queries, top pages, and CTR-gap opportunities.
    • Make opportunity thresholds and date/page/query filters visible and adjustable rather than hiding them in query code.
    • Include file import, optional fetch from /gsc/latest.json, custom filters, and reset controls.
  5. Polish and document the scaffold

    • Style the layout with CSS variables and card/grid patterns, keeping readability front-and-center with a sticky header, callouts, and a narrow text width.
    • Add a small sample export such as public/gsc/latest.json when it helps demonstrate the flow.
    • Document the accepted import schema, persistence model, and CTR-opportunity heuristics in the README or nearby comments.
  6. Run and validate

    • Start the dev server with npm run dev or bun run dev and load a representative CSV/JSON export.
    • Exercise import, reload persistence, filters, reset, and the optional /gsc/latest.json fetch path. Check the browser console for worker/WASM or IndexedDB errors.
    • Run the project's available typecheck, lint, and build commands. In the README, state which commands ran and any live-GSC or browser limitations.
    • Remember that sql.js executes SQLite in the browser; IndexedDB stores the serialized database bytes—it is not the SQLite engine.

Comments

Markdown supported