Agent skill

Static SEO

by jdevalk in jdevalk/skills

Audits and improves SEO for static HTML sites. An agent skill from jdevalk/skills.

MITAuto-check passedFrontend & Design

Install Static SEO

skills CLI
$ npx skills add jdevalk/skills --skill static-seo -a claude-code

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

GitHub CLI
$ gh skill install jdevalk/skills static-seo --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/jdevalk/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/static-seo .claude/skills/static-seo && 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
static-seo
GitHub stars
104
Token cost
~4.8k tokens
SKILL.md length
2,178 words
Files
3
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Audits and improves SEO for static HTML sites. An agent skill from jdevalk/skills.

  • Works in 5 steps: Detect the project → Audit → Improve → …
  • The user asks to audit
  • SKILL.md covers Workflow, Phase 0: Detect the project, Phase 1: Audit and Phase 2: Improve, plus 4 more sections
  • Calls curl; reaches api.indexnow.org

What it does

Static SEO is an agent skill from jdevalk/skills. Audits and improves SEO for static HTML sites. Use when the user asks to audit, set up, or improve SEO on a static site (Hugo, Jekyll, 11ty, Gatsby, Next.js static export, hand-rolled HTML, or wp-static-clone output), or mentions head metadata, structured data, JSON-LD, sitemaps, IndexNow, Open Graph images, schema endpoints, NLWeb, hreflang, or search engine indexing for a static site. For Astro projects, use astro-seo instead — its recipes produce less hand-rolled boilerplate by routing through…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `AGENTS.md` and `README.md`).

It sits in Frontend & Design, covering Static sites and blogs, Schema markup and Technical SEO. It works with Astro and Next.js. The repository describes itself as: Agent skills for GitHub repos and profiles, WordPress and EmDash plugins, Astro SEO, and content readability. The licence is MIT.

