Mit lát a bot az oldaladból, ha nem fut a JavaScript?

Van egy műszaki kérdés, amit magad is ellenőrizhetsz tíz perc alatt: ott van-e az oldalad tartalma abban a HTML-ben, amit a szerver elküld, vagy csak a böngészőben keletkezik? Elolvastam tíz szolgáltató botdokumentációját arról, futtatnak-e JavaScriptet a botjaik. Egyetlen szolgáltató írja le egyértelműen, hogy igen, és ez a Google. Az Apple azt írja, hogy a botja megjelenítheti az oldalt, a Microsoft megjelenítő motort említ, a Common Crawl a CCBotról kimondja, hogy nem futtat, hat szolgáltató botoldala pedig erről nem ír semmit. Megmutatom, mit jelent ez az oldaladnak, hogyan nézheted meg magad, és mit kérj a fejlesztődtől.

Kézzel rajzolt kép: egy robot nagyítót tart egy nagy weboldal elé; a nagyítóban kéken a forráskód jele látszik, a lapon pedig szövegsorok és két képkeret.

Melyik bot futtat JavaScriptet a gyártója szerint?

Tíz szolgáltató nyilvános botdokumentációját néztem meg 2026. november 1-jén: OpenAI, Anthropic, Google, Perplexity, Microsoft Bing, Apple, Common Crawl, Meta, Mistral és Amazon. A kérdés egyszerű volt: kiírja-e a gyártó, hogy a botja futtatja-e a JavaScriptet. Öt csoport jött ki belőle.

A Google az egyetlen, amelyik részletesen leírja. A dokumentáció három szakaszra bontja a folyamatot:

Google processes JavaScript web apps in three main phases:

Ez a három a bejárás, a megjelenítés és az indexelés. A megjelenítésről ezt írják:

Once Google's resources allow, a headless Chromium renders the page and executes the JavaScript.

Magyarul: egy felület nélküli Chromium tölti be az oldalt, és lefuttatja a JavaScriptet. Ez a legerősebb kijelentés, amit a tíz között találtam.

Az Apple óvatosabban fogalmaz az Applebotról, feltételes módban:

Applebot may render the content of your website within a browser. If javascript, CSS, and other resources are blocked via robots.txt, it may not be able to render the content properly.

Vagyis az Applebot megjelenítheti az oldalt egy böngészőben, és ha a robots.txt letiltja a JavaScript- vagy CSS-fájlokat, akkor lehet, hogy nem tudja rendesen megjeleníteni a tartalmat.

A Microsoft két Bing-oldalán, amelyeket elolvastam, egyszer sem szerepel a JavaScript szó. Megjelenítő motort viszont említenek, és a webmestereknek szóló útmutatóban ott van ez a mondat:

Content that cannot be reliably rendered may not be indexed or selected for grounding results.

Tehát ami nem jeleníthető meg megbízhatóan, az a Microsoft szerint lehet, hogy nem kerül be az indexbe, és lehet, hogy nem lesz belőle AI-válasz alapja sem.

A Common Crawl, amely nyílt webes bejárási adattárat tart fenn, a CCBotról kimondja:

Currently, JavaScript is not executed and Cookies are not used.

Ez a négy közül a legvilágosabb nem: a CCBot nem futtat JavaScriptet és nem használ sütiket. Arról, hogy az egyes AI-cégek mit tesznek a Common Crawl adataival, egyetlen általam elolvasott oldal sem ír semmit.

És itt jön az ötödik csoport, ami a legnagyobb. Hat szolgáltató botoldala egyáltalán nem foglalkozik a kérdéssel: az OpenAI, az Anthropic, a Perplexity, a Meta, a Mistral és az Amazon. Mindegyik oldal felsorolja a botjai nevét és azt, hogyan tilthatod le vagy engedheted be őket. A megjelenítésről egyik sem mond semmit.

Egy pontosítás ehhez: ez a botokat bemutató oldalakra igaz. A szolgáltatók teljes súgóját és fejlesztői dokumentációját nem néztem át, úgyhogy nem azt állítom, hogy máshol sincs róla egy mondat.

