Перейти к содержанию

Разметка местной компании, llms.txt и проверка AI-краулеров: пошаговый плейбук

Автор: AdsBrain 18 октября 2026 г. 5 мин чтения

Это практическое дополнение к нашей статье о том, почему AI-поиск цитирует одни местные компании и игнорирует другие. Пять проверок в том порядке, который важен: сначала доступ краулеров, потом разметка, llms.txt в самом конце. Каждая команда работает в обычном терминале на macOS или Linux либо в Git Bash на Windows.

Везде ниже замените https://www.example.com на свой адрес. Все названия, номера и адреса в шаблонах это примеры, их нужно заменить вашими настоящими данными.

Шаг 1. Спросите сайт, кого он пускает

Серверы и файрволы обычно фильтруют по имени в user agent, поэтому чтобы воспроизвести блокировку, достаточно отправить имя. Запустите это и прочитайте коды:

for ua in OAI-SearchBot GPTBot ChatGPT-User Claude-SearchBot ClaudeBot Claude-User PerplexityBot Googlebot AdsBot-Google bingbot; do
  printf '%-18s ' "$ua"
  curl -s -o /dev/null -w '%{http_code}\n' -A "Mozilla/5.0 (compatible; $ua)" https://www.example.com/
done

Что означают коды:

КодЗначениеЧто делать
200Бот получает страницуНичего
301 / 302РедиректЗапустить ещё раз с конечным адресом
403Сервер отказывает этому ботуНайти фильтр в настройках хостинга или файрвола
429Слишком много запросовПодождать минуту и проверять по одному боту

403 для OAI-SearchBot означает, что поиск ChatGPT ваш сайт не покажет. 403 для Claude-SearchBot может снизить видимость в поисковых ответах Claude. 403 для Googlebot, AdsBot или bingbot в этом тесте это предупреждение, а не доказательство: некоторые файрволы отклоняют любого, кто называет себя Googlebot, но приходит не с адреса Google. Такие случаи подтвердите через «Проверку URL» в Search Console.

В нашем сканировании ста сайтов таллинских компаний семь отвечали Claude-SearchBot кодом 403, хотя их robots.txt разрешал всё. Фильтр жил в хостинг-аккаунте, так что решением было обращение в поддержку, а не правка кода.

Шаг 2. Проверьте, что несуществующие страницы действительно не существуют

curl -s -o /dev/null -w '%{http_code}\n' https://www.example.com/this-page-does-not-exist-7f3k
curl -s -o /dev/null -w '%{http_code} %{content_type}\n' https://www.example.com/llms.txt

Первая строка должна вывести 404. Если она выводит 200, сайт сообщает каждому краулеру, что битые ссылки это настоящие страницы. Вторая строка показывает, есть ли /llms.txt: настоящий файл отдаёт 200 с типом text/plain или text/markdown. 200 с типом text/html значит, что CMS вместо файла отдаёт какую-то страницу. Так было на десяти сайтах из ста.

Шаг 3. robots.txt, который говорит то, что вы имеете в виду

Поисковые краулеры и краулеры для обучения разные. Можно разрешить поиск и при этом отказаться от обучения. AdsBot игнорирует User-agent: * и подчиняется только правилам, где он назван, поэтому не пишите для него правило, если не хотите его заблокировать на самом деле.

User-agent: *
Allow: /

# Необязательно: отказ от обучения моделей, AI-поиск остаётся
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

Sitemap: https://www.example.com/sitemap.xml

Три блока про обучение это бизнес-решение, а не рекомендация. И OpenAI, и Anthropic пишут, что блокировка GPTBot или ClaudeBot не закрывает сайт от их поисковых краулеров, OAI-SearchBot и Claude-SearchBot. Если причины блокировать нет, уберите эти блоки.

Шаг 4. Разметка LocalBusiness, которая совпадает со страницей

