Universal SEO Analysis
AgriciDaniel/claude-seo
Hub for site-wide SEO work: audits, technical checks, schema, content quality, local, hreflang and AI-search readiness, run through slash commands.
Crawls a site with Crawl4AI to audit titles, meta tags, H1s, canonicals, navigation and internal links, and to compare landing pages and competitor sites.
SKILL.md written in Russian; this summary is our English description.
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seo --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .claude/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.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/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .claude/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .agents/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .agents/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .cursor/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .cursor/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/artwist-polyakov/polyakov-claude-skills.git --path plugins/crawl4ai-seo/skills/crawl4ai-seo--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .gemini/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .gemini/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .github/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .github/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install artwist-polyakov/polyakov-claude-skills crawl4ai-seo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/crawl4ai-seo/skills/crawl4ai-seo .opencode/skills/crawl4ai-seo && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "crawl4ai-seo" agent skill from https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/crawl4ai-seo/skills/crawl4ai-seo into .opencode/skills/crawl4ai-seo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "crawl4ai-seo", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
crawl4ai-seoCrawls a site with Crawl4AI to audit titles, meta tags, H1s, canonicals, navigation and internal links, and to compare landing pages and competitor sites.
The skill answers what is actually on a site's pages and how the site is built internally. Tasks include a full page inventory (URL, status, title, H1, meta, canonical, word count), an on-page audit for empty or duplicate titles and H1s, broken canonicals and thin content, an internal linking audit that finds orphan pages with no incoming links, a navigation audit of breadcrumbs, menus and hub pages, landing page comparison, and competitor research through the same pipeline. It complements rank and visibility tools rather than replacing them.
Work is organized as jobs. A seed or init script creates a job from launch parameters (target domain, project, label), crawl_batch.py runs the crawl, and report scripts such as build_navigation_report.py and compare_pages.py produce the outputs, with results and the resolved config stored under cache/jobs. Before crawling, doctor.py checks uv, Python, crawl4ai, playwright and the config, and the agent stops rather than faking a crawl if something is missing. The SKILL.md is in Russian and covers Google and Yandex SEO, including Cyrillic URLs.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8bbeead. It shows what the files ask for, not the result of running them.
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.
Ships 6 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Crawl4AI SEO Site Crawler loads about 1.7k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 173 tokens; SKILL.md has 516 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from artwist-polyakov/polyakov-claude-skills at commit 8bbeead, republished under its MIT licence (© artwist-polyakov). 516 words, ~1,740 tokens.
.claude/skills/crawl4ai-seo/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.SEO-краулер для аудита сайтов и конкурентного анализа. Отвечает на вопрос: "что реально лежит на страницах и как сайт устроен изнутри".
Не заменяет SERP-инструменты (позиции, видимость) — дополняет их данными о содержимом и структуре страниц.
| Задача | Описание |
|---|---|
| Site inventory | Полная инвентаризация страниц: URL, status, title, H1, meta, canonical, word count |
| On-page audit | Поиск проблем: пустые title/H1, дубли заголовков, битые canonical, thin content |
| Internal linking audit | Граф внутренних ссылок, orphan pages (0 входящих), слабо связанные страницы |
| Navigation audit | Breadcrumbs, nav-блоки, menu consistency, hub-страницы без исходящих ссылок |
| Landing comparison | Сравнение shortlist URL по on-page сигналам (title, H1, content, links) |
| Competitor research | Прогон страниц конкурентов через тот же pipeline, сравнение шаблонов |
Глобальные defaults: config/defaults.example.json, локальный override — config/defaults.json.
Подробности: config/README.md.
Правило: в defaults не храним конкретный сайт или параметры клиента. Всё site-specific приходит через launch params и фиксируется в cache/jobs/<job_id>/resolved_config.json.
Проверь окружение:
python3 scripts/doctor.pyЕсли crawl4ai/playwright не готовы — остановись на seed/discovery, не имитируй crawl.
Определи цель исследования:
Собери launch params:
target.domain — домен исследованияjob.project — проект/клиентjob.label — метка запуска# 1. Создать job
python3 scripts/init_job.py --domain https://example.com --project client-a --label full-audit
# 2. Собрать seed URL из sitemap/robots
python3 scripts/seed_urls.py --job-id <job_id>
# 3. Запустить crawl
uv run --script scripts/crawl_batch.py --job-id <job_id>
# 4. Построить навигационный отчёт
python3 scripts/build_navigation_report.py \
--seed-job-id <seed_job_id> \
--crawl-job-id <crawl_job_id> \
--report-dir reports/<project>/<label>
# 5. Сравнить страницы
python3 scripts/compare_pages.py --job-id <job_id>python3 scripts/seed_urls.py --domain https://example.com --project client-a --label quick-check
uv run --script scripts/crawl_batch.py --job-id <job_id>| Script | Назначение |
|---|---|
doctor.py | Проверка окружения: uv, Python, crawl4ai, playwright, config |
init_job.py | Создание job: job_id, launch_params.json, resolved_config.json |
seed_urls.py | Discovery URL из sitemap/robots/файла → seed.json (работает без crawl4ai) |
crawl_batch.py | Batch crawl через crawl4ai → pages.ndjson, links.ndjson, summary.json |
compare_pages.py | Табличное сравнение crawled pages по on-page сигналам |
build_navigation_report.py | Сводный навигационный аудит: orphans, weak hubs, breadcrumbs, menu drift |
common.py | Shared helpers (не запускать напрямую) |
На каждую страницу (pages.ndjson) извлекаются:
On-page: title, description, keywords, canonical, robots, og:title, og:description, og:image, H1, headings hierarchy, word count.
Navigation: path depth, breadcrumbs (texts + URLs), nav blocks count, nav links count, nav URLs sample.
Links: internal/external links count. В links.ndjson — полный граф: source → target, anchor text, nofollow, same_domain.
build_navigation_report.py автоматически находит:
| Проблема | Что значит для SEO |
|---|---|
| Orphan pages (0 входящих ссылок) | Поисковик не найдёт страницу или не передаст ей вес |
| Weakly linked (1 входящая) | Страница получает минимум link equity |
| Missing breadcrumbs | Нет навигационной цепочки для бота и пользователя |
| Breadcrumb inconsistency | Разные trail signatures в одной секции — путаница в иерархии |
| Weak nav template | Hub-страница с подозрительно малым числом nav-ссылок |
| Menu inconsistency | Страницы теряют часть common nav targets (шаблон "дрейфует") |
| Weak hubs | Категория/раздел отдаёт <5 внутренних ссылок |
| Duplicate titles | Несколько страниц с одинаковым title — каннибализация |
| Canonical mismatches | canonical указывает не на себя |
| Technical junk | login-URL, php endpoints, asset-ссылки в навигационном слое |
| Linked-not-seeded | Сайт линкует URL, которых нет в sitemap |
| Сценарий | Скилл-партнёр | Порядок |
|---|---|---|
| SERP → on-page audit | yandex-search-api | Получи shortlist из SERP → прогони через crawl4ai |
| Organic landings → audit | yandex-metrika | Возьми top organic pages → проверь on-page quality |
| Индексация + audit | yandex-webmaster | Сравни indexed pages с crawled inventory |
| Anti-block fallback | scrapedo-web-scraper | При блокировке crawl4ai — fallback через Scrape.do |
cache/jobs/<job_id>/
launch_params.json # raw params этого запуска
resolved_config.json # effective config после merge defaults + params
manifest.json # operational state и artifact paths
seed.json # seed URLs и метаданные discovery
pages.ndjson # одна запись на страницу
links.ndjson # одна запись на link edge
summary.json # компактная сводка
markdown/ # сохранённый markdown контентКаждый job изолирован. Параллельные запуски по разным сайтам безопасны.
rg, head, wc -l по ndjson-файлам, не поднимай browser повторно.© artwist-polyakov, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 12 other files (scripts, references) in plugins/crawl4ai-seo/skills/crawl4ai-seo of artwist-polyakov/polyakov-claude-skills.
Open the folder on GitHubat commit 8bbeead
Crawl4AI SEO Site Crawler 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Crawl4AI SEO Site Crawler this skillartwist-polyakov/polyakov-claude-skills | 208 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Universal SEO AnalysisAgriciDaniel/claude-seo | 19k | — | ~4.9k | Automated safety check: Pass | MIT | |
| SEO Content Auditgooseworks-ai/goose-skills | 1.2k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Site ArchitectureAvdLee/RocketSimApp | 806 | 11 repos | ~3.3k | Automated safety check: Pass | Custom licence | |
| SEO Optimizerailabs-393/ai-labs-claude-skills | 455 | 1 repos | ~3.2k | Automated safety check: Pass | MIT | |
| SEO Drift MonitorAgriciDaniel/claude-seo | 19k | 1 repos | ~1.9k | Automated safety check: Pass | MIT |
AgriciDaniel/claude-seo
Hub for site-wide SEO work: audits, technical checks, schema, content quality, local, hreflang and AI-search readiness, run through slash commands.
gooseworks-ai/goose-skills
Comprehensive SEO footprint analysis. An agent skill from gooseworks-ai/goose-skills.
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing HTML/CSS websites for SEO optimization, fixing SEO issues, generating SEO reports, or implementing SEO best practices.
AgriciDaniel/claude-seo
Captures baselines of a page's SEO-critical elements, compares later snapshots against them and flags regressions by severity, like version control for on-page SEO.
freekmurze/dotfiles
When the user wants to audit, review, or diagnose SEO issues on their site.
artwist-polyakov/polyakov-claude-skills
Launches, monitors and collects results from child AI agent sessions with the agent-deck terminal session manager.
artwist-polyakov/polyakov-claude-skills
Publishes already-built static pages to a GitHub Pages repo under a year, year-month and slug folder layout, optimizes large images and returns the public URL.
artwist-polyakov/polyakov-claude-skills
Shell scripts for web search and research through the Perplexity API: raw results, cited answers, background deep research and page fetching, with results cached on disk.
artwist-polyakov/polyakov-claude-skills
Publish static page artifacts to SourceCraft Sites (Yandex infrastructure, works in Russia), with advisory image optimization and an original-image path.
artwist-polyakov/polyakov-claude-skills
Searches X/Twitter through the xAI Grok API to build digests, trend reports and thread analysis, meant to surface post ideas for a Telegram channel.
artwist-polyakov/polyakov-claude-skills
Яндекс Метрика: детализация трафика по источникам и UTM-меткам, отчёты по конверсиям и поисковым системам, API-сегменты и доступы к счётчикам.
Works with
Categories
Crawls a site with Crawl4AI to audit titles, meta tags, H1s, canonicals, navigation and internal links, and to compare landing pages and competitor sites. The skill answers what is actually on a site's pages and how the site is built internally. Tasks include a full page inventory (URL, status, title, H1, meta, canonical, word count), an on-page audit for empty or duplicate titles and H1s, broken canonicals and thin content, an internal linking audit that finds orphan pages with no incoming links, a navigation audit of breadcrumbs, menus and hub pages, landing page comparison, and competitor research through the same pipeline.
Crawl4AI SEO Site Crawler fits situations like: running a full SEO inventory of a site's pages; finding orphan pages and weakly linked sections; auditing breadcrumbs, menus and navigation consistency; comparing a shortlist of landing pages or competitor pages.
Run `npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a claude-code`. Or copy the skill folder (plugins/crawl4ai-seo/skills/crawl4ai-seo in artwist-polyakov/polyakov-claude-skills) into .claude/skills/crawl4ai-seo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-seo -a codex`. Or copy the skill folder (plugins/crawl4ai-seo/skills/crawl4ai-seo in artwist-polyakov/polyakov-claude-skills) into .agents/skills/crawl4ai-seo in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add artwist-polyakov/polyakov-claude-skills --skill crawl4ai-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/crawl4ai-seo, .gemini/skills/crawl4ai-seo, .github/skills/crawl4ai-seo and .opencode/skills/crawl4ai-seo in your project.
Going by SKILL.md and its folder, Crawl4AI SEO Site Crawler needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and uv). Our summary lists: Python 3 with uv; crawl4ai and playwright installed, as checked by doctor.py.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Crawl4AI SEO Site Crawler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Crawl4AI SEO Site Crawler: Universal SEO Analysis (AgriciDaniel/claude-seo, 19k stars), SEO Content Audit (gooseworks-ai/goose-skills, 1.2k stars), Site Architecture (AvdLee/RocketSimApp, 806 stars) and SEO Optimizer (ailabs-393/ai-labs-claude-skills, 455 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
artwist-polyakov (a GitHub user) maintains it in artwist-polyakov/polyakov-claude-skills, which has 208 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 2026.
Source: artwist-polyakov/polyakov-claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.