seo
Skill1 starsChanged 6 days agoMITView on GitHub
Audit, fix and verify SEO for real websites, especially multilingual and statically generated sites. Use for technical SEO (crawlability, indexability, canonicals, redirects, status codes, sitemaps, robots.txt), international SEO (localized URLs, reciprocal hreflang, x-default), on-page and content quality, structured data, Open Graph, llms.txt, Core Web Vitals and PageSpeed fixes, AI-crawler policy, and Search Console measurement. Trigger on: SEO audit, why isn't this page ranking, hreflang, sitemap, robots.txt, llms.txt, meta tags, og:image, schema markup, JSON-LD, canonical, redirects, indexing, crawl budget, Core Web Vitals, page speed, E-E-A-T, AI search, GEO. Not for paid ads, buying links, cloaking, doorway pages, keyword stuffing, or fabricated reviews and statistics.
159 other projects use a version of this.
Adopted by
Most recently taken up by
- lengrufeng2008/dsh-skill-librarytheir own version, first seen Nov 15, 2026
- epulla/patiotheir own version, first seen Nov 15, 2026
- iannuttall/seotheir own version, first seen Nov 15, 2026
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- mazzeoia/MazyOStheir own version, first seen Nov 8, 2026
- ahmadvahidi/skill-atlastheir own version, first seen Nov 8, 2026
Used with
Projects with it also use seo-agentic, seo-maps and 10 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.
AgriciDanielSkillseo-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
timruebenachSkillseo-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
megastepSkillseo-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 24 projects that use this
timruebenachSkillseo-image-gen
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp. Requires banana extension installed. Use when user says \"generate image\", \"OG image\", \"social preview\", \"hero image\", \"blog image\", \"product photo\", \"infographic\", \"seo image\", \"create visual\", \"image-gen\", \"favicon\", \"schema image\", \"pinterest pin\", \"generate visual\", \"banner\", or \"thumbnail\".
Also in 15 projects that use this
megastepSkillseo-sitemap
Analyze existing XML sitemaps or generate new ones with industry templates. Validates format, URLs, and structure. Use when user says "sitemap", "generate sitemap", "sitemap issues", or "XML sitemap".
Also in 26 projects that use this
renepfSkillorch-pipeline
Shared orchestration engine for the orch-* skill family. Defines the gated Research-Plan-TDD-Review-Commit pipeline, the size classifier, the agent map, and the two human gates that the orch-* operation skills delegate to. Not usually invoked directly.
Also in 4 projects that use this
- +3 more from timruebenach
- +1 more from megastep
Other versions159 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 159
- AgriciDaniel/claude-seo★ 30ksame name
- midudev/preguntas-entrevista-react★ 7.8ksame name
- legions-developer/evilcharts★ 3.2ksame name
- gridaco/grida★ 2.7ksame name
- midudev/la-velada-web-oficial★ 1.9ksame name
- midudev/tailwind-animations★ 1.5ksame name
- Bhanunamikaze/Agentic-SEO-Skill★ 993same name
- legions-developer/invoicely★ 923same name
- Nexus-JPF/note-companion★ 874same name
- iannuttall/seo★ 628same name
149 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- adapters/AGENTS.mdAGENTS.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 12 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 148 edited versions we read keep these.
12
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
- Distinctive: line 21
Use it when the user asks to audit a site, explain why pages are not ranking or indexing, fix crawlability or metadata, add localized …
- Distinctive: line 27
Do not use it to promise rankings, buy links, cloak content, mass-publish near-duplicate pages, invent reviews/statistics, or advise on …
- Distinctive: line 33
Evidence first: Every finding needs a URL, a status code, a header, a tag, or a quoted snippet.
- Distinctive: line 35
Never fabricate: No invented client names, testimonials, prices, statistics, certifications, integrations or examples.
- Very specific: line 79
Ask for credentials or access only when the task genuinely needs them (Search Console, analytics, DNS).
- Very specific: line 111
Default language at the root, others under /<lang>/ (or a consistent subdomain scheme).
- Very specific: line 113
Every localized page carries reciprocal hreflang for every version plus x-default, each pointing at the same content set.
- Very specific: line 128
Add FAQs only when they are real questions.
- Distinctive: line 148
Remove render-blocking CSS/JS from the critical path (inline critical CSS, defer scripts, avoid chained requests).
- Distinctive: line 190
No cloaking, doorway pages, paid links, link farms, PBNs, snippet manipulation.
- Distinctive: line 191
No fake reviews, ratings, statistics, certifications, or "trusted by" logos.
- Distinctive: line 192
No keyword stuffing in titles, headings, alt text, or schema.
- Distinctive: line 193
No auto-redirect based on the visitor's device language that hides the canonical localized page from crawlers.
- Distinctive: line 196
Do not present Lighthouse lab estimates as field Core Web Vitals.
- Distinctive: line 197
If a requested tactic would harm users or violate search policies, refuse that tactic and offer the compliant alternative.
- Distinctive: line 225
If a required check depends on credentials or a browser you do not have, say so in the report instead of skipping silently.
“Common” is measured: kept by at least 6 in 10 of the 148 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.
Files
SEO: audit, fix, verify
This is an engineering skill, not a checklist generator. It turns an SEO request into
evidence, a prioritised fix list, implemented changes, and a verification pass. It was
built from a real multilingual audit and implementation (see docs/CASE-STUDY-AJENU.md).
When to use
Use it when the user asks to audit a site, explain why pages are not ranking or indexing, fix crawlability or metadata, add localized versions and hreflang, add structured data or social previews, improve Core Web Vitals, write robots.txt / sitemap / llms.txt, decide how AI crawlers should be treated, or set up Search Console measurement.
Do not use it to promise rankings, buy links, cloak content, mass-publish near-duplicate pages, invent reviews/statistics, or advise on paid ads. Say so plainly and stop at the boundary.
Prime directives
- Evidence first. Every finding needs a URL, a status code, a header, a tag, or a quoted snippet. Never report "probably slow" or "likely duplicate" without a check.
- Never fabricate. No invented client names, testimonials, prices, statistics, certifications, integrations or examples. If the audit asks for real customer proof, state that only the site owner can supply it.
- Separate what the repo can fix from what only the host can fix. Compression,
cache TTLs, CDN redirects and DNS are hosting tasks. Do not claim them as done when
you only wrote code. Record the owner per finding:
code,content,server,external(Search Console, DNS, third-party). - Do not write meta tags to a character limit. Titles must be accurate and unique; descriptions useful. Google rewrites snippets, so length is a craft guideline, not a publish gate.
- robots.txt controls crawling, not indexing. To remove a page from search use
noindex(or remove the page).Disallowalone can leave URL-only listings. - Measure, then state caveats. Lab tools (PageSpeed Insights, Lighthouse) and field data (CrUX, Search Console) disagree. Never invent a CWV score. If you could not measure, say which tool or credential was missing.
- Verify the finished work. A fix list is not done until the rebuilt site passes a repeatable check (crawl all URLs, validate crawl files, re-run headers).
Quick start
From this skill's directory (resolve it from the SKILL.md path your harness gave you):
# Audit a live site, a sitemap, or a local build directory.
node scripts/seo-audit.mjs audit https://example.com --json --out seo-report.json
node scripts/seo-audit.mjs audit ./dist --base https://example.com
node scripts/seo-audit.mjs page https://example.com/pricing
node scripts/seo-audit.mjs crawl-files https://example.com
# CI gate: exit non-zero if a critical or high finding exists.
node scripts/seo-audit.mjs audit ./dist --base https://example.com --fail-on highThe audit is dependency-free and read-only. It fetches politely (one page at a time,
bounded by --max-pages), accepts an input limit, and never submits forms or changes
state. If Node is unavailable, follow references/audit-checklist.md manually.
Workflow
Phase 0 — Scope and baseline
- Confirm the canonical host, the languages/markets that matter, and the business goal.
- Record the starting state: sitemap URL count, robots status, indexing tools available, analytics/Search Console access, last known Core Web Vitals.
- Ask for credentials or access only when the task genuinely needs them (Search
Console, analytics, DNS). Otherwise mark the check as
not verifiableand move on.
Phase 1 — Inventory and crawl
- Find every public URL: sitemap(s), internal links, and a crawl of the homepage.
- For each page capture: status, indexability, title, description, canonical,
lang, H1 count, structured data, Open Graph, hreflang, internal links, main-content word count, and rendered vs raw content differences. - Flag duplicates by title, description, and normalized main-content n-grams.
Phase 2 — Technical foundations
Fix in this order because everything else depends on it:
- Status codes and redirects: no 5xx, no chains, no redirect loops; one canonical host
(apex vs
www) with a permanent 301 to the other. - Indexability: no accidental
noindex, noDisallowon public paths, no soft 404s. - Canonicalisation: self-referencing absolute canonical on every indexable page; one URL per piece of content.
- Sitemap: XML-valid, only canonical 200 URLs, hreflang alternates when localized, listed in robots.txt.
- robots.txt: valid groups, explicit sitemap, a documented AI-crawler policy.
- URL hygiene: trailing slashes consistent,
index.htmlredirects, lowercase slugs, no parameters that duplicate content.
See references/technical-seo.md and references/crawl-files.md.
Phase 3 — Internationalisation
A language must be a real URL, not a client-side text swap:
- Default language at the root, others under
/<lang>/(or a consistent subdomain scheme). Server-render the translated text, title, description and canonical. - Every localized page carries reciprocal
hreflangfor every version plusx-default, each pointing at the same content set. - The sitemap repeats the alternates; the canonical stays self-referencing.
langmatches the page language;og:localeand alternates are set.- Translate search-relevant terms, not only navigation; keep terminology consistent.
- Legacy
?lang=links should 301/redirect to the localized path; do not rely onlocalStorageor device-language redirects for crawlers.
See references/internationalization.md.
Phase 4 — Content quality
Word count is not a ranking target; intent satisfaction is. For each priority page make
sure the reader can answer: who is this for, what exactly do I get, what does setup
involve, what happens next, what does it cost or depend on, and what proof exists.
Add FAQs only when they are real questions. Never publish 37 near-identical pages to
target keywords. See references/content-quality.md.
Phase 5 — Structured data and social previews
- JSON-LD:
Organization+WebSite+WebPagesite-wide; addService,BreadcrumbList,FAQPage,Article,Productonly where they describe the page. - Validate JSON parses and that visible content matches the schema (for example FAQ
questions and answers). Localized pages must declare
inLanguageand localized text. og:imagemust be a real 1200×630 (or 1.91:1) asset per page type; setog:title,og:description,og:url,og:locale(+ alternates), and atwitter:card. Missing images are a sharing loss, not a ranking penalty.
See references/structured-data.md.
Phase 6 — Performance and Core Web Vitals
Work from measurements, not guesses:
- Remove render-blocking CSS/JS from the critical path (inline critical CSS, defer scripts, avoid chained requests). Prefer minified, self-hosted or inlined assets.
- Serve responsive images with
srcset/sizes, correctwidth/height, modern formats, andfetchpriority="high"only on the LCP image. - Enable compression (brotli/gzip) and long cache lifetimes for versioned assets on the server/CDN; HTML should revalidate.
- Set fonts to not block first render (
preload+noscriptor self-host). - Measure mobile and desktop separately; report LCP, INP, CLS with tool and date.
Server headers and cache TTLs are server-owned findings. Document the exact
directives (nginx/Apache/Caddy/CDN) instead of pretending a repo change fixed them.
See references/performance.md.
Phase 7 — AI search and crawler policy
Decide separately whether AI search/answer crawlers may crawl (usually yes, so the site can be cited) and whether model-training crawlers may crawl (a publishing decision). Encode the decision in robots.txt with explicit user-agent groups; explain in the report that this is not access control and does not remove pages from search.
llms.txt is a small, maintained summary for AI tools: what the site does, who it
serves, and links to accurate public pages. It is not a replacement for the HTML, the
sitemap, or structured data. See references/ai-search.md and
references/crawl-files.md.
Phase 8 — Measurement and reporting
Deliver a report with:
- Scope, date, and what could not be measured.
- A findings table sorted by severity (
critical,high,medium,low) with evidence, why it matters, fix, owner, and how to validate. - A prioritised implementation plan (the first three fixes, not fifty).
- Verification results after implementation: crawl counts, status codes, hreflang reciprocity, crawl-file validity, headers.
- External follow-ups: Search Console property + sitemap submission, URL inspection, PageSpeed/CrUX, DNS, content only the client can supply.
Use references/report-template.md.
Guardrails
- No cloaking, doorway pages, paid links, link farms, PBNs, snippet manipulation.
- No fake reviews, ratings, statistics, certifications, or "trusted by" logos.
- No keyword stuffing in titles, headings, alt text, or schema.
- No auto-redirect based on the visitor's device language that hides the canonical localized page from crawlers; offer a switcher instead.
- No
Disallowfor pages that must stay indexable; nonoindexon pages you need. - Do not present Lighthouse lab estimates as field Core Web Vitals.
- If a requested tactic would harm users or violate search policies, refuse that tactic and offer the compliant alternative.
References
Load only what the task needs:
references/audit-checklist.md— full pass/fail checklist by area.references/technical-seo.md— crawl, index, redirects, canonicals, status codes.references/crawl-files.md— robots.txt policies, sitemaps, llms.txt templates.references/internationalization.md— URL schemes, hreflang rules, pitfalls.references/content-quality.md— page purpose, sections, duplicate detection, reviewed translations, honest proof.references/structured-data.md— JSON-LD graph patterns and validation.references/performance.md— CWV, PSI, render path, images, server headers.references/ai-search.md— AI search vs training, llms.txt, measurement limits.references/measurement.md— Search Console, sitemap submission, KPIs, reporting.references/report-template.md— the deliverable format.references/static-site-playbook.md— build-time SEO architecture and regression harness for static/SSG sites.
Scripts
scripts/seo-audit.mjs — read-only auditor. Supports live URLs and local build
directories. --json for agents/CI, --out to write a report, --fail-on for CI.
Findings include severity, area, page, evidence, fix, owner, and a
validation hint. Use node scripts/seo-audit.mjs --help for all options.
If a required check depends on credentials or a browser you do not have, say so in the report instead of skipping silently.
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
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.

