Ενότητα 1 · 1.2
Crawling: πώς μια μηχανή αναζήτησης βρίσκει το site σας
Ενότητα 1: Πώς λειτουργούν οι μηχανές αναζήτησης · Χρόνος ανάγνωσης: 11 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να περιγράψετε πώς ένας crawler ανακαλύπτει νέες σελίδες, ποιους κωδικούς κατάστασης συναντά και τι σημαίνουν, καθώς και τι εμποδίζει έναν crawler.
Βασικές έννοιες: crawler (Googlebot, Bingbot), ακολούθηση συνδέσμων, sitemap, κωδικός κατάστασης HTTP (200, 301, 302, 404, 410, 429, 5xx), ανακατεύθυνση, crawl budget, JavaScript και rendering, ορφανή σελίδα, robots.txt
Τι είναι ένας crawler
Ένας crawler (λέγεται επίσης spider ή bot) είναι ένα πρόγραμμα που ανακτά ιστοσελίδες, όπως κάνει και ο browser σας, αλλά αυτόματα και σε τεράστια κλίμακα. Η Google έχει το Googlebot, η Bing έχει το Bingbot. Ζητούν μια διεύθυνση, λαμβάνουν πίσω την HTML, διαβάζουν ποιοι σύνδεσμοι υπάρχουν σε αυτήν και προσθέτουν αυτές τις νέες διευθύνσεις στη λίστα τους για να τις ανακτήσουν αργότερα.
Η Google αναφέρει ότι το Googlebot επισκέπτεται ένα site κατά μέσο όρο όχι συχνότερα από μία φορά ανά λίγα δευτερόλεπτα και ότι τα περισσότερα αιτήματα προέρχονται από την έκδοση smartphone του Googlebot. Η Google δηλαδή βλέπει το site σας κυρίως όπως το βλέπει ένα κινητό τηλέφωνο. Σε αυτό επανερχόμαστε στο μάθημα 4.2.
Ένας crawler μπορεί επίσης να προσποιείται ότι είναι το Googlebot: το όνομα (το user-agent) αντιγράφεται εύκολα. Η Google συνιστά να ελέγχετε μια ύποπτη επίσκεψη με αντίστροφη αναζήτηση DNS της διεύθυνσης IP. Αυτό είναι χρήσιμο όταν βλέπετε στο αρχείο καταγραφής του server σας ένα «Googlebot» που κάνει παράξενα πράγματα.
Πώς ένας crawler βρίσκει νέες σελίδες
Η Google αναφέρει τρεις τρόπους:
- Επανεπίσκεψη σελίδων που ήδη γνωρίζει. Εκεί εντοπίζει αλλαγές και νέους συνδέσμους.
- Ακολούθηση συνδέσμων. Ένας σύνδεσμος από μια σελίδα που η Google ήδη γνωρίζει προς μια νέα σελίδα είναι ο σημαντικότερος τρόπος για να βρεθεί μια σελίδα. Αυτό ισχύει για συνδέσμους μέσα στο δικό σας site (το μενού σας, έναν σύνδεσμο μέσα σε ένα κείμενο) και για συνδέσμους από άλλα sites.
- Μια λίστα που παρέχετε εσείς: το sitemap. Ένα sitemap είναι ένα αρχείο με τις διευθύνσεις των σελίδων σας. Το υποβάλλετε στο Search Console ή το αναφέρετε στο robots.txt (μάθημα 3.4). Σύμφωνα με την Google, ένα sitemap δεν είναι υποχρεωτικό, αλλά είναι χρήσιμο, ιδίως για νέα sites με λίγους ακόμη συνδέσμους, για μεγάλα sites και για σελίδες που βρίσκονται βαθιά μέσα στο site.
Οι σύνδεσμοι πρέπει να είναι πραγματικοί σύνδεσμοι
Η Google μπορεί να ακολουθήσει έναν σύνδεσμο μόνο αν πρόκειται για ένα κανονικό στοιχείο <a> με href:
<a href="/bruidsboeketten">Bruidsboeketten</a> <!-- σωστό -->
<span onclick="ga('/bruidsboeketten')">Bruidsboeketten</span> <!-- δεν είναι σύνδεσμος για το Google -->Ένα κουμπί που μεταβαίνει σε άλλη σελίδα μόνο μέσω JavaScript δεν είναι σύνδεσμος για έναν crawler. Μια σελίδα στην οποία δεν οδηγεί κανένας σύνδεσμος ονομάζεται ορφανή σελίδα (orphan page). Έναν τέτοια σελίδα ο crawler τη βρίσκει μόνο μέσω του sitemap, και δύσκολα τη βρίσκουν και οι επισκέπτες. Μια νέα σελίδα πρέπει επομένως πάντα να συνδέεται από κάποιο σημείο του μενού σας ή από ένα κείμενο.
JavaScript: πρώτα ανάκτηση, αργότερα εκτέλεση
Πολλά σύγχρονα sites δημιουργούν τη σελίδα με JavaScript μέσα στον browser. Η Google μπορεί να το διαχειριστεί: εκτελεί JavaScript με μια πρόσφατη έκδοση του Chromium, της βάσης του browser Chrome. Αυτό λέγεται rendering. Η Google το περιγράφει ως τρεις φάσεις για τέτοιες σελίδες: crawling, rendering και ευρετηρίαση. Οι σελίδες με κατάσταση 200 μπαίνουν σε ουρά αναμονής για rendering.
Δύο συνέπειες:
- Ό,τι εμφανίζεται στη σελίδα μόνο μετά την εκτέλεση JavaScript, η Google το βλέπει αργότερα από ό,τι υπάρχει απευθείας στην HTML.
- Δεν εκτελεί κάθε crawler JavaScript. Αυτό το λέει και η ίδια η Google. Κείμενο, τίτλοι και σύνδεσμοι που βρίσκονται απευθείας στην HTML είναι επομένως η ασφαλέστερη επιλογή για όλες τις μηχανές αναζήτησης. Η Google χαρακτηρίζει την HTML που δημιουργείται στον server «ακόμη καλή ιδέα».
Οι αυτόματοι έλεγχοι σε αυτό το μάθημα διαβάζουν την HTML όπως τη στέλνει ο server, χωρίς JavaScript. Αυτό που βλέπετε εσείς στον browser σας μπορεί να διαφέρει.
Κωδικοί κατάστασης: τι απαντά ο server
Με κάθε σελίδα ο server στέλνει και έναν κωδικό κατάστασης. Δεν τον βλέπετε στην οθόνη, αλλά ένας crawler τον διαβάζει πρώτο απ' όλα:
| Κωδικός | Σημασία | Τι κάνει η Google με αυτόν |
|---|---|---|
| 200 | OK, ορίστε η σελίδα | Το περιεχόμενο προχωρά στην ευρετηρίαση (η καταχώριση δεν είναι εγγυημένη) |
| 301 / 308 | Μόνιμη μεταφορά σε άλλη διεύθυνση | Ισχυρό σήμα ότι η νέα διεύθυνση είναι η σωστή |
| 302 / 307 | Προσωρινά κάπου αλλού | Ασθενές σήμα· η παλιά διεύθυνση συχνά παραμένει η κύρια διεύθυνση |
| 404 / 410 | Δεν υπάρχει (πλέον) | Μια διεύθυνση που είχε καταχωριστεί αφαιρείται από το ευρετήριο· η Google την επισκέπτεται όλο και λιγότερο συχνά |
| 429 | Πάρα πολλά αιτήματα | Η Google κάνει προσωρινά crawling πιο αργά |
| 5xx | Σφάλμα στον server | Η Google κάνει προσωρινά crawling πιο αργά· αν μια διεύθυνση δίνει συνεχώς σφάλμα server, τελικά αφαιρείται από το ευρετήριο |
Προσοχή στο soft 404: μια σελίδα που εμφανίζει «δεν βρέθηκε» αλλά επιστρέφει κατάσταση 200. Για τον crawler μοιάζει με πραγματική σελίδα, για τον επισκέπτη όχι. Το Search Console αναφέρει τέτοιες σελίδες ξεχωριστά. Μια σελίδα που διαγράφηκε πρέπει επομένως να επιστρέφει πραγματικό 404 ή 410, ή να ανακατευθύνεται με 301 σε μια σελίδα που την αντικαθιστά.
Μια αλυσίδα ανακατευθύνσεων (από http σε https, σε www, στη νέα σελίδα) η Google την ακολουθεί, έως περίπου δέκα βήματα, αλλά κάθε βήμα κοστίζει χρόνο. Το μάθημα 4.1 δείχνει πώς να το κάνετε σε ένα μόνο βήμα.
Τι εμποδίζει έναν crawler
Η Google αναφέρει ως αιτίες για τις οποίες μια σελίδα δεν γίνεται crawl: προβλήματα με τον server, προβλήματα δικτύου και κανόνες στο robots.txt που απαγορεύουν την πρόσβαση στο Googlebot. Στην πράξη συναντάτε επιπλέον:
- ένα site που βρίσκεται ακόμη σε «λειτουργία συντήρησης» ή προστατεύεται με κωδικό πρόσβασης·
- στο WordPress την επιλογή «Discourage search engines from indexing this site» (αποθάρρυνση των μηχανών αναζήτησης), η οποία προσθέτει noindex (αυτό αφορά το βήμα 2, αλλά το αποτέλεσμα είναι το ίδιο: η σελίδα δεν βρίσκεται)·
- ένα σύστημα ασφαλείας ή firewall που απορρίπτει άγνωστα bots με 403 ή 429·
- ένα site στο οποίο η πλοήγηση γίνεται μόνο μέσω κουμπιών JavaScript.
Το robots.txt έχει δικό του μάθημα (3.3). Για την ώρα αρκεί να ξέρετε: είναι ένα αρχείο κειμένου στη διεύθυνση https://www.example.com/robots.txt που ορίζει ποια τμήματα του site σας δεν επιτρέπεται να ανακτήσει ένας crawler.
Crawl budget: για τα περισσότερα sites δεν υπάρχει λόγος ανησυχίας
Στο διαδίκτυο διαβάζετε πολλά για το crawl budget: πόσες σελίδες θέλει και μπορεί να ανακτήσει η Google από το site σας. Η Google αναφέρει ότι ο σχετικός οδηγός απευθύνεται σε μεγάλα sites, με χονδρική εκτίμηση πάνω από ένα εκατομμύριο σελίδες ή πάνω από δέκα χιλιάδες σελίδες που αλλάζουν καθημερινά. Αν οι νέες σελίδες σας ανακτώνται ήδη την ημέρα της δημοσίευσης, δεν χρειάζεται να ασχοληθείτε με αυτό. Για ένα site σαν αυτό του Bloemenatelier Lotte με τριάντα σελίδες, δεν είναι θέμα. Ένα ενημερωμένο sitemap και μια ματιά πού και πού στην αναφορά ευρετηρίασης (Page indexing) αρκούν.
Στην πράξη: το αρχείο καταγραφής του server σας
Στο DirectAdmin και σε παρόμοιους πίνακες ελέγχου μπορείτε να δείτε το αρχείο καταγραφής πρόσβασης (access log) του site σας. Αναζητήστε «Googlebot» ή «bingbot» και θα δείτε ποιες σελίδες ζήτησαν και ποιον κωδικό κατάστασης έλαβαν. Αν βλέπετε εκεί πολλά 404 ή σφάλματα 5xx, ξέρετε από πού να ξεκινήσετε. Σε άλλους παρόχους θα βρείτε συνήθως τα αρχεία καταγραφής με παρόμοιο όνομα στον πίνακα ελέγχου πελάτη.
Σύνοψη
- Ένας crawler ανακτά σελίδες και βρίσκει νέες διευθύνσεις μέσω συνδέσμων και μέσω του sitemap σας.
- Ακολουθούνται μόνο πραγματικοί σύνδεσμοι
<a href>· μια σελίδα χωρίς συνδέσμους προς αυτήν είναι ορφανή. - Η Google εκτελεί JavaScript, αλλά αργότερα· άλλοι crawlers συχνά όχι. Το σημαντικό περιεχόμενο ανήκει στην HTML.
- Ο κωδικός κατάστασης καθορίζει τι κάνει ένας crawler: 200 επεξεργασία, 301 μεταφορά, 404/410 αφαίρεση, 5xx και 429 πιο αργό crawling.
- Το crawl budget έχει σημασία μόνο για πολύ μεγάλα ή πολύ γρήγορα μεταβαλλόμενα sites.
Κουίζ
Άσκηση
Άσκηση A1.2: Τι βλέπει ένας crawler στην αρχική σας σελίδα; Συμπληρώστε τη διεύθυνση του site σας (ή www.wikipedia.org αν δεν έχετε δικό σας site). Στη συνέχεια συμπληρώστε τι αναμένετε: τον κωδικό κατάστασης της τελικής σελίδας, τη διεύθυνση στην οποία καταλήγετε μετά τις ανακατευθύνσεις και αν υπάρχει noindex. Το πρόγραμμα ανακτά την αρχική σελίδα όπως ένας crawler, χωρίς JavaScript, και εμφανίζει την αλυσίδα ανακατευθύνσεων, τον κωδικό κατάστασης, τον αριθμό των πραγματικών συνδέσμων προς το δικό σας site μέσα στην HTML και αν το κείμενο της σελίδας διαβάζεται χωρίς JavaScript.
Περαιτέρω ανάγνωση
Τα βήματα σε αυτά τα άρθρα αφορούν τους πίνακες ελέγχου της WebOké· σε άλλους παρόχους η διαδικασία είναι παρόμοια.
- Εγχειρίδιο DirectAdmin 4.7: Site Redirects: ανακατεύθυνση ενός domain ή μιας σελίδας
- Εγχειρίδιο DirectAdmin 17.2: Site summary & logs: το foutlog και το toegangslog
- Υποχρεωτική ανακατεύθυνση επισκεπτών σε https
- Google, Πώς οι κωδικοί κατάστασης HTTP και τα σφάλματα δικτύου επηρεάζουν την Αναζήτηση Google: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Βασικές αρχές SEO για JavaScript: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Crawl budget για μεγάλα sites: https://developers.google.com/crawling/docs/crawl-budget