A hallgatást érdemes pontosan érteni. Nem következik belőle sem az, hogy ezek a botok futtatnak JavaScriptet, sem az, hogy nem futtatnak. Annyi következik belőle, hogy a gyártó a botoldalán nem vállal róla állítást, tehát te sem tervezhetsz rá. Itt pontosítok egy korábbi állításomon: két régebbi bejegyzésemben, az llms.txt és robots.txt alapjait összefoglaló írásban és az Anthropic és az OpenAI botjait bemutató bejegyzésben tényként szerepel, hogy a legtöbb AI-bot nem futtat JavaScriptet. Erre nincs gyártói forrás. A dokumentált állapot az, amit fent olvastál. Ha azokat olvasod, ezt a mondatot vedd hozzá.

Ha a Google futtatja, miért számít ez egyáltalán?

Négy okból, és mind a négy a Google saját dokumentációjából jön.

Az első a sorban állás. A Google nem a bejáráskor futtatja a JavaScriptet, hanem egy külön várólistáról:

The page may stay on this queue for a few seconds, but it can take longer than that.

Hogy mennyivel hosszabb, azt nem írják le, és én sem fogok számot mondani rá. Annyi biztos, hogy a Google csak azt a tartalmat látja, ami a megjelenítés utáni HTML-ben benne van.

A második a letiltott fájl. A Google a letiltott fájlokból és a letiltott oldalakon nem futtatja le a JavaScriptet:

Google Search won't render JavaScript from blocked files or on blocked pages.

Arról az esetről, amikor nem egy fájl, hanem maga a bot van kizárva, külön bejegyzést írtam: így zárod ki saját magadat az AI elől egy elrontott tiltással.

A harmadik a többi bot. Ezt maga a Google írja le, a saját JavaScript-útmutatójában, amikor a kiszolgálóoldali megjelenítést ajánlja:

Keep in mind that server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.

Vagyis a Google saját dokumentációja mondja ki, hogy nem minden bot tud JavaScriptet futtatni. A dinamikus megjelenítésről szóló oldalon ennél óvatosabban fogalmaz:

Other search engines may choose to ignore JavaScript and won't see JavaScript-generated content.

Itt a Google a keresőkről beszél általában, és egyiket sem nevezi meg. Annyi látszik belőle, hogy a saját motorja képességeit nem állítja másokról.

A negyedik a legrosszabb eset: amikor a nyers HTML nem tartalmazza a tartalmat, csak a vázát.

Some JavaScript sites may use the app shell model where the initial HTML does not contain the actual content and Google needs to execute JavaScript before being able to see the actual page content that JavaScript generates.

A Google itt azt írja, hogy az ilyen oldalak kezdő HTML-je nem tartalmazza a tartalmat, és a Google-nek le kell futtatnia a JavaScriptet, hogy egyáltalán lássa. Ha az oldalad így épül fel, akkor a JavaScriptet nem futtató látogató csak az üres vázat kapja, a tartalmadból semmit.

Hogyan nézd meg magad, mi van a HTML-ben?

A legrövidebb út három lépés, és nem kell hozzá semmilyen eszköz:

  1. Nyisd meg a saját oldaladat a böngészőben.
  2. Nyomd meg a Ctrl+U kombinációt. Ez megnyitja a nyers HTML-t, vagyis azt, amit a szerver elküldött.
  3. Nyomd meg a Ctrl+F kombinációt, és keress rá három dologra: a főcímedre, egy árra és a nyitvatartásodra.

Ha mindhárom megvan ebben a szövegben, akkor a tartalmad nem a böngészőben keletkezik. Ha nincs meg, akkor megvan az első javítás.

Ezen túl három módszer van, és mindegyik mást mutat. Érdemes tudni, melyik mit.

Az első a parancssor. A curl parancs ugyanazt a nyers HTML-t adja vissza, mint a Ctrl+U, csak böngésző nélkül. A curl dokumentációja megírja, miért jó ez a teszt:

Many webpages do stuff using embedded JavaScript. curl and libcurl have no built-in support for that, so it is treated like any other contents.

