SEO & Discoverability

Πώς να γράψετε ένα robots.txt που όντως μπλοκάρει τους AI scrapers

Ένας πρακτικός οδηγός για τον αποκλεισμό συμμορφούμενων AI crawlers, την κατανόηση των ορίων του robots.txt και την προσθήκη server-side ελέγχων εκεί όπου έχουν σημασία.

The Wux Webtools Team The Wux Webtools Team 3 λεπτά ανάγνωσης Βοηθούμενος από AI, ελεγμένος από άνθρωπο
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Πίνακας περιεχομένων
  1. Η άβολη αλήθεια για το robots.txt
  2. Τι μπορεί και τι δεν μπορεί να κάνει το robots.txt
  3. Ξεκινήστε με την απόφαση πολιτικής σας
  4. Ένα λογικό πρότυπο robots.txt για μπλοκάρισμα AI
  5. Προσοχή με το Google-Extended
  6. Δοκιμάστε το αρχείο σαν production code
  7. Προσθέστε server-side ελέγχους για bots που αγνοούν τους κανόνες
  8. Rate limiting
  9. User-agent filtering
  10. IP and ASN controls
  11. Authentication and paywalls
  12. Content minimization
  13. Χρησιμοποιήστε robots meta tags για κανόνες σε επίπεδο σελίδας
  14. Παρακολουθήστε τα logs μετά τη δημοσίευση
  15. Κρατήστε το αρχείο μικρό και υπό αναθεώρηση
  16. Η ουσία

Η άβολη αλήθεια για το robots.txt

Ένα αρχείο robots.txt δεν είναι κλειδαριά. Είναι μια πινακίδα στην πόρτα.

Αυτή η διάκριση έχει σημασία όταν οι ομάδες ρωτούν αν μπορούν να «μπλοκάρουν AI scrapers» με ένα μικρό αρχείο κειμένου. Για αξιόπιστους crawlers που ακολουθούν το Robots Exclusion Protocol, ναι: ένα σωστά γραμμένο robots.txt μπορεί να τους πει να μην κάνουν crawl στις σελίδες σας. Για άγνωστους scrapers, μιμητές, αυτοματισμούς browser και bots που απλώς δεν ενδιαφέρονται, δεν θα κάνει τίποτα από μόνο του.

Άρα ο πρακτικός στόχος δεν είναι «να κάνουμε το scraping αδύνατο». Είναι:

  • Να πείτε στους συμμορφούμενους AI crawlers να μη χρησιμοποιούν τον ιστότοπό σας.
  • Να αποφύγετε να μπλοκάρετε κατά λάθος μηχανές αναζήτησης ή χρήσιμες υπηρεσίες.
  • Να προσθέσετε ισχυρότερους server-side ελέγχους για καταχρήσεις.
  • Να διατηρήσετε την πολιτική συντηρήσιμη καθώς αλλάζουν τα ονόματα των crawlers.

Αυτή είναι η βαρετή εκδοχή. Είναι επίσης η εκδοχή που λειτουργεί.

Τι μπορεί και τι δεν μπορεί να κάνει το robots.txt

Ένα αρχείο robots.txt βρίσκεται στη ρίζα ενός ιστότοπου:

https://example.com/robots.txt

Οι crawlers το ζητούν πριν κάνουν crawl. Το αρχείο περιέχει ομάδες κανόνων. Κάθε ομάδα ξεκινά με μία ή περισσότερες γραμμές User-agent, ακολουθούμενες από οδηγίες Allow ή Disallow.

Ένας απλός αποκλεισμός ολόκληρου του ιστότοπου μοιάζει με αυτό:

User-agent: GPTBot
Disallow: /

Αυτό σημαίνει: αν είσαι GPTBot, μην κάνεις crawl σε τίποτα σε αυτόν τον ιστότοπο.

