Agent skill

SEO Geo

by EliasOulkadi in EliasOulkadi/shokunin

SEO + Generative Engine Optimization (GEO) for 2026 — technical SEO, on-page optimization, structured data (JSON-LD, schema.org), Core Web Vitals, citability scoring (llms.txt, entity clarity), AI…

MITAuto-check: notesMarketing & SEO

Install SEO Geo

skills CLI
$ npx skills add EliasOulkadi/shokunin --skill seo-geo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install EliasOulkadi/shokunin seo-geo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pack/skills/seo-geo .claude/skills/seo-geo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-geo
GitHub stars
114
Token cost
~2.6k tokens
SKILL.md length
983 words
Files
6 (incl. scripts, references, assets)
Skills in repo
49
Repo updated
First seen
Licence
MIT

At a glance

SEO + Generative Engine Optimization (GEO) for 2026 — technical SEO, on-page optimization, structured data (JSON-LD, schema.org), Core Web Vitals, citability scoring (llms.txt, entity clarity), AI…

  • Works in 6 steps: Run SEO audit → Run GEO audit → Prioritized fixes → …
  • User asks to optimize a site for search engines
  • SKILL.md covers Sub-Commands, Workflow, Production Checklist and Anti-Patterns, plus 4 more sections
  • Runs Shell scripts from its folder; reaches schema.org and twitter.com

What it does

SEO Geo is an agent skill from EliasOulkadi/shokunin. SEO + Generative Engine Optimization (GEO) for 2026 — technical SEO, on-page optimization, structured data (JSON-LD, schema.org), Core Web Vitals, citability scoring (llms.txt, entity clarity), AI search engine optimization (ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews), and brand authority building. Use when user asks to optimize a site for search engines, improve SEO, write SEO content, implement structured data, optimize for AI search/GEO, audit a page, or improve Google rankings. Do NOT use for…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts, reference files and assets (for example `assets/seo-checklist.md`, `references/geo-strategy.md` and `references/seo-fundamentals.md`). Compatibility notes: opencode

It sits in Marketing & SEO, covering AI search optimization, Schema markup and Technical SEO. It works with OpenAI and Perplexity. The repository describes itself as: 職人 Shokunin 62 AI agent skills for OpenCode, Claude Code, Cursor, Windsurf. ChromaDB memory, MCP servers, declarative self-updates. Multi-model, open source, zero cost. The licence is MIT.

When your agent uses it

  • User asks to optimize a site for search engines
  • Write SEO content
  • Implement structured data
  • Optimize for AI search/GEO

Example prompts

  • “/seo-geo”

Requirements

  • A Bash shell
  • Compatibility (from SKILL.md): opencode
  • Pre-approved tools (allowed-tools): Read, Bash, Write, Grep, WebFetch

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Run SEO audit
  2. Run GEO audit
  3. Prioritized fixes
  4. Structured data (must implement)
  5. llms.txt
  6. GEO optimization

What it can do on your machine

Read from SKILL.md and the folder at commit 4c68e5b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash
    • Write
    • Grep
    • WebFetch

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • schema.org
    • twitter.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    opencode

    From compatibility in the SKILL.md frontmatter.

Context cost

SEO Geo loads about 2.6k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 168 tokens; SKILL.md has 983 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~168
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash, Write, Grep, WebFetch

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from EliasOulkadi/shokunin at commit 4c68e5b, republished under its MIT licence (© EliasOulkadi). 983 words, ~2,569 tokens.

