seo-checklist
Skill8 starsChanged 32 days agoMITView on GitHub
SEO and GEO (Generative Engine Optimization) checklist for web projects. Load when reviewing page metadata, structured data, technical SEO, Core Web Vitals, and generative-engine optimization. Covers classic search visibility and LLM-crawler optimization.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- mppyxx/claude-power-packtheir own version, first seen Oct 8, 2026
- thegreatsao/seo-checklisttheir own version, first seen Sep 5, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- thegreatsao/seo-checklist★ 2same name
- mppyxx/claude-power-pack★ 0same name
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 repository21 other files it gives its agents.
- commands/agents.mdAGENTS.md
- rules-core/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-registrySkill
- briefing-writerSkill
- careful-modeSkill
- cast-auditSkill
- cast-conventionsSkill
- deep-researchSkill
- freeze-modeSkill
- git-activitySkill
- laconicSkill
- mergeSkill
- orchestrateSkill
- planSkill
- python-conventionsSkill
- seo-index-censusSkill
- shipSkill
- stack-referenceSkill
- typescript-conventionsSkill
- wizardSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Format: Use JSON-LD in <script type="application/ld+json"> blocks (preferred by both Google and modern LLM crawlers).
- Distinctive: line 23
Validation: Test with schema.org examples and Google's Rich Results Test.
- Distinctive: line 30
Duplicate content: Avoid multiple URLs serving identical content.
- Very specific: line 55
Metadata export: Use Next.js 13+ metadata export in page.tsx instead of HTML <meta> tags.
- Distinctive: line 64
next/image: Always use for images to enable automatic format negotiation, responsive sizing, and lazy-loading (improves CWV).
- Very specific: line 65
Dynamic routes: If using generateStaticParams(), ensure all variants are covered for SEO discoverability.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SEO & GEO Checklist
Metadata Basics
- Page
<title>: Unique, descriptive, ≤60 characters (fits Google SERP). For React/Next: use dynamic<title>tag or Next.jsmetadataexport. - Meta description: 120–160 characters, clearly summarizes page value. Should answer "why visit this page?"
- Canonical URL: Prevents duplicate-content penalties. Set
<link rel="canonical" href="...">or via Next.jsmetadata.metadataBase. - Open Graph tags: For social sharing and preview cards. Include
og:title,og:description,og:image(1200×630 px recommended),og:url,og:type. - Twitter Card tags:
twitter:card,twitter:title,twitter:description,twitter:imagefor Twitter/X sharing preview.
Structured Data (JSON-LD)
- Format: Use JSON-LD in
<script type="application/ld+json">blocks (preferred by both Google and modern LLM crawlers). - Schema types: Choose applicable types:
Organization(company info),Article(blog posts/news),Product(e-commerce),BreadcrumbList(site navigation),FAQPage(Q&A content). - Why it matters: Enables Google rich results (star ratings, recipes, job listings) AND helps LLM crawlers understand semantic structure for more accurate citations/excerpts.
- Validation: Test with schema.org examples and Google's Rich Results Test.
Technical SEO
- Sitemap.xml: Submit to search engines via robots.txt or Search Console. For Next.js: use
next-sitemapor manually generate and serve from/public/sitemap.xml. - robots.txt: Define crawl budget and disallowed paths. Basic rule:
User-agent: *+Allow: /. For Vercel: robots.txt auto-generated; check/robots.txt. - Semantic HTML: Single
<h1>per page, no skipped heading levels (h1 → h2/h3, not h1 → h4). Use<header>,<main>,<nav>,<article>,<section>landmark elements. Overlaps with accessibility-first HTML — seetypescript-conventionsAccessibility section. - Duplicate content: Avoid multiple URLs serving identical content. Use canonical tags to point to preferred version.
- Index coverage is a separate question: Everything above is "is the page well-formed". Whether a URL is actually in Google's index — and why not — is diagnosed differently:
Discovered – currently not indexedis a crawl-budget signal,Crawled – currently not indexedis a content-quality verdict, and only GSC URL Inspection reports either. For that, plus the inspection quota arithmetic, stratified sampling, sitemap segmentation for per-family coverage, and the soak-window rule, loadseo-index-census.
Core Web Vitals (CWV)
Target thresholds (Google's metric for rank/user experience):
- LCP (Largest Contentful Paint): ≤2.5s. Optimized images, preload critical resources.
- INP (Interaction to Next Paint): ≤200ms. Break long JavaScript tasks, defer non-critical work.
- CLS (Cumulative Layout Shift): ≤0.1. Reserve space for late-loading fonts/ads, set image dimensions.
Common React/Vite culprits:
- Unoptimized images (use
<img>withwidth/heightor lazy-load). In Next.js, usenext/imagefor automatic optimization. - Late-loading web fonts (specify
font-display: swapor preload via<link rel="preload">). - JavaScript bundle size; code splitting with dynamic imports for route-based or intersection-observer-based chunks.
- Hydration cost on initial page load (minimize render work in client-side React, consider streaming SSR).
GEO (Generative Engine Optimization)
- llms.txt: An emerging convention (not universally adopted yet) analogous to robots.txt for AI crawlers. Place at
/.well-known/llms.txtor/llms.txt. Specifies which content is quotable/extractable and any usage policies. Example:Allow: /blog/*(LLMs may cite blog posts). Check llms.txt specification for current status before relying on it. - Quotable content: Structure facts and claims clearly near the top of the page. LLMs prioritize declarative, extractable statements over marketing fluff. Avoid burying key information in prose; use lists, tables, or Q&A formats.
- Q&A sections: Direct question-answer content maps well to LLM-answer-engine excerpting. Pair each Q with a concise A. Markup with
<dl>+ schemaFAQPageorQAPageJSON-LD for best results. - Byline and metadata: Attribution, publication date, author expertise signals improve trustworthiness in LLM citations.
Next.js-Specific
- Metadata export: Use Next.js 13+
metadataexport inpage.tsxinstead of HTML<meta>tags.export const metadata: Metadata = { title: "Page Title", description: "Page description", openGraph: { title: "...", description: "...", images: [{ url: "..." }] }, }; - Sitemap and robots.txt: Auto-generated by Next.js. Customize in
app/sitemap.tsandapp/robots.ts(App Router). - next/image: Always use for images to enable automatic format negotiation, responsive sizing, and lazy-loading (improves CWV).
- Dynamic routes: If using
generateStaticParams(), ensure all variants are covered for SEO discoverability.
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.