Όμως το robots.txt έχει αυστηρά όρια:

  1. Είναι εθελοντικό. Κακόβουλοι φορείς μπορούν να το αγνοήσουν.
  2. Δεν εμποδίζει ένα URL να ζητηθεί από έναν κανονικό browser ή script.
  3. Δεν αφαιρεί περιεχόμενο που έχει ήδη συλλεχθεί αλλού.
  4. Δεν ορίζει από μόνο του πνευματικά δικαιώματα, άδειες χρήσης ή δικαιώματα εκπαίδευσης.
  5. Μπορεί να ρυθμιστεί λανθασμένα με τρόπους που μπλοκάρουν τα λάθος bots.

Αν χρειάζεστε πραγματικό έλεγχο πρόσβασης, χρησιμοποιήστε authentication, authorization, rate limiting, IP-based controls, bot management ή νομικούς ελέγχους. Το robots.txt παραμένει χρήσιμο, αλλά ανήκει σε μια ευρύτερη στρατηγική προστασίας περιεχομένου.

Αυτό μοιάζει με άλλα προβλήματα διακυβέρνησης στον ιστό: ο ορατός έλεγχος σπάνια είναι ολόκληρος ο έλεγχος. Αν ο οργανισμός σας έχει ήδη μη διαχειριζόμενη χρήση AI εσωτερικά, ισχύει η ίδια αρχή· ένας γρήγορος έλεγχος shadow AI είναι συχνά πιο χρήσιμος από το να προσποιείστε ότι ένα μόνο έγγραφο πολιτικής λύνει το ζήτημα.

Ξεκινήστε με την απόφαση πολιτικής σας

Πριν επεξεργαστείτε το αρχείο, αποφασίστε τι ακριβώς προσπαθείτε να μπλοκάρετε.

Υπάρχουν τουλάχιστον τέσσερα διαφορετικά πράγματα που εννοούν οι άνθρωποι με τον όρο «AI scraper»:

  • Crawlers που χρησιμοποιούνται για τη συλλογή δεδομένων εκπαίδευσης.
  • Crawlers αναζήτησης AI ή μηχανών απαντήσεων.
  • Fetchers που ενεργοποιούνται από χρήστη, όπως όταν κάποιος ζητά από ένα προϊόν AI να συνοψίσει ένα URL.
  • Γενικοί scrapers που προσποιούνται ότι είναι συνηθισμένοι browsers.

Μπορεί να θέλετε να τα μπλοκάρετε όλα. Ή μπορεί να θέλετε ανακάλυψη μέσω αναζήτησης, ενώ εξαιρείστε από την εκπαίδευση μοντέλων. Αυτές δεν είναι η ίδια πολιτική.

Για παράδειγμα, η OpenAI τεκμηριώνει ξεχωριστά user agents για διαφορετικούς σκοπούς, συμπεριλαμβανομένων των GPTBot, ChatGPT-User και OAI-SearchBot. Η Google χρησιμοποιεί το Google-Extended ως control token για ορισμένες περιπτώσεις χρήσης Gemini και Vertex AI, ενώ το κανονικό crawling της Google Search χειρίζεται από άλλα Googlebot user agents.

Αυτός ο διαχωρισμός είναι σημαντικός. Αν μπλοκάρετε απρόσεκτα ευρείς user agents, μπορεί να βλάψετε τη συνηθισμένη ορατότητα στην αναζήτηση ενώ προσπαθείτε να μπλοκάρετε την εκπαίδευση AI.

Ένα λογικό πρότυπο robots.txt για μπλοκάρισμα AI

Ακολουθεί ένα συντηρητικό σημείο εκκίνησης για το μπλοκάρισμα αρκετών συχνά τεκμηριωμένων AI-related crawlers, αφήνοντας παράλληλα τους γενικούς crawlers αναζήτησης ανεπηρέαστους:

# 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: /

Αυτό δεν είναι μια μαγική καθολική λίστα. Είναι ένα συντηρήσιμο μοτίβο.

