Μπορούν οι AI crawlers να διαβάσουν περιεχόμενο που αποδίδεται από JavaScript;
Συχνά όχι. Ο Googlebot αποδίδει JavaScript σε μεταγενέστερο βήμα, αλλά οι περισσότεροι AI crawlers δεν τεκμηριώνουν ότι το κάνουν και η ίδια η Google σημειώνει ότι δεν μπορούν όλα τα bots να εκτελέσουν JavaScript. Αν το κείμενό σας εμφανίζεται μόνο αφού τρέξουν τα scripts, ένας AI crawler μπορεί να λάβει κενή σελίδα. Σερβίρετε το κύριο περιεχόμενο στο αρχικό HTML με server-side rendering ή στατικές σελίδες.
Οι εφαρμογές μιας σελίδας και τα frameworks πλευράς client είναι παντού και σε έναν browser φαίνονται μια χαρά. Ένας crawler που διαβάζει μόνο το HTML που στέλνει ο server σας βλέπει κάτι άλλο: ένα <div id="root"></div>, μερικά tags script και λίγο ή καθόλου κείμενο. Για τις απαντήσεις AI, αυτή η σελίδα δεν έχει τίποτα να παραθέσει.
Σε αυτή τη σελίδα
- Γιατί οι AI crawlers χάνουν το περιεχόμενο JavaScript;
- Πώς ελέγχω τι λαμβάνει ένας crawler;
- Ποιες σελίδες κινδυνεύουν περισσότερο;
- Πώς διορθώνω το περιεχόμενο που υπάρχει μόνο σε JavaScript;
- Μπλοκάρουν και οι οθόνες σύνδεσης, συναίνεσης και paywall τους AI crawlers;
- Πώς εντοπίζει το AISeeWhy σελίδες που βασίζονται μόνο σε JavaScript;
Γιατί οι AI crawlers χάνουν το περιεχόμενο JavaScript;
Η εκτέλεση JavaScript είναι δαπανηρή. Ένας crawler πρέπει να κατεβάσει τα scripts, να τα εκτελέσει σε μια μηχανή browser και να περιμένει να φορτωθούν δεδομένα. Η Google το κάνει αυτό για την Αναζήτηση: σαρώνει, βάζει τις σελίδες σε ουρά απόδοσης και τις αποδίδει με headless Chromium όταν το επιτρέπουν οι πόροι. Ακόμη και έτσι, η Google συνιστά server-side rendering ή prerendering επειδή είναι ταχύτερο για χρήστες και crawlers, και σημειώνει ότι δεν μπορούν όλα τα bots να εκτελέσουν JavaScript.
Η OpenAI, η Anthropic και η Perplexity δεν δηλώνουν στην τεκμηρίωση των crawlers τους ότι οι agents τους εκτελούν JavaScript. Η Apple λέει ότι ο Applebot μπορεί να αποδίδει σελίδες σε browser. Χωρίς σαφή δήλωση, η ασφαλής παραδοχή για τους AI crawlers είναι ότι διαβάζουν μόνο το αρχικό HTML.
Πώς ελέγχω τι λαμβάνει ένας crawler;
Δείτε το ακατέργαστο HTML, όχι την αποδοθείσα σελίδα. Τα εργαλεία προγραμματιστή του browser δείχνουν το DOM αφού έτρεξαν τα scripts, που δεν είναι αυτό που παίρνει ένας crawler. Χρησιμοποιήστε το view-source ή αποθηκεύστε το ακατέργαστο HTML από τη γραμμή εντολών και αναζητήστε σε αυτό:
curl -s -o page.html \
-A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
https://example.com/page
# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html
Αποτέλεσμα 0 σημαίνει ότι η πρόταση δεν υπάρχει στο HTML που έστειλε ο server, άρα οι crawlers που δεν εκτελούν scripts δεν θα τη βρουν. Μια γρήγορη ματιά στο αρχείο δείχνει τα υπόλοιπα: ένα άρθρο που αποδίδεται από τον server έχει εκεί ολόκληρο το κείμενό του· ένα κέλυφος πλευράς client έχει κενό στοιχείο root και μια λίστα από scripts.
Ποιες σελίδες κινδυνεύουν περισσότερο;
- Εφαρμογές μιας σελίδας φτιαγμένες με React, Vue, Angular ή Svelte που αποδίδουν τα πάντα στον browser.
- Σελίδες που ανακτούν το κύριο κείμενό τους από ένα API μετά τη φόρτωση, όπως λεπτομέρειες προϊόντων, τιμές ή κριτικές.
- Περιεχόμενο μέσα σε καρτέλες, ακορντεόν ή ενότητες «φόρτωση περισσότερων» που ζητείται μόνο με κλικ.
- Σελίδες πίσω από σύνδεση, paywall ή οθόνη συναίνεσης που ο crawler δεν μπορεί να περάσει.
- Σελίδες που ορίζουν
noindexή το canonical URL μόνο μέσω JavaScript. Η Google προειδοποιεί ότι όταν βλέπειnoindexστο αρχικό HTML μπορεί να παραλείψει εντελώς την απόδοση.
Πώς διορθώνω το περιεχόμενο που υπάρχει μόνο σε JavaScript;
Η λύση είναι να στέλνετε το σημαντικό περιεχόμενο στην πρώτη απάντηση. Διαλέξτε την ελαφρύτερη επιλογή που επιτρέπει η στοίβα σας:
- Server-side rendering (SSR): frameworks όπως τα Next.js, Nuxt, SvelteKit και Angular SSR αποδίδουν τη σελίδα στον server και την ενεργοποιούν στον browser.
- Στατική παραγωγή ή prerendering: δημιουργήστε το HTML κατά το deploy για σελίδες που αλλάζουν σπάνια, όπως άρθρα, τεκμηρίωση και landing pages.
- Προοδευτική βελτίωση: βάλτε το κείμενο, τις επικεφαλίδες, τους συνδέσμους, τις τιμές και το JSON-LD στο HTML και χρησιμοποιήστε JavaScript μόνο για την αλληλεπίδραση.
- Ενσωματώστε ό,τι μετράει: αν οι καρτέλες κρύβουν περιεχόμενο, βάλτε το όλο στο HTML και εναλλάξτε την ορατότητα με CSS ή script, αντί να το ανακτάτε με κλικ.
Δεν χρειάζεται να μετατρέψετε μια ολόκληρη εφαρμογή ταυτόχρονα. Ξεκινήστε από τις σελίδες που θέλετε να παρατίθενται: άρθρα, τεκμηρίωση, σελίδες προϊόντων και τιμολόγησης. Οι περιοχές λογαριασμού και τα dashboards μπορούν να μείνουν στον client, αφού είναι ούτως ή άλλως πίσω από σύνδεση.
Αποφύγετε να σερβίρετε στους crawlers διαφορετική σελίδα από ό,τι στους χρήστες με βάση το user agent. Η απόδοση του ίδιου HTML για όλους συντηρείται ευκολότερα και αποφεύγει κάθε αμφιβολία για cloaking.
Μπλοκάρουν και οι οθόνες σύνδεσης, συναίνεσης και paywall τους AI crawlers;
Ναι. Ένας crawler δεν συνδέεται, δεν πατά σε banner cookies και δεν λύνει προκλήσεις. Η Anthropic δηλώνει ότι τα bots της δεν θα προσπαθήσουν να παρακάμψουν CAPTCHAs. Αν ένας διαχειριστής συναίνεσης αντικαθιστά τη σελίδα με επικάλυψη πλήρους οθόνης στο HTML, ή ανακατευθύνει τους νέους επισκέπτες σε σελίδα συναίνεσης, ο crawler λαμβάνει αυτό αντί για το περιεχόμενό σας.
Φροντίστε οι δημόσιες σελίδες να αποδίδουν το περιεχόμενό τους στο HTML ανεξάρτητα από την κατάσταση συναίνεσης, με το banner ως επικάλυψη και όχι ως αντικατάσταση. Κρατήστε τις σελίδες που θέλετε να παρατίθενται έξω από τοίχους σύνδεσης και ελέγξτε ότι ο crawler δεν ανακατευθύνεται σε σελίδα εισόδου.
Πώς εντοπίζει το AISeeWhy σελίδες που βασίζονται μόνο σε JavaScript;
Το AISeeWhy διαβάζει το αρχικό HTML όπως το λαμβάνει κάθε crawler, χωρίς να εκτελεί scripts. Όταν μια σελίδα έχει σχεδόν καθόλου ορατό κείμενο αλλά στοιχείο root framework και scripts, αναφέρει εύρημα P1 ότι το περιεχόμενο χρειάζεται JavaScript. Επισημαίνει επίσης ανακατευθύνσεις που στέλνουν τους crawlers κάπου αλλού από τη σελίδα που παίρνει ένας browser.
Συχνές ερωτήσεις
Αποδίδει JavaScript ο Googlebot;
Ναι. Η Google σαρώνει το HTML, βάζει τις σελίδες σε ουρά απόδοσης και τις αποδίδει με headless Chromium όταν το επιτρέπουν οι πόροι. Η Google εξακολουθεί να συνιστά server-side rendering ή prerendering.
Εκτελούν JavaScript οι crawlers του ChatGPT, του Claude και της Perplexity;
Η τεκμηρίωση των crawlers των παρόχων τους δεν το λέει. Μέχρι να δηλώσει κάποιος πάροχος το αντίθετο, υποθέστε ότι ο crawler διαβάζει το αρχικό HTML και φροντίστε το περιεχόμενό σας να υπάρχει σε αυτό.
Είναι καλή ιδέα το dynamic rendering για bots;
Λειτουργεί ως προσωρινή λύση, αλλά προσθέτει δεύτερη διαδρομή απόδοσης προς συντήρηση. Το server-side rendering ή το στατικό HTML σερβίρει το ίδιο περιεχόμενο σε όλους και είναι η απλούστερη μακροπρόθεσμη λύση.
Μετράει το JSON-LD που προστίθεται με JavaScript;
Η Google μπορεί να το διαβάσει μετά την απόδοση, αλλά οι crawlers που δεν εκτελούν scripts δεν θα το δουν. Βάλτε το JSON-LD στο αρχικό HTML.
Πηγές
- Google Search Central: JavaScript SEO basics
- Apple: About Applebot
- OpenAI: Overview of OpenAI crawlers
- Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- Perplexity: Perplexity crawlers