Serpentine banner
NikitasT2003 NikitasT2003

Serpentine

Data community

Description

An SEO skill for AI agents that writes the code instead of the PDF. Detects your framework, ships titles, canonicals, sitemaps, structured data and internal links into the repo, then curls the build to prove they arrived.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

serpentine

[![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Validate](https://github.com/NikitasT2003/serpentine/actions/workflows/validate.yml/badge.svg)](https://github.com/NikitasT2003/serpentine/actions/workflows/validate.yml) [![Google guidance verified 2026-08-26](https://img.shields.io/badge/google%20guidance-2026--08--26-brightgreen)](references/crawl.md)

There is a SERP in the name. Everything else here is serious.

The standard SEO deliverable is a 40-page PDF that says "improve your meta descriptions."

This one improves your meta descriptions.

Install

git clone https://github.com/NikitasT2003/serpentine ~/.claude/skills/serpentine

Then say "do SEO on this site." Use `.claude/skills/` instead to scope it to one project.

What it does

1. Detect     framework, where  is controlled, SSR or client-only
2. Inventory  every route: title, description, canonical, H1, target
3. Target     one query per page, no two pages chasing the same one
4. Implement  crawlability, metadata, on-page, schema, links, CWV
5. Verify     curl the built output and confirm the tags are really there

Every step ends in a file changed or a stated reason no change was needed. It is not allowed to finish by suggesting you consider looking into things.

Step 5 exists because metadata has a habit of being extremely present in your components and completely absent from your HTML.

Things it finds in the first ten minutes

**The `noindex` from staging.** Added in March so the preview site would not get crawled. Shipped to production. Has been quietly instructing Google to ignore the entire website ever since. Nobody can see it in a browser, which is why it is still there.

**`X-Robots-Tag` in `vercel.json`.** Same idea, except it overrides your HTML and appears in no template, so grepping the components finds nothing and everyone concludes SEO is mysterious.

**The `robots.txt` paradox.** You added `noindex` to remove a page.