seo-analysis

seo-analysis is a skill for Claude Code, Codex from nowork-studio/notfair-plugin. It costs 297 tokens per session (14,324 once invoked), scanned B, original, MIT.

A search-engine optimisation audit workflow for websites. It combines website crawling and metadata checks with data from Google Search Console, URL Inspection, PageSpeed Insights, keyword research, structured data, and search-intent analysis.

In plain words
What is it for?
Use it to audit a website, investigate traffic drops, check technical SEO and Core Web Vitals, review search terms and page metadata, and prioritise specific improvements.
Why use it?
It helps identify why a site may be hard for search engines to understand or why its search traffic or page performance is poor.

Skill for Claude CodeCodex

Part of the notfair plugin — 52 skills, 1 MCP server shipped together

About the project

NotFair Plugin is a collection of open-source SEO, generative-engine-optimization, and marketing workflows that AI agents can follow. It helps agents audit websites, analyze search and advertising data, plan campaigns, and make reviewable marketing changes; the catalogue entries are its skills, instructions, MCP connection, and plugin.

nowork-studio/notfair-plugin · 3,451 stars · on GitHub

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/nowork-studio/notfair-plugin/seo-analysis
Any agent
npx skills add nowork-studio/notfair-plugin --skill seo-analysis
Clone the repo
git clone --depth 1 https://github.com/nowork-studio/notfair-plugin

Made for: Claude Code, Codex.

Or install notfair, the plugin that ships this one along with the rest of its 52 skills, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for seo-analysis

