Sari la conținut
SEO și crawlere

Cum blochezi crawlerele AI în WordPress (sincer)

Ca să oprești GPTBot din a accesa un site WordPress, adaugă aceste linii în robots.txt:

Publicat

Ca să oprești GPTBot din a accesa un site WordPress, adaugă aceste linii în robots.txt:

User-agent: GPTBot
Disallow: /

Asta e toată rezolvarea, dar numai pentru crawlerele care se poartă frumos. Fii însă sincer cu tine în privința a ceea ce tocmai ai făcut: robots.txt este o rugăminte, nu un gard. GPTBot de la OpenAI descarcă fișierul și îl respectă. Un scraper care nu respectă standardul descarcă exact același fișier și ignoră fiecare linie din el. Ține minte distincția asta înainte să pierzi o după-amiază reglând lucrurile.

Dacă vrei să acoperi principalele crawlere AI dintr-o singură trecere, tokenurile uzuale de user-agent sunt:

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 este crawlerul de antrenament al OpenAI, CCBot este Common Crawl (pe care multe modele se antrenează indirect), ClaudeBot este Anthropic, Google-Extended este tokenul Google pentru antrenarea AI, iar Bytespider este ByteDance. Reține că două dintre acestea încalcă deja modelul rugăminții politicoase: Bytespider și PerplexityBot au fost ambele documentate public accesând site-uri care le interziseseră accesul. Totuși, listarea lor ajută în continuare împotriva boților onești; nu face nimic împotriva celor care deja mint despre cine sunt.

Cum servește WordPress de fapt robots.txt

Aici modificările majorității oamenilor nu fac nimic, în tăcere. Dacă nu există un fișier fizic robots.txt în rădăcina site-ului, WordPress generează unul din mers. Cererea este gestionată de do_robots() din wp-includes/functions.php, iar rezultatul trece prin filtrul robots_txt. Bifa „Descurajează motoarele de căutare să indexeze acest site” din Setări → Citire schimbă opțiunea blog_public, care este exact ce face acel fișier virtual să emită Disallow: /.

Deci poți adăuga reguli pentru crawlerele AI programatic:

add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "User-agent: GPTBot\nDisallow: /\n";
    return $output;
}, 10, 2 );

Iată capcana care înghite ore întregi: în momentul în care există un fișier static robots.txt în rădăcina site-ului, Apache sau nginx servesc acel fișier direct, iar WordPress nu mai rulează deloc. Filtrul robots_txt, editorul de robots din Yoast/Rank Math, setarea din Citire — toate sunt ocolite. Dacă ai editat robots.txt dintr-un plugin și fișierul live nu s-a schimbat niciodată, aproape întotdeauna acesta este motivul. Verifică https://siteultau.com/robots.txt într-o fereastră privată și compară-l cu ce crezi că ai setat. Dacă există un fișier real pe disc, editează acel fișier; filtrul este irelevant.

Cum rezolvi, în ordine

Întâi, scrie reguli curate. Corectează sintaxa și lista de crawlere ca să nu blochezi din greșeală Googlebot. Generatorul nostru de robots.txt îți construiește blocul pentru crawlerele AI și îți arată fișierul exact de lipit, ceea ce elimină confuzia virtual-vs-fizic, pentru că ajungi cu un singur fișier autoritar.

Al doilea, confirmă că e live. Accesează URL-ul direct. Nu te încrede în panoul de previzualizare al pluginului.

Al treilea, dacă ai nevoie de impunere, nu doar de o rugăminte politicoasă, urcă în stivă. robots.txt trăiește la nivelul aplicației și depinde de bunăvoința botului. Ca să refuzi efectiv o conexiune, blochează după user-agent la nivelul serverului. În .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>

Asta returnează 403 la orice trimite acei user-agenți. Generatorul nostru de .htaccess poate asambla această regulă. Înțelege-i însă limita: user-agenții se pot falsifica trivial, așa că asta oprește doar boții suficient de onești cât să se identifice — adică exact aceiași boți care deja respectă robots.txt. Opțiunea cu adevărat robustă este un CDN sau un WAF care blochează după identitatea verificată a crawlerului sau după intervalul de IP. Regula gestionată „Block AI Scrapers and Crawlers” de la Cloudflare, activabilă cu un click, este varianta cu cel mai mic efort și funcționează la margine (edge), înainte ca cererea să ajungă vreodată la WordPress.

Ce să nu faci

Nu bloca Google-Extended crezând că te ține în afara AI Overviews. Aceasta este concepția greșită care merită corectată. Google-Extended este un token de produs, nu un crawler. Controlează doar dacă conținutul tău este folosit pentru antrenarea și fundamentarea modelelor Gemini. Conform documentației Google, nu are niciun efect asupra modului în care paginile tale sunt accesate, indexate sau clasate în Căutarea Google. Iar AI Overviews sunt construite din indexul obișnuit de Căutare pe care îl accesează Googlebot — nu din Google-Extended. Blocarea lui Google-Extended nu te va scoate din AI Overviews și nu te va costa nicio poziție în Căutare. Singurul mod de a rămâne în afara AI Overviews este să blochezi Googlebot sau să pui noindex pe pagină, ceea ce te șterge complet și din Căutare. Aproape niciodată nu este un compromis pe care ți-l dorești.

Nu trata robots.txt ca pe un control de securitate. Este public și doar orientativ. Listarea lui /wp-admin/ sau a unei căi private în el nu face decât să publice o hartă cu locul unde să caute cineva. Protejează endpoint-urile reale cu autentificare, nu cu o linie de disallow.

Nu te baza pe metatagurile noai / noimageai. Au fost propuse, nu standardizate, și doar câteva platforme le respectă. Nu sunt o apărare generală.

Nu presupune că un plugin de „blocare AI” a făcut mai mult decât să scrie robots.txt. Majoritatea scriu exact aceleași linii pe care le-ai putea scrie de mână și moștenesc aceeași limitare. Citește ce a schimbat pluginul de fapt înainte să te încrezi în el.

Tot blocat?

Dacă modificările tale nu apar, răspunsul este aproape întotdeauna un fișier fizic robots.txt rătăcit în rădăcina site-ului care îl suprascrie pe cel virtual al WordPress — accesează URL-ul direct și verifică. Dacă boții conformi au dispărut, dar scraperele continuă să te bombardeze, ai atins plafonul a ceea ce poate face robots.txt, iar următoarea mișcare este o regulă de WAF sau CDN care blochează după identitate verificată, nu prin rugăminte politicoasă.