SEO-GOD skill
Claude Code skill for your own site: audit, repo fixes, Search Console measurement and a daily repeat on a schedule
- 123 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- A scheduled run edits repository files while you are away.
- Uses access to Google Search Console and starts Docker containers.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/seo-godDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- A scheduled run edits repository files while you are away.
- Uses access to Google Search Console and starts Docker containers.
This is third-party code. Review the repository files before installing.
What it does
SEO-GOD turns Claude Code into an SEO operator for a site the user owns. The skill crawls the site with a local OpenSEO container, fixes what it finds in your repository behind your own build, reads real numbers from Google Search Console and diffs today against yesterday. It does not scrape Google, and the whole free path runs without paid API keys. Work goes in five phases, one per call: `setup` boots OpenSEO in Docker and writes `seo-god.json`, `audit` crawls the site and triages issues by impact, then fixes the ones that live in the repo (titles, meta tags, broken links, thin content). Then come measurement, an AI search visibility check and schedule installation. After the phases the daily loop `act` is available, and it can also run on demand.
Who it is for. Site owners and developers who want to run the SEO of their project through Claude Code and keep the result in the repository.
Good fit when
- A site needs crawling and its issues sorted by impact.
- Titles, meta tags and broken links are fixed directly in the project code.
- You want a daily Search Console snapshot with a diff against yesterday.
- The loop should run by itself through an OS scheduler or a cloud routine.
Not a fit when
- The site belongs to someone else or is closed to the public.
- There is no Docker on the machine and OpenSEO runs only there.
- Unattended edits in the repository are unacceptable.
Example request
/seo-god audit the site, fix the problems in the repository and show what changed in Search Console since yesterday.Limitations
You need a site you own and that is publicly reachable; repo access is strongly preferred because fixes are edits in it, gated by your build. Docker is required (Desktop on macOS and Windows, Engine with Compose v2 on Linux). A scheduled run edits files in the repository while you are away, so set up the build and checks beforehand. Unattended runs ask no questions and, when OpenSEO is unreachable, degrade instead of guessing. If no run marker appears for 48 hours, the next `/seo-god` session opens with a warning.
How to disable. Delete the `~/.claude/skills/seo-god` folder, stop the OpenSEO container and remove the job from the scheduler (Task Scheduler, launchd or cron). Delete `seo-god.json` by hand.
FAQ
How do I install SEO-GOD?
Run `git clone https://github.com/AKCodez/seo-god ~/.claude/skills/seo-god` and then `/seo-god` in the project. The first run creates `seo-god.json`.
Are paid keys needed?
No. The entire free path works without paid API keys. Data comes from OpenSEO and your Search Console.
How does the schedule work?
The `schedule` phase installs a job in Task Scheduler, launchd or cron, or a cloud routine, that runs `claude -p /seo-god` daily at 05:00.
Does the skill scrape Google?
No. The skill does not scrape Google. Numbers come from your Search Console.
Where is state stored?
Phase results are written to `seo-god.json` in the project. The daily loop leaves dated snapshots and readouts in the repository.
Discussion
No questions or reviews yet.
Related
SkillsA beginner-first SEO coaching skill: work on your real site from baselines to one rechecked change until you can repeat it
A Claude Code skill set for auditing sites for AI search: citability, AI crawler access, llms.txt, schema and reports
Skill and CLI for SEO audits and website builds: a scroll story, GPT images, metadata checks and deployment to free hosting
A Claude Code skill with a script and checklist: Yandex and Google indexing, Webmaster, Metrika and visibility in AI assistants
A free SEO audit inside Codex CLI: 26 sub-skills and 19 expert roles check technical SEO, content, schema and AI search
A Claude Code plugin for drafting SEO pages from search results and competitor material, with an outline, FAQ and schema
README in short
The author carried over a pipeline that runs daily on his production site. The repository contains a smoke run report and an evaluation of 240 runs with numbers.
README badge
Original SKILL.md
---
name: seo-god
description: "Agentic SEO operator for your own website: audits and fixes your site with OpenSEO, measures rankings + Google Search Console, works to get ChatGPT and other AI engines citing you, and schedules the whole loop daily. Use for ANY 'improve my SEO', 'SEO audit', 'why am I not ranking', 'set up SEO monitoring', 'get cited by ChatGPT' request, and always on /seo-god. Not for competitor-only data pulls that leave your own site untouched."
allowed-tools: "Bash(curl:*), Bash(curl.exe:*), Bash(git status:*), Bash(git diff:*), Bash(git log:*), Bash(git check-ignore:*), Bash(git rev-parse:*), WebSearch"
---
# SEO-GOD
You run an agentic SEO loop on the user's own website: setup, audit, measure, act, AI visibility,
then a daily schedule. This file is the orchestrator only — detect state, route to exactly one
phase file, write state back. Do the SEO work inside the phase file, never here.
Phase instructions live in `references/`. Load one at a time; never preload them all.
## The state file
`seo-god.json` lives at the USER's project root — the current working directory — not in this skill
folder. Setup creates it. Version 1 shape:
```json
{
"version": 1,
"site_url": "https://example.com",
"openseo": { "url": "http://127.0.0.1:3001", "status": "not_installed" },
"gsc": { "connected": false },
"phases": { "setup": "pending", "audit": "pending", "measure": "pending", "ai_visibility": "pending", "schedule": "pending" },
"schedule": { "mode": "none", "time_local": "05:00", "marker": ".seo-god/last-run.json" },
"ai_prompts_locked": [],
"power_ups": { "dataforseo": false, "llm_keys": false, "telegram": false }
}
```
Allowed values: every phase is `"pending"`, `"in_progress"`, or `"done"`. `openseo.status` is
`"not_installed"`, `"running"`, or `"error"`. `schedule.mode` is `"none"`, `"os"`, or `"cloud"`.
Phases add two more keys as they run: `build_cmd` (audit) and `keywords` (measure). Both are part
of version 1 — preserve them like any other key.
## State detection — work through these in order, every single invocation
**1. Read `seo-god.json` from the current working directory.**
- Missing → this is a first run. Read `references/setup.md`, follow it, stop here.
- Present but unparseable, or `version` is not `1` → show the user the file, explain what is wrong,
ask how to proceed. Never overwrite a state file you could not parse.
- Parsed → continue to step 2.
**2. Missed-run self-check — this happens BEFORE you print anything else.**
Only when `schedule.mode` is not `"none"`. Read the file path in `schedule.marker` (default