Як заблокувати AI-краулери у WordPress (чесно)
Щоб зупинити сканування сайту на WordPress ботом GPTBot, додайте ці рядки до свого robots.txt:
Опубліковано
Щоб зупинити сканування сайту на WordPress ботом GPTBot, додайте ці рядки до свого robots.txt:
User-agent: GPTBot
Disallow: /
Це і є все виправлення для добропорядних краулерів. Але будьте чесні з собою щодо того, що ви щойно зробили: robots.txt — це прохання, а не паркан. GPTBot від OpenAI завантажує файл і слухається його. Скрейпер, який не поважає стандарт, завантажує той самий файл і ігнорує в ньому кожен рядок. Тримайте цю різницю перед очима, перш ніж витрачати півдня на її налаштування.
Якщо хочете за один прохід охопити основні AI-краулери, ось поширені токени user-agent:
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Bytespider
Disallow: /
GPTBot — це навчальний краулер OpenAI, CCBot — Common Crawl (на якому опосередковано навчаються багато моделей), ClaudeBot — Anthropic, Google-Extended — токен Google для навчання AI, а Bytespider — ByteDance. Зверніть увагу: двоє з них уже порушують модель ввічливого прохання: і Bytespider, і PerplexityBot публічно задокументовано за скануванням сайтів, які їм це забороняли. Внесення їх до списку все одно допомагає проти чесних ботів, але нічого не дає проти тих, хто вже бреше про те, хто вони.
Як WordPress насправді віддає robots.txt
Саме тут правки більшості людей мовчки нічого не роблять. Якщо у кореневій теці сайту немає фізичного файлу robots.txt, WordPress генерує його на льоту. Запит обробляє do_robots() у wp-includes/functions.php, а результат проходить через фільтр robots_txt. Прапорець «Попросити пошукові системи не індексувати цей сайт» у розділі Параметри → Читання перемикає опцію blog_public, і саме це змушує той віртуальний файл видавати Disallow: /.
Тож можна додати правила для AI-краулерів програмно:
add_filter( 'robots_txt', function ( $output, $public ) {
$output .= "User-agent: GPTBot\nDisallow: /\n";
return $output;
}, 10, 2 );
А ось пастка, що з’їдає години: щойно у кореневій теці сайту з’являється статичний файл robots.txt, Apache чи nginx віддає цей файл напряму, і WordPress взагалі не запускається. Фільтр robots_txt, редактор robots у Yoast/Rank Math, налаштування в розділі Читання — усе це обходиться. Якщо ви редагували robots.txt у плагіні, а живий файл так і не змінився, майже завжди причина саме в цьому. Відкрийте https://yoursite.com/robots.txt у приватному вікні й порівняйте з тим, що ви нібито налаштували. Якщо на диску є справжній файл — редагуйте цей файл; фільтр тут ні до чого.
Виправляємо, по порядку
Спершу напишіть чисті правила. Правильно оформіть синтаксис і список краулерів, щоб випадково не заблокувати Googlebot. Наш генератор robots.txt збирає блок для AI-краулерів за вас і показує точний файл для вставки, що обходить плутанину «віртуальний проти фізичного», бо в результаті ви отримуєте один авторитетний файл.
По-друге, переконайтеся, що воно працює наживо. Завантажте URL напряму. Не довіряйте панелі попереднього перегляду плагіна.
По-третє, якщо вам потрібне примусове дотримання, а не ввічливе прохання, підніміться вище по стеку. robots.txt живе на рівні застосунку й залежить від доброї волі бота. Щоб насправді відмовити у з’єднанні, блокуйте за user-agent на рівні сервера. У .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>
Це повертає 403 усьому, що надсилає ці user-agent’и. Наш генератор .htaccess може зібрати це правило. Утім, зрозумійте його межу: user-agent’и легко підробити, тож це зупиняє лише ботів, чесних настільки, щоб представитися — а це ті самі боти, що вже слухаються robots.txt. По-справжньому надійний варіант — це CDN або WAF, який блокує за підтвердженою ідентичністю краулера чи діапазоном IP. Кероване правило Cloudflare «Block AI Scrapers and Crawlers» в один клік — це найменш витратна версія такого підходу, і воно працює на межі мережі, ще до того, як запит взагалі досягне WordPress.
Чого не варто робити
Не блокуйте Google-Extended, гадаючи, що це вбереже вас від AI Overviews. Це та хибна думка, яку варто виправити. Google-Extended — це продуктовий токен, а не краулер. Він контролює лише те, чи використовується ваш контент для навчання й обґрунтування моделей Gemini. Згідно з власною документацією Google, він ніяк не впливає на те, як ваші сторінки скануються, індексуються чи ранжуються у Google Search. А AI Overviews будуються зі звичайного індексу Search, який сканує Googlebot — а не з Google-Extended. Блокування Google-Extended не прибере вас з AI Overviews і не коштуватиме вам жодної позиції у Search. Єдиний спосіб не потрапляти в AI Overviews — заблокувати Googlebot або поставити noindex на сторінку, що також повністю викреслить вас із Search. Це майже ніколи не той обмін, якого ви хочете.
Не сприймайте robots.txt як засіб безпеки. Він публічний і має рекомендаційний характер. Внесення /wp-admin/ чи приватного шляху до нього лише публікує мапу того, де шукати. Захищайте реальні ендпоінти автентифікацією, а не рядком disallow.
Не покладайтеся на метатеги noai / noimageai. Їх лише пропонували, а не стандартизували, і поважає їх усього кілька платформ. Це не універсальний захист.
Не думайте, що плагін «заблокувати AI» зробив щось більше, ніж записав robots.txt. Більшість із них пишуть ті самі рядки, які ви могли б написати вручну, і успадковують те саме обмеження. Прочитайте, що плагін насправді змінив, перш ніж йому довіряти.
Досі не виходить?
Якщо ваші правки не з’являються, відповідь майже завжди — випадковий фізичний robots.txt у кореневій теці сайту, що перекриває віртуальний файл WordPress — завантажте URL напряму й перевірте. Якщо законослухняні боти зникли, а скрейпери й далі стукають до вас, ви уперлися у стелю можливостей robots.txt, і наступний крок — правило WAF або CDN, яке блокує за підтвердженою ідентичністю, а не ввічливим проханням.