Olvashatják az AI-crawlerek a JavaScripttel megjelenített tartalmat?
Gyakran nem. A Googlebot egy későbbi lépésben rendereli a JavaScriptet, de a legtöbb AI-crawler nem dokumentálja, hogy ezt tenné, és maga a Google is megjegyzi, hogy nem minden bot tud JavaScriptet futtatni. Ha a szövege csak a szkriptek lefutása után jelenik meg, az AI-crawler üres oldalt kaphat. A fő tartalmat a kezdeti HTML-ben szolgálja ki szerveroldali rendereléssel vagy statikus oldalakkal.
Az egyoldalas alkalmazások és a kliensoldali keretrendszerek mindenütt jelen vannak, és böngészőben jól néznek ki. Az a crawler, amely csak a szerver által küldött HTML-t olvassa, mást lát: egy <div id="root"></div> elemet, néhány szkriptcímkét, és kevés szöveget vagy semmit. Az AI-válaszoknak ezen az oldalon nincs mit idézniük.
Ezen az oldalon
- Miért nem látják az AI-crawlerek a JavaScript-tartalmat?
- Hogyan ellenőrizhetem, mit kap a crawler?
- Melyik oldalak vannak a legnagyobb veszélyben?
- Hogyan javítsam a csak JavaScriptben létező tartalmat?
- A bejelentkezési, hozzájárulási és fizetőfal-képernyők az AI-crawlereket is blokkolják?
- Hogyan ismeri fel az AISeeWhy a csak JavaScriptes oldalakat?
Miért nem látják az AI-crawlerek a JavaScript-tartalmat?
A JavaScript futtatása drága. A crawlernek le kell töltenie a szkripteket, böngészőmotorban végre kell hajtania őket, és meg kell várnia az adatok betöltését. A Google ezt megteszi a Keresésnél: bejárja az oldalakat, sorba állítja őket rendereléshez, és headless Chromiummal rendereli őket, amikor az erőforrások engedik. Ennek ellenére a Google a szerveroldali renderelést vagy prerenderelést ajánlja, mert gyorsabb a felhasználóknak és a crawlereknek, és megjegyzi, hogy nem minden bot tud JavaScriptet futtatni.
Az OpenAI, az Anthropic és a Perplexity a crawlerdokumentációjában nem állítja, hogy az ügynökei JavaScriptet futtatnak. Az Apple szerint az Applebot böngészőben renderelhet oldalakat. Világos állítás nélkül az AI-crawlereknél a biztonságos feltételezés az, hogy csak a kezdeti HTML-t olvassák.
Hogyan ellenőrizhetem, mit kap a crawler?
A nyers HTML-t nézze, ne a renderelt oldalt. A böngésző fejlesztői eszközei a szkriptek lefutása utáni DOM-ot mutatják, ami nem az, amit a crawler kap. Használja a forrásmegtekintést, vagy mentse el a nyers HTML-t a parancssorból, és keressen benne:
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
A 0 eredmény azt jelenti, hogy a mondat nincs benne a szerver által küldött HTML-ben, így a szkripteket nem futtató crawlerek nem találják meg. A fájl gyors átnézése megmutatja a többit: egy szerveren renderelt cikk teljes szövege ott van; a kliensoldali váz üres gyökérelemet és szkriptek listáját tartalmazza.
Melyik oldalak vannak a legnagyobb veszélyben?
- React, Vue, Angular vagy Svelte alapú egyoldalas alkalmazások, amelyek mindent a böngészőben renderelnek.
- Olyan oldalak, amelyek a fő szövegüket betöltés után egy API-ból kérik le, például termékadatok, árak vagy vélemények.
- Lapok, harmonikák vagy „továbbiak betöltése” szakaszok tartalma, amelyet csak kattintásra kérnek le.
- Bejelentkezés, fizetőfal vagy hozzájárulási fal mögötti oldalak, amelyeken a crawler nem jut át.
- Olyan oldalak, amelyek a
noindex-et vagy a kanonikus URL-t csak JavaScripten keresztül állítják be. A Google figyelmeztet, hogy ha az eredeti HTML-bennoindex-et lát, teljesen kihagyhatja a renderelést.
Hogyan javítsam a csak JavaScriptben létező tartalmat?
A megoldás az, hogy a fontos tartalmat az első válaszban küldje el. Válassza a technológiai környezete által engedett legkönnyebb lehetőséget:
- Szerveroldali renderelés (SSR): az olyan keretrendszerek, mint a Next.js, a Nuxt, a SvelteKit és az Angular SSR a szerveren renderelik az oldalt, és a böngészőben hidratálják.
- Statikus generálás vagy prerenderelés: telepítéskor építse fel a HTML-t azoknak az oldalaknak, amelyek ritkán változnak, például cikkeknek, dokumentációnak és landing oldalaknak.
- Fokozatos fejlesztés: a szöveget, címsorokat, linkeket, árakat és a JSON-LD-t tegye a HTML-be, a JavaScriptet pedig csak az interakcióhoz használja.
- A lényeget ágyazza be: ha a lapok elrejtenek tartalmat, tegye az egészet a HTML-be, és a láthatóságot CSS-sel vagy szkripttel kapcsolja, ahelyett, hogy kattintásra kérné le.
Nem kell egyszerre átalakítania egy egész alkalmazást. Kezdje azokkal az oldalakkal, amelyeket idézni szeretnének: cikkek, dokumentáció, termék- és árazási oldalak. A fiókterületek és irányítópultok maradhatnak kliensoldalon, mert amúgy is bejelentkezés mögött vannak.
Kerülje, hogy a crawlereknek a user agentjük alapján más oldalt szolgáljon ki, mint a felhasználóknak. Ugyanazt a HTML-t renderelni mindenkinek egyszerűbb karbantartani, és kizár minden kétséget a cloakinggal kapcsolatban.
A bejelentkezési, hozzájárulási és fizetőfal-képernyők az AI-crawlereket is blokkolják?
Igen. A crawler nem jelentkezik be, nem kattint a sütibannerre, és nem old meg kihívásokat. Az Anthropic kijelenti, hogy a botjai nem próbálják megkerülni a CAPTCHA-kat. Ha egy hozzájárulás-kezelő a HTML-ben teljes képernyős réteggel helyettesíti az oldalt, vagy az első alkalommal érkező látogatókat egy hozzájárulási oldalra irányítja át, a crawler ezt kapja a tartalma helyett.
Gondoskodjon róla, hogy a nyilvános oldalak a hozzájárulás állapotától függetlenül a HTML-ben jelenítsék meg a tartalmukat, a bannerrel rétegként, nem helyettesítésként. Az idézni kívánt oldalakat tartsa a bejelentkezési falakon kívül, és ellenőrizze, hogy a crawlert nem irányítják át belépési oldalra.
Hogyan ismeri fel az AISeeWhy a csak JavaScriptes oldalakat?
Az AISeeWhy a kezdeti HTML-t olvassa úgy, ahogy az egyes crawlerek kapják, szkriptek futtatása nélkül. Ha egy oldalon alig van látható szöveg, de van keretrendszer-gyökérelem és szkriptek, P1-es találatként jelzi, hogy a tartalomhoz JavaScript kell. Jelzi azokat az átirányításokat is, amelyek a crawlereket máshová viszik, mint ahová a böngésző jut.
Gyakran ismételt kérdések
Rendereli a Googlebot a JavaScriptet?
Igen. A Google bejárja a HTML-t, sorba állítja az oldalakat rendereléshez, és headless Chromiummal rendereli őket, amikor az erőforrások engedik. A Google ennek ellenére a szerveroldali renderelést vagy prerenderelést ajánlja.
Futtatnak JavaScriptet a ChatGPT, a Claude és a Perplexity crawlerei?
A szolgáltatóik crawlerdokumentációja nem mondja ki. Amíg egy szolgáltató mást nem állít, tegye fel, hogy a crawler a kezdeti HTML-t olvassa, és gondoskodjon arról, hogy a tartalma benne legyen.
Jó ötlet a dinamikus renderelés botoknak?
Átmeneti megoldásként működik, de egy második renderelési útvonalat ad a karbantartandókhoz. A szerveroldali renderelés vagy a statikus HTML ugyanazt a tartalmat szolgálja ki mindenkinek, és hosszú távon az egyszerűbb javítás.
Számít a JavaScripttel hozzáadott JSON-LD?
A Google a renderelés után el tudja olvasni, de a szkripteket nem futtató crawlerek nem látják. A JSON-LD-t tegye a kezdeti HTML-be.
Források
- 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