README.md
[![agentmods](https://agentmods.dev/badge/skills/nowork-studio/notfair-plugin/seo-analysis.svg)](https://agentmods.dev/skills/nowork-studio/notfair-plugin/seo-analysis)
Your own site
<a href="https://agentmods.dev/skills/nowork-studio/notfair-plugin/seo-analysis"><img src="https://agentmods.dev/badge/skills/nowork-studio/notfair-plugin/seo-analysis.svg" alt="Measured on agentmods" height="20"></a>
Per session 297 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 14,324 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 3 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00297 $0.14324
Opus 5 $0.00148 $0.07162
Sonnet 5 $0.00059 $0.02865
Haiku 4.5 $0.00030 $0.01432

Measured 5d ago against content hash 6ef290a5c766, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade B, and why

seo-analysis scanned grade B with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

The scan reads SKILL.md. This mod also ships 19 executable files (scripts/_gcloud.py, scripts/_uid.py, scripts/analyze_gsc.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directorieslowAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

CONTENT_REF=$(find ~/.claude/plugins ~/.claude/skills ~/.codex/skills .agents/skills -name "content-writing.md" -path "*content-writer*" 2>/dev/null | head -1)

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Enumerates other installed skillslowAgent snooping

Other skills' SKILL.md files reveal prompts, capabilities and secrets that should be invisible to peers.

CONTENT_REF=$(find ~/.claude/plugins ~/.claude/skills ~/.codex/skills .agents/skills -name "content-writing.md" -path "*content-writer*" 2>/dev/null | head -1)

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

DOMAIN=$(python3 -c "import sys; from urllib.parse import urlparse; print(urlparse(sys.argv[1]).netloc.lstrip('www.'))" "$TARGET_URL")
seo/seo-analysis/SKILL.md · 1,353 lines

How it starts

The opening of the file, as written. The whole thing — 1,353 lines — stays where its author put it; the contents beside it link to each section on GitHub.

SEO Analysis

You are a senior technical SEO consultant. You combine real Google Search Console data with deep knowledge of how search engines rank pages to find problems, surface opportunities, and produce specific, actionable recommendations.

Your goal is not to produce a generic report. It is to find the 3-5 changes that will have the biggest impact on this specific site's organic traffic, and explain exactly how to make them.

Works on any site. Works whether you are inside a website repo or auditing a URL cold.


Step 0 — Establish the Website URL

Before doing anything else, check for previously audited sites:

ls ~/.toprank/business-context/*.json 2>/dev/null | xargs -I{} python3 -c "
import json, sys
from datetime import datetime, timezone
try:
    d = json.load(open(sys.argv[1]))
    gen = datetime.fromisoformat(d.get('generated_at', '1970-01-01T00:00:00+00:00'))
    age = (datetime.now(timezone.utc) - gen.astimezone(timezone.utc)).days
    print(f\"{d.get('target_url', d.get('domain','?'))} (audited {age}d ago)\")
except: pass
" {}

If one or more cached sites are listed, show them and ask:

"I've audited these sites before — use one, or enter a different URL:

  1. https://example.com (audited 12 days ago)
  2. Enter a different URL"

If the user picks a cached site, load target_url from that domain's ~/.toprank/business-context/<domain>.json and set it as $TARGET_URL. Skip to Phase 0.

If no cached sites exist, ask the user:

"What is the main URL of the website you want to audit? (e.g. https://yoursite.com)"

Wait for their answer. Store this as $TARGET_URL — it is needed for the entire audit: URL Inspection API calls, technical crawl, metadata fetching, and matching against GSC properties.

Once you have the URL, also attempt to auto-detect it from the repo to confirm or catch mismatches:

  • package.json"homepage" field or scripts with domain hints
  • next.config.js / next.config.tsenv.NEXT_PUBLIC_SITE_URL or basePath
  • astro.config.*site: field
  • gatsby-config.jssiteMetadata.siteUrl
  • hugo.toml / hugo.yamlbaseURL
  • _config.yml (Jekyll) → url field
  • .env or .env.localNEXT_PUBLIC_SITE_URL, SITE_URL, PUBLIC_URL
  • vercel.json → deployment aliases
  • CNAME file (GitHub Pages)

Read the full file on GitHub · 1,353 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 1,353 lines · 297 tokens per session scan B 6ef290a5c766

Subscribe to this mod's changes

seo-analysis is a skill published in the GitHub repository nowork-studio/notfair-plugin (3,451 stars, last pushed 7d ago), licensed MIT. It adds 297 tokens to every session and 14,324 once invoked, about $0.0015 per session on Opus 5. A static security scan graded it B with 3 findings (reads agent configuration directories, enumerates other installed skills, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

octowiz-doctowiz

The Octowiz doctor — diagnose, monitor, and fix the full octowiz + AELLI integration. Use whenever octowiz or AELLI isn't behaving correctly, a hook isn't firing, an advisory isn't returning, or you want a real-time activity feed. Also guides first-time setup, configuration from scratch, and upgrading from older…

raelli/octowiz · 138 tokens

setup

Setup orchestrator for the Octowiz Bridge. Re-runs the live environment check, builds a gap list, and runs only the phases needed: plugins, memory, repo, verify. Invoked automatically by octowiz:octowiz when hard gaps are detected.

raelli/octowiz · 57 tokens

octowiz

Octowiz AI coding workflow coordinator. Reads IntegraHub memory doctrine at runtime, detects where you are in the development lifecycle, and routes to the right skill combination from superpowers + mattpocock-skills. Use this skill at the START of any development work — whether you have a fresh idea, an existing plan…

raelli/octowiz · 139 tokens

build-user-persona

Build evidence-backed user personas from research inputs. Creates structured persona documents grounded in evidence, with each attribute clearly labeled as research-validated or inferred. Use this skill when you need personas for an FR, strategy doc, or design brief. Trigger on: "build a persona", "create user…

felipecabargas/gambit · 105 tokens

competitive-analysis

Structure a competitive landscape analysis — player profiles, capability comparison matrix, whitespace opportunities, and strategic implications. Use this skill when entering a new market, refreshing strategy, or preparing for a planning cycle. Trigger on: "do a competitive analysis", "who are our competitors"…

felipecabargas/gambit · 100 tokens

write-feature-request

Guided Feature Request (FR) authoring. Assists the user in writing a high-quality FR by collecting structured inputs (problem, solution, outcomes, requirements), then auto-generates Acceptance Criteria for every requirement. If any AC cannot be written due to missing information, the skill identifies the gaps and…

felipecabargas/gambit · 150 tokens