Når Google og andre søkemotorer indekserer nettsteder, utfører de ikke JavaScript. Dette ser ut som å sette enkelttsidede sider - hvorav mange stole på JavaScript - med en enorm ulempe i forhold til en tradisjonell nettside.

Ikke å være på Google, kan lett bety døden til en bedrift, og denne skremmende fallgruven kunne friste de uinformerte om å forlate enkeltsidesider helt.

Enkeltsidesider har imidlertid en fordel over tradisjonelle nettsteder i søkemotoroptimalisering (SEO) fordi Google og andre har anerkjent utfordringen. De har opprettet en mekanisme for enkeltsider for å ikke bare få deres dynamiske sider indeksert, men også optimalisere sidene deres spesielt for robotsøkeprogrammer.

I denne artikkelen vil vi fokusere på Google, men andre store søkemotorer som Yahoo! og Bing støtter samme mekanisme.

Hvordan Google gjennomsøker et enkelt nettstedsside

Når Google indekserer et tradisjonelt nettsted, scanner webbrowseren (kalt en Googlebot) først og indekserer innholdet på toppnivån URI (for eksempel www.myhome.com). Når dette er ferdig, så følger det alle koblingene på den siden og indekserer de sidene også. Det følger deretter koblingene på de påfølgende sidene, og så videre. Til slutt indekserer det alt innholdet på nettstedet og tilhørende domener.

Når Googlebot prøver å indeksere et nettstedsside, ser alt det ser ut i HTML-en en tom tombeholder (vanligvis en tom div- eller body-tag), så det er ingenting å indeksere og ingen linker til gjennomsøking, og det indekserer siden etter dette ( i den runde sirkulære "mappen" på gulvet ved siden av sitt skrivebord).

Hvis det var slutten på historien, ville det være slutten på enkeltsider for mange webprogrammer og nettsteder. Heldigvis har Google og andre søkemotorer anerkjent viktigheten av enkeltsider og gitt verktøy for å tillate utviklere å gi søkeinformasjon til robotsøkeprogrammet som kan være bedre enn tradisjonelle nettsteder.

Hvordan lage en enkelt side nettsted gjennomsøkbar

Den første nøkkelen til å gjennomsøke nettstedet på vår side er å innse at serveren vår kan se om en forespørsel blir gjort av en robotsøker eller en person som bruker en nettleser, og svarer på det. Når vår besøkende er en person som bruker en nettleser, svarer som normalt, men for en crawler, returner en side optimalisert for å vise robotsøkeprogrammet nøyaktig hva vi vil, i et format som robotsøkeprogrammet enkelt kan lese.

På hjemmesiden til nettstedet vårt, hvordan ser en crawleroptimalisert side ut? Det er sannsynligvis vår logo eller annet primært bilde som vi ønsker å vises i søkeresultatene, noen SEO optimalisert tekst som forklarer hva nettstedet er eller gjør, og en liste over HTML-koblinger til bare de sidene vi vil at Google skal indeksere. Hva siden ikke har, er en CSS-styling eller en kompleks HTML-struktur som er brukt på den. Det har heller ikke noen JavaScript, eller koblinger til områder på nettstedet vi ikke vil at Google skal indeksere (for eksempel lovlige ansvarsfraskrivelse sider eller andre sider vi ikke vil at folk skal gå inn via et Google-søk). Bildet under viser hvordan en side kan bli presentert for en nettleser (til venstre) og til robotsøkeprogrammet (til høyre).

optimize_001

Tilpasse innhold for robotsøkeprogrammer

