Kaip parašyti robots.txt, kuris iš tikrųjų blokuoja DI duomenų rinkiklius
Praktinis vadovas, kaip blokuoti taisyklių besilaikančius DI robotus, suprasti robots.txt ribas ir pridėti serverio pusės kontrolės priemones ten, kur jos svarbios.
Turinys
- Nepatogi tiesa apie robots.txt
- Ką robots.txt gali ir ko negali padaryti
- Pradėkite nuo politikos sprendimo
- Pagrįstas DI blokavimo robots.txt šablonas
- Būkite atsargūs su Google-Extended
- Testuokite failą kaip produkcinį kodą
- Pridėkite serverio pusės kontrolės priemones robotams, kurie nepaiso taisyklių
- Užklausų dažnio ribojimas
- User-agent filtravimas
- IP ir ASN priemonės
- Autentifikavimas ir mokamos sienos
- Turinio minimizavimas
- Naudokite robots metažymas puslapio lygio taisyklėms
- Stebėkite žurnalus po paskelbimo
- Laikykite failą mažą ir peržiūrimą
- Esmė
Nepatogi tiesa apie robots.txt
robots.txt failas nėra spyna. Tai ženklas ant durų.
Šis skirtumas svarbus, kai komandos klausia, ar gali „blokuoti DI duomenų rinkiklius“ vienu nedideliu tekstiniu failu. Patikimiems robotams, kurie laikosi Robots Exclusion Protocol, taip: teisingai parašytas robots.txt gali nurodyti jiems nenaršyti jūsų puslapių. Nežinomiems rinkikliams, apsimetėliams, naršyklių automatizavimui ir robotams, kuriems tai paprasčiausiai nerūpi, jis pats savaime nieko nepadarys.
Todėl praktinis tikslas nėra „padaryti rinkimą neįmanomą“. Jis yra toks:
- Nurodyti taisyklių besilaikantiems DI robotams nenaudoti jūsų svetainės.
- Išvengti netyčinio paieškos sistemų ar naudingų paslaugų blokavimo.
- Pridėti stipresnes serverio pusės kontrolės priemones piktnaudžiavimui.
- Išlaikyti politiką prižiūrimą, kai robotų pavadinimai keičiasi.
Tai nuobodi versija. Ji taip pat yra ta, kuri veikia.
Ką robots.txt gali ir ko negali padaryti
robots.txt failas yra svetainės šaknyje:
https://example.com/robots.txt
Robotai jo paprašo prieš pradėdami naršyti. Faile yra taisyklių grupės. Kiekviena grupė prasideda viena ar keliomis User-agent eilutėmis, po kurių eina Allow arba Disallow direktyvos.
Paprastas visos svetainės blokavimas atrodo taip:
User-agent: GPTBot
Disallow: /
Tai reiškia: jei esi GPTBot, nenaršyk nieko šioje svetainėje.
Tačiau robots.txt turi aiškias ribas:
- Jis savanoriškas. Blogi veikėjai gali jo nepaisyti.
- Jis neužkerta kelio URL paprašyti įprasta naršykle ar scenarijumi.
- Jis nepašalina turinio, kuris jau surinktas kitur.
- Jis pats savaime neapibrėžia autorių teisių, licencijavimo ar mokymo teisių.
- Jį galima sukonfigūruoti klaidingai taip, kad būtų blokuojami netinkami robotai.
Jei jums reikia tikros prieigos kontrolės, naudokite autentifikavimą, autorizaciją, užklausų dažnio ribojimą, IP pagrįstas priemones, botų valdymą arba teisines priemones. Robots.txt vis dar naudingas, bet jis priklauso platesnei turinio apsaugos strategijai.
Tai panašu į kitas žiniatinklio valdymo problemas: matoma kontrolės priemonė retai būna visa kontrolė. Jei jūsų organizacijoje jau yra nevaldoma vidinė DI naudojimo praktika, galioja tas pats principas; greitas šešėlinio DI auditas dažnai naudingesnis nei apsimetimas, kad vienas politikos dokumentas išsprendžia problemą.
Pradėkite nuo politikos sprendimo
Prieš redaguodami failą nuspręskite, ką iš tikrųjų bandote blokuoti.
Yra bent keturi skirtingi dalykai, kuriuos žmonės turi omenyje sakydami „DI duomenų rinkiklis“:
- Robotai, naudojami mokymo duomenims rinkti.
- DI paieškos ar atsakymų sistemų robotai.
- Naudotojo inicijuoti gavėjai, pavyzdžiui, kai kas nors paprašo DI produkto apibendrinti URL.
- Bendrieji rinkikliai, apsimetantys įprastomis naršyklėmis.
Galbūt norėsite blokuoti juos visus. Arba galbūt norėsite paieškos atrandamumo, bet nenorėsite modelių mokymo. Tai nėra ta pati politika.
Pavyzdžiui, OpenAI dokumentuoja atskirus naudotojo agentus skirtingiems tikslams, įskaitant GPTBot, ChatGPT-User ir OAI-SearchBot. Google naudoja Google-Extended kaip kontrolinį žetoną kai kuriems Gemini ir Vertex AI naudojimo atvejams, o įprastą Google Search naršymą tvarko kiti Googlebot naudotojo agentai.
Šis atskyrimas svarbus. Jei neatsargiai blokuosite plačius naudotojo agentus, bandydami blokuoti DI mokymą galite pakenkti įprastam matomumui paieškoje.
Pagrįstas DI blokavimo robots.txt šablonas
Štai konservatyvus pradinis variantas, skirtas blokuoti kelis dažnai dokumentuojamus su DI susijusius robotus, paliekant bendruosius paieškos robotus:
# AI training and AI product crawlers
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Claude-Web
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Amazonbot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /
# Default rule for other crawlers
User-agent: *
Allow: /
Tai nėra stebuklingas universalus sąrašas. Tai prižiūrimas modelis.
Kelios pastabos:
Disallow: /reiškia „nenaršyti jokio kelio“.User-agent: *taikoma robotams, kurie neatitinka konkretesnės grupės.Allow: /numatytojoje grupėje nėra griežtai būtina, bet ji aiškiai parodo jūsų ketinimą.- Komentarai turi būti trumpi. Kai kurie analizatoriai atlaidūs, bet robots.txt turėtų išlikti nuobodus.
- Neįtraukite privačių URL į robots.txt. Failas viešas, o jautrių kelių išvardijimas gali juos pareklamuoti.
Paskutinį punktą verta pakartoti. Robots.txt nėra slaptumo mechanizmas. Jei /client-contracts/ neturėtų būti vieša, apsaugokite tai autentifikavimu. Neapsiribokite vien disallow.
Būkite atsargūs su Google-Extended
Google-Extended dažnai suprantamas klaidingai. Tai nėra tas pats, kas Google Search blokavimas.
Pagal Google dokumentaciją Google-Extended yra atskiras produkto žetonas, kurį leidėjai gali naudoti valdydami, ar svetainės turinys gali padėti gerinti tam tikras Gemini ir Vertex AI galimybes. Jo blokavimas pats savaime neturėtų blokuoti Googlebot naršymo Search tikslais.
Vis dėlto nekeiskite visų Google direktyvų plačiu blokavimu, kaip šis, nebent tikrai to siekiate:
User-agent: Googlebot
Disallow: /
Tai nurodytų pagrindiniam Google Search robotui nenaršyti jūsų svetainės. Daugumai viešų svetainių tai nėra tai, ko norite.
Tas pats skirtumas galioja ir kitur. Kai kurie tiekėjai atskiria mokymo robotus nuo naudotojo inicijuoto naršymo ar DI paieškos robotų. Kiti to nedaro. Turite skaityti jums svarbių robotų dokumentaciją ir laikyti savo robots.txt gyvu failu, o ne vienkartiniu žymimuoju langeliu.
Testuokite failą kaip produkcinį kodą
Robots.txt atrodo paprastas, todėl jį lengva sugadinti.
Dažnos klaidos:
- Įkėlimas į netinkamą vietą, pavyzdžiui,
/assets/robots.txtvietoj/robots.txt. - Iš dokumentų rengyklės nukopijuotų išmaniųjų kabučių naudojimas.
- Netyčinis visų robotų blokavimas su
User-agent: *irDisallow: /. - Prielaida, kad vieno domeno failas taikomas kitam subdomenui.
- Pamiršimas, kad
http://,https://,wwwir newwwprieglobos gali būti tvarkomos skirtingai, priklausomai nuo jūsų sąrankos.
Kelių domenų svetainėse patikrinkite kiekvieną kanoninę prieglobą. Robots failas adresu https://www.example.com/robots.txt automatiškai nevaldo https://app.example.com/robots.txt.
Derindami tikrinkite faktinį HTTP atsakymą, o ne tik tai, ką rodo jūsų CMS peržiūra. Norite 200 OK atsakymo, text/plain turinio tipo, jei įmanoma, ir tiksliai tokio failo, kokio tikitės. Jei dalyvauja peradresavimai, podėliavimas ar CDN taisyklės, padeda neapdorotų antraščių tikrinimas. Darbo eiga, aprašyta peradresavimų ir HTTP antraščių derinime produkcijoje, čia taikoma tiesiogiai.
Pridėkite serverio pusės kontrolės priemones robotams, kurie nepaiso taisyklių
Jei robotas laikosi taisyklių, robots.txt yra švariausias signalas. Jei robotas piktnaudžiauja, reikia vykdymo užtikrinimo.
Praktinės priemonės:
Užklausų dažnio ribojimas
Nustatykite slenksčius neįprastiems užklausų modeliams: per daug puslapių per minutę, gilus puslapiavimo perėjimas, pasikartojantys 404, arba didelis užklausų kiekis iš nedidelio IP rinkinio. Ribos turėtų būti pakankamai dosnios, kad nebaustų tikrų naudotojų, ir pakankamai griežtos, kad masinis ištraukimas taptų brangus.
User-agent filtravimas
Galite blokuoti dokumentuotus DI robotų naudotojo agentus žiniatinklio serveryje, atvirkštiniame proxy, CDN arba programos sluoksnyje. Tai stipriau nei robots.txt, nes grąžinamas tikras atmetimo atsakymas.
Pavyzdžiui, Nginx gali blokuoti naudotojo agento šabloną, nors produkcinės taisyklės turėtų būti kruopščiai testuojamos:
if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
return 403;
}
Tai nėra nepriekaištinga. User-agent eilutes lengva suklastoti. Bet tai sustabdo sąžiningą arba tingų srautą ir sumažina apkrovą.
IP ir ASN priemonės
Kai kurie operatoriai skelbia IP intervalus, bet daugelis duomenų rinkiklių ekosistemų to nedaro. IP pagrįstas blokavimas gali veikti akivaizdaus piktnaudžiavimo atvejais, ypač iš debesijos prieglobos intervalų, kuriuose nėra įprasto naudotojų srauto, bet jis taip pat gali sukelti klaidingų teigiamų atvejų. Prieš taisykles naudokite žurnalus.
Autentifikavimas ir mokamos sienos
Jei turinys neturi būti kopijuojamas dideliu mastu, nedėkite viso turinio viešame URL. Robots.txt netinka konfidencialiai medžiagai, licencijuotoms duomenų bazėms, privačioms bendruomenėms ar mokamiems archyvams.
Turinio minimizavimas
Kartais geriausia apsauga yra architektūrinė. Neatidengkite nereikalingų API, didelių JSON naudingųjų apkrovų, paslėptų metaduomenų, juodraščių galinių taškų ar pilnų archyvų, jei viešam puslapiui reikia tik nedidelės dalies. Daug vaizdų turinčios svetainės taip pat turėtų pagalvoti, kokius metaduomenis jos skelbia; privatumo logika, aprašyta EXIF metaduomenų pašalinime prieš dalijantis nuotraukomis internete, taikoma ir turinio operacijoms.
Naudokite robots metažymas puslapio lygio taisyklėms
Robots.txt valdo naršymą. Robots metažymos ir X-Robots-Tag antraštės valdo indeksavimą ir fragmentų elgseną taisyklių besilaikančioms paieškos sistemoms ir robotams.
Pavyzdžiui:
<meta name="robots" content="noindex, noarchive">
Arba kaip HTTP antraštė:
X-Robots-Tag: noindex, noarchive
Tai nėra DI skirtos apsaugos. Jos naudingos, kai norite, kad puslapis būtų pasiekiamas, bet neindeksuojamas. Tačiau jei robots.txt uždrausite robotui gauti puslapį, jis gali niekada nepamatyti puslapio lygio metažymos. Nesiremkite noindex žyma URL, kurį robotui draudžiama naršyti.
Apytikslė taisyklė:
- Naudokite robots.txt, kad sumažintumėte arba užkirstumėte kelią naršymui.
- Naudokite meta robots arba
X-Robots-Tag, kad valdytumėte indeksavimo elgseną. - Naudokite serverio pusės priemones prieigai užtikrinti.
Stebėkite žurnalus po paskelbimo
Failo paskelbimas yra tik pirmas žingsnis. Po to tikrinkite žurnalus.
Ieškokite:
- Užklausų į
/robots.txtiš jūsų įvardytų naudotojo agentų. - Tęsiamo naršymo po to, kai pateikiamos draudimo taisyklės.
- Įtartinų didelio srauto naudotojo agentų.
- Į naršyklę panašių naudotojo agentų, kurie iš eilės prašo tūkstančių puslapių.
- Pasikartojančios prieigos prie srautų, svetainių schemų, paieškos puslapių ir puslapiavimo.
Jei botas paprašo robots.txt, pamato visišką draudimą ir sustoja, robots.txt atliko savo darbą. Jei jis tęsia, perkelkite tą botą į vykdymo užtikrinimą: dažnio ribas, blokavimus arba autentifikavimą.
Taip pat peržiūrėkite savo svetainės schemų atskleidimą. Svetainių schemos naudingos paieškos sistemoms, bet jos taip pat yra patogūs žemėlapiai rinkikliams. Tai nereiškia, kad turėtumėte jas pašalinti iš įprastų svetainių. Tai reiškia, kad neturėtumėte įtraukti URL, kurių nenorite, kad viešos sistemos atrastų.
Laikykite failą mažą ir peržiūrimą
Robots.txt linkęs senti. Rinkodaros komanda prideda kampanijos mikrosvetainę. Kūrėjas prideda testavimo kelią. Tiekėjas pakeičia savo roboto pavadinimą. Po dvejų metų niekas nebežino, kodėl egzistuoja pusė taisyklių.
Elkitės su juo kaip su konfigūracija:
- Kai įmanoma, laikykite jį versijų kontrolėje.
- Pridėkite trumpą komentarą kiekvienai DI robotų grupei.
- Peržiūrėkite jį kas ketvirtį.
- Prieš pridėdami plačias taisykles patikrinkite tiekėjo dokumentaciją.
- Testuokite po CDN, CMS ar prieglobos pakeitimų.
Jei jūsų svetainė skelbia DI padedamą kurti turinį, taip pat atskirkite robotų politiką nuo redakcinio skaidrumo. DI duomenų rinkiklių blokavimas yra apie prieigą ir pakartotinį naudojimą. Atskleidimas yra apie skaitytojų pasitikėjimą. Etiniu požiūriu jie persidengia, bet tai nėra ta pati kontrolės priemonė. Praktinis atskleidimo metodas aptariamas straipsnyje kaip atrodo sąžiningas DI atskleidimas mažoje svetainėje.
<!-- tool-cta:start -->
💡 Išbandykite tai: Pridėję taisykles AI naršyklėms, patikrinkite sintaksę naudodami Robots.txt Tester, kad netyčia neužblokuotumėte ir teisėtų botų.
<!-- tool-cta:end -->
Esmė
Geras robots.txt failas blokuos taisyklių besilaikančius DI robotus. Jis nesustabdys atkaklaus rinkimo, nukopijuotų user-agent eilučių, kompromituotų naršyklių ar žmonių, kurie rankiniu būdu įklijuoja jūsų turinį į DI sistemas.
Tai nereiškia, kad jis nenaudingas. Tai reiškia, kad jis yra vienas sluoksnis.
Rašykite aiškias taisykles dokumentuotiems DI robotams. Venkite plačių blokavimų, kurie kenkia matomumui paieškoje. Testuokite pateikiamą failą, o ne juodraštį. Stebėkite žurnalus. Užtikrinkite vykdymą serverio pusės priemonėmis ten, kur elgsena pereina iš nepageidaujamos į piktnaudžiaujančią.
Žiniatinklis visada veikė remdamasis protokolo, normų ir vykdymo užtikrinimo deriniu. Robots.txt yra normų sluoksnis. Naudokite jį, bet nepainiokite jo su siena.