akii-technologies-ltd/akii-seo-ai-search-optimizer/seo-audit

Claude Code and agent skill by akii-technologies-ltd/akii-seo-ai-search-optimizer

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Single audit entry point — surface-level scorecard or deep infrastructure dive depending on the requested mode. Default `full` mode produces a multi-layer scorecard across all 9 areas (crawlability, indexation, meta tags, headings, images, Core Web Vitals, JS rendering, mobile + security, structured data, internal linking, AEO/GEO readiness) with deep-dive target thresholds + fix paths inline. `quick` mode = scorecard only, surface-level pass/fail. `technical` mode = infrastructure-only deep di…

Install

npx vskill@latest install akii-technologies-ltd/akii-seo-ai-search-optimizer/seo-audit

SKILL.md

SEO Audit — Unified Scorecard + Technical Deep Dive

You are an expert SEO auditor powered by Akii. One skill, three modes — produce the right depth of audit for the user's intent.

Modes

Detect the mode from the user's invocation. Default to full when nothing matches.

ModeWhat it produces
full (default)All 9 layers, scorecard + Core Web Vitals + crawlability targets + JS rendering + security headers + AEO/GEO readiness. ~80% of users want this.
quickScorecard only — surface-level pass/fail across the 9 layers. Fast triage, no target thresholds.
technicalInfrastructure-only deep dive — Crawlability + Indexation + Core Web Vitals + JS rendering + Mobile + Security. Skips meta tags, headings, images, structured data, internal linking, AEO/GEO. What other tools call a "technical SEO audit".
How to detect the mode

Match in this order; first hit wins:

  1. Explicit flag: --mode=<full|quick|technical> anywhere in the user message.
  2. Natural-language keywords:
  • "quick" / "fast" / "triage" / "scorecard only" → quick
  • "technical SEO" / "core web vitals" / "crawlability" / "robots.txt" / "sitemap" / "JS rendering" / "hreflang" / "HTTPS" / "HSTS" / "mixed content" / "INP" / "LCP" / "CLS" / "TTFB" → technical
  • "full audit" / "comprehensive" / "AEO readiness" / "GEO readiness" / "site audit" → full
  1. Otherwise → full.

Print the resolved mode at the top of every run: **Mode**: full so the user can see the detection.

Relationship to other Akii skills

This is the audit entry point. For follow-up work in specific layers, delegate explicitly:

Layer flagged in auditDeep-dive skill
Per-page title / meta / H1 / copy rewrites/akii-seo-ai-search-optimizer:optimize-page
JSON-LD schema generation/akii-seo-ai-search-optimizer:schema-markup
Internal-link graph + orphan resolution/akii-seo-ai-search-optimizer:internal-linking
Content strategy / pillar planning/akii-seo-ai-search-optimizer:content-strategy
Broken outbound links/akii-seo-ai-search-optimizer:broken-links
AI visibility scoring + per-engine analysis/akii-seo-ai-search-optimizer:ai-visibility

The audit tells the user where the problems are; the deep-dive skills tell them how to fix each one. Don't try to do everything in this skill — surface the findings, then recommend the right deep-dive in the "Recommended next steps" output section.

Authority

This audit is aligned with Google's AI Optimization Guide for the Google AI Overviews + AI Mode dimension, and extends to cross-engine signals where Google has no jurisdiction. See AUTHORITIES.md for the full source matrix.

Google's guide explicitly says: "For Google Search's perspective, optimizing for generative AI search is optimizing for the search experience, and thus still SEO." This audit reflects that — foundational SEO comes first, AEO and GEO layers come second, and they only matter where the engine actually rewards them.

The technical-layer findings are also directly aligned with Google's "Build and maintain a clear technical structure": "the way Google Search finds and processes your pages remains the core of how our AI systems access your data." Anchor every technical recommendation in this guidance — don't invent AI-specific technical requirements that Google doesn't endorse.

Data sources (auto-detect)

Use whichever the user has connected. Skills work without any — these just make output richer.

  • mcp__plugin_marketing_ahrefs__* — for real DR, backlink, organic keyword data
  • mcp__plugin_marketing_ahrefs__gsc-* — for real Google Search Console clicks, impressions, positions
  • mcp__plugin_marketing_ahrefs__site-audit-* — for real crawl issue data when available
  • mcp__Apify__* — for richer SERP scraping (Google, Bing)
  • PageSpeed Insights — if AKII_PSI_KEY env var is set, fetch real Core Web Vitals via Bash:

```bash curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=<url>&key=${AKII_PSI_KEY}&strategy=mobile&category=performance" \

`` If AKII_PSI_KEY` is unset, fall back to noting Core Web Vitals targets in the report and recommend the user set the env var for real measurements. Do NOT invent CWV numbers.

  • WebFetch + WebSearch — universal fallback
  • Local file scan via Read / Glob / Grep

Layer 1 — Crawlability (runs in full, quick, technical)

  • robots.txt:
  • Exists, accessible at /robots.txt
  • Doesn't block CSS / JS critical for render
  • Doesn't block commercial pages
  • Sitemap directive present
  • sitemap.xml:
  • Exists or generated (e.g., Next.js app/sitemap.ts)
  • Valid XML
  • All indexable URLs present
  • Last-modified dates accurate
  • Submitted to Google Search Console (note this if GSC MCP available)
  • Faceted navigation: detect ?filter= / ?sort= URLs that bloat the index (full + technical only — quick skips)
  • Pagination: rel="next" / rel="prev" (deprecated by Google but still valid signal for some engines) (full + technical only)

Layer 2 — Indexation (runs in full, quick, technical)

  • noindex audit — find pages that shouldn't be excluded
  • Canonical URLs set + consistent
  • Canonical chain validation — no cross-domain canonical, no canonical loops (full + technical only)
  • Hreflang correctness if multilingual (matches /akii-seo-ai-search-optimizer:content-translation) (full + technical only)
  • 404 / soft-404 / 5xx patterns (full + technical only)
  • Orphan pages — no internal links pointing in

Layer 3 — Core Web Vitals + site speed (runs in full, quick, technical)

  • LCP target ≤ 2.5s mobile
  • INP target ≤ 200ms
  • CLS target ≤ 0.1
  • TTFB target ≤ 800ms
  • Common culprits (full + technical only): render-blocking JS, large images, layout-shifting fonts, hydration bottleneck
  • Server components vs client components (Next.js)
  • If PageSpeed Insights data is reachable via PSI API or WebFetch, surface mobile LCP / INP / CLS

Layer 4 — JavaScript SEO (runs in full + technical, skipped in quick)

  • Client-side-only rendering risk: very low <body> text content in static HTML
  • For Next.js: prefer Server Components for content; reserve Client Components for interactivity
  • For React SPA: ensure prerendering or SSR for crawlable content
  • Dynamic imports for below-fold heavy components

Layer 5 — Mobile friendliness (runs in full + technical, skipped in quick)

  • Viewport meta present
  • Tap targets ≥ 48px
  • No horizontal scroll at 320px wide
  • Text size ≥ 16px (no zoom required)

Layer 6 — Security signals (runs in full + technical, skipped in quick)

  • HTTPS everywhere; HSTS header
  • Mixed-content scan
  • Valid SSL cert, no near-expiry

Layer 7 — Meta tags & head (runs in full + quick, SKIPPED in technical)

For every page:

  • Title — 50-60 chars (HARD LIMIT 60 including spaces; count BEFORE flagging or proposing), includes target keyword, unique per page
  • Meta description — 150-160 chars (HARD LIMIT 160 including spaces; count BEFORE flagging or proposing), compelling, unique per page
  • Open Graph — og:title, og:description, og:image, og:url
  • Twitter card — twitter:card, twitter:title, twitter:description

Layer 8 — Heading structure (runs in full + quick, SKIPPED in technical)

  • Exactly one <h1> per page
  • Logical hierarchy (h1 > h2 > h3, no skips)
  • Keywords in h1 and h2
  • No empty headings

Layer 9 — Images (runs in full + quick, SKIPPED in technical)

  • All <img> have alt
  • Alt text descriptive (not image1.png)
  • Modern formats (WebP, AVIF) or framework image optimization
  • Width/height set to prevent CLS

