agentleFS
ZachArticulateVZachArticulateV/designer-pro-and-seo/skills/seo-technical/SKILL.md

seo-technical

Skill10 starsChanged 26 days agoMITView on GitHub

10-dimension technical SEO audit with a fix per finding and a deterministic lab score — crawlability (RFC 9309 AI-crawler policy, redirects), indexability (noindex / X-Robots-Tag, canonical conflicts, the 2 MB Googlebot index limit), security (true mixed content, headers), URL structure, mobile, Core Web Vitals lab risks (lazy LCP image, render-blocking scripts, CLS), structured data, JavaScript rendering (client-rendered shells), and SERP presentation. Trigger when the user says "technical seo", "crawl issues", "robots.txt", "core web vitals", "site speed", "security headers", "indexability", "javascript seo", or "indexnow".

  • Reads credentials

38 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use seo-agentic, seo-maps and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AgriciDanielSkill

    seo-agentic

    Audit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Use when the user asks whether AI agents can use or browse the site, or about llms.txt or WebMCP. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).

    Also in 5 projects that use this

  • timruebenachSkill

    seo-maps

    Maps intelligence for local SEO — geo-grid rank tracking, GBP profile auditing via API, review intelligence across Google/Tripadvisor/Trustpilot, cross-platform NAP verification (Google/Bing/Apple/OSM), competitor radius mapping, and LocalBusiness schema generation from API data. Three-tier capability: free (Overpass + Geoapify), DataForSEO (full intelligence), DataForSEO + Google (maximum coverage). Use when user says "maps", "geo-grid", "rank tracking", "GBP audit", "review velocity", "competitor radius", "maps analysis", "local rank tracking", "Share of Local Voice", or "SoLV".

    Also in 17 projects that use this

  • megastepSkill

    seo-images

    Image optimization analysis for SEO and performance. Checks alt text, file sizes, formats, responsive images, lazy loading, and CLS prevention. Use when user says "image optimization", "alt text", "image SEO", "image size", or "image audit".

    Also in 25 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 35 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every finding is a {dimension, severity, finding, fix} record.

    line 51
  2. Very specific:

    Structured data: if missing/weak, hand to seo-schema.

    line 67
  3. Very specific:

    Tier 1 — Google PSI / CrUX (free key, via seo-google): When a Google key is set, pull real *field* Core Web Vitals (LCP/CLS/INP) to …

    line 76
  4. Very specific:

    Tier 4 — guided: If nothing is connected, deliver the lab audit and name the field-CWV gap, pointing to a free Google PSI/CrUX key via …

    line 84
  5. Distinctive:

    Always end by stating which tier ran and what field data a higher tier would add.

    line 99

“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

seo-technical

Family: seo Status: Stable

Purpose

The technical spine of SEO. Runs scriptable technical checks on a URL (or local HTML) across 10 dimensions, attaches a concrete fix to every finding, and computes a deterministic 0-100 lab score the audit orchestrator can weight — deferring real field metrics to seo-google and deep structured-data work to seo-schema. The full check catalog, severity rationale and score formula are in references/seo-technical/check-catalog.md.

Current standards it encodes: Core Web Vitals targets LCP < 2.5s, CLS < 0.1, INP < 200ms (INP, not FID, is the metric — and the most-failed one); the 2026 robots.txt nuance of blocking AI training crawlers (GPTBot, Google-Extended, ClaudeBot) while allowing AI search bots (OAI-SearchBot, Claude-SearchBot, PerplexityBot) and user-triggered fetchers so content stays citable — judged by the shared RFC 9309 evaluator scripts/seo/ai_crawlers.py, which also flags a blocked Googlebot/Bingbot as critical (that removes AI Overviews / AI Mode visibility too); and IndexNow for instant change notification to participating engines (Bing, Yandex, Seznam, Naver — not Google). Dated facts (2 MB index limit, rich-result retirements, crawler classes) come from references/shared/search-landscape-2026.md.

Triggers

  • "technical seo" / "technical audit"
  • "crawl issues" / "robots.txt"
  • "core web vitals" / "site speed"
  • "security headers" / "indexability"
  • "javascript seo" / "indexnow"