Μερικές σημειώσεις:

  • Disallow: / σημαίνει «μην κάνεις crawl σε κανένα path».
  • Το User-agent: * εφαρμόζεται σε crawlers που δεν ταιριάζουν με μια πιο συγκεκριμένη ομάδα.
  • Το Allow: / δεν απαιτείται αυστηρά για την προεπιλεγμένη ομάδα, αλλά κάνει την πρόθεσή σας σαφή.
  • Κρατήστε τα σχόλια σύντομα. Ορισμένοι parsers είναι ανεκτικοί, αλλά το robots.txt πρέπει να παραμένει βαρετό.
  • Μην περιλαμβάνετε ιδιωτικά URLs στο robots.txt. Το αρχείο είναι δημόσιο, και η αναγραφή ευαίσθητων paths μπορεί να τα διαφημίσει.

Το τελευταίο σημείο αξίζει να επαναληφθεί. Το robots.txt δεν είναι μηχανισμός μυστικότητας. Αν το /client-contracts/ δεν πρέπει να είναι δημόσιο, προστατεύστε το με authentication. Μην το κάνετε απλώς disallow.

Προσοχή με το Google-Extended

Το Google-Extended συχνά παρεξηγείται. Δεν είναι το ίδιο με το να μπλοκάρετε τη Google Search.

Σύμφωνα με την τεκμηρίωση της Google, το Google-Extended είναι ένα αυτόνομο product token που μπορούν να χρησιμοποιούν οι publishers για να διαχειρίζονται αν το περιεχόμενο του ιστότοπου μπορεί να βοηθήσει στη βελτίωση ορισμένων δυνατοτήτων Gemini και Vertex AI. Το μπλοκάρισμά του δεν θα πρέπει, από μόνο του, να μπλοκάρει το Googlebot από το crawling για Search.

Ωστόσο, μην αντικαταστήσετε όλες τις οδηγίες Google με έναν ευρύ αποκλεισμό όπως αυτόν, εκτός αν πραγματικά το εννοείτε:

User-agent: Googlebot
Disallow: /

Αυτό θα έλεγε στον κύριο crawler της Google Search να μην κάνει crawl στον ιστότοπό σας. Για τους περισσότερους δημόσιους ιστότοπους, αυτό δεν είναι αυτό που θέλετε.

Η ίδια διάκριση ισχύει και αλλού. Ορισμένοι vendors διαχωρίζουν τους crawlers εκπαίδευσης από το user-triggered browsing ή τους AI search crawlers. Άλλοι όχι. Χρειάζεται να διαβάζετε την τεκμηρίωση για τα bots που σας ενδιαφέρουν και να αντιμετωπίζετε το robots.txt σας ως ζωντανό αρχείο, όχι ως ένα εφάπαξ checkbox.

Δοκιμάστε το αρχείο σαν production code

Το robots.txt φαίνεται απλό, γι’ αυτό και είναι εύκολο να χαλάσει.

Συνηθισμένα λάθη περιλαμβάνουν:

  • Το ανέβασμά του σε λάθος σημείο, όπως /assets/robots.txt αντί για /robots.txt.
  • Τη χρήση smart quotes που αντιγράφηκαν από έναν document editor.
  • Το μπλοκάρισμα όλων των crawlers με User-agent: * και Disallow: / κατά λάθος.
  • Την υπόθεση ότι το αρχείο ενός domain εφαρμόζεται σε άλλο subdomain.
  • Το να ξεχνάτε ότι τα hosts http://, https://, www και non-www μπορεί να χειρίζονται διαφορετικά, ανάλογα με τη ρύθμισή σας.

Για ιστότοπους με πολλά domains, ελέγξτε κάθε canonical host. Ένα robots file στο https://www.example.com/robots.txt δεν διέπει αυτόματα το https://app.example.com/robots.txt.

Κατά το debugging, εξετάστε την πραγματική HTTP response, όχι μόνο αυτό που δείχνει η προεπισκόπηση του CMS σας. Θέλετε μια response 200 OK, content type text/plain αν είναι δυνατόν, και το ακριβές αρχείο που περιμένετε. Αν εμπλέκονται redirects, caching ή κανόνες CDN, η επιθεώρηση raw headers βοηθά. Η ροή εργασίας στο debugging redirects και HTTP headers σε production εφαρμόζεται άμεσα εδώ.

