Olvashatják az AI-crawlerek a JavaScripttel megjelenített tartalmat?

Megjelent

Rövid válasz

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
  1. Miért nem látják az AI-crawlerek a JavaScript-tartalmat?
  2. Hogyan ellenőrizhetem, mit kap a crawler?
  3. Melyik oldalak vannak a legnagyobb veszélyben?
  4. Hogyan javítsam a csak JavaScriptben létező tartalmat?
  5. A bejelentkezési, hozzájárulási és fizetőfal-képernyők az AI-crawlereket is blokkolják?
  6. 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?

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:

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

További cikkek