Modul 1 · 1.2
Crawla: så hittar en sökmotor din webbplats
Modul 1: Så fungerar sökmotorer · Lästid: 11 minuter
Lärandemål: Efter den här lektionen kan du beskriva hur en crawler upptäcker nya sidor, vilka statuskoder den stöter på och vad de betyder, och vad som stoppar en crawler.
Nyckelbegrepp: crawler (Googlebot, Bingbot), följa länkar, webbplatskarta (sitemap), HTTP-statuskod (200, 301, 302, 404, 410, 429, 5xx), omdirigering, crawlbudget, JavaScript och rendering, föräldralös sida, robots.txt
Vad en crawler är
En crawler (kallas också spindel eller bot) är ett program som hämtar webbsidor, precis som din webbläsare gör, men automatiskt och i enorm skala. Google har Googlebot, Bing har Bingbot. De begär en adress, får tillbaka HTML-koden, läser vilka länkar som finns i den och lägger de nya adresserna på sin lista för att hämta dem senare.
Google säger att Googlebot i genomsnitt inte besöker en webbplats oftare än en gång med några sekunders mellanrum, och att de flesta förfrågningar kommer från smartphoneversionen av Googlebot. Google ser alltså din webbplats främst som en mobiltelefon ser den. Det återkommer vi till i lektion 4.2.
En crawler kan också utge sig för att vara Googlebot: namnet (user-agent) är lätt att efterlikna. Google rekommenderar att du kontrollerar ett misstänkt besök med en omvänd DNS-uppslagning av IP-adressen. Det är praktiskt om du ser "Googlebot" göra konstiga saker i din serverlogg.
Så hittar en crawler nya sidor
Google nämner tre sätt:
- Besöka sidor den redan känner till igen. Där ser den ändringar och nya länkar.
- Följa länkar. En länk från en sida som Google redan känner till till en ny sida är det viktigaste sättet att bli hittad. Det gäller länkar inom din egen webbplats (din meny, en länk i en text) och länkar från andra webbplatser.
- En lista som du lämnar in: webbplatskartan (sitemap). En webbplatskarta är en fil med adresserna till dina sidor. Du skickar in den i Search Console eller anger den i robots.txt (lektion 3.4). Enligt Google är en webbplatskarta inte obligatorisk, men den är praktisk, särskilt för nya webbplatser med få länkar, stora webbplatser och sidor som ligger djupt ner i webbplatsen.
Länkar måste vara riktiga länkar
Google kan bara följa en länk om den är ett vanligt <a>-element med ett href:
<a href="/bruidsboeketten">Bruidsboeketten</a> <!-- bra -->
<span onclick="ga('/bruidsboeketten')">Bruidsboeketten</span> <!-- ingen länk för Google -->En knapp som bara hoppar till en annan sida med JavaScript är ingen länk för en crawler. En sida som inte länkas från någonstans kallas en föräldralös sida (orphan page). En crawler hittar den bara via webbplatskartan, och även besökare har svårt att hitta den. En ny sida ska därför alltid länkas någonstans i din meny eller i en text.
JavaScript: först hämta, sedan köra
Många moderna webbplatser bygger upp sidan med JavaScript i webbläsaren. Google klarar det: den kör JavaScript med en aktuell version av Chromium, grunden för webbläsaren Chrome. Det kallas rendering. Google beskriver det som tre faser för sådana sidor: crawling, rendering och indexering. Sidor med status 200 hamnar i en kö för att renderas.
Två följder:
- Det som hamnar på sidan först efter JavaScript ser Google senare än det som står direkt i HTML-koden.
- Alla crawlers kör inte JavaScript. Det säger Google också själv. Text, titlar och länkar som står direkt i HTML-koden är alltså säkrast för alla sökmotorer. Google kallar HTML som skapas på servern "fortfarande en bra idé".
De automatiska kontrollerna i den här kursen läser HTML-koden som servern skickar den, utan JavaScript. Det du ser i din webbläsare kan skilja sig från det.
Statuskoder: vad servern svarar
Med varje sida skickar servern en statuskod. Du ser den inte på skärmen, men en crawler läser den först:
| Kod | Betydelse | Vad Google gör med den |
|---|---|---|
| 200 | OK, här är sidan | Innehållet går vidare till indexering (att den kommer med är inte garanterat) |
| 301 / 308 | Permanent flyttad till en annan adress | Starkt tecken på att den nya adressen är den rätta |
| 302 / 307 | Tillfälligt någon annanstans | Svagt tecken; den gamla adressen förblir ofta huvudadressen |
| 404 / 410 | Finns inte (längre) | En adress som tidigare var indexerad tas bort ur indexet; Google kommer förbi allt mer sällan |
| 429 | För många förfrågningar | Google crawlar tillfälligt långsammare |
| 5xx | Fel på servern | Google crawlar tillfälligt långsammare; om en adress hela tiden ger ett serverfel försvinner den till slut ur indexet |
Se upp med soft 404: en sida som visar "hittades inte" men ger status 200. För crawlern ser det ut som en riktig sida, för besökaren inte. Search Console rapporterar sådana sidor separat. En borttagen sida ska därför ge en riktig 404 eller 410, eller omdirigeras med en 301 till en ersättare.
En omdirigeringskedja (http till https till www till den nya sidan) följer Google, upp till ungefär tio steg, men varje steg tar tid. Lektion 4.1 visar hur du gör det i ett steg.
Vad som stoppar en crawler
Google nämner som orsaker till att en sida inte crawlas: problem med servern, nätverksproblem och regler i robots.txt som nekar Googlebot åtkomst. I praktiken ser du dessutom:
- en webbplats som fortfarande står i "underhållsläge" eller ligger bakom ett lösenord;
- i WordPress kryssrutan "Be sökmotorer att inte indexera denna webbplats", som sätter en noindex (det är steg 2, men effekten är densamma: går inte att hitta);
- ett säkerhetsskydd eller en brandvägg som nekar okända botar med 403 eller 429;
- en webbplats som bara går att navigera med JavaScript-knappar.
robots.txt får en egen lektion (3.3). För tillfället räcker det att veta: det är en textfil på https://www.example.com/robots.txt som talar om vilka delar av din webbplats en crawler inte får hämta.
Crawlbudget: inget bekymmer för de flesta webbplatser
Du läser mycket på nätet om crawlbudget: hur många sidor Google vill och kan hämta på din webbplats. Google säger att guiden om detta är avsedd för stora webbplatser, med en grov uppskattning på fler än en miljon sidor, eller fler än tiotusen sidor som ändras dagligen. Om dina nya sidor redan hämtas samma dag som de publiceras behöver du inte bry dig om det. För en webbplats som Bloemenatelier Lottes med trettio sidor är det inget att tänka på. En aktuell webbplatskarta och en titt i rapporten Page indexing då och då räcker.
I praktiken: din serverlogg
I DirectAdmin och liknande paneler kan du se åtkomstloggen för din webbplats. Sök på "Googlebot" eller "bingbot" så ser du vilka sidor de begärde och vilken statuskod de fick. Ser du många 404:or eller 5xx-fel där vet du var du ska börja. Hos andra leverantörer hittar du loggarna oftast under ett liknande namn i kundpanelen.
Sammanfattning
- En crawler hämtar sidor och hittar nya adresser via länkar och via din webbplatskarta.
- Bara riktiga
<a href>-länkar följs; en sida utan länkar till sig är föräldralös. - Google kör JavaScript, men senare; andra crawlers gör det ofta inte. Viktigt innehåll hör hemma i HTML-koden.
- Statuskoden avgör vad en crawler gör: 200 bearbeta, 301 flytta, 404/410 ta bort, 5xx och 429 crawla långsammare.
- Crawlbudget spelar bara roll för mycket stora eller mycket snabbt föränderliga webbplatser.
Quiz
Uppgift
Uppgift A1.2: Vad ser en crawler på din startsida? Ange adressen till din webbplats (eller www.wikipedia.org om du inte har en egen webbplats). Fyll sedan i vad du förväntar dig: statuskoden för den slutliga sidan, adressen du hamnar på efter omdirigering och om det finns en noindex. Programmet hämtar startsidan som en crawler, utan JavaScript, och visar omdirigeringskedjan, statuskoden, antalet riktiga länkar till din egen webbplats i HTML-koden och om sidans text går att läsa utan JavaScript.
Läs mer
Stegen i de här artiklarna gäller för WebOkés paneler; hos andra leverantörer fungerar det på liknande sätt.
- DirectAdmin-guide 4.7: Webbplatsomdirigeringar: omdirigera en domän eller sida
- DirectAdmin-guide 17.2: Webbplatssammanfattning och loggar: felloggen och åtkomstloggen
- Tvinga besökare att omdirigeras till https
- Google, Hur HTTP-statuskoder och nätverksfel påverkar Google Sök: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Grunderna i JavaScript-SEO: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Crawlbudget för stora webbplatser: https://developers.google.com/crawling/docs/crawl-budget