Vagyis a curlnak nincs beépített támogatása a beágyazott JavaScript futtatására, tehát amit visszaad, az a JavaScript nélküli oldalad.

A második a JavaScript kikapcsolása a böngészőben. A Chrome fejlesztői eszközeiben erre külön leírás van. Két korlátja van, amit a dokumentáció is kiír: a kikapcsolás csak addig él, amíg a fejlesztői eszközök nyitva vannak, és érdemes újratöltened az oldalt, hogy lásd, mi függ a JavaScripttől a betöltés közben. Ez a módszer a te böngésződet mutatja, nem egy botot.

A harmadik a Google két eszköze. A JavaScript-hibákról szóló útmutató ezt ajánlja:

To test how Google crawls and renders a URL, use the Rich Results Test or the URL Inspection Tool in Search Console.

Itt viszont figyelj arra, mit mutat pontosan ez a két eszköz. A Google saját tesztelő botjának a nézetét adják, miután a Google megjelenítő motorja lefutott. Nem azt mutatják, amit a ChatGPT, a Claude vagy a Perplexity botja kap. Hogy a többi bothoz van-e nyilvános eszköz, azt nem vizsgáltam.

Végül érdemes ránézni a hivatkozásaidra is. A Google szerint a bejárás általában csak az igazi hivatkozásokat követi:

Generally, Google can only crawl your link if it's an <a> HTML element (also known as anchor element) with an href attribute.

A hivatkozás akkor igazi, ha a HTML-ben <a href> elem. Ha a menüd vagy a terméklistád kattintásra, JavaScriptből navigál, akkor a hivatkozásod nem hivatkozás. Ezt a fejlesztőd egy pillanat alatt látja a forrásban.

Hol akadhat el ez webáruháznál és időpontfoglalónál?

Négy helyzetet érdemes végignézni. Az első kettőről a Google kiír valamit, a harmadikról és a negyedikről a megnézett dokumentációk nem.

Az első a „továbbiak betöltése” gomb. Mondjuk a terméklistád első húsz eleme a HTML-ben van, a többi pedig egy kattintás után jön. A Google webáruházaknak szóló oldala ezt írja:

Google's crawlers don't "click" buttons and generally don't trigger JavaScript functions that require user actions to update the current page contents.

Vagyis a Google botjai nem kattintanak a gombokra, és általában nem hívják meg azokat a JavaScript-függvényeket, amelyekhez felhasználói művelet kell.

A második a végtelen görgetés. A mobilindexelés jó gyakorlatairól szóló oldalon ez áll:

Don't lazy-load primary content upon user interaction. Google won't load content that requires user interactions (for example, swiping, clicking, or typing) to load.

Tehát a fő tartalom ne felhasználói műveletre töltődjön be, mert a Google nem tölt be olyan tartalmat, amelyhez görgetés, kattintás vagy beírás kell.

A harmadik az időpontfoglaló, és itt a legfontosabb a pontos fogalmazás. Ha a foglaló külső szolgáltató beágyazott keretében fut, akkor arról, hogy mi történik a keret tartalmával az AI-botok szempontjából, egyetlen általam elolvasott dokumentáció sem ír semmit. Ebből két dolog következik. Nem állítom, hogy nem látszik. Hogy látszik-e, arra nincs kiírt válasz, ezért ne a keret legyen az egyetlen hely, ahol a szolgáltatásaid, az áraid és a nyitvatartásod szerepelnek. Írd ki őket szövegként is magára az oldalra.

A negyedik a webáruház belső keresője. A Google a fent idézett mondat szerint nem tölt be olyan tartalmat, amelyhez beírás kell. Ha a terméklapjaidhoz csak a belső keresőn vagy egy szűrőn át vezet út, akkor érdemes hivatkozásokból álló kategóriastruktúrát is adni hozzájuk.

Mit kérj a fejlesztődtől konkrétan?