Vanligvis kobler enkeltsidesider til annet innhold ved hjelp av et hash bang (#!). Disse koblingene følges ikke på samme måte av mennesker og robotsøkeprogrammer.

For eksempel, hvis på vår side for enkeltside en kobling til brukersiden ser ut som /index.htm#!page=user:id,123 , ville robotsøkeprogrammet se #! og vet å se etter en nettside med URI / index.htm ? _escaped_fragment_= page=user: id,123 . Å vite at robotsøkeprogrammet vil følge mønsteret og se etter denne URIen, kan vi programmere serveren for å svare på den forespørselen med et HTML-snapshot av siden som normalt ville bli gjengitt av JavaScript i nettleseren.

Det øyeblikksbildet vil bli indeksert av Google, men alle som klikker på oppføringen i Google søkeresultat blir tatt til /index.htm#!page=user:id,123 . Enkeltsideside JavaScript vil overta derfra og gjengi siden som forventet.

Dette gir enkeltside nettsted utviklere muligheten til å skreddersy deres nettsted spesielt for Google og spesielt for brukere. I stedet for å skrive tekst som er både lesbar og attraktiv for en person og forståelig av en robotsøkeprogram, kan sider optimaliseres for hver uten å bekymre seg om den andre. Crawlerens sti gjennom nettstedet vårt kan kontrolleres, slik at vi kan lede personer fra Googles søkeresultater til et bestemt sett med inngangssider. Dette vil kreve mer arbeid fra ingeniørens side å utvikle seg, men det kan ha store utbetalinger når det gjelder søkeresultat og kundeoppbevaring.

Oppdager Googles webcrawler

På tidspunktet for denne skrivingen kunngjør Googlebot seg som en robotsøker til serveren ved å stille forespørsler med en brukeragentstreng av Googlebot / 2.1 (+ http://www.googlebot.com / bot.html) . En Node.js-applikasjon kan sjekke for denne brukeragentstrengen i middleware og sende tilbake den robotsøkeoptimerte hjemmesiden dersom brukeragentstrengen samsvarer. Ellers kan vi håndtere forespørselen normalt.

Denne ordningen virker som om det ville være komplisert å teste, siden vi ikke eier en Googlebot. Google tilbyr imidlertid en tjeneste for å gjøre dette for offentlig tilgjengelige produksjonsnettsteder som en del av sitt nettredaktørverktøy, men en enklere måte å teste på er å spoof vår brukeragentstreng. Dette pleide å kreve noen kommandolinje hackery, men Chrome Developer Tools gjør dette så enkelt som å klikke på en knapp og sjekke en boks:

  1. Åpne verktøylinjen for Chrome ved å klikke på knappen med tre horisontale linjer til høyre for Google-verktøylinjen, og velg deretter Verktøy fra menyen og klikk på Utviklerverktøy.

  2. I nederste høyre hjørne av skjermen er et tannhjulikon: klikk på det og se noen avanserte utvikleralternativer som deaktivere hurtigbuffer og slå på logging av XmlHttpRequests.

  3. I den andre kategorien, Overrides, merker du av i ruten ved siden av brukeragentetiketten og velger et antall brukeragenter fra rullegardinmenyen fra Chrome, til Firefox, til IE, iPads og mer. Googlebot-agenten er ikke et standardalternativ. For å bruke det, velg Annet, og kopier og lim inn brukeragentstrengen i den angitte inngangen.

  4. Nå er fanen spoofing seg som en Googlebot, og når vi åpner noen URI på nettstedet vårt, bør vi se siden for robotsøkeprogrammet.

For å konkludere

Åpenbart vil forskjellige applikasjoner ha forskjellige behov med hensyn til hva de skal gjøre med webbrakere, men det er sannsynligvis ikke nok å ha en side som returneres til Googlebot. Vi må også bestemme hvilke sider vi vil avsløre, og gi måter for programmet vårt å kartlegge _escaped_fragment_ = key = verdi URI til innholdet vi vil vise dem.

Det kan hende du vil ha lyst på og knytte serverresponset inn i front-end-rammeverket, men jeg bruker vanligvis den enklere tilnærmingen her og lager tilpassede sider for robotsøkeprogrammet og legger dem i en egen rutefil for robotsøkeprogrammer.

Det er også mye mer legitime crawlere der ute, så når vi har justert vår server for Google-robotsøkeprogrammet, kan vi utvide for å inkludere dem også.

Bygger du enkeltsidene? Hvordan utfører enkeltsidesider på søkemotorer? Gi oss beskjed om dine tanker i kommentarene.

Utvalgt bilde / miniatyrbilde, søk bilde via Shutterstock.