Προσθέστε server-side ελέγχους για bots που αγνοούν τους κανόνες

Αν ο crawler είναι συμμορφούμενος, το robots.txt είναι το καθαρότερο σήμα. Αν ο crawler είναι καταχρηστικός, χρειάζεστε επιβολή.

Πρακτικοί έλεγχοι περιλαμβάνουν:

Rate limiting

Ορίστε thresholds για ασυνήθιστα μοτίβα αιτημάτων: πάρα πολλές σελίδες ανά λεπτό, βαθιά διάσχιση pagination, επαναλαμβανόμενα 404 ή υψηλό request volume από ένα μικρό σύνολο IPs. Τα rate limits πρέπει να είναι αρκετά γενναιόδωρα ώστε να μην τιμωρούν πραγματικούς χρήστες και αρκετά αυστηρά ώστε να κάνουν τη μαζική εξαγωγή δαπανηρή.

User-agent filtering

Μπορείτε να μπλοκάρετε τεκμηριωμένα AI crawler user agents στο web server, reverse proxy, CDN ή application layer. Αυτό είναι ισχυρότερο από το robots.txt, επειδή επιστρέφει πραγματική denial response.

Για παράδειγμα, το Nginx μπορεί να μπλοκάρει ένα user agent pattern, αν και οι production rules πρέπει να δοκιμάζονται προσεκτικά:

if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
    return 403;
}

Αυτό δεν είναι αλάνθαστο. Τα user-agent strings είναι εύκολο να πλαστογραφηθούν. Όμως σταματά την τίμια ή τεμπέλικη κίνηση και μειώνει το φορτίο.

IP and ASN controls

Ορισμένοι operators δημοσιεύουν IP ranges, αλλά πολλά scraper ecosystems δεν το κάνουν. Το IP-based blocking μπορεί να λειτουργήσει για προφανή κατάχρηση, ειδικά από cloud hosting ranges χωρίς κανονική κίνηση χρηστών, αλλά μπορεί επίσης να δημιουργήσει false positives. Χρησιμοποιήστε logs πριν από rules.

Authentication and paywalls

Αν το περιεχόμενο δεν πρέπει να αντιγραφεί σε κλίμακα, μην τοποθετείτε το πλήρες περιεχόμενο σε δημόσιο URL. Το robots.txt είναι ακατάλληλο για εμπιστευτικό υλικό, αδειοδοτημένες βάσεις δεδομένων, ιδιωτικές κοινότητες ή paid archives.

Content minimization

Μερικές φορές η καλύτερη προστασία είναι αρχιτεκτονική. Μην εκθέτετε περιττά APIs, μεγάλα JSON payloads, κρυφά metadata, draft endpoints ή πλήρη archives αν η δημόσια σελίδα χρειάζεται μόνο ένα μικρό υποσύνολο. Οι image-heavy ιστότοποι πρέπει επίσης να σκέφτονται τι metadata δημοσιεύουν· η λογική απορρήτου στο stripping EXIF metadata πριν από την κοινοποίηση φωτογραφιών online εφαρμόζεται και στις λειτουργίες περιεχομένου.

Χρησιμοποιήστε robots meta tags για κανόνες σε επίπεδο σελίδας

Το robots.txt ελέγχει το crawling. Τα robots meta tags και τα X-Robots-Tag headers ελέγχουν την ευρετηρίαση και τη συμπεριφορά snippets για συμμορφούμενες μηχανές αναζήτησης και crawlers.

Για παράδειγμα:

<meta name="robots" content="noindex, noarchive">

Ή ως HTTP header:

X-Robots-Tag: noindex, noarchive

Αυτά δεν είναι AI-specific ασπίδες. Είναι χρήσιμα όταν θέλετε μια σελίδα να είναι προσβάσιμη αλλά όχι ευρετηριασμένη. Ωστόσο, αν μπλοκάρετε έναν crawler από το να fetch μια σελίδα στο robots.txt, μπορεί να μη δει ποτέ το page-level meta tag. Μην βασίζεστε σε ένα noindex tag σε URL στο οποίο ο crawler απαγορεύεται να κάνει crawl.

