SEO-тулкит в командной строке

Команда seohead открывает все основные инструменты для скриптов, CI и работы в терминале. Команды из документации проверяются в CI.

Что делает

Для скриптов

Вывод — JSON в stdout, его можно передать в jq, скрипт или шаг CI. Код выхода 0 значит, что команда завершилась. Код 1 значит, что она не смогла завершиться; причина — в JSON. Входные данные задаются флагами, JSON-объектом через --input или JSON из stdin. Большинство команд, которые пишут файлы, требуют явного пути или флага, например --out или --apply.

  • Явные бюджеты: crawl-site принимает --max-urls, --max-depth и --max-urls-per-second
  • Код выхода 2 есть только у log-scan: он означает, что собственные цифры запуска не сходятся
  • Команды из документации запускаются в CI на тестовых фикстурах

Каталог команд

tool-catalog ищет, что делает каждая команда, использует ли она сеть, пишет ли файлы и может ли тратить деньги. Фильтрация идёт до постраничного вывода, поэтому запрос вроде redirect вернёт короткий список. Добавьте --include-arguments, если нужна структура аргументов. Работает офлайн и ничего не записывает.

  • Эффекты отмечены как offline, network, writes или paid
  • Платные команды провайдеров показывают офлайн-оценку и требуют явного подтверждения
  • seohead doctor проверяет Python, браузер, MCP и SQLite, ничего не записывая

Одна функция, два интерфейса

Каждая публичная возможность — это один обработчик. Он доступен как команда seohead и как инструмент MCP с тем же именем: crawl-site становится seo_crawl_site. То, что вы проверили в терминале, вызывает и агент. Групповые формы — это псевдонимы: scan list и scan-list — одна и та же команда.

  • seohead mcp запускает локальный MCP-сервер stdio
  • Команды sf — точки входа для аудита по workflow Screaming Frog
  • CLI работает на macOS, Linux и Windows из виртуального окружения

Три шага — один сохранённый скан

  1. Выберите команду

    Запустите seohead --help или ищите через tool-catalog. У каждой команды одна задача и одна запись в каталоге.

  2. Читайте JSON и код выхода

    Вывод всегда JSON в stdout. Код 0 — команда завершилась. Код 1 — не смогла завершиться, причина в JSON.

  3. Те же команды для ИИ-агентов

    seohead mcp запускает локальный MCP-сервер. Каждая команда доступна и как инструмент seo_<команда>, например seo_crawl_site.

Проверки в этой возможности

ПроверкаЧто значитКритичностьДоказательство
BROKEN_PAGE_4XXСтраница отвечает кодом 4xx.CriticalКод ответа по каждому URL из crawl-site
SERVER_ERROR_5XXСтраница отвечает кодом 5xx.CriticalКод ответа по каждому URL из crawl-site
BLOCKED_BY_ROBOTSrobots.txt блокирует URL.ImportantСовпавшее правило robots.txt для URL из crawl-site
SITEMAP_URL_4XX_5XXSitemap содержит URL, который отвечает кодом 4xx или 5xx.CriticalЗаписи sitemap из sitemap-crawl
SITEMAP_DESYNCНабор URL в sitemap и набор URL из сканирования не совпадают.ImportantSitemap из sitemap-crawl сравнивается с crawl-site
URL_NOT_IN_SITEMAPВ sitemap нет индексируемой страницы.TipРезультат сканирования сравнивается с набором URL в sitemap

Одна команда

bash
seohead tool-catalog --query redirect --limit 5

Сначала установите: руководство по установке. Каждая команда работает и как MCP-инструмент для ИИ-агентов.

Что нужно

  • Python 3.10 или новее и виртуальное окружение с установленным тулкитом
  • URL, файл сохранённого скана или папка проекта — в зависимости от команды
  • Необязательные дополнения для MCP, отчётов, PDF и рендеринга
  • Ключи провайдеров — только для платных команд и команд с аккаунтом

Ограничения

  • Команды, помеченные как network, отправляют запросы. Какие именно, покажет tool-catalog
  • Вывод рассчитан прежде всего на машины. Интерактивных диалогов нет, кроме наблюдателя в терминале
  • Нативное сканирование не даёт полного паритета со Screaming Frog. Часть проверок вернётся как пропущенная, но не как ложно «чистая»
  • Платные и аккаунтные источники требуют ваших ключей, тулкит их не предоставляет

Вопросы

Нужны ли CLI аккаунт или облачный сервис?
Нет. CLI работает на вашей машине. Офлайн-команды, например tool-catalog и команды для сохранённых сканов, читают только локальные данные. Команды с пометкой network отправляют запросы к сайту или к провайдеру данных.
Как понять, стоит ли команда денег?
Запустите tool-catalog. У каждой записи видно, использует ли команда сеть, пишет ли файлы или стоит денег. Платные семантические команды требуют явного подтверждения, а версия MCP отказывается работать без confirm_paid=true.
Изменит ли сканирование мой сайт?
Нет. Сканирование отправляет только запросы на чтение. Файлы пишутся только по указанному пути, например --scan-out или --out-dir. По умолчанию скан сохраняется в ./scans/.
Что означает ненулевой код выхода?
Код 1 — команда не смогла завершиться. В её JSON поле ok равно false. Если процесс упал, в stderr попадает строка с ошибкой. Код 2 используется только в log-scan.
Можно передать сложный ввод без множества флагов?
Да. Большинство команд принимают --input с JSON-объектом, который сопоставляется с аргументами обработчика, а некоторые читают JSON из stdin.
Какие операционные системы поддерживаются?
macOS, Linux и Windows используют один и тот же Python-пакет. В Windows запускайте интерпретатор из виртуального окружения явно. В CI на Windows проверяются блокировки, проекты, сканы и живая сессия MCP.

Проверьте на своём сайте