Руководство Google просит использовать самый точный подходящий подтип (Plumber, Electrician, Locksmith, Dentist, AutoRepair и так далее), а поля name и address обязательны. Всё, что есть в разметке, должно быть видно и на странице. Вставьте это в head главной или в конец body:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "@id": "https://www.example.com/#business",
  "name": "Пример Сантехника OÜ",
  "url": "https://www.example.com/",
  "telephone": "+372 5000 0000",
  "email": "info@example.com",
  "image": "https://www.example.com/images/team.jpg",
  "priceRange": "от 45 €",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Example tn 1",
    "addressLocality": "Tallinn",
    "postalCode": "10111",
    "addressCountry": "EE"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 59.43696, "longitude": 24.75357 },
  "areaServed": [
    { "@type": "City", "name": "Tallinn" },
    { "@type": "AdministrativeArea", "name": "Harju maakond" }
  ],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "08:00",
    "closes": "18:00"
  }],
  "sameAs": [
    "https://www.facebook.com/primersantehnika",
    "https://www.google.com/maps?cid=0000000000000000000"
  ]
}
</script>

Правила, которые избавят от отказа:

  • Телефон с кодом страны, тот же номер, что и в видимом подвале сайта.
  • У координат не меньше пяти знаков после запятой. Скопируйте их с метки вашего профиля компании в Google.
  • priceRange короче 100 символов, иначе Google его отбросит.
  • Для собственной компании не добавляйте aggregateRating. Руководство Google по местным компаниям оставляет разметку отзывов сайтам, которые оценивают другие компании.
  • В sameAs только профили, которые существуют и принадлежат вам. Самая полезная ссылка на профиль компании в Google.

Проверьте страницу в Rich Results Test от Google и в Schema Markup Validator. Исправьте всё, что отмечено как ошибка. Потом проверьте живой URL в Search Console, чтобы убедиться, что Google видит ту же разметку.

Шаг 5. Короткий llms.txt

llms.txt это предложение 2024 года, а не стандарт, и Google не использует его для AI Overviews. На него уходит десять минут, поэтому он идёт последним. Формат: один H1 с названием, описание в один абзац в виде цитаты, потом разделы H2 со ссылками. Сохраните как обычный текст по адресу /llms.txt:

# Пример Сантехника OÜ

> Ремонт и монтаж сантехники в Таллине и Харьюмаа. Пн–Пт 08:00–18:00, телефон +372 5000 0000. Цены от 45 €, итоговая цена после осмотра.

## Услуги
- [Устранение протечек](https://www.example.com/ru/protechki): выезд по Таллину, цены от 45 €
- [Установка бойлера](https://www.example.com/ru/boilery): поставка и монтаж, сначала письменное предложение

## Компания
- [Контакты и зона работы](https://www.example.com/ru/kontakty): адрес, часы работы, районы
- [Цены](https://www.example.com/ru/ceny): стартовые цены на частые работы

## Optional
- [Блог](https://www.example.com/ru/blog): советы по обслуживанию

Каждый факт в файле должен совпадать с сайтом и разметкой. Три источника, которые спорят о ваших часах работы, хуже одного правильного.

Шаг 6. Повторяйте после каждого изменения

Переезд на другой хостинг, новые правила файрвола и обновления плагинов CMS как раз те моменты, когда сайты оказываются заблокированы и никто этого не замечает. Запускайте шаги 1 и 2 после каждого такого события и в любом случае раз в месяц. Наша бесплатная быстрая оценка ниже тоже отмечает главную без структурированных данных, разметку, в которой компания ни разу не названа, и главную без ссылок на телефон или почту.

Частые вопросы

Какой подтип LocalBusiness выбрать?

Самый точный из тех, что schema.org предлагает для вашей деятельности: Plumber, Electrician, Locksmith, Dentist, AutoRepair, HairSalon и так далее. Google советует самый точный подтип и принимает массив, если подходит несколько.

Можно ли добавить звёзды рейтинга в разметку своей компании?

Руководство Google по местным компаниям рекомендует разметку aggregateRating и review только сайтам, которые собирают отзывы о других местных компаниях. Для своей компании её лучше не добавлять.

Уберёт ли блокировка GPTBot меня из ChatGPT?

Из поиска ChatGPT нет. OpenAI использует для поиска OAI-SearchBot, а для обучения GPTBot, и описывает эти две настройки как независимые.

Куда положить llms.txt?

В корень домена, по адресу /llms.txt, как обычный текст. Запрос к нему не должен возвращать главную страницу или HTML-страницу ошибки с кодом 200.

Проверьте свой сайт бесплатно

Тот же движок, что стоит за этой статьёй, сделает 50-балльную быструю проверку вашей главной страницы примерно за 30 секунд — бесплатно, без аккаунта.

Запустить быструю проверку
Сначала посмотреть настоящий пример аудита
← Все плейбуки