Ενότητα 3 · 3.3
robots.txt: τι αποκλείετε και τι όχι
Ενότητα 3: Η τεχνική βάση μιας σελίδας · Χρόνος ανάγνωσης: 13 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να διαβάζετε και να γράφετε ένα robots.txt, να υπολογίζετε μόνοι σας αν μια διεύθυνση επιτρέπεται για το Googlebot, να εξηγείτε τι συμβαίνει όταν το αρχείο λείπει ή δεν είναι προσβάσιμο, και γνωρίζετε γιατί το robots.txt δεν είναι ούτε μέτρο προστασίας ούτε noindex.
Βασικές έννοιες: robots.txt (RFC 9309), crawler, ομάδα, User-agent, Disallow, Allow, μεγαλύτερη αντιστοιχία, ίσο μήκος (κερδίζει το Allow), * και $, Sitemap:, κωδικός κατάστασης του robots.txt (4xx, 5xx), 500 KiB, cache 24 ωρών, όχι προστασία, όχι noindex, crawlers AI (Google-Extended, GPTBot)
Μια πινακίδα στην εξώπορτα
Ένα robots.txt είναι ένα απλό αρχείο κειμένου στον κεντρικό φάκελο του site σας, πάντα στην ίδια διεύθυνση: https://www.example.com/robots.txt. Ένας ευγενικός crawler (μάθημα 1.2) ζητά πρώτα αυτό το αρχείο και διαβάζει ποια τμήματα του site δεν επιτρέπεται να επισκεφθεί. Είναι μια πινακίδα στην εξώπορτα, όχι κλειδαριά: το Googlebot και το Bingbot την τηρούν, αλλά ένα κακόβουλο ρομπότ απλώς διαβάζει την πινακίδα και συνεχίζει.
Από το 2022 το πρωτόκολλο είναι επίσημο πρότυπο του διαδικτύου: RFC 9309. Επιπλέον, η Google περιγράφει με ακρίβεια πώς διαβάζει το Googlebot το αρχείο. Σε αυτό το μάθημα χρησιμοποιούμε και τις δύο πηγές.
Μερικοί σταθεροί κανόνες:
- Το αρχείο βρίσκεται στον κεντρικό φάκελο του host. Ένα robots.txt στο
/blog/robots.txtδεν διαβάζεται. - Ισχύει μόνο για αυτόν τον host, αυτό το πρωτόκολλο και αυτή τη θύρα. Το
https://www.example.com/robots.txtδεν ισχύει για τοhttps://shop.example.com/· αυτό χρειάζεται δικό του αρχείο. - Είναι απλό κείμενο σε UTF-8.
Πώς είναι δομημένο το αρχείο
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlΤο αρχείο αποτελείται από ομάδες. Μια ομάδα ξεκινά με μία ή περισσότερες γραμμές User-agent: και ακολουθούν οι κανόνες Disallow: (να μη γίνει επίσκεψη) και Allow: (να γίνει επίσκεψη). Η διαδρομή μετά το Disallow: είναι η αρχή μιας διεύθυνσης: το Disallow: /zoeken αποκλείει το /zoeken, το /zoeken?q=rozen και επίσης το /zoekenmachine, επειδή όλα ξεκινούν με /zoeken.
Η γραμμή Sitemap: δεν ανήκει σε καμία ομάδα και δηλώνει πού βρίσκεται το sitemap σας (μάθημα 3.4). Η Google απαιτεί πλήρη διεύθυνση με https:// και όνομα host.
Ένα Disallow: χωρίς διαδρομή δεν αποκλείει τίποτα. Το Disallow: / αποκλείει τα πάντα.
Ποια ομάδα ισχύει;
Ένας crawler επιλέγει μία ομάδα: εκείνη με το πιο συγκεκριμένο όνομα που του ταιριάζει. Το Googlebot λοιπόν ακολουθεί την ομάδα User-agent: Googlebot αν υπάρχει, και τότε αγνοεί εντελώς την ομάδα *. Στο παραπάνω παράδειγμα, το Googlebot επιτρέπεται λοιπόν να μπει στο /winkelmand/: αυτός ο κανόνας υπάρχει μόνο στην ομάδα *. Αυτό είναι από τα πιο συνηθισμένα λάθη: όποιος δημιουργεί ξεχωριστή ομάδα για το Googlebot πρέπει να επαναλάβει εκεί όλους τους κανόνες που ισχύουν και για την Google.
Το όνομα δεν κάνει διάκριση πεζών και κεφαλαίων (googlebot = Googlebot). Αν υπάρχουν δύο ομάδες για τον ίδιο crawler, η Google τις συγχωνεύει.
Ποιος κανόνας κερδίζει;
Μέσα στην ομάδα, μια διεύθυνση μπορεί να εμπίπτει σε περισσότερους κανόνες. Τότε ισχύει:
- Κερδίζει ο μεγαλύτερος κανόνας που ταιριάζει (η πιο συγκεκριμένη διαδρομή).
- Αν ένα
Allowκαι έναDisallowέχουν ακριβώς το ίδιο μήκος, κερδίζει τοAllow. Η Google το ονομάζει «ο λιγότερο περιοριστικός κανόνας».
Δύο χαρακτήρες έχουν ειδική σημασία:
| Χαρακτήρας | Σημασία | Παράδειγμα | Ταιριάζει | Δεν ταιριάζει |
|---|---|---|---|---|
* | μηδέν ή περισσότεροι οποιοιδήποτε χαρακτήρες | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | τέλος της διεύθυνσης | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Παράδειγμα υπολογισμού με την ομάδα * από πάνω, για τον crawler Bingbot (που δεν έχει δική του ομάδα):
| Διεύθυνση | Κανόνες που ταιριάζουν | Αποτέλεσμα |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | δεν επιτρέπεται |
/zoeken/tips | Disallow: /zoeken (7 χαρακτήρες) και Allow: /zoeken/tips (12) | επιτρέπεται: κερδίζει ο μεγαλύτερος |
/zoeken?q=rozen | Disallow: /zoeken | δεν επιτρέπεται |
/bruidsboeketten | κανένας | επιτρέπεται |
/robots.txt | (πάντα) | επιτρέπεται: το ίδιο το robots.txt επιτρέπεται πάντα |
Όταν το αρχείο δεν υπάρχει ή ο server έχει πρόβλημα
Το τι κάνει η Google εξαρτάται από τον κωδικό κατάστασης με τον οποίο απαντά ο server σας στο /robots.txt:
| Απάντηση | Τι κάνει η Google |
|---|---|
| 200 (βρέθηκε) | Διαβάζει τους κανόνες |
| Ανακατεύθυνση (301, 302) | Ακολουθεί τουλάχιστον πέντε βήματα· μετά η Google το αντιμετωπίζει ως 404 |
| 4xx, όπως 404 ή 403 (εκτός από 429) | Σαν να μην υπάρχει κανένα robots.txt: όλα επιτρέπονται |
| 5xx ή καμία σύνδεση | Τις πρώτες 12 ώρες η Google δεν κάνει crawl στο site και ξαναδοκιμάζει· μετά, έως 30 ημέρες, χρησιμοποιεί την τελευταία καλή έκδοση από την cache. Αν το πρόβλημα συνεχίζεται μετά από αυτό ενώ το site κατά τα άλλα λειτουργεί, η Google συμπεριφέρεται σαν να μην υπάρχει robots.txt |
Ένα robots.txt που λείπει δεν είναι λοιπόν πρόβλημα: τότε όλα επιτρέπονται. Ένα robots.txt που επιστρέφει σφάλμα server είναι όμως πρόβλημα: τότε η Google σταματά προσωρινά το crawling. Το RFC 9309 είναι ακόμη αυστηρότερο: όταν το αρχείο δεν είναι προσβάσιμο, ένας crawler πρέπει να υποθέσει ότι όλα απαγορεύονται.
Επιπλέον:
- Η Google διαβάζει έως 500 KiB· ό,τι ακολουθεί αγνοείται.
- Η Google κρατά συνήθως το robots.txt στην cache έως 24 ώρες. Μια αλλαγή λοιπόν δεν ισχύει αμέσως. Στο Search Console, στις Ρυθμίσεις, θα βρείτε την αναφορά robots.txt: ποια έκδοση ανέκτησε τελευταία η Google, με σφάλματα και προειδοποιήσεις, και ένα κουμπί για να ζητήσετε νέα ανάκτηση.
- Η Google αναγνωρίζει μόνο τα
User-agent,Allow,DisallowκαιSitemap. Κανόνες όπωςCrawl-delayήNoindexαγνοούνται από το Googlebot.
Τι δεν κάνει το robots.txt
Δεν είναι μέτρο προστασίας
Οποιοσδήποτε μπορεί να διαβάσει το robots.txt σας, ακόμη και όποιος έχει κακές προθέσεις. Ένας κανόνας Disallow: /beheer-oud/ δείχνει ακριβώς πού βρίσκεται κάτι ενδιαφέρον. Το ίδιο το RFC 9309 το λέει: οι κανόνες δεν αποτελούν μορφή ελέγχου πρόσβασης. Πραγματική προστασία επιτυγχάνετε με κωδικό πρόσβασης ή βάζοντας τον server να αρνείται την πρόσβαση, για παράδειγμα με .htaccess (δείτε την Περαιτέρω ανάγνωση).
Δεν είναι noindex
Αυτό είναι το σημαντικότερο δίδαγμα. Το robots.txt ρυθμίζει το crawling, όχι την ευρετηρίαση (μάθημα 1.3). Η Google γράφει κατά λέξη ότι το robots.txt δεν είναι τρόπος να κρατήσετε μια σελίδα εκτός Google. Αν άλλα sites παραπέμπουν σε μια αποκλεισμένη διεύθυνση, η διεύθυνση μπορεί παρ' όλα αυτά να εμφανιστεί στα αποτελέσματα αναζήτησης, απλώς χωρίς περιγραφή.
Αν θέλετε να κρατήσετε μια σελίδα εκτός αποτελεσμάτων αναζήτησης, χρησιμοποιήστε noindex (σε ένα <meta name="robots"> ή στην κεφαλίδα X-Robots-Tag) ή προστατέψτε τη σελίδα με κωδικό πρόσβασης. Και προσέξτε την κλασική παγίδα: αν βάλετε μια σελίδα με noindex και σε Disallow στο robots.txt, η Google δεν μπορεί να επισκεφθεί τη σελίδα και άρα δεν θα διαβάσει ποτέ το noindex.
Μην αποκλείετε στοιχεία που χρειάζεται η Google
Μην αποκλείετε φακέλους με stylesheets, scripts ή εικόνες που χρειάζεται η σελίδα σας για να εμφανίζεται σωστά. Η Google βλέπει τη σελίδα σας όπως ένας browser· χωρίς αυτά τα αρχεία, η Google την κατανοεί χειρότερα.
Crawlers AI
Όλο και περισσότερες εταιρείες συλλέγουν ιστοσελίδες για την τεχνητή νοημοσύνη. Σε ορισμένες από αυτές μπορείτε να απευθυνθείτε μέσω του robots.txt:
- Το
Google-Extendedδεν είναι ξεχωριστό ρομπότ, αλλά ένα όνομα στο robots.txt με το οποίο δηλώνετε αν η Google μπορεί να χρησιμοποιεί το περιεχόμενό σας για την εκπαίδευση μοντέλων Gemini και για grounding. Η Google γράφει ότι αυτό δεν επηρεάζει την καταχώρισή σας ή τη θέση σας στην Αναζήτηση Google. - Το
GPTBotτης OpenAI συλλέγει σελίδες που μπορεί να χρησιμοποιηθούν για την εκπαίδευση μοντέλων. ΤοOAI-SearchBotεξυπηρετεί τη λειτουργία αναζήτησης του ChatGPT: αν το αποκλείσετε, το site σας δεν εμφανίζεται στις απαντήσεις αναζήτησης του ChatGPT.
User-agent: GPTBot
Disallow: /Το αν το θέλετε αυτό είναι επιλογή, όχι τεχνική αναγκαιότητα. Αν αποκλείσετε κατά λάθος ένα ρομπότ αναζήτησης (Googlebot, Bingbot, OAI-SearchBot), θα εντοπίζεστε εκεί λιγότερο εύκολα.
Στην πράξη: πού βρίσκεται το robots.txt σας;
- Το AI Builder του WebOké δημιουργεί αυτόματα κατά τη δημοσίευση ένα robots.txt με
User-agent: *,Allow: /και μια γραμμήSitemap:. Αν ορίσετε το site ως μη ευρετηριάσιμο ή αν πρόκειται για δωρεάν demo, περιέχειDisallow: /. - Το WordPress δημιουργεί ένα εικονικό robots.txt με παραπομπή στο sitemap. Αν τοποθετήσετε εσείς ένα αρχείο
robots.txtστον φάκελο web, αυτό έχει προτεραιότητα. - Ένα δικό σας site σε πακέτο hosting: τοποθετείτε το
robots.txtστον φάκελο web (στο DirectAdminpublic_html) μέσω του File Manager ή μέσω FTP.
Σε άλλους παρόχους λειτουργεί παρόμοια: το αρχείο πρέπει πάντα να είναι προσβάσιμο στο /robots.txt του host σας.
Σύνοψη
- Το robots.txt βρίσκεται στο
/robots.txtκάθε host και λέει στους ευγενικούς crawlers τι δεν επιτρέπεται να επισκεφθούν. - Ένας crawler ακολουθεί μία ομάδα (το πιο συγκεκριμένο όνομα, αλλιώς
*). Μέσα στην ομάδα κερδίζει ο μεγαλύτερος κανόνας· σε ίσο μήκος κερδίζει τοAllow. - Το 404 σημαίνει «όλα επιτρέπονται», ένα σφάλμα server κάνει την Google να σταματήσει προσωρινά το crawling. Η Google διαβάζει 500 KiB και κρατά cache έως 24 ώρες.
- Το robots.txt δεν είναι ούτε μέτρο προστασίας ούτε noindex. Μην αποκλείετε μια σελίδα με
noindexστο robots.txt. - Τους crawlers AI όπως το
GPTBotκαι το όνομαGoogle-Extendedμπορείτε να τους ρυθμίσετε χωριστά, χωρίς συνέπειες για την Αναζήτηση Google.
Κουίζ
Άσκηση
Άσκηση A3.3: Έλεγχος του robots.txt σας. Συμπληρώστε το domain σας και επιπλέον τρεις διευθύνσεις του δικού σας site (για παράδειγμα την αρχική σελίδα, μια σελίδα προϊόντος και το καλάθι ή τη σελίδα αναζήτησης) με την εκτίμησή σας για κάθε διεύθυνση: επιτρέπεται στο Googlebot να κάνει crawl, ναι ή όχι; Το πρόγραμμα ανακτά το robots.txt σας, ελέγχει τον κωδικό κατάστασης, το μέγεθος, τις ομάδες και τη γραμμή Sitemap:, και υπολογίζει για κάθε διεύθυνση τι επιτρέπεται στο Googlebot σύμφωνα με τους κανόνες αυτού του μαθήματος. Επιβεβαιώνεται η εκτίμησή σας; Δεν έχετε δικό σας site; Χρησιμοποιήστε το www.wikipedia.org.
Περαιτέρω ανάγνωση
Τα βήματα σε αυτά τα άρθρα αφορούν τα πάνελ του WebOké· σε άλλους παρόχους λειτουργεί παρόμοια.
- Εγχειρίδιο DirectAdmin 11.1: Άνοιγμα της Διαχείρισης αρχείων: οι φάκελοι στο πακέτο σας
- Αποκλεισμός αρχείων μέσω .htaccess, π.χ. plugin-googlemap2-proxy.php
- Εγχειρίδιο DirectAdmin 11.4: Εμφάνιση και επεξεργασία κρυφών αρχείων όπως το .htaccess
- Google Search Central, Πώς ερμηνεύει η Google το robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Εισαγωγή στο robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, Επισκόπηση των crawlers (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Επισκόπηση των crawlers (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