Ο πρακτικός κανόνας:

  • Χρησιμοποιήστε robots.txt για να μειώσετε ή να αποτρέψετε το crawling.
  • Χρησιμοποιήστε meta robots ή X-Robots-Tag για να ελέγξετε τη συμπεριφορά ευρετηρίασης.
  • Χρησιμοποιήστε server-side ελέγχους για να επιβάλετε την πρόσβαση.

Παρακολουθήστε τα logs μετά τη δημοσίευση

Η δημοσίευση του αρχείου είναι μόνο το πρώτο βήμα. Μετά, ελέγξτε τα logs σας.

Αναζητήστε:

  • Αιτήματα στο /robots.txt από τα user agents που κατονομάσατε.
  • Συνεχιζόμενο crawling μετά την εξυπηρέτηση disallow rules.
  • Ύποπτα user agents με υψηλό volume.
  • Browser-like user agents που ζητούν χιλιάδες σελίδες διαδοχικά.
  • Επαναλαμβανόμενη πρόσβαση σε feeds, sitemaps, σελίδες αναζήτησης και pagination.

Αν ένα bot ζητήσει το robots.txt, δει ένα πλήρες disallow και μετά σταματήσει, το robots.txt έκανε τη δουλειά του. Αν συνεχίσει, μετακινήστε αυτό το bot στην επιβολή: rate limits, blocks ή authentication.

Επίσης, ελέγξτε την έκθεση των sitemaps σας. Τα sitemaps είναι χρήσιμα για τις μηχανές αναζήτησης, αλλά είναι επίσης βολικοί χάρτες για scrapers. Αυτό δεν σημαίνει ότι πρέπει να τα αφαιρέσετε από συνηθισμένους ιστότοπους. Σημαίνει ότι δεν πρέπει να περιλαμβάνετε URLs που δεν θέλετε να ανακαλύψουν δημόσια συστήματα.

Κρατήστε το αρχείο μικρό και υπό αναθεώρηση

Το robots.txt τείνει να φθείρεται. Μια marketing team προσθέτει ένα campaign microsite. Ένας developer προσθέτει ένα staging path. Ένας vendor αλλάζει το όνομα του crawler του. Δύο χρόνια αργότερα κανείς δεν ξέρει γιατί υπάρχουν οι μισοί κανόνες.

Αντιμετωπίστε το ως configuration:

  • Αποθηκεύστε το σε version control όταν είναι δυνατόν.
  • Προσθέστε ένα σύντομο σχόλιο για κάθε AI crawler group.
  • Επανεξετάζετέ το ανά τρίμηνο.
  • Ελέγξτε την τεκμηρίωση των vendors πριν προσθέσετε ευρείς κανόνες.
  • Δοκιμάστε το μετά από αλλαγές σε CDN, CMS ή hosting.

Αν ο ιστότοπός σας δημοσιεύει AI-assisted content, διαχωρίστε επίσης την πολιτική crawler από τη συντακτική διαφάνεια. Το μπλοκάρισμα AI scrapers αφορά την πρόσβαση και την επαναχρησιμοποίηση. Η γνωστοποίηση αφορά την εμπιστοσύνη των αναγνωστών. Επικαλύπτονται ηθικά, αλλά δεν είναι ο ίδιος έλεγχος. Μια πρακτική προσέγγιση γνωστοποίησης καλύπτεται στο πώς μοιάζει η ειλικρινής γνωστοποίηση AI σε έναν μικρό ιστότοπο.

<!-- tool-cta:start -->

💡 Δοκιμάστε αυτό: Αφού προσθέσετε κανόνες για AI crawlers, επιβεβαιώστε τη σύνταξη με το Robots.txt Tester, ώστε να μην μπλοκάρετε κατά λάθος και νόμιμα bots.

<!-- tool-cta:end -->

Η ουσία