Ez az a rész, amit érdemes szó szerint átadni. Öt kérés.

  1. A tartalom legyen benne a nyers HTML-ben. A Google a kiszolgálóoldali megjelenítést (server-side rendering), a statikus megjelenítést (static rendering) és a hidratálást (hydration) ajánlja megoldásként, a dinamikus megjelenítést pedig kerülő útnak nevezi: „Dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines.”
  2. Minden hivatkozás legyen igazi hivatkozás, vagyis <a href> elem. Kattintásra navigáló gomb nem elég.
  3. A fő tartalom ne kattintásra vagy görgetésre töltődjön be. Ez a terméklistákra és a vélemények listájára egyaránt igaz.
  4. A robots.txt ne tiltsa a JavaScript- és CSS-fájlokat. A Google a letiltott fájlokból nem futtat JavaScriptet, az Apple pedig azt írja, hogy ha ezeket a robots.txt letiltja, az Applebot esetleg nem tudja rendesen megjeleníteni a tartalmat.
  5. A szolgáltatások, az árak, a nyitvatartás és az elérhetőség szövegként is legyenek az oldalon, ne csak egy beágyazott foglalóban vagy egy JavaScriptből rajzolt elemben.

Ha nincs fejlesztőd, mert az oldalad weboldalépítőn vagy webáruházplatformon fut, akkor ugyanez egy kérdés a szolgáltatódhoz: benne van-e az oldal tartalma abban a HTML-ben, amit a szerver elküld? Az átvételi teszt pedig ugyanaz a Ctrl+U és Ctrl+F, amit fent leírtam.

Mit nem tudok megmondani?

Hármat érdemes kimondani, mert ezek a hiányok ugyanúgy számítanak a döntésnél, mint amit tudok.

Nem tudom megmondani, hogy az OpenAI, az Anthropic, a Perplexity, a Meta, a Mistral vagy az Amazon botja futtat-e JavaScriptet. A botjaikat bemutató oldalakat elolvastam, és nem írják le. Aki ennél többet állít, annak ezeken az oldalakon kívül kell forrást mutatnia.

Nem tudom megmutatni, mit kap pontosan egy nem Google-bot a te oldaladról. A Search Console és a Rich Results Test a Google tesztelő botjának a nézetét adja, nem a többit.

És nem tudom megmondani, hogy a te oldaladon ez a hiba egyáltalán fennáll-e. Ezt viszont te meg tudod nézni a nyers HTML-ből, és ha a tartalmad ott megvan, akkor nem függ attól, hogy egy bot futtat-e JavaScriptet. A többi mérésről, arról, hogy mit kérdezz az asszisztensektől és hogyan, külön bejegyzésben írtam. Egy apró pontosítás a botok neveihez: az OpenAI dokumentációja ma négy botot sorol fel, nem hármat, mert bekerült az OAI-AdsBot is.

Mit tegyél ma?

Nyisd meg a saját kezdőlapodat és egy terméklapodat vagy szolgáltatásoldaladat, nyomj Ctrl+U-t, majd Ctrl+F-fel keress rá a főcímre, egy árra és a nyitvatartásra. Ha mindhárom ott van, akkor ebből a szempontból rendben vagy, és mehetsz tovább a következő kérdésre. Ha bármelyik hiányzik, akkor a fenti öt kérés az, amit a fejlesztődnek vagy a szolgáltatódnak át kell adnod.

Gyakori kérdések

Futtatnak-e JavaScriptet az AI-botok?

Tíz szolgáltató botoldala alapján ötféle válasz van. A Google egyértelműen leírja, hogy igen: egy felület nélküli Chromium jeleníti meg az oldalt és futtatja a JavaScriptet. Az Apple feltételes módban ír arról, hogy az Applebot megjelenítheti az oldalt egy böngészőben. A Microsoft megjelenítő motort említ a Bing botjainál, de a JavaScript szó egyik általam elolvasott oldalán sem szerepel. A Common Crawl a CCBotról kimondja, hogy nem futtat JavaScriptet. Az OpenAI, az Anthropic, a Perplexity, a Meta, a Mistral és az Amazon botoldala pedig erről nem ír semmit. Ez a botokat bemutató oldalakra igaz: a szolgáltatók teljes súgóját nem néztem át.

Mit jelent az, hogy hat szolgáltató botoldala nem ír erről semmit?