When your agent uses it

  • The user asks to audit
  • Improve SEO on a static site (Hugo
  • Next.js static export
  • Hand-rolled HTML

Example prompts

  • “Use the static-seo skill to audit and improves SEO for static HTML sites. An agent skill from jdevalk/skills”
  • “/static-seo”

Workflow steps

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

  1. Detect the project
  2. Audit
  3. Improve
  4. 5: Metadata and readability pass
  5. Verify

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    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:

    • api.indexnow.org

    Also links to:

    • github.com
    • search.google.com
    • classyschema.org
    • rfc-editor.org
    • llmstxt.org
    • agenticresourcediscovery.org
    • validator.w3.org
    • validator.schema.org
    • bing.com
    • plausible.io

    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.

Context cost

Static SEO loads about 4.8k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 2,178 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

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 passed

The automated check found no risky patterns in SKILL.md.

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from jdevalk/skills at commit 106fc68, republished under its MIT licence (© jdevalk). 2,178 words, ~4,774 tokens.

Download SKILL.mdSave it as .claude/skills/static-seo/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
static-seo
description
Audits and improves SEO for static HTML sites. Use when the user asks to audit, set up, or improve SEO on a static site (Hugo, Jekyll, 11ty, Gatsby, Next.js static export, hand-rolled HTML, or `wp-static-clone` output), or mentions head metadata, structured data, JSON-LD, sitemaps, IndexNow, Open Graph images, schema endpoints, NLWeb, hreflang, or search engine indexing for a static site. For Astro projects, use `astro-seo` instead — its recipes produce less hand-rolled boilerplate by routing through `@jdevalk/astro-seo-graph`.

Static SEO

Audits and improves the SEO setup of a static HTML site against nine categories — head metadata, structured data, content quality, Open Graph images, sitemaps and indexing, agent discovery, performance, redirects, and CI validation. Recipes are platform-neutral: raw <meta> tags, raw JSON-LD, hand-rolled sitemap.xml, generic CI tooling. Audit framework parallels astro-seo but without the @jdevalk/astro-seo-graph spine.

Code recipes live in AGENTS.md — read it when you need to implement a specific fix. This file has the workflow and audit checklist.

Workflow

  1. Detect the project — confirm this is a static site, identify the build tool, find where to apply changes.
  2. Audit — score nine categories and produce actionable findings.
  3. Improve — generate or modify files to close the gaps. Recipes are in AGENTS.md.
  4. Metadata pass — invoke metadata-check on every short string the skill generated (titles, descriptions, schema description fields, FAQ answers).
  5. Verify — run any build, validate the output, remind the user about non-file tasks (Search Console, Bing Webmaster Tools, IndexNow key submission).

Phase 0: Detect the project

Confirm the basics before auditing:

  • It is actually a static site. Look for built HTML — index.html at the repo root, or under _site/ (Jekyll), public/ (Hugo / 11ty / Gatsby), dist/ (Vite / Astro static), out/ (Next.js with output: export). If everything is server-rendered (Express, PHP, dynamic routes), this is the wrong skill — point at astro-seo for Astro, wp-readme-optimizer for WP plugin pages, or recommend a generic SEO audit instead.
  • Source build tool. Drives where to apply head metadata changes:
    • _config.yml / _layouts/ → Jekyll
    • config.toml / config.yaml / themes/ → Hugo
    • .eleventy.js / _includes/ → 11ty
    • gatsby-config.js / src/components/SEO.* → Gatsby
    • next.config.js with output: 'export' and pages/_document.tsx → Next.js static export
    • astro.config.mjs → Astro (in which case use astro-seo instead)
    • No build config, just HTML files → hand-rolled or scraped (e.g. wp-static-clone output). Edit the HTML directly or use a post-process script.
  • Canonical site URL. Search the repo for the production origin — typically in _config.yml, config.toml, astro.config, or hardcoded into a layout. If it's missing, empty, or localhost, flag as a blocking issue before anything else. Canonicals, sitemaps, OG image URLs, and JSON-LD @id values all derive from this.
  • Deployment target. Read vercel.json, netlify.toml, wrangler.toml, or public/_headers to determine the host. Drives redirect and header syntax in Phase 2.
  • Is the site multilingual? Check for locale subdirectories (/en/, /nl/, /de/) or build-tool i18n config. If yes, hreflang matters; if no, skip it.
  • What's already in <head>? Open one built HTML file and inventory: title, description, canonical, robots, Open Graph, Twitter cards, JSON-LD, hreflang. The audit in Phase 1 is faster if you can reference what's there.

Ask only what you can't detect.


Phase 1: Audit

Score each category out of 10. For each, give 2–4 specific findings that quote the actual HTML, config, or template. Within each category, checks are tiered:

  • Must — ship blockers. A failure causes visible SEO regression.
  • Should — standard practice. Skipping costs reach.
  • Nice — forward-looking or situational. Useful but not baseline for every site.

Skip Nice checks for small personal sites unless the user asks for the full treatment.

1. Head metadata (/10)
  • Must — every page has a <title> and <meta name="description">.
  • Must — <link rel="canonical"> set, with tracking parameters stripped, derived from the production origin.
  • Must — canonical omitted when the page is noindex (per Google's recommendation).
  • Must — <title> length 30–65 characters, <meta name="description"> length 70–200 characters (the SERP-truncation bounds; same as metadata-check defaults).
  • Should — <meta name="robots"> includes max-snippet:-1, max-image-preview:large, max-video-preview:-1.
  • Should — Open Graph (og:title, og:description, og:image, og:url, og:type, og:site_name) on every page.
  • Should — Twitter Card tags (twitter:card) suppressed when they duplicate Open Graph (Twitter falls back automatically).
  • Should — hreflang alternates on multilingual sites. Skip if monolingual.
  • Should — single <meta name="robots"> and single og:image per page (legacy tooling sometimes emits duplicates).
2. Structured data / JSON-LD (/10)
  • Must — at least one <script type="application/ld+json"> block on every important page.
  • Should — linked @graph rather than a flat Article object — entities wired with @id references so a BlogPosting can point at its Person author and WebPage parent.
  • Should — WebSite, Blog / WebPage, Person / Organization, BlogPosting / Article, BreadcrumbList, ImageObject all present where relevant.
  • Should — trust signals: publishingPrinciples, copyrightHolder, copyrightYear, knowsAbout, SearchAction.
  • Must — validates in Rich Results Test and ClassySchema.
3. Content quality (/10)
  • Must — every page has a unique <title> and <meta name="description"> (no duplicate metadata across the site).
  • Must — exactly one <h1> per page.
  • Should — <title> and <meta name="description"> audited via metadata-check (Phase 2.5) for front-loading, concreteness, and SERP fit.
  • Should — body prose audited via readability-check for individual long-form posts (don't bulk-audit).
  • Should — every <img> has an alt attribute (or alt="" / role="presentation" for decorative).
  • Should — internal links use root-relative paths (/foo/) not absolute (https://...) — survives domain changes and previews.
4. Open Graph images (/10)
  • Must — every page has an OG image.
  • Must — 1200×675 (Google Discover minimum 1200px wide, 16:9 ratio).
  • Should — JPEG (social platforms don't reliably support WebP / AVIF for OG).
  • Should — generated at build time (satori-cli, sharp, ImageMagick, Vercel OG, Bannerbear) rather than uploaded manually per page — prevents drift.
  • Should — URL derived deterministically from the slug (e.g. /og/<slug>.jpg) so adding a page automatically gets an image.
  • Should — every <img> in body content has an alt attribute (or alt="" / role="presentation"). Validated in CI via html-proofer or similar.
5. Sitemaps and indexing (/10)
  • Must — /sitemap.xml (or /sitemap_index.xml for split sitemaps) reachable, valid XML, every URL returns 200.
  • Must — robots.txt present at the site root and references the sitemap.
  • Must — RSS feed exists, advertised via <link rel="alternate" type="application/rss+xml">, contains full post content (not truncated excerpts).
  • Should — split per-section if the site has multiple content types (sitemap-posts.xml, sitemap-pages.xml) — easier to debug indexing in GSC.
  • Should — <lastmod> populated from git commit timestamps (most accurate), build timestamps (acceptable), or frontmatter dates (last resort). Filesystem mtime from CI checkout is wrong — it's the checkout date, not the content date.
  • Should — IndexNow integrated. Verification key as a static /<key>.txt route at the site root, plus a build-or-deploy hook that POSTs new URLs to https://api.indexnow.org/IndexNow. Gate the submission on the production host (e.g. CF_PAGES_BRANCH=main, VERCEL_ENV=production, CONTEXT=production) — unconditional submission pings the endpoint from local builds with URLs the production host hasn't served yet, which gets the key marked invalid (403) and forces rotation.
6. Agent discovery (/10)
  • Should — schema endpoints (/schema/<type>.json) exposing corpus-wide JSON-LD per content type. Static JSON files committed to the repo or regenerated by the build.
  • Should — schema map (/schemamap.xml) listing every schema endpoint, with Schemamap: directive in robots.txt.
  • Should — llms.txt at the site root listing pages (title + description) for LLM consumers. Static text file; one line per page.
  • Should — markdown-alternate URLs (/blog/post.md next to /blog/post/) serving clean markdown with YAML frontmatter so AI agents can consume content without HTML parsing. Either commit .md siblings, or use a Cloudflare Transform Rule + Vary: Accept for content negotiation (CF Pages strips custom Vary headers, so use the Transform Rule's URL rewrite alone — recipe in AGENTS.md).
  • Should — API catalog at /.well-known/api-catalog per RFC 9727, as application/linkset+json (RFC 9264). Lists schema endpoints, schemamap, RSS feed, and any site-specific APIs. Static JSON file.
  • Should — Content Signals directive in robots.txt (Content-Signal: ai-train=yes, search=yes, ai-input=yes or your preferred policy). One line, IETF draft, low cost.
  • Should — Link header on /* pointing to discovery files (sitemap, llms.txt, api-catalog, schemamap). Agents reading response headers find them without parsing HTML. Host-specific (_headers on Cloudflare Pages / Netlify, vercel.json on Vercel, server config elsewhere).
  • Nice — MCP server card at /.well-known/mcp/server-card.json and / or A2A agent card at /.well-known/agent-card.json. Only relevant when the site exposes an MCP server or A2A agent.
  • Nice — <link rel="nlweb"> pointing to a conversational endpoint. NLWeb adoption is early; the tag is one line and worth having, but not a scoring blocker in 2026.
  • Nice — ARD (Agentic Resource Discovery) catalog at /.well-known/ai-catalog.json, listing what the domain offers (MCP server, A2A agent, OKF bundle, site-specific APIs). v0.9 draft, so optional — but it's the discovery layer the MCP / A2A cards and OKF bundle pay off through. Two gotchas: the base spec (Agent-Card/ai-catalog) names the media-type field mediaType while the ARD layer (ards-project/ard-spec) names it type — emit both keys with the same value so the entry validates under either reading (both specs require consumers to ignore unknown keys). ARD also adds an optional representativeQueries array of sample prompts per entry. Static JSON file.
  • Nice — OKF (Open Knowledge Format) bundle: a tree of typed Markdown concept files (one per page, paths mirroring canonical URLs) packaged as a single .tar.gz, with index files in between. Serving and discovery are explicit non-goals of OKF — that's what the ARD catalog entry is for. v0.9 draft, optional. There's no registered media type yet, so the interim string is application/okf-bundle+gzip (tracked in knowledge-catalog#111 and ard-spec#27); mark it interim, it may change. Best generated from the same source the rest of the site derives from rather than a hand-maintained copy.
Show full SKILL.md (743 more words)Show less
7. Performance (/10)
  • Must — hashed assets serve Cache-Control: public, max-age=31536000, immutable (or equivalent) so they only download once.
  • Should — primary web font preloaded as woff2 via <link rel="preload" as="font" crossorigin>.
  • Should — No-Vary-Search response header strips UTM parameters from cache key (so /?utm_source=x and / share a cache entry).
  • Should — no render-blocking JavaScript on first paint (defer or async non-critical scripts).
  • Should — images use modern formats (WebP / AVIF for in-page content; JPEG only for OG cards) and loading="lazy" below the fold.
  • Should — all Lighthouse / PageSpeed Core Web Vitals in the green: LCP < 2.5s, INP < 200ms, CLS < 0.1.
8. Redirects and error handling (/10)
  • Must — _redirects / vercel.json / server config maintained for every URL that ever existed and moved.
  • Must — 301 not 302 for permanent moves.
  • Must — 404.html (or equivalent) returns a 404 status, not 200. Verify with curl -I against a deliberately wrong URL.
  • Should — fuzzy-match suggestion on the 404 page ("did you mean…?") for typos in URLs. Static implementation: pre-build a JSON index of valid slugs, fuzzy-match client-side.
9. CI validation (/10)
  • Must — broken-link checker in CI. linkinator or lychee on every push that touches content. Internal and external links both — internal catches build regressions, external catches link rot. Schedule a weekly run for external-only checks.
  • Should — HTML validation via html-proofer or W3C Validator — catches malformed markup that breaks crawlers.
  • Should — Lighthouse CI on every push, with score thresholds (e.g. SEO ≥ 95, Performance ≥ 80).
  • Should — JSON-LD validation in CI via the Schema.org JSON-LD validator (no official CLI; pipe through a Node script that POSTs to the API).
  • Should — title and description length validation in CI: a small script that walks built HTML, extracts <title> and <meta name="description">, flags anything outside SERP-truncation bounds (title 30–65, description 70–200).

Phase 2: Improve

Based on the audit, produce concrete code. Always ask before overwriting. Read AGENTS.md for detailed recipes.

Branch on the Phase 0 findings. If the site is a known build tool (Hugo, Jekyll, 11ty, Gatsby, Next.js), apply changes at the source level (templates, config, frontmatter). For hand-rolled or scraped HTML, post-process the built output. The recipes in AGENTS.md are output-shape recipes — show the HTML you want to land at — and a per-tool note on where to plumb them through.

AGENTS.md sections: Head metadata (the canonical block), JSON-LD graph, OG image generation (build-script options), sitemap.xml and robots.txt, IndexNow, llms.txt, Markdown alternates, API catalog, Content Signals, Link headers, Performance headers, Redirects by host, CI workflows.


Phase 2.5: Metadata and readability pass

Invoke the metadata-check skill on every short string the skill generated or modified: page titles, meta descriptions, schema description fields, FAQ answers, and any frontmatter excerpt values you wrote. It checks front-loading, concreteness, filler, active voice, title / description duplication, difficult words, SERP-truncation fit (title 30–65, description 70–200), and one-idea-per-field. Apply fixes directly. Skip the pass for technical strings (URLs, schema @id values, enum values).

If the project has a blog or docs section, mention as a follow-up that the readability-check skill can audit individual posts for multi-paragraph prose quality — but don't audit the entire content corpus yourself.


Phase 3: Verify

  • Build the site (or rebuild if mid-iteration). Surface any build warnings.
  • Spot-check the built HTML: one page's <head> should be clean, canonical correct, JSON-LD graph present and linked.
  • Run the homepage through Rich Results Test and ClassySchema.
  • Confirm /sitemap.xml exists, returns 200, and references the right URLs.
  • Confirm /robots.txt references the sitemap and includes Content Signals.
  • If IndexNow is wired, confirm the key verification route returns the key at /<key>.txt.
  • Run the local broken-link check (linkinator http://localhost:8080 --recurse).
  • Remind the user about tasks that can't be automated:

Output format

markdown
## Static SEO audit: [site name]

### Score
| Category                              | Score |
| ------------------------------------- | ----: |
| 1. Head metadata                      |  x/10 |
| 2. Structured data / JSON-LD          |  x/10 |
| 3. Content quality                    |  x/10 |
| 4. Open Graph images                  |  x/10 |
| 5. Sitemaps and indexing              |  x/10 |
| 6. Agent discovery                    |  x/10 |
| 7. Performance                        |  x/10 |
| 8. Redirects and error handling       |  x/10 |
| 9. CI validation                      |  x/10 |
| **Total**                             | xx/90 |

### Findings
[Grouped by category. Quote actual HTML / config. Be specific.]

### Files generated or changed
[List with short description of each.]

### Next steps
[Non-file tasks: GSC, Bing Webmaster Tools, IndexNow key, analytics.]

Key principles

  • Audit the output, fix at the source. The skill checks the built HTML, but recommends changes at whatever layer produces it (Hugo template, Jekyll layout, 11ty include, post-process script). Don't recommend a fix that won't survive the next build.
  • Static = host-portable. Every recipe should work on any static host. Where syntax differs (_redirects vs vercel.json), give both forms.
  • Topics, not keyphrases. When reviewing content, focus on topical coverage and readability, not keyword density.
  • Agent discovery matters now. Schema endpoints, schema map, llms.txt, API catalog, markdown alternates, MCP / A2A cards — the crawler is no longer the only consumer.
  • Defer to astro-seo for Astro. That skill produces less hand-rolled boilerplate via @jdevalk/astro-seo-graph. static-seo is for everything else.

© jdevalk, 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 2 other files in static-seo of jdevalk/skills.

  • SKILL.md
  • AGENTS.md
  • README.md

Open the folder on GitHubat commit 106fc68

Compare with similar skills

Static SEO 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.

Static SEO compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Static SEO this skilljdevalk/skills104—~4.8kAutomated safety check: PassMIT
SEO Setupalisamadiii/Portfolio180—~1.7kAutomated safety check: PassNone
Content Freshness Signalsthedaviddias/Front-End-Checklist74k—~741Automated safety check: PassMIT
Motion Dev Animations199-biotechnologies/motion-dev-animations-skill1041 repos~2.8kAutomated safety check: NotesMIT
Sanity Best Practicesrobotostudio/turbo-start-sanity182—~940Automated safety check: PassMIT
Feature Sliced Designfeature-sliced/skills109—~5.5kAutomated safety check: PassNone

Similar skills

  • SEO Setup

    alisamadiii/Portfolio

    Full SEO/metadata setup and audit for client websites (Astro, Next.js, any static site).

    180 GitHub stars~1.7k tokensUpdated today
    Marketing & SEOAuto-check passed
  • Content Freshness Signals

    thedaviddias/Front-End-Checklist

    Audits article pages for freshness signals, covering the Last-Modified header, Article JSON-LD dateModified and a visible last-updated date, and fixes mismatches.

    74k GitHub stars~741 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Motion Dev Animations

    199-biotechnologies/motion-dev-animations-skill

    Creates 120fps GPU-accelerated animations with Motion.dev (Framer Motion successor) for React, Next.js, Svelte, and Astro projects.

    104 GitHub starsUsed in 1 repo~2.8k tokens
    Frontend & DesignAuto-check: notes
  • Sanity Best Practices

    robotostudio/turbo-start-sanity

    Sanity development best practices for schema design, GROQ queries, TypeGen, Visual Editing, images, Portable Text, Studio structure, localization, migrations, Sanity Functions, Blueprints, and…

    182 GitHub stars~940 tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Feature Sliced Design

    feature-sliced/skills

    Official Feature-Sliced Design (FSD) v2.1 skill for applying the methodology to frontend projects.

    109 GitHub stars~5.5k tokensUpdated 21 days ago
    Frontend & DesignAuto-check passed
  • Markdown Integration

    live-codes/livecodes

    Integrate LiveCodes with documentation sites using remark-livecodes, markdown-it-livecodes, gatsby-remark-livecodes, or marked-livecodes for Docusaurus, Astro, VitePress, Next.js, and Storybook.

    1.5k GitHub stars~2k tokensUpdated today
    Frontend & DesignAuto-check passed

More from jdevalk/skills

All 9 skills in this repo
  • Wp Static Clone

    jdevalk/skills

    Clones a live WordPress (or other CMS-driven) site into a static HTML site deployable on any static host (Cloudflare Pages, Netlify, Vercel, S3+CloudFront, plain Apache/nginx).

    104 GitHub stars~2.6k tokensUpdated 3 mo ago
    Auto-check passed
  • Astro SEO

    jdevalk/skills

    Audits and improves SEO for Astro sites. An agent skill from jdevalk/skills.

    104 GitHub stars~4.9k tokensUpdated 3 mo ago
    Auto-check passed
  • Content SEO

    jdevalk/skills

    Audits a blog post draft or page copy for content-level SEO: search intent fit, focus keyphrase placement, E-E-A-T signals (experience, expertise, authoritativeness, trustworthiness), helpfulness…

    104 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed
  • Metadata Check

    jdevalk/skills

    Reviews short high-value strings — page titles, meta descriptions, schema description fields, FAQ answers, GitHub repo taglines, profile bios, social-card copy, and other metadata where Flesch and…

    104 GitHub stars~1k tokensUpdated 3 mo ago
    Auto-check passed
  • Readability Check

    jdevalk/skills

    Runs a readability audit on a blog post draft or other multi-paragraph prose, calibrated for readers who read English as a second language.

    104 GitHub stars~3.3k tokensUpdated 3 mo ago
    Auto-check passed
  • GitHub Profile

    jdevalk/skills

    Audits and optimizes GitHub profile pages — profile README, metadata fields, pinned repositories, stats widgets, and contribution visibility.

    104 GitHub stars~1.9k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Questions about Static SEO

What does Static SEO do?

Audits and improves SEO for static HTML sites. An agent skill from jdevalk/skills. Static SEO is an agent skill from jdevalk/skills. Audits and improves SEO for static HTML sites.

When should I use Static SEO?

Static SEO fits situations like: the user asks to audit; improve SEO on a static site (Hugo; Next.js static export; hand-rolled HTML.

How do I install Static SEO in Claude Code?

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

How do I install Static SEO in Codex?

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

Can I use Static SEO 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 jdevalk/skills --skill static-seo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/static-seo, .gemini/skills/static-seo, .github/skills/static-seo and .opencode/skills/static-seo in your project.

What does Static SEO need to run?

Going by SKILL.md and its folder, Static SEO needs the command-line tools its instructions call (curl).

Does Static SEO access the network?

SKILL.md names 11 domains. In commands or code: api.indexnow.org; the agent is likely to contact it when it follows the instructions. As links in the text: github.com, search.google.com, classyschema.org, rfc-editor.org, llmstxt.org, agenticresourcediscovery.org, validator.w3.org, validator.schema.org, bing.com and plausible.io. This is read from the text; nothing was executed.

Is Static SEO safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Static SEO use?

Static SEO is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Static SEO use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Static SEO?

Skills that share tags, products or a category with Static SEO: SEO Setup (alisamadiii/Portfolio, 180 stars), Content Freshness Signals (thedaviddias/Front-End-Checklist, 74k stars), Motion Dev Animations (199-biotechnologies/motion-dev-animations-skill, 104 stars) and Sanity Best Practices (robotostudio/turbo-start-sanity, 182 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Static SEO?

jdevalk (a GitHub user) maintains it in jdevalk/skills, which has 104 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on July 5, 2026.

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