Оптимизация сайта под нейросети: техническая часть
Только техника, без советов про тексты: каких сборщиков пускать и каких нет, чем робот для обучения отличается от робота для поиска, что проверить в коде страницы и как по журналу сервера узнать, приходили ли к вам ассистенты вообще.
Коротко. Техническая оптимизация сайта под нейросети сводится к четырём вещам: пустить нужных сборщиков, отдать текст в HTML, разметить данные и проверить журнал сервера. Главное различие, которое путают, — роботы для обучения моделей и роботы для поиска в ответах. Первых можно закрыть без потерь, вторых закрывать нельзя: запрет на поискового сборщика убирает сайт из ответов ассистента. Полная проверка небольшого сайта занимает 1–2 часа.
Разговоры о попадании в ответы ассистентов почти всегда уходят в тексты: какой длины абзац, сколько цифр, нужны ли вопросы в заголовках. Всё это важно, но бессмысленно, если ассистент до страницы не добрался.
Добраться он может не суметь по чисто техническим причинам, которые не видны ни владельцу, ни посетителю: сайт открывается, выглядит нормально, в поиске есть — а сборщик ассистента получает отказ. Ниже только про это.
Где граница между техникой и текстом
Удобно разделить работу на 2 слоя. Технический слой отвечает на вопрос, может ли ассистент получить страницу и прочитать её содержимое. Содержательный — захочет ли он её процитировать, когда получил.
Технический слой работает как выключатель: либо доступ есть, либо нет. Содержательный — как регулятор: можно быть процитированным чаще или реже. Поэтому порядок работ всегда один — сначала выключатель, потом регулятор. На технический слой уходит 1–2 часа, на содержательный — недели.
Содержательной части мы посвятили отдельные материалы: признаки цитируемого текста разобраны в статье про продвижение в ИИ-поиске, а различия между ассистентами — в разборе продвижения в ChatGPT. Здесь только выключатель.
Какие сборщики бывают и кого пускать
Крупные разработчики ассистентов держат не одного робота, а несколько, с разными задачами. И это самое важное различие во всей технической части: робот для обучения модели и робот для поиска в ответах — разные программы с разными именами.
| Имя в robots.txt | Чей | Зачем приходит | Если запретить |
|---|---|---|---|
| GPTBot | OpenAI | сбор текстов для обучения | ответы с поиском не страдают |
| OAI-SearchBot | OpenAI | индекс для поиска в ChatGPT | сайт пропадает из ответов |
| ChatGPT-User | OpenAI | открытие страницы по запросу человека | ссылку из ответа не прочитать |
| PerplexityBot | Perplexity | собственный поисковый индекс | сайт пропадает из ответов |
| Google-Extended | использование в моделях Gemini | обычный поиск не затрагивается | |
| ClaudeBot | Anthropic | сбор текстов для обучения | ответы с поиском не страдают |
| CCBot | Common Crawl | открытый архив, на нём учат многие модели | выпадаете из этого архива |
| YandexBot | Яндекс | основной индекс, из него берёт нейропоиск | пропадаете из Яндекса целиком |
Имена роботов разработчики время от времени меняют и дополняют — только у OpenAI их сейчас 3, — поэтому перед правкой файла стоит сверить список с их актуальной документацией. Логика при этом остаётся прежней: обучение и поиск разведены.
Типичная ошибка, которую мы встречаем чаще других, выглядит так. В 2023 году многие сайты закрыли GPTBot, чтобы их тексты не шли в обучение, — решение осознанное и законное. Но заодно под общее правило «запретить всех незнакомых роботов» попадал и поисковый сборщик. Сайт при этом формально работает, в обычном поиске есть, а в ответах ассистента отсутствует — и владелец об этом не знает.
Разумная позиция для коммерческого сайта: поисковых сборщиков пускать всегда, насчёт обучающих решать по ситуации. Закрытие обучающих роботов ничего не стоит с точки зрения видимости и защищает тексты от использования без спроса, если это для вас важно. Правка занимает 2 строки в robots.txt на каждого робота.
Отдельная ловушка — плагины безопасности, сетевые экраны и защита на стороне хостинга. Они могут отказывать сборщикам не через robots.txt, а на уровне сервера, возвращая ошибку 403 или 503. В файле всё открыто, а доступа нет. Проверить это можно по журналу сервера — об этом ниже.
Мы нашли такое у себя, пока писали эту статью. robots.txt на нашем сайте открыт для всех, кроме служебного раздела. Но при запросе страниц от имени GPTBot внешний сервер хостинга примерно в трети случаев отвечал 503 — при том что OAI-SearchBot, ChatGPT-User и PerplexityBot получали 200 на всех 13 проверенных запросах подряд. Ограничение стоит у хостинга, а не в настройках сайта, и касается только обучающего робота, поэтому на ответы с поиском не влияет. Но ни robots.txt, ни админка его не показывают.
Содержимое в коде, а не в скриптах
Современные сайты часто собирают страницу прямо в браузере: сервер отдаёт пустой каркас, а текст подгружается и дорисовывается скриптом. Человек разницы не замечает. Поисковые роботы крупных систем научились выполнять скрипты, хотя и с задержкой от нескольких часов до нескольких дней. Сборщики ассистентов делают это хуже или не делают вовсе.
Проверка занимает 1 минуту: откройте страницу, нажмите «Просмотр кода страницы» — не инструменты разработчика, а именно исходный код, — и найдите поиском фразу из середины основного текста. Если нашлась, всё в порядке. Если нет, сборщик ассистента видит пустую страницу.
Особенно часто это встречается в 3 местах. Конструкторы сайтов с блочной сборкой. Одностраничные приложения на современных фреймворках без серверной отрисовки. И вкладки, аккордеоны, всплывающие окна, чьё содержимое подгружается при клике, а не лежит в коде изначально.
Блоки вопросов и ответов нужно проверить отдельно. Внешне они одинаковы, но в одном случае ответ лежит в коде и просто скрыт, а в другом появляется только после нажатия. Первый вариант читается сборщиками, второй нет. У нас все блоки вопросов сделаны на стандартном элементе раскрытия, где текст ответа всегда в коде.
Разметка данных: что даёт, а что нет
Разметка — это машиночитаемое описание страницы, спрятанное в код: это статья, у неё такой-то автор и дата, вот вопросы и ответы, вот организация с адресом и телефоном. Человек её не видит.
Что она даёт. Однозначность. Ассистенту не нужно угадывать, где на странице дата публикации, а где дата последнего отзыва, где цена услуги, а где цена в примере. Для страниц организации, статей и блоков вопросов разметка помогает правильно понять содержимое.
Чего она не даёт. Цитирования самого по себе. Размеченная пустая страница остаётся пустой. Разметка — подсказка о структуре, а не сигнал качества, и никакой набор типов не заменит отсутствия конкретики в тексте.
Минимальный набор для коммерческого сайта — 3 типа разметки: организация на всём сайте, статья — на материалах блога, вопросы и ответы — там, где есть такой блок. Проверяется валидатором разметки поисковых систем, ошибки видны сразу.
Одна деталь, на которой мы споткнулись сами: дата в разметке должна совпадать с датой, которую видит человек. У нас 14 статей показывали в подписи завтрашнее число, хотя разметка отдавала верное, — расхождение, которое выглядит как небрежность и для людей, и для машин.
Журнал сервера — единственный объективный замер
Всё, что написано выше, можно проверить косвенно. Журнал сервера позволяет проверить напрямую: в нём записан каждый запрос к сайту вместе с именем того, кто пришёл.
Журнал доступен на большинстве хостингов в панели управления или по SSH, обычно в каталоге logs. Если по SSH его нет — так бывает на части тарифов, — есть обходной путь на пять минут: запросить свои страницы, подставив в заголовок запроса имя сборщика, и посмотреть на код ответа. Именно так мы и нашли ограничение у себя. Достаточно найти в нём строки с именами 8 сборщиков из таблицы выше и посмотреть на 2 вещи: приходят ли они вообще и какой код ответа получают.
Код 200 — страница отдана, всё работает. 403 или 503 — отказ, чаще всего от плагина безопасности, сетевого экрана или защиты хостинга, при том что robots.txt может быть открыт. 404 — сборщик пришёл по несуществующему адресу, обычно по устаревшей ссылке. Отсутствие строк вовсе — сборщик до вас не доходит, и тогда дело скорее в том, что страниц нет в поисковой выдаче.
Разумная периодичность — 1 раз в месяц, и обязательно после любых изменений в настройках безопасности или хостинга. Это единственная проверка, которая показывает реальное положение дел, а не то, как оно выглядит в настройках.
В каком порядке всё это делать
Первое — robots.txt, 5 минут. Убедиться, что поисковые сборщики не запрещены ни по имени, ни общим правилом. Решить, пускать ли обучающих.
Второе — журнал сервера, 15 минут. Проверить, что сборщики получают код 200, а не 403. Это ловит то, что не видно в robots.txt.
Третье — текст в коде, по 1 минуте на страницу. Пройти 10 важнейших страниц, включая блоки вопросов.
Четвёртое — разметка, 30 минут. Организация, статьи, вопросы, совпадение дат.
Пятое — всё остальное: скорость, карта сайта, отсутствие дублей. Это общая техническая оптимизация, и ассистентам она важна ровно настолько же, насколько поисковым системам. Полный перечень — в чек-листе на 60 пунктов, а наш подход к обоим направлениям — на странице SEO и GEO-продвижения.
Файл llms.txt, который часто советуют, в этот список не входит сознательно: это предложение отдельных энтузиастов, а не стандарт, и крупные ассистенты его сегодня не используют. Сделать не вредно, рассчитывать на него не стоит.