Azt, hogy a gyártó a botoldalán nem vállal róla állítást, tehát te sem tervezhetsz rá. A hallgatásból nem következik sem az, hogy futtatnak JavaScriptet, sem az, hogy nem futtatnak. Mindkét irányban hibás lenne tényként kezelni. A gyakorlati következtetés ettől nem változik: ha a tartalmad csak JavaScript után keletkezik, akkor hat szolgáltatónál nem tudod, mi történik vele, és ez önmagában elég ok arra, hogy a tartalom a nyers HTML-be kerüljön.

Ha a Google futtatja a JavaScriptet, akkor miért kell ezzel foglalkozni?

Négy okból, mind a négyet a Google dokumentációja írja le. Először: a megjelenítés nem a bejáráskor történik, hanem egy külön várólistáról, és pontos időt a Google nem ad meg. Másodszor: a Google a letiltott fájlokból és a letiltott oldalakon nem futtatja le a JavaScriptet. Harmadszor: a Google maga írja a JavaScript-útmutatójában, hogy nem minden bot tud JavaScriptet futtatni, és egyebek mellett ezért ajánlja a kiszolgálóoldali vagy előre elvégzett megjelenítést. Negyedszer: vannak oldalak, amelyek kezdő HTML-je egyáltalán nem tartalmazza a tartalmat, és ilyenkor a Google-nek is le kell futtatnia a JavaScriptet, hogy lássa.

Hogyan nézem meg magam, mi van az oldalam nyers HTML-jében?

Három lépés. Nyisd meg az oldalt, nyomd meg a Ctrl+U kombinációt, majd Ctrl+F-fel keress rá a főcímedre, egy árra és a nyitvatartásodra. A Ctrl+U azt a HTML-t mutatja, amit a szerver elküldött. Ugyanezt adja vissza a curl is: a dokumentációja szerint a curlnak nincs beépített támogatása a beágyazott JavaScript futtatására. A Chrome fejlesztői eszközeiben ki is kapcsolhatod a JavaScriptet, de az a te böngésződet mutatja, nem egy botot. A Google nézetét a Search Console URL-ellenőrző eszköze és a Rich Results Test mutatja.

Megmutatja valamelyik eszköz, mit lát a ChatGPT vagy a Claude az oldalamból?

A Search Console URL-ellenőrző eszköze és a Rich Results Test a Google saját tesztelő botjának a nézetét adja, a Google megjelenítő motorjának lefutása után. A ChatGPT vagy a Claude botjáét nem mutatják, és hogy van-e erre nyilvános eszköz, azt nem vizsgáltam. Amit biztosan meg tudsz nézni, az a nyers HTML, vagyis a JavaScript nélküli oldalad. Ha a tartalmad ott megvan, akkor nem függ attól, hogy egy bot futtat-e JavaScriptet.

Látszik-e a beágyazott időpontfoglalóm tartalma?

Erről nincs kiírt válasz. Egyetlen általam elolvasott szolgáltatói dokumentáció sem foglalkozik azzal, mi történik egy beágyazott keret tartalmával az AI-botok szempontjából. Hogy látszik-e, az ezekből a dokumentációkból nem tudható. Ezért ne a foglaló legyen az egyetlen hely, ahol a szolgáltatásaid, az áraid és a nyitvatartásod szerepelnek: írd ki őket szövegként is magára az oldalra.

Mi a legfontosabb kérés, amit a fejlesztőmnek átadhatok?

Hogy a tartalom a kiszolgálóról érkező HTML-ben legyen benne, ne a böngészőben keletkezzen. A Google a kiszolgálóoldali megjelenítést, a statikus megjelenítést és a hidratálást ajánlja megoldásként, a dinamikus megjelenítést pedig kerülő útnak nevezi. Emellé négy ellenőrizhető tétel tartozik: minden hivatkozás igazi <a href> elem legyen, a fő tartalom ne kattintásra vagy görgetésre töltődjön, a robots.txt ne tiltsa a JavaScript- és CSS-fájlokat, és a szolgáltatások, árak, nyitvatartás szövegként is szerepeljenek. Ha weboldalépítőn vagy webáruházplatformon vagy, ugyanez egy kérdés a szolgáltatódhoz.

Források