JavaScript linkovi: AI crawleri vide nulu
Eksperiment 41 dan: GPTBot, Claude i Perplexity nisu pratili JS linkove, Googlebot samo 2% stranica. Šta to menja za WooCommerce i React sajtove u Srbiji.
Eksperiment od 41 dan na Search Engine Land-u pokazuje jasnu stvar: GPTBot, ClaudeBot, PerplexityBot i ostali AI crawleri nisu pratili nijedan JavaScript link. Googlebot, onaj koji gradi Search, stigao je do 2% tih stranica. Ako ti meni, kategorije ili internu navigaciju crta JS posle učitavanja, AI te tamo ne vidi.
To nije vest “za Next.js geekove”. U Srbiji je puno WooCommerce shopova sa AJAX filterima, Elementor mega menija i React kataloga za auto delove ili nekretnine. Google i dalje može da renderuje. ChatGPT, Claude i Perplexity u ovom testu nisu.
Šta je tačno mereno u eksperimentu od 41 dan?
Vinicius Stanula (LOCOMOTIVE) je 19. avgusta 2026. objavio kontrolisani test na brazilskom direktorijumu klasifikacija, oko 2.400 stranica. U hijerarhiju od 1.062 stranice (21 sekcija, pa divizije, grupe, klase) ubacio je sloj logovanja svakog bot requesta: user agent, IP, referrer, timestamp. Googlebot i Bingbot IP-ove je proverio reverse DNS-om, da ne broji lažne agente.
21 sekciju je podelio naizmenično:
- HTML grupa (11 sekcija): svaki child link je hard-kodiran u sirovom HTML-u
- JS grupa (10 sekcija): svaki child link, na svakom nivou, injektovan JavaScriptom posle load-a. U HTML-u je ostao prazan div.
Da test ne procuri na druga vrata, ugasio je sve alternativne puteve: sitemap (404), breadcrumbs, interne hijerarhijske panele. Jedini način da bot u JS grupi stigne do divizije bio je da izvrši JS na parent sekciji i prati injektovani link. Sekcije obe grupe bile su linkovane sa indexa u običnom HTML-u, pa sam pogodak na JS sekciju ništa ne dokazuje. Signal kreće jedan nivo dublje.
Ključno:
- 41 dan, 1.062 hijerarhijske stranice, bez sitemapa i breadcrumbs
- HTML vs JS linkovi na istom sajtu, isti sadržaj
- signal = bot koji je ušao dublje od JS sekcije
- mereno je otkrivanje (discovery), ne indeksiranje
Koji crawleri su stvarno pratili JavaScript linkove?
Posle 27 dana (faza 1) skor je bio grubo nagnut na jednu stranu, i to je najkorisniji deo vesti.
GPTBot je prvog dana pokupio svih 759 HTML stranica do nivoa klase. U JS grupi je udario svih 10 sekcija i stao. Nula divizija. ClaudeBot isti obrazac dan kasnije: dubok HTML crawl, zid na JS granici.
Google je jedini radio rendering, ali ne onako kako SEO ljudi pričaju na kafi.
- GoogleOther (prvi JS pogodak za 54 minuta): 66% HTML hijerarhije, 48% JS hijerarhije
- Googlebot (prvi JS pogodak posle 9,9 sati): 5% HTML, 2% JS
- šest od deset JS sekcija Googlebot u 27 dana nije uopšte ušao u hijerarhiju
GoogleOther nije Search. To je drugi crawler u Google stacku. Ako u logovima vidiš “Google” i računaš to kao indeks, lažeš sebi. U ovom testu GoogleOther je crawlovao HTML stranice otprilike 14:1 u odnosu na Googlebot. Stanula to čita kao crawl budget novog domena bez backlinkova, ne kao dokaz da je GoogleOther “temeljniji”. Na starom sajtu bi Googlebot verovatno uzeo veći udeo. Ipak, cifra za Search ostaje 2%.
Ostali:
- GPTBot: 748 HTML, 0 JS
- ClaudeBot: 748 HTML, 0 JS
- Bingbot: 282 HTML, 3 JS (izolovani URL-ovi na dan 26–27, obrazac ne liči na rendering)
- OAI-SearchBot (ChatGPT Search): 10 HTML, 0 JS
- Meta-ExternalAgent: 537 HTML, 0 JS
- Amazonbot: 735 HTML, 0 JS
- ChatGPT-User (kad čovek pita ChatGPT i on ide na sajt): 46 HTML, 0 JS
- PerplexityBot: 0 i 0 u fazi 1 (prva hijerarhijska stranica tek dan 40)
Bingbot je bio aktivan 20 od 27 dana, recrawlovao 10 JS sekcija 18 dana, i nije pratio nijedan injektovani link. Microsoft od 2019. dokumentuje Bingbot na Edge-u koji može da renderuje. Ovde to nije primenio.
ChatGPT-User je ružniji detalj. To nije training bot, nego agent koji vuče stranicu kad neko pita pitanje. Do HTML stranica je dolazio. Do JS-linkovanih nije.
Ključno:
- samo Google stack je izvršavao JS; Googlebot, koji ide u Search, skoro da nije
- GPTBot, Claude, Perplexity, Meta, Amazon: nula JS hijerarhije
- “Google renderuje JS” više nije dovoljan odgovor za AI pretragu
- live ChatGPT browsing takođe nije video JS linkove
Zašto kasniji HTML fix nije vratio Google?
Posle 27 dana Stanula je sve JS linkove prebacio u hard-kodirani HTML. URL-ovi, sadržaj i server su ostali isti. Promenio je samo gde linkovi žive.
GPTBot je za dva dana, u jednom sweepu ispod tri sata, pokupio 250 stranica koje 27 dana nije video. Bingbot je dodao 212 i ušao do nivoa klase tamo gde ranije nije prošao ulaz. Meta-ExternalAgent se uključio do 41. dana.
Ostali nisu.
Amazonbot je napustio sajt 21. dana, šest dana pre konverzije. Njegov JS skor ostao je nula. ClaudeBot je gori scenario: recrawlovao je sajt do 41. dana, stotine hitova, ali samo stranice koje već zna. Nije uzeo nijednu novo-linkovanu. Kao da je prvu mapu nacrtao i nje se drži.
Google je, ironično, najsporiji. Agresivni budžet prvog dolaska je već potrošen. Do 41. dana Googlebot je posetio tačno jednu stranicu u konvertovanim sekcijama. GoogleOther nijednu.
Zato naslovna poruka nije “popravi JS i sutra si u AI odgovorima”. Za AI botove HTML konverzija može da vrati coverage brzo. Za Google na novom domenu prvi crawl izgleda teže vratiti.
Kod GoogleOther JS-linkovane stranice otkrivene su 18-27% kasnije na svakom nivou dubine. Bot mora da povuče parent, stavi ga u red za rendering, izvrši skriptu, izvuče URL-ove, pa tek onda zakaže decu. HTML to preskače. Kad stranica jednom uđe, recrawl je bio jednak, ponekad i brži. Problem nisu spore pozicije. Problem su stranice koje nikad ne uđu.
Ključno:
- GPTBot oporavak za 48h, Bingbot za nedelju dana
- ClaudeBot ostaje na staroj mapi
- Googlebot do 41. dana: jedna konvertovana stranica
- JS kašnjenje je na otkrivanju, ne na recrawl-u
Šta ovo menja za Woo, Elementor i React sajtove u Srbiji?
Lokalni sajt u Nišu, Novom Sadu ili Beogradu često “radi na Googleu”. Vlasnik vidi da se kategorije indeksiraju, pa zaključi da je JS OK. Taj zaključak je 2019. bio sporan. U 2026. je opasan.
Tipični setupovi gde ovo boli:
- WooCommerce sa AJAX filterima i menijem koji se crta posle load-a. Kategorija “zupčasti kaiš” postoji, ali do nje se dolazi samo kroz JS filter.
- Elementor / Woodmart mega meni. Desktop vidi 40 kategorija. View Source vidi hamburger i prazan kontejner.
- React ili Next katalog (auto delovi, nekretnine, B2B) gde server šalje prazan shell, a rute crta klijent.
- Headless WordPress gde internu navigaciju crta frontend, a HTML nema
<a href>.
Google i dalje može da vidi deo toga, sa kašnjenjem i rendering queue. ChatGPT, Claude i Perplexity u ovom testu nisu videli ništa ispod JS granice. Ako ti je plan “bićemo citirani u AI odgovorima”, a put do usluge živi u hidrataciji, plan je prazan.
Ovo se lepo spaja sa Cloudflare AI block-om od 15. septembra: prvo bot uopšte mora da sme da uđe, pa tek onda da ima šta da pročita u HTML-u. I sa tehničkim SEO-om za AI agente. Nije novi disciplinski sport. To je stari crawl problem, samo sada sa botovima koji ne pale Chromium.
Za lokalni biznis (auto servis, restoran, stomatolog) Google Business Profile i dalje nosi više od ChatGPT citacije. Ali i tamo AI asistenti sve češće biraju firmu. Ako Gemini više vuče sopstvene sajtove firmi, a tvoj sajt ispod menija nema HTML linkova, ostaješ bez first-party površine. To je ista priča kao lokalni SEO u AI pretrazi, samo sa tehničkim uzrokom.
Navigacija je gore od widgeta. Stanula to kaže grubo i tačno: JS widget čini stranicu malo gorom. JS navigacija može da izbaci ceo deo sajta iz svakog indeksa koji hrani AI asistenta.
Ključno:
- “Indeksira se na Googleu” ≠ vidi te GPTBot
- meni i kategorije u HTML-u su prioritet iznad hero animacije
- Woo/Elementor/React u Srbiji su visok rizik baš zbog navigacije, ne zbog bloga
- Cloudflare i robots.txt su drugi sloj; prvo sirov HTML
Kako da proveriš za 30 minuta da li ti AI vidi linkove?
Ne treba ti novi alat. Treba ti View Source i isključen JavaScript.
- Otvori ključnu stranicu i uradi View Source, ne Inspect. Inspect je DOM posle JS-a. Source je ono što bot bez renderer-a vidi. Traži
<a href="/kategorija/...">. Ako nema, AI crawler nema gde da ide. - Isključi JavaScript u Chromeu (Settings → Site settings, ili ekstenzija) i klikni kroz početnu, meni, kategorije, usluge, gradove. Ako nestane put do novca, imaš problem.
- Uporedi sirovi HTML i renderovani DOM. Ako se interni linkovi pojavljuju tek posle hidratacije, to je isti setup kao JS grupa u eksperimentu.
- Proveri schema markup u source-u, ne u Rich Results Testu samom. Test može da renderuje. GPTBot ne mora. JSON-LD u prvom HTML odgovoru, ne preko React efekta.
- Logovi, ne osećaj. Traži GPTBot, ClaudeBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, Googlebot vs GoogleOther. Ako GoogleOther hoda, a Googlebot ne, ne prijavljuj “Google nas crawl-uje”.
- Sitemap nije izgovor. U testu je sitemap bio ugašen namerno. U produkciji sitemap pomaže, ali AI retrieval često ide linkovima i on-demand fetchom, ne tvojom mapom. Interni linkovi i struktura sajta i dalje rade prvi posao.
- Ne čekaj “kad krenemo SSR na jesen”. GPTBot se vratio za 48 sati kad su linkovi prešli u HTML. Google na novom domenu nije. Ranije je jeftinije.
Ako radiš on-page checklistu, dodaj na vrh: da li je navigacija vidljiva bez JS-a. Title tag i brzina ne pomažu stranici do koje bot ne može.
Za JavaScript SEO pravilo je dosadno i zato ga ljudi preskaču: SSR, SSG ili bar prerender za kritične rute. Hybrid je OK ako server već šalje kanonski tekst, headinge i <a href>. SPA shell sa praznim divom nije “moderanan stack”. To je nevidljiv sajt za AI.
Andrea Schultz na Search Engine Land-u ističe isti mehanizam u tekstu o tehničkom SEO-u za AI search: nijedan glavni AI crawler ne renderuje JavaScript pouzdano. Eksperiment od 41 dan to više ne ostavlja kao mišljenje.
Ključno:
- View Source > Inspect
- isključi JS i prođi money path
- schema i linkovi u prvom HTML odgovoru
- logovi razdvojeni po user agentu
- popravi navigaciju pre sadržaja
Rezime
- U testu od 41 dan AI crawleri (GPTBot, ClaudeBot, Perplexity, Meta, Amazon, ChatGPT-User) nisu pratili JavaScript linkove.
- Googlebot je stigao do 2% JS-linkovanih hijerarhijskih stranica; GoogleOther je radio rendering, ali ne gradi Search indeks.
- Bingbot 20 dana recrawl-uje JS sekcije i ne prati injektovane linkove, iako Microsoft dokumentuje rendering.
- Kad su linkovi prebačeni u HTML, GPTBot je za 48h pokupio 250 stranica; ClaudeBot nije uzeo nijednu novu; Googlebot do 41. dana jednu.
- Za Srbiju: Woo, Elementor i React kataloge proveri na sirovom HTML-u. Meni i kategorije su veći rizik od widgeta.
- Ove nedelje: View Source, JS off klik-test, logovi po botu, pa SSR/HTML linkovi. Ne čekaj “kad krenemo veliki refactor”.
Izvori: Search Engine Land – JavaScript links can make your pages invisible to AI search, Search Engine Land – Technical SEO for AI search, Google – JavaScript SEO basics.