Modul 1 · 1.2
Crawling: slik finner en søkemotor nettstedet ditt
Modul 1: Hvordan søkemotorer fungerer · Lesetid: 11 minutter
Læringsmål: Etter denne leksjonen kan du beskrive hvordan en crawler oppdager nye sider, hvilke statuskoder den møter og hva de betyr, og hva som stopper en crawler.
Nøkkelbegreper: crawler (Googlebot, Bingbot), følge lenker, nettstedskart (sitemap), HTTP-statuskode (200, 301, 302, 404, 410, 429, 5xx), videresending, crawlbudsjett, JavaScript og rendering, foreldreløs side, robots.txt
Hva en crawler er
En crawler (også kalt spider eller bot) er et program som henter nettsider, akkurat som nettleseren din gjør, men automatisk og i enorm skala. Google har Googlebot, Bing har Bingbot. De ber om en adresse, får HTML tilbake, leser hvilke lenker som står i den og setter de nye adressene på listen sin for å hente dem senere.
Google sier at Googlebot i gjennomsnitt ikke besøker et nettsted oftere enn én gang med noen sekunders mellomrom, og at de fleste forespørslene kommer fra smarttelefonversjonen av Googlebot. Google ser altså nettstedet ditt først og fremst slik en telefon ser det. Det kommer vi tilbake til i leksjon 4.2.
En crawler kan også utgi seg for å være Googlebot: navnet (user-agent) er lett å etterligne. Google anbefaler å kontrollere et mistenkelig besøk med et omvendt DNS-oppslag av IP-adressen. Det er nyttig hvis du ser en «Googlebot» i serverloggen din som gjør rare ting.
Hvordan en crawler finner nye sider
Google nevner tre måter:
- Besøke sider den allerede kjenner på nytt. Der ser den endringer og nye lenker.
- Følge lenker. En lenke fra en side Google allerede kjenner til en ny side, er den viktigste måten å bli funnet på. Det gjelder lenker innenfor ditt eget nettsted (menyen din, en lenke i en tekst) og lenker fra andre nettsteder.
- En liste du leverer selv: nettstedskartet (sitemap). Et nettstedskart er en fil med adressene til sidene dine. Du sender det inn i Search Console eller legger det inn i robots.txt (leksjon 3.4). Ifølge Google er et nettstedskart ikke påkrevd, men det er nyttig, særlig for nye nettsteder med få lenker, store nettsteder og sider som ligger dypt inne i nettstedet.
Lenker må være ekte lenker
Google kan bare følge en lenke hvis det er et vanlig <a>-element med en href:
<a href="/bruidsboeketten">Bruidsboeketten</a> <!-- riktig -->
<span onclick="ga('/bruidsboeketten')">Bruidsboeketten</span> <!-- ingen lenke for Google -->En knapp som bare hopper til en annen side med JavaScript, er ikke en lenke for en crawler. En side som ingen andre sider lenker til, kalles en foreldreløs side (orphan page). Den finner en crawler bare via nettstedskartet, og besøkende finner den også vanskelig. En ny side bør derfor alltid lenkes til fra menyen din eller fra en tekst.
JavaScript: først hente, senere kjøre
Mange moderne nettsteder bygger opp siden med JavaScript i nettleseren. Det klarer Google: den kjører JavaScript med en nyere versjon av Chromium, grunnlaget for Chrome-nettleseren. Det kalles rendering. Google beskriver tre faser for slike sider: crawling, rendering og indeksering. Sider med status 200 havner i en kø for å bli rendret.
To konsekvenser:
- Det som først kommer på siden etter JavaScript, ser Google senere enn det som står direkte i HTML-en.
- Ikke alle crawlere kjører JavaScript. Det sier Google selv også. Tekst, titler og lenker som står direkte i HTML-en, er derfor tryggest for alle søkemotorer. Google kaller HTML som lages på serveren «fortsatt en god idé».
De automatiske kontrollene i dette kurset leser HTML-en slik serveren sender den, uten JavaScript. Det du ser i nettleseren din, kan avvike fra det.
Statuskoder: hva serveren svarer
Med hver side sender serveren en statuskode. Den ser du ikke på skjermen, men en crawler leser den først:
| Kode | Betydning | Hva Google gjør med den |
|---|---|---|
| 200 | OK, her er siden | Innholdet går videre til indeksering (opptak er ikke garantert) |
| 301 / 308 | Flyttet permanent til en annen adresse | Sterkt signal om at den nye adressen er den riktige |
| 302 / 307 | Midlertidig et annet sted | Svakt signal; den gamle adressen forblir ofte hovedadressen |
| 404 / 410 | Finnes ikke (lenger) | En adresse som tidligere var med, fjernes fra indeksen; Google kommer innom stadig sjeldnere |
| 429 | For mange forespørsler | Google crawler midlertidig saktere |
| 5xx | Feil på serveren | Google crawler midlertidig saktere; gir en adresse serverfeil hele tiden, faller den til slutt ut av indeksen |
Vær obs på soft 404: en side som viser «ikke funnet», men gir status 200. For crawleren ser det ut som en ekte side, for den besøkende ikke. Search Console melder slike sider separat. En slettet side bør derfor gi en ekte 404 eller 410, eller videresendes med en 301 til en erstatning.
En videresendingskjede (http til https til www til den nye siden) følger Google, opptil omtrent ti steg, men hvert steg tar tid. Leksjon 4.1 viser hvordan du gjør det i ett steg.
Hva som stopper en crawler
Google nevner disse årsakene til at en side ikke blir crawlet: problemer med serveren, nettverksproblemer og regler i robots.txt som nekter Googlebot tilgang. I praksis ser du i tillegg:
- et nettsted som fortsatt står i «vedlikeholdsmodus» eller er beskyttet med passord;
- i WordPress avkrysningsboksen «Be søkemotorer om å ikke indeksere dette nettstedet», som setter en noindex (det er steg 2, men effekten er den samme: ikke mulig å finne);
- en sikkerhetsløsning eller brannmur som avviser ukjente boter med 403 eller 429;
- et nettsted som bare kan navigeres med JavaScript-knapper.
robots.txt får en egen leksjon (3.3). Foreløpig er dette nok: det er en tekstfil på https://www.example.com/robots.txt som sier hvilke deler av nettstedet ditt en crawler ikke får hente.
Crawlbudsjett: ingen bekymring for de fleste nettsteder
Du leser mye på nett om crawlbudsjett: hvor mange sider Google vil og kan hente på nettstedet ditt. Google sier at veiledningen om dette er ment for store nettsteder, grovt anslått mer enn en million sider, eller mer enn ti tusen sider som endres daglig. Blir de nye sidene dine hentet allerede samme dag som de publiseres, trenger du ikke bry deg om det. For et nettsted som det til Bloemenatelier Lotte med tretti sider er det ikke noe tema. Et oppdatert nettstedskart og en titt i indekseringsrapporten (Page indexing) av og til er nok.
I praksis: serverloggen din
I DirectAdmin og lignende kontrollpaneler kan du se tilgangsloggen for nettstedet ditt. Søk etter «Googlebot» eller «bingbot», så ser du hvilke sider de ba om og hvilken statuskode de fikk. Ser du mange 404-er eller 5xx-feil der, vet du hvor du skal begynne. Hos andre leverandører finner du loggene vanligvis under et lignende navn i kundepanelet.
Oppsummering
- En crawler henter sider og finner nye adresser via lenker og via nettstedskartet ditt.
- Bare ekte
<a href>-lenker blir fulgt; en side uten lenker til seg er foreldreløs. - Google kjører JavaScript, men senere; andre crawlere gjør det ofte ikke. Viktig innhold hører hjemme i HTML-en.
- Statuskoden bestemmer hva en crawler gjør: 200 behandle, 301 flytte, 404/410 fjerne, 5xx og 429 crawle saktere.
- Crawlbudsjett spiller bare en rolle for svært store eller svært raskt skiftende nettsteder.
Quiz
Oppgave
Oppgave A1.2: Hva ser en crawler på forsiden din? Fyll inn adressen til nettstedet ditt (eller www.wikipedia.org hvis du ikke har et eget nettsted). Fyll deretter inn hva du forventer: statuskoden til den endelige siden, adressen du havner på etter videresending, og om siden har en noindex. Programmet henter forsiden slik en crawler gjør, uten JavaScript, og viser videresendingskjeden, statuskoden, antallet ekte lenker til ditt eget nettsted i HTML-en, og om teksten på siden kan leses uten JavaScript.
Les mer
Stegene i disse artiklene gjelder for kontrollpanelene til WebOké; hos andre leverandører fungerer det på lignende måte.
- DirectAdmin-veiledning 4.7: Site Redirects: videresend et domene eller en side
- DirectAdmin-veiledning 17.2: Site summary & logs: feillogg og tilgangslogg
- Tving besøkende over til https
- Google, Slik påvirker HTTP-statuskoder og nettverksfeil Google Søk: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Grunnleggende om JavaScript-SEO: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Crawlbudsjett for store nettsteder: https://developers.google.com/crawling/docs/crawl-budget
