GEO Optimizer: аудит сайта для ИИ-поиска и 76 из 100 у krivoshein.site

Обложка: GEO Optimizer 4.18.3, аудит сайта для ИИ-поиска, 8 разделов на 100 баллов, krivoshein.site 76 из 100

22 сентября 2026 в репозитории Auriti-Labs/geo-optimizer-skill на GitHub вышла версия 4.18.3 GEO Optimizer. Это открытый инструмент под лицензией MIT, который ставит сайту оценку от 0 до 100: насколько его могут найти, разобрать и процитировать ChatGPT, Perplexity, Gemini, Claude и Google AI Overviews. После оценки он выдаёт список правок. Работает как CLI, Python-библиотека, MCP-сервер, GitHub Action и интеграция для Astro.

Вывод сразу: как технический чек-лист готовности к ИИ-поиску он полезен, как обещание цитирования нет. Это прямо написано в README: инструмент меряет сигналы и не гарантирует, что движок сошлётся на сайт. Я прогнал его по krivoshein.site и получил 76 из 100. Самое полезное нашлось не в баллах, а в одном обрыве соединения и в том, что предлагает автоисправление.

Чей проект и откуда слово skill

Репозиторий создан 18 февраля 2026, первый коммит в тот же день называется «GEO Optimizer skill, complete implementation». В нём лежали SKILL.md с четырьмя шагами для агента OpenClaw и три Python-скрипта: аудит, генератор llms.txt и вставка JSON-LD. Отсюда skill в имени. Потом проект вырос в пакет geo-optimizer-skill на PyPI, сейчас тоже версии 4.18.3, нужен Python 3.9 или новее. Автор Juan Camilo Auriti, его имя стоит в LICENSE. На 3 октября у репозитория 979 звёзд и 115 форков, последний коммит от 30 сентября.

Рядом с открытым кодом есть коммерческая часть: geoready.dev с бесплатным веб-аудитом и тарифами от $19 в месяц, плюс книга автора. По README движок там тот же, платформа добавляет мониторинг, историю оценок и командную работу. Для CLI ничего из этого не нужно, регистрации он не требует.

В 4.18.3 главное исправление про llms.txt за CDN или WAF. Раньше, если защита отвечала аудитору 403 или 406, инструмент писал, что файла нет, а geo fix --apply в этой ветке мог записать пустой llms.txt поверх настоящего. Теперь случай помечается как blocked_by_cdn, аудитор повторяет запрос с браузерным User-Agent, а fix собирает полный файл из sitemap.

Что проверяет: 8 разделов на 100 баллов

Оценка складывается из восьми разделов. Веса лежат в одном файле, models/config.py, и совпадают с таблицей в README:

  • robots.txt, 18 баллов: пускает ли сайт 27 ИИ-ботов из трёх групп (обучение, поиск, запросы пользователя);
  • llms.txt, 18: есть ли файл, заголовок, описание, разделы и ссылки;
  • JSON-LD, 16: WebSite, Organization, FAQPage, Article и насколько разметка подробная;
  • мета-теги, 14: title, description, canonical, Open Graph;
  • контент, 12: H1, цифры, внешние ссылки, порядок заголовков, списки и таблицы;
  • бренд и сущность, 10: одно имя везде, ссылки на Wikipedia, Wikidata, LinkedIn или Crunchbase, страница «о нас»;
  • сигналы, 6: атрибут lang, RSS, свежесть через dateModified;
  • AI Discovery, 6: файлы /.well-known/ai.txt, /ai/summary.json, /ai/faq.json, /ai/service.json.

Пороги такие: до 35 критично, от 36 до 67 база, от 68 до 85 хорошо, от 86 отлично. Сверх основной оценки идёт десяток информационных проверок: пускает ли ботов CDN, виден ли текст без JavaScript, нет ли в странице prompt injection, как она режется на куски для RAG. Баллы из них снимают только «негативные сигналы», и не больше пяти.

