JavaScript SEO – Få Google att gilla din snygga sajt

Ett ämne som det pratas oroväckande lite om i SEO-Sverige är just JavaScript. I grund och botten handlar det nog om en osäkerhet på vad JavaScript är, hur Google hanterar det och hur man bör jobba med det.

I denna artikel är mitt mål att bena ut på ett grundläggande sätt vad JavaScript är och hur du bör tänka SEO-mässigt när du (eller din webbyrå) väljer att bygga en sajt som är tungt beroende av JavaScript.

Vad är JavaScript?

JavaScript är en programmeringsspråk som har blivit väldigt populärt just för att det är skalbart, och är idag en av grundstenarna till webben. Att det är skalbart och enkelt att hitta information om är anledningen till att man ofta väljer att bygga funktioner på sin sajt i JavaScript.

Vad som gör att JavaScript skiljer sig mot t.ex. HTML-kod är att det exekveras på klient-sidan (alltså i din webbläsare). En annan grej som är bra att veta är att all annan inläsning av kod stannar när man försöker hämta JavaScript-filer, för att inte klienten skall överbelastas.

I korta drag gör detta JavaScript väldigt beroende av webbläsarens förmåga att exekvera koden. För dig som användare påverkas du oftast inte av detta, kanske för att man använder någon form av cache-lösning på sajten eller för att nätet helt enkelt är snabbt. Men hur blir det när Google besöker sajten?

Hur hanterar Google JavaScript?

Innan vi går in på hur Google hanterar JavaScript så bör vi ta en titt på hur Google rankar, indexerar och spindlar av webben.

Först hittar Google ens URL genom en crawl, när den är crawlad blir den indexerad (förutsatt att vi inte säger något annat till Google). Innehåller sidan JavaScript kommer Google besöka den med sin renderings-bot. Det kan dock ta dagar (ibland även veckor!) innan renderingen sker, något som Google’s John Mueller bekräftar här. Då sker den andra indexeringen av innehållet och din sajt kan värderas på rätt grunder.

När kan detta blir problem?

I vissa fall är det inte kritiskt att Google inte kan rendera upp en viss funktion på din sajt, även fast vi såklart vill att Google ska kunna se exakt allt innehåll på sidan (så som användaren ser det). Men allt för ofta så laddas kritiskt innehåll på sajten in genom JavaScript, att det byggs upp på dynamiska block som hämtar in innehållet med hjälp av JavaScript. Det kan alltså betyda att din brödtext inte kan nås av Google, även fast man kämpat hårt med den och följt alla best practices’ kring innehållet.

Testa hur din sajt ser ut utan JavaScript för att se vad för element som är beroende av det. Detta kan ni göra med hjälp av t.ex. Chrome pluginet Web Developer. Ifall kritiska element försvinner är detta något du bör se över pronto.

JavaScript? Prerender!

Sitter du nu med svetten i pannan och inser att din nya snygga sajt är helt uppbyggd i JavaScript och att detta kommer innebära problem för er indexering hos Google (och andra sökmotorer)? Lugn, det finns en lösning!

Prerender är det lättaste sättet att komma runt problemet med att Google inte kan indexera ens JavaScript-beroende sajt. Prerender är exakt vad namnet antyder, en för-renderad version av sidan. Man laddar ner en version av sidan som är färdig-renderad och skickar denna till Google när deras bot försöker nå sidan. De renderar upp sidan (en lätt HTML-fil som ofta tar 0.1 sekund att rendera upp för Google) och ser allt innehåll, även fast det tidigare har varit baserad på JavaScript. Ofta kör man prerender med en tredjepart som skickar detta till Google, ibland krävs lite svårare tekniska uppsättningar.

Prerender.io är den tjänst jag rekommenderar, det är lätt att sätta upp och väldigt kostnadseffektivt.

Risken med prerender

Finns det någon risk med prerender? Ja, det finns det. En risk är att man inte uppdaterar prerender-versionen samtidigt som man uppdaterar själva sajten, då kan Google tolka det som att vi försöker gömma innehåll från dem och att vi sysslar med cloaking. Här får man mixtra lite med hur pass ofta man vill uppdatera prerender-versionen. Om man inte uppdaterar sajten särskilt ofta kan man manuellt uppdatera prerender-versionen när man ändrar sidan, så egentligen inga problem för de allra flesta.

Prerender är helt klart det bästa sättet att handskas med JavaScript idag. Vår förhoppning (och även Googles) är ju att vi inom snar framtid inte skall behöva tänka på detta lika mycket och Google ska lösa det helt själv, men tills dess får vi arbeta tillsammans!

Hur har ni hanterat JavaScript på er sajt? Har ni råkat ut för liknande problem tidigare? Låt oss börja prata JavaScript och SEO!