GEO Optimizer: насколько ваш сайт виден ChatGPT и Perplexity
📂 Исходный код на GitHubGEO Optimizer — открытый инструмент на Python: аудит сайта по 8 категориям, оценка цитируемости по 47 проверкам, генерация robots.txt, llms.txt и JSON-LD, MCP-сервер и GitHub Action.
GEO Optimizer: проверка сайта на готовность к ответам ИИ-поисковиков
Сайт может стоять на первом месте в Google и при этом не попасть ни в один ответ ChatGPT или Perplexity. Причина простая: классический поиск отдаёт десять ссылок и человек выбирает сам, а ИИ-поисковик собирает один короткий ответ и ставит рядом пару источников. Попасть в этот ответ — отдельная задача со своим набором правил.
Обычные SEO-инструменты про эту задачу ничего не знают: они считают позиции в выдаче, бэклинки и плотность ключевых слов. GEO Optimizer (репозиторий на GitHub) проверяет другое — может ли краулер ИИ дойти до страницы, разобрать её и процитировать.
Что это за проект
Набор инструментов на Python под лицензией MIT. Работает как CLI, как библиотека для Python, как MCP-сервер, как GitHub Action и как интеграция для Astro. Одна команда ставит сайту оценку от 0 до 100 и показывает, что именно чинить.
Автор — Хуан Камило Аурити (Juan Camilo Auriti). Проект написан на Python, требует версии 3.9 или новее, распространяется через PyPI как geo-optimizer-skill. На момент публикации — версия 4.18.3, 85 выпусков с февраля 2026 года, около тысячи звёзд на GitHub.
Внутри заявлены 16 CLI-команд, 8 категорий оценки, 27 ИИ-краулеров, 47 проверок содержимого, 12 MCP-инструментов, 8 форматов вывода и больше 2000 тестов (HTTP в тестах замокан, поэтому тесты не ходят в сеть).
Насколько это вообще проблема
Авторы проекта собрали данные по 1400+ сайтам, проверенным через их платный сервис GeoReady. Медианная оценка — 57 из 100. Файл llms.txt публикуют 58% сайтов. Выборка нерепрезентативная: это те, кто сам решил проверить свой сайт. Но порядок цифр показывает, что большинство сайтов к ИИ-поиску не готовы.
Для сравнения, из документации проекта: у example.com нет robots.txt, нет llms.txt и нет структурированных данных — 8 из 100. Сайт geoready.dev, собранный на собственной интеграции проекта для Astro, получает 91 из 100: разрешены все 27 краулеров, llms.txt найден, семь типов разметки.
Как запустить
Нулевая установка — через uvx:
uvx --from geo-optimizer-skill geo audit --url https://yoursite.com
Или обычная установка в окружение:
pip install -U geo-optimizer-skill
Дальше — базовые сценарии:
geo audit --url https://yoursite.com # score 0-100 + prioritized fixes
geo fix --url https://yoursite.com # preview robots.txt, llms.txt, schema, meta
geo audit --url https://yoursite.com --threshold 70 # exit 1 below 70 - use it as a CI gate
geo citations --brand "Acme" --domain acme.com # does AI cite you?
geo fix по умолчанию только показывает, что он собирается записать. Файлы появляются на диске только с флагом --apply. Оценка после правок — это собственная оценка инструмента, а не измеренный результат: авторы это оговаривают прямо.
Как считается оценка
Восемь категорий, сумма — 100 баллов:
| Категория | Баллы | Что проверяет |
|---|---|---|
robots.txt |
18 | 27 ИИ-ботов в трёх tiers (обучение, поиск, пользователь). Разрешены ли боты цитирования |
llms.txt |
18 | Наличие, заголовок H1, цитата, разделы, ссылки, глубина. Есть ли llms-full.txt |
| Schema JSON-LD | 16 | WebSite, Organization, FAQPage, Article. Насыщенность атрибутами (5+) |
| Мета-теги | 14 | Title, description, canonical, Open Graph |
| Содержимое | 12 | H1, цифры, внешние ссылки, иерархия заголовков, списки и таблицы, важное в начало |
| Бренд и сущности | 10 | Согласованность названия, ссылки на Knowledge Graph (Wikipedia, Wikidata, LinkedIn, Crunchbase), страница about |
| Сигналы | 6 | <html lang>, RSS/Atom, свежесть dateModified |
| AI-обнаружение | 6 | .well-known/ai.txt, /ai/summary.json, /ai/faq.json, /ai/service.json |
Разбалловка: 86–100 отлично, 68–85 хорошо, 36–67 база, 0–35 критично. Отдельно есть «негативные сигналы», которые могут снять до 5 баллов: перегруженные призывы к действию, попапы, тонкий контент, переспам ключевыми словами, отсутствие автора, большой процент шаблонного текста.
Веса живут в models/config.py — их можно прочитать и не согласиться. Полный разбор в SCORING_RUBRIC.md.
Цитируемость и наука за ней
Отдельно от общей оценки считается Citability Score — 0–100 по 47 проверкам содержимого. Девять из них взяты напрямую из методов, которые проверили в исследовательской работе:
- GEO: Generative Engine Optimization (KDD 2024, arXiv 2311.09735) — 9 методов на бенчмарке GEO-bench из 10 000 запросов. Лучшие приёмы (ссылки на источники, цитаты, статистика) поднимали видимость источника до 40%, и сильнее всего — для сайтов с низкими позициями.
- AutoGEO (ICLR 2026, arXiv 2510.11438) — правила извлекаются автоматически из предпочтений ИИ-поисковиков, прирост до +50,99% к сильнейшему базовому варианту из KDD.
- C-SEO Bench (NeurIPS Datasets & Benchmarks 2025, arXiv 2506.11097) — большинство приёмов переписывания текста не работает. Позиция источника значит больше, чем его переписывание.
Последний вывод хорошо совпадает с тем, как устроены веса у GEO Optimizer: основной вес у инструмента отдаётся доступности и разбираемости страницы, а переписывание текста — меньшему рычагу. Список всех проверок с источниками — в docs/geo-methods.md.
Цитирует ли вас ИИ на самом деле
Оценка готовности — это про вход, а не про выход. Команда geo citations спрашивает настоящие ИИ-поисковики те вопросы, которые задают покупатели, и смотрит, упоминают ли они ваш бренд, ставят ли ваш домен как источник и кого цитируют вместо вас.
Две честные оговорки встроены в инструмент:
- Ответы недетерминированы. Один и тот же вопрос может дать разные источники. Флаг
--runs 5опрашивает каждый запрос пять раз и показывает доверительный интервал, а не одно «да/нет». - Не все API отдают источники. Perplexity Sonar возвращает настоящие URL источников. OpenAI, Anthropic и Groq показывают только то, что модель уже знает о вашем бренде. Google AI Overviews — это элемент выдачи, а не модель, поэтому для него есть отдельный провайдер
--provider serpbase, который смотрит на реальную страницу результатов Google.
Интеграции
GitHub Action — ломает сборку, когда готовность падает. Отчёт в формате sarif попадает во вкладку Security:
# .github/workflows/geo.yml
- uses: Auriti-Labs/geo-optimizer-skill@v4.18.3
with:
url: https://yoursite.com
min-score: 70 # fail the build below 70
format: sarif # findings in the GitHub Security tab
Подойдёт любой CI, где есть Python: GitLab, Jenkins, CircleCI. Форматы вывода: text, json, rich, html, pdf, sarif, junit, github. JSON считается стабильным контрактом для интеграций, описание — в docs/json-contract.md.
MCP-сервер подключается к Claude, Cursor, Windsurf и любому другому MCP-клиенту:
pip install "geo-optimizer-skill[mcp]"
claude mcp add geo-optimizer -- geo-mcp
Дальше промпт «проверь мой сайт и почини, чего не хватает» делает всю работу. Полный список из 12 инструментов (geo_audit, geo_fix, geo_llms_generate, geo_citability, geo_schema_validate, geo_compare, geo_gap_analysis, geo_ai_discovery, geo_check_bots, geo_trust_score, geo_negative_signals, geo_factual_accuracy) — в docs/mcp-server.md.
Как библиотека:
from geo_optimizer import audit
result = audit("https://example.com")
result.score # int, 0-100
result.band # S1 | S2 | S3 | S4
result.citability.total_score # int, 0-100
result.score_breakdown # { S5 : ..., S6 : ..., ...}
result.recommendations # list of prioritized fixes
Интеграция для Astro генерирует llms.txt, /.well-known/ai.txt и /ai/summary.json прямо на этапе сборки и не трогает файлы, которые вы правили руками. В npm её пока нет — папку integrations/astro-geoready/ нужно скопировать в проект:
// astro.config.mjs
import geoReady from './integrations/astro-geoready/index.mjs';
export default defineConfig({
site: 'https://yoursite.com',
integrations: [geoReady({ siteName: 'Your Site' })],
});
Свои проверки добавляются через точку входа geo_optimizer.checks, пример — в examples/example_plugin.py.
Честные ограничения
Инструмент честно очерчивает границы того, что он измеряет:
- Гарантий цитирования нет. Он показывает, каких сигналов не хватает, чтобы ИИ-поисковик мог дойти до страницы и разобрать её. Дальше решают вопрос, конкуренты и сам поисковик.
llms.txt— не фактор ранжирования. Это Markdown-файл в корне сайта со списком важных страниц. Ни один ИИ-поисковик не документировал, что он улучшает цитируемость. Оценка засчитывается потому, что файл дешёвый и задуман как сигнал структуры.- Только вход, а не выход. Кроме лёгкой проверки
geo citationsинструмент не наблюдает, что поисковики говорят о бренде. Для этого есть отдельный стандарт — OpenGEO, про разницу написано в issue #534. - Китайские поисковики не покрыты. Doubao, Qwen и Yuanbao вне зоны видимости. DeepSeek доступен как провайдер для
geo citations.
Кому это нужно
Стоит попробовать, если у вас есть сайт, который должен попадать в ответы ИИ-поисковиков: документация продукта, блог компании, страницы услуг. Логика простая — сначала оценка, потом geo fix, потом порог в CI, чтобы оценка не падала со временем.
Что важно помнить: инструмент оценивает готовность, а не результат. Место в ответе ChatGPT зависит ещё и от того, как выглядит выдача конкурентов. Но список конкретных недочётов он даёт, и это уже половина работы.