Як закрити сайт від ШІ-ботів у robots.txt (і чи варто це робити)
Щоб закрити сайт від ШІ-ботів у robots.txt, додайте одну групу з переліком потрібних ботів і правилом Disallow: /. Найпоширеніший варіант — закрити ботів, які збирають дані для навчання моделей (GPTBot, ClaudeBot, CCBot та інші, а також токени Google-Extended і Applebot-Extended), і залишити ботів ШІ-пошуку (OAI-SearchBot, Claude-SearchBot, PerplexityBot): тоді контент не йде в майбутні набори даних, а посилання на сайт у відповідях ChatGPT, Claude і Perplexity зберігаються. На Google Пошук така заборона не впливає. Але пам’ятайте: robots.txt — це прохання, яке виконують сумлінні боти, а не технічний захист.
Далі — які бувають ШІ-боти, готові блоки під три сценарії, помилка, через яку «дозволені» боти отримують доступ до адмінки, і як перевірити результат.
Три групи ШІ-ботів
Під словом «ШІ-бот» ховаються дуже різні роботи. Рішення «закривати чи ні» варто ухвалювати для кожної групи окремо:
| Група | Токени в robots.txt | Що буде, якщо закрити |
|---|---|---|
| Навчання моделей | GPTBot (OpenAI), ClaudeBot (Anthropic), CCBot (Common Crawl), meta-externalagent (Meta), Bytespider (ByteDance), Amazonbot (Amazon), токени Google-Extended і Applebot-Extended | Контент не має потрапляти в майбутні набори даних для навчання. На Google Пошук і Bing не впливає |
| ШІ-пошук | OAI-SearchBot (OpenAI), Claude-SearchBot (Anthropic), PerplexityBot (Perplexity) | Сайт перестане з’являтися з посиланням у відповідях ChatGPT Search, Claude і Perplexity — це пряма втрата переходів |
| Запити користувачів | ChatGPT-User, Claude-User, Perplexity-User | Асистент не зможе відкрити сторінку, коли користувач сам дав посилання або попросив знайти відповідь |
Цей поділ узято з документації операторів. OpenAI пише, що налаштування для GPTBot і OAI-SearchBot незалежні: можна дозволити пошук і заборонити навчання. Anthropic описує три свої боти так само. За документацією Perplexity, PerplexityBot не збирає контент для навчання базових моделей.
З третьою групою є застереження. OpenAI попереджає, що для ChatGPT-User правила robots.txt можуть не застосовуватися, бо запит ініціює людина. Perplexity пише, що Perplexity-User загалом ігнорує robots.txt. Anthropic, навпаки, пропонує керувати Claude-User через robots.txt.
Google-Extended і Applebot-Extended: токени, а не боти
Ці два імені часто плутають із краулерами, хоча жоден із них сайт не сканує.
- Google-Extended, за документацією Google, не має власного User-Agent: сканує звичайний Googlebot, а токен у robots.txt лише каже, чи можна використовувати контент для навчання майбутніх моделей Gemini і для grounding (підстановки свіжого контенту у відповіді) в застосунках Gemini та Vertex AI. Google прямо пише, що Google-Extended не впливає на потрапляння сайту в Google Пошук і не є сигналом ранжування.
- Applebot-Extended, за документацією Apple, теж нічого не сканує. Він визначає, чи можна використовувати дані, зібрані звичайним Applebot, для навчання базових моделей Apple. Сторінки, закриті для Applebot-Extended, можуть і далі показуватися в пошуку Apple — Siri, Spotlight і Safari.
Практичний наслідок: заблокувати ці два «боти» на сервері за User-Agent неможливо — такого User-Agent у запитах просто немає. А блокування Googlebot чи Applebot ударить уже по пошуку.
Готові блоки robots.txt
Сценарій 1. Закрити навчання, залишити ШІ-пошук
Саме це робить пресет «Закрити навчання ШІ, залишити ШІ-пошук» у нашому генераторі robots.txt. Пошукові боти у файлі не згадуються й ідуть за загальними правилами для *:
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Amazonbot
Disallow: /
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
Кілька рядків User-agent поспіль утворюють одну групу — так коротше й менше шансів помилитися. Зважте, що Amazonbot Amazon використовує не лише для навчання моделей, а й для своїх сервісів.
Сценарій 2. Закрити всіх ШІ-ботів
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
User-agent: Bytespider
User-agent: Amazonbot
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
User-agent: Claude-User
User-agent: Perplexity-User
Disallow: /
Ціна такого рішення — зникнення посилань на сайт із відповідей ШІ-пошуку. Для комерційного сайту це зазвичай невигідно; для закритої бази знань чи платного контенту може бути виправдано.
Сценарій 3. Відкрити все
Нічого додавати не треба: якщо ШІ-боти у файлі не згадані, вони дотримуються групи User-agent: *. Окрема група з Allow: / для них не лише зайва, а й шкідлива — про це наступний розділ.
Сценарій 4. Закрити для ШІ лише частину сайту
Наприклад, платні матеріали й PDF. У групу ШІ-ботів треба скопіювати всі загальні правила, інакше для цих ботів вони перестануть діяти:
User-agent: GPTBot
User-agent: ClaudeBot
Disallow: /premium/
Disallow: /*.pdf$
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Чому не можна писати окрему групу Allow для ШІ-ботів
Головне правило robots.txt, яке ламає більшість саморобних файлів: бот виконує лише одну групу — найточнішу для свого імені. Так це описано в специфікації Google і в RFC 9309: якщо для бота є своя група, правил для * він не читає. Подивіться на файл:
User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
User-agent: OAI-SearchBot
Allow: /
Автор хотів «точно дозволити» пошук ChatGPT, а в результаті OAI-SearchBot отримав доступ до /wp-admin/ і /cart/: свою групу він знайшов, а заборони з * до нього більше не застосовуються. Тому наш генератор дозволених ШІ-ботів окремою групою не виводить. Якщо боту все ж потрібна своя група, повторіть у ній усі загальні заборони.
Усередині групи діє друге правило: перемагає найдовший збіг шляху, а за рівної довжини Google обирає менш суворе правило, тобто Allow. Детально про синтаксис і типові пастки — у статті про перевірку robots.txt.
Чи варто закривати сайт від ШІ
Універсальної відповіді немає, але логіка зрозуміла:
- Закривати навчання має сенс, якщо контент — ваш продукт: платні матеріали, авторські тексти, бази даних. Заборона діє на майбутнє: Anthropic, наприклад, пише, що з навчання виключаються майбутні матеріали сайту. Уже зібраних даних robots.txt не відкликає.
- Закривати ШІ-пошук майже завжди невигідно сайтам, які живуть із трафіку: відповіді ChatGPT Search, Claude і Perplexity посилаються на джерела, а це переходи.
- Google-Extended — окреме рішення. На Google Пошук він не впливає, але, за документацією Google, керує й grounding у застосунках Gemini, тож заборона може зменшити присутність сайту у відповідях Gemini.
- Навантаження на сервер. Якщо ШІ-боти помітно навантажують слабкий хостинг, це привід їх обмежити. Anthropic підтримує нестандартну директиву
Crawl-delay; Google її не підтримує. Як навантаження на сервер пов’язане зі скануванням Googlebot — у статті про краулінговий бюджет.
robots.txt — прохання, а не замок
Файл виконують сумлінні боти; технічно ніщо не заважає іншим його ігнорувати або назватися чужим User-Agent. Про це прямо пише й Cloudflare: дотримання robots.txt добровільне. Якщо ботів треба зупинити по-справжньому:
- Блокування на сервері. Наприклад, у nginx за User-Agent (підходить лише для ботів із власним User-Agent — не для Google-Extended і Applebot-Extended):
if ($http_user_agent ~* "(GPTBot|ClaudeBot|CCBot|Bytespider|meta-externalagent)") {
return 403;
}
- Перевірка за IP. User-Agent легко підробити. OpenAI, Anthropic, Perplexity і Apple публікують адреси або діапазони IP своїх ботів — за ними можна відрізнити справжнього бота від підробки.
- CDN. У Cloudflare є керований robots.txt для ШІ-краулерів (за їхньою документацією — на всіх тарифах) і окреме примусове блокування ШІ-ботів (AI Crawl Control). Умови конкретного тарифу перевіряйте в їхній документації.
Одне застереження від Anthropic: якщо заблокувати їхні IP, бот може не прочитати robots.txt, і відмова від сканування не буде надійно врахована. Тому robots.txt варто налаштувати в будь-якому разі, навіть якщо є блокування на сервері.
llms.txt — це інше
Файл /llms.txt не забороняє й не дозволяє доступ. Це запропонований формат короткої карти сайту в Markdown для мовних моделей: що це за сайт і які сторінки головні. Закрити ним сайт від ШІ не вийде, а допомогти ШІ правильно зрозуміти сайт — можна. Детально — у статті що таке llms.txt, створити файл можна в генераторі llms.txt.
Як перевірити результат
- Відкрийте
https://ваш-сайт/robots.txtу браузері й переконайтеся, що опубліковано нову версію (CMS, плагіни й CDN іноді віддають свій файл). - Проженіть файл через аналіз robots.txt: він покаже всі групи User-agent, правила Allow і Disallow, рядки Sitemap і попередить, наприклад, про
Disallow: /для всіх ботів. - Перевірте сайт в AI Visibility Checker. Він розбирає robots.txt за RFC 9309 для 14 ШІ-ботів і токенів (кого пущено, кого закрито), перевіряє наявність
/llms.txtі мета robots головної та робить пробний запит головної з User-Agent GPTBot. Пробний запит — лише орієнтир: справжній GPTBot приходить з IP OpenAI, і CDN може поводитися з ним інакше. Блок доступу ботів безкоштовний; відповіді ШІ-пошуку на ваші запитання рахуються в денному ліміті (10 свіжих прогонів на добу без акаунта, утричі більше з акаунтом, Pro без ліміту). - Через кілька днів перегляньте логи сервера: які User-Agent і далі приходять і з яких IP. Зміни застосовуються не миттєво — OpenAI, наприклад, пише, що для пошуку це може зайняти близько 24 годин.
Типові помилки
- Окрема група
Allow: /для «хороших» ШІ-ботів — відкриває їм усе, що закрито для*. - Закрили ШІ-пошук разом із навчанням і не помітили, що зникли посилання з відповідей ChatGPT і Perplexity.
- Чекають, що Google-Extended прибере сайт із Google Пошуку. На Пошук він не впливає; щоб прибрати сторінку з індексу, потрібен
noindex— різницю пояснено в статті noindex, nofollow і robots.txt. - Намагаються блокувати Google-Extended на сервері за User-Agent — такого User-Agent немає.
- Забули про піддомени. robots.txt діє лише для свого хоста: у
blog.example.comіshop.example.comмають бути власні файли. - Помилки в іменах ботів і застарілі списки. Назви й призначення ботів змінюються, тож раз на кілька місяців звіряйтеся з документацією операторів.