Download SKILL.mdSave it as .claude/skills/seo-geo/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
seo-geo
description
SEO + Generative Engine Optimization (GEO) for 2026 — technical SEO, on-page optimization, structured data (JSON-LD, schema.org), Core Web Vitals, citability scoring (llms.txt, entity clarity), AI search engine optimization (ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews), and brand authority building. Use when user asks to optimize a site for search engines, improve SEO, write SEO content, implement structured data, optimize for AI search/GEO, audit a page, or improve Google rankings. Do NOT use for content writing strategy (use content-marketing), performance optimization beyond Core Web Vitals (use performance-profiler), or paid ad strategy.
allowed-tools
Read, Bash, Write, Grep, WebFetch
compatibility
opencode
triggers
SEO, search engine optimization, GEO, generative engine optimization, AI search, structured data, schema.org, JSON-LD, llms.txt, Google ranking, Core Web…
negatives
content writing, ad strategy, social media, paid ads, PPC
license
MIT
metadata.workflow
marketing
metadata.audience
developers
metadata.version
4.0.0
metadata.author
shokunin

SEO & GEO Architect

Optimize for traditional search AND AI-powered engines. Based on Google Search Central, Moz, and GEO research (2025-2026).

Sub-Commands

CommandDescription
audit-seoRun full SEO audit (titles, meta, schema, speed, mobile)
audit-geoRun GEO audit (llms.txt, entity clarity, AI answer format)
schemaGenerate JSON-LD structured data for any page type
optimizeImplement priority fixes ranked by impact
llmsGenerate/update llms.txt for AI crawler discovery

Workflow

Step 1: Run SEO audit

Check: title tags (< 60 chars, keyword first), meta descriptions (< 155 chars, value prop), H1 (one per page, keyword), img alt text, OG tags, canonical, robots.txt, sitemap.xml, Core Web Vitals.

Score: 90-100% good. 70-89% fix flagged. < 70% structural issues first.

Step 2: Run GEO audit

Check: llms.txt presence, ai-plugin.json, FAQ/HowTo schema, entity clarity, brand mention structure, answer format (direct answer in first 2 paragraphs).

Step 3: Prioritized fixes
FixImpactEffort
Fix crawl errors (GSC)HighLow
Improve LCP < 2.5sHighMedium
Add structured data (JSON-LD)HighMedium
Create llms.txtHighLow
Fix meta titles/descriptionsMediumLow
Add hreflang (if multilingual)MediumLow
Improve internal linkingMediumMedium
Step 4: Structured data (must implement)
json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Brand Name",
  "description": "One sentence. What you do.",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": ["https://twitter.com/handle", "https://github.com/handle"]
}

Also: Article, FAQPage, HowTo, Product, BreadcrumbList, LocalBusiness (if applicable).

Step 5: llms.txt
# Brand Name
> One-line description.

## Core pages
- https://example.com/: Home
- https://example.com/about: About

## Docs
- https://docs.example.com/api: API reference

## Blog
- https://example.com/blog/post: Title

Place at /.well-known/llms.txt. This is how AI crawlers (GPTBot, Claude, Gemini) discover your site.

Step 6: GEO optimization
FactorImplementation
CitabilityPublish original research, unique data. AI cites sources.
Entity clarityClear about pages. Define who/what/for whom.
Answer formatDirect answer in first 2 paragraphs before expanding.
Conversational toneWrite naturally. AI penalizes keyword stuffing.
Source authorityLink to .edu, .gov, peer-reviewed. Build topical authority.
Brand mentionsGet mentioned on authoritative sites.

Production Checklist

  • Technical SEO > 90%
  • GEO audit passes (llms.txt, schema, entity clarity)
  • Core Web Vitals pass (LCP < 2.5s, INP < 200ms, CLS < 0.1)
  • Structured data: Organization + page-specific types
  • Sitemap.xml submitted to GSC
  • robots.txt correct (not blocking anything important)
  • hreflang configured (if multilingual)
  • Canonical URLs on every page
  • Open Graph + Twitter Cards on every page
  • llms.txt published
  • GSC monitoring active

Anti-Patterns

MistakeFix
Keyword stuffingNatural language. For humans first, search second.
No structured dataSchema critical for Google AND AI search.
No original researchAI cites original data. Publish unique findings.
Thin content (< 500 words)Comprehensive, authoritative.
Ignoring Core Web VitalsPerformance is a ranking factor.
No E-E-A-T signalsAuthor bios, citations, credentials, about page.