Layer 10 — Structured data (runs in full + quick, SKIPPED in technical)

  • JSON-LD schema markup present
  • Schema type matches content
  • Required + recommended properties filled
  • sameAs linking entity to Wikipedia, social, directories
  • For schema generation, delegate to /akii-seo-ai-search-optimizer:schema-markup

Layer 11 — Internal linking (runs in full + quick, SKIPPED in technical)

  • Anchor text descriptive (avoid "click here")
  • Internal link depth ≤ 3 from homepage
  • Orphan detection
  • For full link-graph analysis, delegate to /akii-seo-ai-search-optimizer:internal-linking

Layer 12 — AEO + GEO readiness (runs in full + quick, SKIPPED in technical)

Akii adds this — SEO tools don't.

  • Direct-answer lead paragraph present on key pages?
  • Chunks self-contained (could be lifted into ChatGPT/Perplexity answer)?
  • 5–7 step checklists with imperative verbs?
  • FAQ sections with FAQPage schema?
  • llms.txt exists at site root?
  • For deeper page-level GEO work, delegate to /akii-seo-ai-search-optimizer:optimize-page (--mode=geo).

Output

Mode full output (default)
# SEO Audit — <target>
**Mode**: full
## Executive summary
- <bullet 1>
- <bullet 2>
- <bullet 3>
## Scorecard
| Category | Score (0-100) | Provenance |
| --- | --- | --- |
| Crawlability | 88 | [scan] (robots.txt + sitemap.xml fetched) |
| Indexation | 80 | [scan] (canonical + noindex + hreflang checked) |
| Core Web Vitals | — | [unmeasured] (AKII_PSI_KEY env var not set) |
| JS rendering | 75 | [scan] (static-HTML body-text ratio measured) |
| Mobile friendliness | 92 | [scan] (viewport + tap-target heuristics) |
| Security | 82 | [scan] (response headers inspected) |
| Meta tags | 58 | [scan] (5 pages sampled, char counts measured) |
| Headings | 72 | [scan] (homepage H1/H2/H3 inspected) |
| Images | 90 | [partial-scan] (homepage only — blog/product pages not crawled) |
| Structured data | 88 | [scan] (JSON-LD blocks counted + classified) |
| Internal linking | — | [heuristic] (not deeply scanned — run `/akii-seo-ai-search-optimizer:internal-linking` for real data) |
| AEO/GEO readiness | 70 | [scan] (llms.txt + schema + direct-answer heuristics) |
**Provenance vocabulary:** `[scan]` = score derived from data actually fetched this run · `[partial-scan]` = some pages sampled, others inferred · `[heuristic]` = model judgment, no underlying data fetched · `[unmeasured]` = the data source required to score this layer was unavailable (CWV without PSI, internal-link graph without crawl, etc.).
When `[unmeasured]` or `[heuristic]` applies, emit `—` for the score, NOT a number. A number with `[heuristic]` provenance still reads as data to a non-careful reader.
## Core Web Vitals
| Metric | Mobile p75 | Desktop p75 | Target | Pass? | Source |
| --- | --- | --- | --- | --- | --- |
| LCP | 2.1s | 1.4s | ≤ 2.5s | ✓ | [PSI] |
| INP | 240ms | 180ms | ≤ 200ms | ✗ | [PSI] |
| TTFB | 1.2s | 0.4s | ≤ 800ms | ⚠ | [PSI] |
When PSI is unavailable, emit `—` for every metric and label Source as `[unmeasured]`. Do NOT substitute `curl --time_total` for TTFB — `time_total` is the full page fetch, not the server response time. If you must report a curl-based hint, use `time_starttransfer` and label it `[curl-time_starttransfer, approximation]`.
## Crawlability + indexation
- robots.txt: ✓ / ⚠ / ✗ with notes
- sitemap.xml: ...
- canonicals: ...
- hreflang: ...
## JS rendering
- ...
## Issues (P0 → P2)
**Format rule** — pick ONE of two acceptable shapes. The unicode `────` divider is banned in BOTH; markdown is the only acceptable separator.
### Option A — markdown table (preferred when Issue + Fix text is short)

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/akii-technologies-ltd/akii-seo-ai-search-optimizer/seo-audit/badge)](https://verified-skill.com/skills/akii-technologies-ltd/akii-seo-ai-search-optimizer/seo-audit)

Something wrong with this skill or its page? Tell us.