16 команд, MCP-сервер и SKILL.md для агентов

В CLI 16 команд, это видно и в коде, и в geo --help. Главные: audit, fix, llms для генерации llms.txt из sitemap, schema для JSON-LD и citations, которая спрашивает реальные ИИ-движки, упоминают ли они бренд. Для citations нужны свои API-ключи, и README честно предупреждает: ответы меняются от запуска к запуску, поэтому есть --runs 5 с доверительным интервалом. Быстрый старт из README:

# без установки
uvx --from geo-optimizer-skill geo audit --url https://yoursite.com

# или установить
pip install -U geo-optimizer-skill
geo audit --url https://yoursite.com
geo fix --url https://yoursite.com
geo audit --url https://yoursite.com --threshold 70

Флаг --threshold 70 возвращает код 1, если оценка ниже порога, так проверку ставят в CI. Для агентов MCP-сервер ставится отдельной зависимостью и подключается к Claude Code одной командой, внутри 12 инструментов: geo_audit, geo_fix, geo_llms_generate, geo_check_bots и другие.

pip install "geo-optimizer-skill[mcp]"
claude mcp add geo-optimizer -- geo-mcp

Сам навык лежит в корне, SKILL.md: шесть шагов от аудита до автоисправления, таблица проверок и список MCP-инструментов. Для Claude Projects, ChatGPT, Cursor, Windsurf и Kiro в папке ai-context есть готовые версии того же контекста под ограничения каждой платформы.

SKILL.md отстаёт от кода, последний раз его правили 22 апреля 2026. В нём 11 команд и 7 форматов вывода, а в CLI уже 16 команд, README перечисляет 8 форматов, среди них sarif и junit. Таблица методов там же обещает до +115% видимости за ссылки на источники. README в разделе исследований осторожнее: в работе KDD 2024 лучшие методы давали до 40%, а C-SEO Bench пришёл к выводу, что большинство приёмов переписывания текста не работают. Агенту, который читает SKILL.md, эти проценты лучше не принимать на веру.

Пример из README: 8 баллов против 91

В README два прогона за сентябрь 2026. example.com без robots.txt, llms.txt и разметки получает 8 из 100, geoready.dev, собранный на собственной Astro-интеграции, получает 91. Там же статистика по 1400 с лишним сайтам, проверенным через GeoReady: медиана 57 из 100, llms.txt есть у 58%. Автор сам оговаривает, что выборка добровольная и годится как ориентир, а не как перепись сети.

geo fix по умолчанию только показывает правки, файлы пишет с флагом --apply. Оценку «после исправлений» README называет прогнозом самого инструмента, а не замером.

Прогон по krivoshein.site: 76 из 100

3 октября 2026 в 23:10 по Москве я запустил аудит своего сайта командой из README, отработала версия 4.18.3:

uvx --from geo-optimizer-skill geo audit --url https://krivoshein.site

Итог 76 из 100, полоса GOOD. robots.txt пускает все 27 ботов, llms.txt найден, около 1750 слов, мета-теги полные, язык ru-RU и RSS на месте. В JSON-LD инструмент нашёл семь типов, от WebSite до ProfessionalService, не хватило только FAQPage. Профили по платформам: ChatGPT 50, Perplexity 60, Google AI 71. В списке следующих шагов девять пунктов.

Три находки, на которые стоит смотреть:

  • OAI-SearchBot получил HTTP 0, соединение оборвалось без ответа. GPTBot, PerplexityBot, Claude-SearchBot, Googlebot и Applebot получили 200. Инструмент пишет про CDN или WAF, но ответы сайта отдаёт nginx, CDN в заголовках не видно. Повторил запрос через curl с User-Agent OAI-SearchBot: соединение рвётся, с GPTBot сайт отвечает 200. По SKILL.md именно OAI-SearchBot отвечает за ссылки в ChatGPT Search.
  • AI Discovery: нет /.well-known/ai.txt, /ai/summary.json и /ai/faq.json. При этом /ai.txt в корне есть и отвечает 200, на него ссылается robots.txt. Проверка смотрит только путь в /.well-known/.
  • Бренд 5 из 10. В sameAs у Person только Telegram, GitHub и страница MAX, а проверка ищет Wikipedia, Wikidata, LinkedIn или Crunchbase. Ссылки вида /about или /team на главной нет, контакты лежат на /contacts/.