Ένα καλό αρχείο robots.txt θα μπλοκάρει συμμορφούμενους AI crawlers. Δεν θα σταματήσει αποφασισμένο scraping, αντιγραμμένα user-agent strings, παραβιασμένους browsers ή ανθρώπους που επικολλούν χειροκίνητα το περιεχόμενό σας σε AI systems.

Αυτό δεν το κάνει άχρηστο. Το κάνει ένα επίπεδο.

Γράψτε ρητούς κανόνες για τεκμηριωμένους AI crawlers. Αποφύγετε ευρείς αποκλεισμούς που βλάπτουν την ορατότητα στην αναζήτηση. Δοκιμάστε το served file, όχι το draft. Παρακολουθήστε logs. Επιβάλετε με server-side ελέγχους εκεί όπου η συμπεριφορά περνά από ανεπιθύμητη σε καταχρηστική.

Ο ιστός λειτουργούσε πάντα με ένα μείγμα πρωτοκόλλου, κανόνων συμπεριφοράς και επιβολής. Το robots.txt είναι το επίπεδο των κανόνων συμπεριφοράς. Χρησιμοποιήστε το, αλλά μην το μπερδεύετε με τείχος.

Συχνές ερωτήσεις

Μπορεί το robots.txt να σταματήσει εταιρείες AI από το να εκπαιδεύονται στο περιεχόμενό μου;
Μπορεί να πει σε συμμορφούμενους AI crawlers να μην κάνουν crawl στον ιστότοπό σας για αυτόν τον σκοπό. Δεν μπορεί τεχνικά να εμποδίσει μη συμμορφούμενους scrapers από το να προσπελάσουν δημόσιες σελίδες, και δεν αφαιρεί περιεχόμενο που έχει ήδη συλλεχθεί.
Πρέπει να μπλοκάρω το User-agent: * για να σταματήσω όλους τους scrapers;
Συνήθως όχι. Το `User-agent: *` εφαρμόζεται σε όλους τους crawlers που δεν ταιριάζουν με έναν πιο συγκεκριμένο κανόνα. Το `Disallow: /` κάτω από αυτή την ομάδα μπορεί να μπλοκάρει το συνηθισμένο search crawling και άλλα χρήσιμα bots.
Είναι το Google-Extended το ίδιο με το Googlebot;
Όχι. Η Google τεκμηριώνει το `Google-Extended` ως ξεχωριστό product token για τον έλεγχο ορισμένων χρήσεων Gemini και Vertex AI. Το μπλοκάρισμα του `Googlebot` είναι πολύ ευρύτερη ενέργεια και μπορεί να επηρεάσει το crawling της Google Search.
Τι γίνεται αν ένας AI scraper αγνοεί το robots.txt;
Περάστε από το signalling στην επιβολή. Χρησιμοποιήστε rate limiting, user-agent blocks, IP ή ASN controls όπου είναι κατάλληλο, bot management, authentication και αυστηρότερη έκθεση API/περιεχομένου.
Χρειάζομαι και robots.txt και meta robots tags;
Λύνουν διαφορετικά προβλήματα. Το robots.txt ελέγχει το crawling. Τα meta robots tags και τα `X-Robots-Tag` headers ελέγχουν την ευρετηρίαση και τη συμπεριφορά snippets για συμμορφούμενους crawlers που μπορούν να προσπελάσουν τη σελίδα.

Πηγές & περαιτέρω ανάγνωση

  1. RFC 9309: The Robots Exclusion Protocol
  2. Google Search Central: robots.txt specifications
  3. OpenAI: GPTBot documentation
  4. Google Search Central: Google-Extended
Σχετικά με τον συγγραφέα
The Wux Webtools Team

Τελευταία ενημέρωση:

Συνεχίστε την ανάγνωση

SEO & Discoverability

Ποιοι τύποι schema.org επηρεάζουν πραγματικά τα αποτελέσματα αναζήτησης

Δεν επηρεάζει κάθε τύπος schema.org την αναζήτηση. Δείτε τους τύπους δομημένων δεδομένων που είναι πιο πιθανό να αλλάξουν την εμφάνισή σας στα αποτελέσματα αναζήτησης.

2 λεπτά ανάγνωσης