# SEO Ops

Structural checklist and checker script for SEO foundation engineering.

- Repository: https://github.com/tigerless-labs/seo-ops (986 stars)
- Category: Design
- License: see repository
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add tigerless-labs/seo-ops --skill seo-ops -g -a claude-code -y`
Codex: `npx skills add tigerless-labs/seo-ops --skill seo-ops -g -a codex -y`
Cursor: `npx skills add tigerless-labs/seo-ops --skill seo-ops -g -a cursor -y`
Gemini CLI: `npx skills add tigerless-labs/seo-ops --skill seo-ops -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add tigerless-labs/seo-ops`

## Description

Structural checklist and checker script for SEO foundation engineering. Use when reviewing or accepting a site/page for SEO/GEO structural compliance (robots, sitemap, canonical, 301 canonicalization, JSON-LD, OG, hreflang, CWV, AI crawler access, rendering strategy), when running the machine checks to produce a report, or when judging whether a frontend change will affect indexing and citation. Also for answering "what exactly does this check require" and "why does it exist".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# seo-ops · SEO foundation engineering

Review a site's templates and output against the **C set** (30 structural checks), or run the checker to produce an acceptance report.

## How to work

When this skill triggers, introduce it in **one sentence**, "30 structural checks (the C set): can crawlers
fetch, read, index, and cite this site", then immediately ask **one question** (as selectable options if your
environment has an option/question UI):

> **What should I check?**
> 1. **A URL**, live domain or local deployment (`http://localhost:<port>`), both fine; produces a report
> 2. **The code**, review templates/pages in this repo against the checklist, no script

That one answer decides the path; don't ask anything else before starting, **no config is needed**, the checker
runs with defaults on a bare `--target`. Never bring configuration up on your own; it only becomes relevant if
the user asks for the extras (CrUX field data, IndexNow, multi-site roster, see "**Configuration**").

| The user gave | Path | Section to follow |
|---|---|---|
| a domain / URL (live or localhost) | run the checker, produce a report | "**Run the checker**" → then "**Read the report**" |
| code, templates, a PR, page files | no script; review the machine-readable output surface against the C set item by item | "**Scope**" sets the boundary; `references/checklist/checklist.md` lists the items, but judge each one by its canonical doc `references/checklist/references/C<N>.md`, not by the index row alone |

Once intent is confirmed, **do not keep asking for permission**. Everything else:
the user asks why a check exists / how to fix it → "**After the report**";
dependencies won't install → "**Environment**".

The rest: https://github.com/tigerless-labs/seo-ops/blob/HEAD//SKILL.md