Inputs

  • A URL (fetched) or a local HTML file (offline)
  • Optional: a Google connection via seo-google for real CWV field data

Steps

  1. Run the audit script:
    python3 "${CLAUDE_PLUGIN_ROOT}/scripts/seo/tech_audit.py" --url <URL> --human     # or --file page.html
    Pass --url alongside --file to add URL-structure checks without fetching. Every finding is a {dimension, severity, finding, fix} record; the JSON also carries score (lab), per-dimension counts, and needs_tier1.
  2. Interpret across the 10 dimensions (catalog: references/seo-technical/check-catalog.md): crawlability (AI-crawler policy via the shared scripts/seo/ai_crawlers.py, Sitemap directive, redirect hops), indexability (noindex incl. the X-Robots-Tag header, nosnippet, canonical missing / conflicting / relative / cross-host / noindex-conflict, 2 MB index limit, doctype, charset, lang, hreflang), security (HTTPS, true mixed content, headers), URL structure, mobile (viewport, zoom), CWV lab risks, structured data (presence, parse errors, retired types), JS rendering (client-rendered shell, JS-only links), SERP presentation (title, description, h1, Open Graph, alt), plus IndexNow guidance. Lead with criticals: a noindex, a blocked Googlebot, or a shell page outranks every medium.
  3. Core Web Vitals: the script emits the targets and flags that synthetic tools can't measure field CWV — if the user has Google access, pull real CrUX/PSI data via seo-google; otherwise report observable risks only.
  4. Structured data: if missing/weak, hand to seo-schema.
  5. Render per-dimension findings grouped Critical / High / Medium / Info, each with a specific fix.

Capability routing

This skill follows the plugin's capability-tier cascade (references/CAPABILITY-TIERS.md) and always returns a usable audit:

  1. Tier 1 — Google PSI / CrUX (free key, via seo-google). When a Google key is set, pull real field Core Web Vitals (LCP/CLS/INP) to harden the CWV dimension; a connected Firecrawl MCP can additionally JS-render shells for the "visible without JS?" check.
  2. Tier 2 — built-in (the default). Otherwise tech_audit.py runs the full 10-dimension lab audit offline (--file / --no-network) and emits the CWV targets — a complete, prioritized technical report on its own, no key, no network. This is the product.
  3. Tier 4 — guided. If nothing is connected, deliver the lab audit and name the field-CWV gap, pointing to a free Google PSI/CrUX key via seo-google.
capability:   cwv-field
tier1:        Google PSI / CrUX (free key) via seo-google
tier1_signal: CRUX_API_KEY | GOOGLE_API_KEY
tier2:        tech_audit.py (10-dimension lab audit + lab score + LCP<2.5 / CLS<0.1 / INP<200 targets, no key)
tier2_yields: prioritized per-dimension technical findings with concrete fixes, zero spend
tier3:        none
tier3_signal: none
tier4:        manual technical-SEO checklist; add a free Google PSI/CrUX key via seo-google for field CWV
needs_tier1:  field CWV (LCP/CLS/INP from CrUX), real Lighthouse performance score

Always end by stating which tier ran and what field data a higher tier would add.

Outputs

  • Per-dimension findings, each with a fix (script JSON or --human text)
  • A deterministic lab score (0-100) with its basis stated, never a field-CWV number
  • Cross-references to seo-google (field CWV) and seo-schema (structured data)
  • An explicit AI-crawler policy recommendation for robots.txt

Dependencies

  • scripts/seo/tech_audit.py (required) — Python 3.10+, standard library only
  • scripts/seo/ai_crawlers.py (required, imported) — shared RFC 9309 AI-crawler evaluator
  • references/seo-technical/check-catalog.md (required) — checks, severities, score
  • references/shared/search-landscape-2026.md (required) — dated facts the checks encode
  • seo-google (optional — real CWV field data), seo-schema (deep structured data)

Notes

The technical foundation; most other SEO findings assume this layer is healthy. The script degrades gracefully offline (use --file).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.