google-seo-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited google-seo-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Audits a page across every Google-discoverability dimension and returns a scored report with prioritized, cited recommendations. Every recommendation must be grounded in the local corpus via the `google-search-ads-analytics-docs` skill (.claude/skills/google-search-ads-analytics-docs/search.py) and cite a Google source_url.
For a thorough, adversarially-verified audit, run the bundled `seo-audit` workflow (Workflow tool), saved at .claude/workflows/seo-audit.js. It implements the four phases below and scales agents to the work - no fixed cap: Snapshot -> Verify (one agent per dimension) -> Refute (adversarial verifiers per finding, false positives dropped) -> Synthesize (AUDIT-<page>.md). Pass the target as args (URL or local path); optional { refuters: N } raises the adversarial panel size. If the Workflow tool isn't available, do the same steps manually with the Task tool, below.
with Glob "**/*.html" (ignore .venv/, node_modules/). The repo's page is app/index.html. Audit each found page.
Use a per-target output file so multiple pages don't clobber each other:
.venv/bin/python3 .claude/skills/google-seo-audit/fetch_page.py <url-or-path> --out /tmp/snap-<page-slug>.jsonProduces a JSON of: status/headers/HTTPS, title, meta description, meta robots, canonical, viewport (mobile), lang + hreflang, H1/heading outline, word count, images+missing-alt, JSON-LD structured data (types + a parse-OK flag - not schema validation; the structured-data agent must still verify required props), Open Graph, analytics/ads tags (GA4/GTM/Ads), and robots.txt (remote only).
Spawn the dimensions in parallel (Task tool, or the Workflow). Give each agent the snapshot JSON and tell it to consult `google-search-ads-analytics-docs` first - run .venv/bin/python3 .claude/skills/google-search-ads-analytics-docs/search.py "<topic>" (and --doc <doc_id> to resolve a citation), then read the matched files - and cite source_url on every finding. Dimensions:
meta robots /X-Robots-Tag, canonical, robots.txt, sitemap. KB: crawling-indexing/*.
exactly one H1, heading hierarchy, content depth, helpful-content signals. KB: fundamentals/seo-starter-guide, creating-helpful-content, appearance/snippet, appearance/title-link.
props, rich-result eligibility. KB: appearance/structured-data/*.
intrusive-interstitial risk, CWV considerations. KB: appearance/page-experience, appearance/core-web-vitals, crawling-indexing/mobile/*.
lang, hreflang alternates, locale handling(only if the page is multilingual). KB: specialty/international/*.
events/Measurement Protocol readiness. KB: google-analytics/*, google-ads-help/*.
Each finding: {check, verdict: pass|warn|fail, evidence, recommendation, severity: high|medium|low, citation_url}.
Aggregate into AUDIT-<page>.md:
concrete change and a source_url citation.
(e.g. hreflang on a single-language page).
.venv/bin/python3) with Scrapling, and thegoogle-search-ads-analytics-docs skill present for grounding.
flag those as "deployment-dependent, verify on the live URL".
test. fetch_page.py issues a normal browser-like GET to the target and its /robots.txt; do not point it at internal/private hosts you don't control (it has no SSRF allow-list - it fetches whatever URL you pass).
written only to the local --out JSON (or stdout). Nothing is sent anywhere except the HTTP GET to the page being audited.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.