Ниже среднего ещё два показателя: Trust Stack B, 17 из 25, и готовность к RAG 40 из 100. Второе считается по главной: 31 раздел, в среднем по 11,6 слова. Главная у меня лендинг, а не статья, и резать её на абзацы по 100 или 150 слов ради этой цифры я не буду.

geo fix без –apply: что взял бы, а что нет

Потом посмотрел, что инструмент предлагает исправить. Без флага --apply он только печатает план и содержимое файлов, на сайте и на диске ничего не меняется.

uvx --from geo-optimizer-skill geo fix --url https://krivoshein.site

План из трёх пунктов: сниппет FAQPage, /ai/summary.json и /ai/faq.json. robots.txt, llms.txt, мета-теги и контент пропущены как уже достаточные. Прогноз 82 из 100 вместо 76.

Как есть это ставить нельзя. В FAQPage вопросы на итальянском, «Cos’è krivoshein.site?» и «Come contattare krivoshein.site?», а ответ отправляет на /contatti, которого у меня нет, адрес отдаёт 404. Эта строка зашита в fixer.py. В summary.json поле lastModified осталось шаблоном {{ISO_DATE}}, в faq.json второй ответ заглушка «Visit https://krivoshein.site to get started». А /ai/service.json и /.well-known/ai.txt, которые аудит советует создать, в план исправлений не попали вовсе.

Перед правками проверил, откуда что берётся. robots.txt у меня статический файл: nginx отдаёт его с датой изменения 16 августа 2026, SEO-плагин его не генерирует. Из SEO-плагинов в списке активных The SEO Framework 5.1.4 и CrawlWP SEO. JSON-LD на главной разбит на три блока: граф WebSite, WebPage и Organization, отдельный граф Person и ProfessionalService и список услуг ItemList. Сниппет FAQPage поверх этого добавит четвёртый источник разметки, поэтому править надо там, где разметка рождается.

Что поправлю сам:

  • выясню, почему рвётся соединение с OAI-SearchBot: правила nginx и фильтры ботов, плюс логи на предмет настоящих визитов бота. Запрос с подменённым User-Agent с чужого адреса и визит настоящего бота OpenAI могут обрабатываться по-разному, но для ChatGPT Search это главный пункт отчёта;
  • отдам ai.txt и по пути /.well-known/ai.txt, файл уже есть, нужен второй адрес;
  • добавлю в sameAs профили, которые у меня действительно есть, и dateModified на главную.

Что оставлю: сгенерированные FAQ и JSON с заглушками, страницу /about только ради проверки, атрибуты WebMCP на кнопках и формах и короткие разделы лендинга. Если FAQPage и появится, то из настоящих вопросов на странице, на русском и со ссылкой на /contacts/.

Итог: GEO Optimizer полезен как быстрый технический аудит готовности к ИИ-поиску. Он показывает доступ ботов, llms.txt, разметку и то, о чём обычный SEO-аудит не спрашивает, вроде обрыва соединения для одного конкретного бота. Код открыт под MIT, веса собраны в одном файле, geo fix по умолчанию ничего не пишет. Слабое место в автоисправлении: на русском сайте оно генерирует итальянские вопросы и ссылку на несуществующую страницу, поэтому --apply без чтения превью я бы не запускал. Про сами файлы для ИИ на сайте есть разбор llms.txt и llms-full.txt и история с AgentReady.

Источники и ссылки


Комментарии загружаются…