Technical SEO

Core Web Vitals Thresholds
MetricGoodNeeds WorkPoor
LCP (Largest Contentful Paint)< 2.5s2.5-4.0s> 4.0s
INP (Interaction to Next Paint)< 200ms200-500ms> 500ms
CLS (Cumulative Layout Shift)< 0.10.1-0.25> 0.25

Measure with: Lighthouse, PageSpeed Insights, Web Vitals extension, CrUX dashboard.

Crawl Budget Optimization
robots.txt
User-agent: *
Allow: /
Disallow: /api/
Disallow: /*?*
Disallow: /search
Sitemap: https://example.com/sitemap.xml

Rules:

  • Block faceted navigation URLs with ? parameters
  • Block internal search pages (no SEO value, consumes budget)
  • Keep sitemap under 50,000 URLs or split into sitemap index
  • Set lastmod accurately (Google prioritizes recently-changed URLs)
  • Use <priority> sparingly (Google largely ignores it)
Hreflang for Multilingual Sites
html
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="es" href="https://example.com/es/pagina" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

Rules:

  • Every language must link to every other language (bidirectional)
  • x-default for language selector page or auto-redirect
  • Use ISO 639-1 codes (en, es, fr, de, ja, zh)
  • Verify with Google Search Console International Targeting report
Schema.org Nesting Patterns
json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Title",
  "author": { "@type": "Person", "name": "Author" },
  "publisher": { "@type": "Organization", "name": "Site", "logo": { "@type": "ImageObject", "url": "logo.png" } },
  "mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.com/article" }
}

Nest entities, don't flatten. Google prefers deeply-nested schema over flat arrays.

GEO Optimization (Generative Engine)

For AI search engines (ChatGPT, Gemini, Perplexity, Google AI Overviews):

  1. llms.txt at /.well-known/llms.txt with structured content
  2. Entity clarity: every page must answer "who, what, where, when" in first 100 words
  3. Citability: include statistics with source links (AI Overviews prefer cited content)
  4. Direct answers: format answers as Q&A pairs (AI extracts these verbatim)
  5. Long-form depth: AI favors pages > 1,500 words with clear section headers
  6. Markdown structure: AI parses ## headers better than <h2> tags
Show full SKILL.md (379 more words)Show less

Sources

  • Google Search Central
  • Google E-E-A-T guidelines
  • schema.org documentation
  • Moz Beginner's Guide to SEO
  • GEO research papers (2025-2026)
  • Perplexity Publisher Guidelines
  • OpenAI GPT crawler docs

Error Handling

CauseFix
Google Search Console reports crawl errors on critical pagesCheck robots.txt for accidental Disallow: / rules. Verify server returns 200 (not 5xx or 3xx loops). Submit individual URL inspection in GSC to trigger re-crawl.
Structured data (JSON-LD) fails Google Rich Results TestJSON-LD must be a valid @type from schema.org (not a made-up type). Check required properties for the type. Use application/ld+json MIME type, not text/javascript. Escape HTML entities inside JSON strings.
llms.txt returns 404 when accessed at /.well-known/llms.txtThe .well-known directory requires explicit server routing. For static sites, place at root: /llms.txt and add a redirect from /.well-known/llms.txt. For Next.js, add to public/ directory.
Core Web Vitals LCP > 4s despite image optimizationLCP element may not be an image — it could be a text block, video poster, or background image loaded via CSS. Identify the actual LCP element in PageSpeed Insights report. Preload critical resources with <link rel="preload">.
AI search engines (ChatGPT, Perplexity) ignore llms.txtllms.txt is an emerging standard (2025-2026), not universally adopted. Complement with ai-plugin.json, comprehensive sitemap.xml, and clear entity pages. Submit to Perplexity Publisher Program separately.
Canonical URL points to wrong domain after migrationStale canonicals cause duplicate content penalties. Audit all pages with a crawler (Screaming Frog, Sitebulb). Update in bulk with server-side redirects. Verify each canonical returns 200, not a redirect chain.
Hreflang tags return 404 or self-referencing loopsEach language variant must return a valid page. Use x-default for the language selector page. Validate with the hreflang tag tester in GSC International Targeting report. Remove broken variant links rather than leaving dead hreflang.
Site dropped in rankings after major redesignURLs may have changed without 301 redirects. Audit before/after URL maps. Implement redirects for all high-traffic pages first (prioritize by organic traffic in GSC). Submit old sitemap + new sitemap to GSC simultaneously for faster re-indexing.

Checklist

  • Skill loads without errors in the AI agent
  • YAML frontmatter is valid (description, compatibility, audience)
  • Workflow section provides clear step-by-step instructions
  • Error handling section covers common failure modes
  • All referenced files (references/, scripts/, assets/) exist
  • Skill triggers correctly for intended use cases
  • No broken links or missing resources

© EliasOulkadi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references, assets) in .pack/skills/seo-geo of EliasOulkadi/shokunin.

  • SKILL.md
  • assets/seo-checklist.md
  • references/geo-strategy.md
  • references/seo-fundamentals.md
  • scripts/audit-geo.sh
  • scripts/audit-seo.sh

Open the folder on GitHubat commit 4c68e5b

Compare with similar skills

SEO Geo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SEO Geo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Geo this skillEliasOulkadi/shokunin114—~2.6kAutomated safety check: NotesMIT
SEOAgriciDaniel/seo-os1372 repos~3.5kAutomated safety check: PassMIT
SEOAgriciDaniel/codex-seo799—~3.7kAutomated safety check: PassMIT
SEONexus-JPF/note-companion870—~2.2kAutomated safety check: PassMIT
GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude11k—~2.8kAutomated safety check: NotesMIT
SEO Aeo Best Practicessanity-io/agent-toolkit1882 repos~467Automated safety check: PassMIT

Similar skills

  • SEO

    AgriciDaniel/seo-os

    Comprehensive SEO analysis for any website or business type.

    137 GitHub starsUsed in 2 repos~3.5k tokens
    Marketing & SEOAuto-check passed
  • SEO

    AgriciDaniel/codex-seo

    Comprehensive SEO analysis for any website, page, business, or topic.

    799 GitHub stars~3.7k tokensUpdated 29 days ago
    Marketing & SEOAuto-check passed
  • SEO

    Nexus-JPF/note-companion

    Use and read this skill immediately if the user request is in any way related to SEO or a site's organic search or AI search presence.

    870 GitHub stars~2.2k tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • GEO-First SEO Audit Tool

    zubair-trabzada/geo-seo-claude

    Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.

    11k GitHub stars~2.8k tokensUpdated yesterday
    Marketing & SEOAuto-check: notes
  • SEO Aeo Best Practices

    sanity-io/agent-toolkit

    Official

    SEO and AEO best practices for metadata, Open Graph, sitemaps, robots.txt, hreflang, JSON-LD structured data, EEAT, and content optimized for search engines and AI answer surfaces.

    188 GitHub starsUsed in 2 repos~467 tokens
    Marketing & SEOAuto-check passed
  • Generative Engine Optimization

    tech-leads-club/agent-skills

    Makes a page or site easier for AI answer engines to find, understand, trust and quote, using metadata, structured data, an llms.txt file and clear page structure.

    7k GitHub stars~2.5k tokensUpdated 2 days ago
    Marketing & SEOAuto-check passed

More from EliasOulkadi/shokunin

All 49 skills in this repo
  • CI CD

    EliasOulkadi/shokunin

    Design CI/CD pipelines for GitHub Actions, GitLab CI, and CircleCI with matrix builds, test sharding, caching, Docker layer caching, OIDC auth, deployment strategies (rolling, blue-green, canary)…

    114 GitHub stars~3.4k tokensUpdated 6 days ago
    Auto-check: notes
  • Component Forge

    EliasOulkadi/shokunin

    Build production-grade components for React, Vue 3, and Svelte 5 with all states (loading, empty, error, success, idle), TypeScript strict, WCAG 2.2 accessibility, server components (RSC), and…

    114 GitHub stars~3.6k tokensUpdated 6 days ago
    Auto-check: notes
  • DB Admin

    EliasOulkadi/shokunin

    PostgreSQL database administration — backup/restore (pgdump, PITR, WAL archiving), health monitoring (connections, bloat, cache hit ratio, dead tuples), connection pooling (PgBouncer), replication…

    114 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check: notes
  • DB Sculptor

    EliasOulkadi/shokunin

    Design database schemas with Prisma/Drizzle, PostgreSQL index strategy (B-tree, GIN, GiST, BRIN, Hash), query optimization (EXPLAIN ANALYZE), migration safety (expand/contract, zero-downtime), and…

    114 GitHub stars~3.1k tokensUpdated 6 days ago
    Auto-check: notes
  • Docker

    EliasOulkadi/shokunin

    Optimize Docker images with multi-stage builds, distroless bases, BuildKit cache mounts, multi-arch builds, compose watch, security hardening (non-root, seccomp, capabilities drop), and…

    114 GitHub stars~3.8k tokensUpdated 6 days ago
    Auto-check: notes
  • Error Handler

    EliasOulkadi/shokunin

    Design error handling, structured logging, and observability with OpenTelemetry (traces, metrics, logs), error classification, recovery patterns (retry with jitter, circuit breaker, bulkhead…

    114 GitHub stars~3.6k tokensUpdated 6 days ago
    Auto-check: notes

Categories

Questions about SEO Geo

What does SEO Geo do?

SEO + Generative Engine Optimization (GEO) for 2026 — technical SEO, on-page optimization, structured data (JSON-LD, schema.org), Core Web Vitals, citability scoring (llms.txt, entity clarity), AI…. SEO Geo is an agent skill from EliasOulkadi/shokunin.txt, entity clarity), AI search engine optimization (ChatGPT, Gemini, Perplexity, Claude, Google AI Overviews), and brand authority building.

When should I use SEO Geo?

SEO Geo fits situations like: user asks to optimize a site for search engines; write SEO content; implement structured data; optimize for AI search/GEO.

How do I install SEO Geo in Claude Code?

Run `npx skills add EliasOulkadi/shokunin --skill seo-geo -a claude-code`. Or copy the skill folder (.pack/skills/seo-geo in EliasOulkadi/shokunin) into .claude/skills/seo-geo in your project. Claude Code loads it when a task matches its description.

How do I install SEO Geo in Codex?

Run `npx skills add EliasOulkadi/shokunin --skill seo-geo -a codex`. Or copy the skill folder (.pack/skills/seo-geo in EliasOulkadi/shokunin) into .agents/skills/seo-geo in your project. Codex loads it when a task matches its description.

Can I use SEO Geo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add EliasOulkadi/shokunin --skill seo-geo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-geo, .gemini/skills/seo-geo, .github/skills/seo-geo and .opencode/skills/seo-geo in your project.

What does SEO Geo need to run?

Going by SKILL.md and its folder, SEO Geo needs a shell for the scripts in its folder. Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Read, Bash, Write, Grep, WebFetch. Compatibility (from SKILL.md): opencode.

Does SEO Geo access the network?

SKILL.md names 3 domains. In commands or code: schema.org, twitter.com and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is SEO Geo safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does SEO Geo use?

SEO Geo is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Geo use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.6k tokens, read only when the agent opens those files.

What are the alternatives to SEO Geo?

Skills that share tags, products or a category with SEO Geo: SEO (AgriciDaniel/seo-os, 137 stars), SEO (AgriciDaniel/codex-seo, 799 stars), SEO (Nexus-JPF/note-companion, 870 stars) and GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Geo?

EliasOulkadi (a GitHub user) maintains it in EliasOulkadi/shokunin, which has 114 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.

Source: EliasOulkadi/shokunin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.