Log file analysis: teljes útmutató
A log file analysis, magyarul szervernapló-elemzés, azt jelenti, hogy a webszerver hozzáférési naplójából kigyűjtöd, mely URL-eket kérte le ténylegesen a Googlebot és a többi keresőrobot, milyen gyakran és milyen válaszkóddal. Ez az egyetlen forrás, amely nem mintavételezett becslést, hanem a valós feltérképezést mutatja. Belőle derül ki, hová megy el a feltérképezési keret, és mely fontos oldalakat hanyagolja a robot.
Alapfogalmak
Minden webszerver, legyen az Apache, Nginx, IIS vagy egy CDN peremszervere, minden beérkező kérésről sort írhat egy naplófájlba. Ez a hozzáférési napló (access log). Egy sor jellemzően tartalmazza a kérő IP-címét, az időpontot, a HTTP-metódust, a kért útvonalat, a válasz státuszkódját, a küldött bájtok számát, a hivatkozó oldalt (referer) és a user-agent karakterláncot. A log file analysis ezekből a sorokból azokat szűri ki, amelyeket keresőrobot küldött, és ezekből von le következtetéseket a feltérképezésről.
A módszer értéke abban rejlik, hogy nem a kereső saját összesítésére támaszkodik. A Search Console feltérképezési statisztikái hasznosak, de összesített és válogatott képet adnak. A napló viszont minden egyes kérést rögzít, így URL szintig látod, mit csinált a robot. Ha egy kategóriaoldalt hetek óta nem kért le, az a naplóban egyértelműen látszik, a Search Console-ban legfeljebb sejthető.
Fontos elválasztani a feltérképezést az indexeléstől. A napló azt mutatja meg, hogy a robot lekérte-e az oldalt. Azt nem mondja meg, hogy az oldal bekerült-e az indexbe, és azt sem, hogyan rangsorol. A naplóelemzés ezért a technikai SEO diagnosztikai eszköze: a feltérképezési problémákat tárja fel, amelyek az indexelési problémák egyik gyakori oka.
A legfontosabb fogalmak
| Fogalom | Jelentés |
|---|---|
| Hozzáférési napló | A szerver soronként rögzített kérései, időbélyeggel és válaszkóddal |
| User-agent | A kérő program önazonosító szövege, például a Googlebot neve |
| Robot-ellenőrzés | Annak igazolása, hogy a kérés tényleg a keresőtől jött, nem egy magát annak kiadó programtól |
| Feltérképezési keret | Az a kérésmennyiség, amelyet a kereső egy oldalra adott időszakban fordít |
| Árva oldal | Olyan URL, amelyet a robot lekér, de a belső linkstruktúrából nem érhető el |
| Feltérképezési gyakoriság | Hányszor kérte le a robot ugyanazt az URL-t egy adott időszakban |
Érdemes megkülönböztetni a Googlebot különböző változatait is. A kereső asztali és mobil feltérképezőt, képekre és videókra szakosodott robotokat is használ, és ezek a user-agent szövegben eltérően jelennek meg. Ha az elemzés során ezeket külön kezeled, látod, melyik tartalomtípust milyen intenzitással járja be a kereső.
A naplóelemzés különösen nagy oldalaknál hoz eredményt: webáruházaknál, hírportáloknál, szűrős listázóoldalaknál, ahol az URL-ek száma messze meghaladja azt, amit a robot rendszeresen bejár. Egy néhány tucat oldalas bemutatkozó weboldalnál ritkán derül ki belőle olyasmi, amit más eszköz ne mutatna meg.
Hogyan működik?
A folyamat négy lépésből áll: a napló begyűjtése, a robotforgalom kiszűrése és ellenőrzése, az URL-ek csoportosítása, végül az eredmény összevetése más adatforrásokkal. Mindegyik lépésnek megvannak a maga csapdái, ezért érdemes sorban haladni.
A begyűjtésnél először azt kell tisztázni, hol keletkezik a napló. Ha az oldal CDN mögött van, a kérések jelentős részét a peremszerver szolgálja ki a gyorsítótárból, és ezek a kérések soha nem érik el a saját szervert. Ilyenkor a származási szerver naplója hiányos képet ad, a CDN naplóját is le kell kérni. Terheléselosztós környezetben több szerver naplóját kell összefésülni. Érdemes legalább néhány hétnyi adatot gyűjteni, mert egy-két nap alapján a ritkán látogatott oldalakról nem lehet következtetést levonni.
A szűrésnél a user-agent alapján választod ki a keresőrobotok kéréseit. Ez önmagában nem elég, mert bármely program kiadhatja magát Googlebotnak. A Google azt javasolja, hogy a kérő IP-címét fordított DNS-lekérdezéssel ellenőrizd: a visszakapott hostnévnek a Google saját domainjére kell végződnie, és ennek a hostnévnek előre irányuló lekérdezéssel ugyanarra az IP-címre kell visszavezetnie. A Google emellett nyilvánosan közzéteszi a robotjai által használt IP-tartományokat is, ami tömeges ellenőrzésnél egyszerűbb.
A napló formátumát is ismerni kell, mielőtt feldolgoznád. A leggyakoribb a kombinált naplóformátum, de sok szerveren egyedi mezősorrend vagy kiegészítő mezők szerepelnek, például a kiszolgálás ideje vagy a gyorsítótár találata. Ha a feldolgozó szkript rossz mezőt olvas státuszkódként, minden későbbi következtetés hibás lesz. Ezért az első lépés mindig néhány nyers sor kézi átnézése és a mezők azonosítása. Ugyanígy ellenőrizni kell, hogy a napló rögzíti-e a lekérdezési paramétereket, mert enélkül a szűrős URL-ek egybemosódnak.
A csoportosítás logikája
Egy nagy oldal több százezer egyedi URL-t is produkálhat, amelyeket egyenként nem lehet áttekinteni. Az URL-eket ezért sablonok szerint csoportosítod: termékoldal, kategóriaoldal, szűrt lista, blogcikk, belső keresés, statikus erőforrás. A csoportosítás alapja lehet az útvonal eleje, egy paraméter jelenléte vagy egy reguláris kifejezés. A jó csoportosítás a naplóelemzés fele: ha jól választod meg a csoportokat, a problémák maguktól kirajzolódnak.
Az utolsó lépés az összevetés. A napló URL-listáját összeveted az XML sitemappel, egy saját feltérképező program (crawler) eredményével és a Search Console adataival. Az eltérések a legértékesebbek: ami a sitemapben szerepel, de a robot nem kéri le, vagy amit a robot rendszeresen kér, de sehol nem linkelsz.
Fő módszerek
A naplóelemzésnek nincs egyetlen helyes technikája. Az eszközt az oldal mérete, a rendelkezésre álló adatmennyiség és a csapat tudása határozza meg. Három megközelítés terjedt el, és ezek jól kombinálhatók.
Az első a parancssori vagy táblázatos elemzés. Kisebb naplóknál a sorokat egyszerű szűrőparancsokkal vagy egy szkriptnyelvvel darabolod fel, majd táblázatkezelőben összesíted. Ez olcsó és átlátható, de néhány millió sor felett lassúvá és nehézkessé válik. A második a dedikált naplóelemző szoftver, amely beolvassa a fájlokat, elvégzi a robot-ellenőrzést, és kész nézeteket ad státuszkódokra, gyakoriságra, URL-csoportokra. A harmadik a folyamatos gyűjtés: a naplók egy adatbázisba vagy naplókezelő rendszerbe áramlanak, és ott lekérdezésekkel, riasztásokkal figyeled a robotforgalmat.
Bármelyik módszert választod, ugyanazokra a kérdésekre keresed a választ: melyik URL-csoport kapja a kérések legnagyobb részét, van-e olyan fontos csoport, amelyet a robot alig látogat, milyen arányban kap a robot hibás vagy átirányító választ, és mennyi idő telik el egy új oldal megjelenése és az első robotlátogatás között.
Saját munkafolyamat egy webáruház példáján
Az alábbi példa egy kitalált, de tipikus helyzetet mutat be. Egy webáruházban a naplóból négy hét Googlebot-kéréseit gyűjtjük ki, és URL-csoportok szerint összesítjük. Tegyük fel, hogy az eredmény azt mutatja: a kérések kb. fele a szűrőparaméteres listaoldalakra megy, a termékoldalakra pedig csak kisebb hányad jut, holott az áruház bevétele a termékoldalakról jön.
- Kigyűjtjük a leggyakrabban lekért paraméterkombinációkat, és megnézzük, van-e közöttük olyan, amelynek keresési értéke van.
- Az értéktelen kombinációk linkjeit a sablonban úgy alakítjuk át, hogy ne generáljanak feltérképezhető URL-t, a meglévőkre pedig a helyzettől függően robots.txt szabályt vagy canonical jelzést alkalmazunk.
- A termékoldalak belső linkelését erősítjük a kategóriaoldalakról.
- Négy hét múlva ugyanazzal a csoportosítással újra lefuttatjuk az elemzést, és a két időszak arányait vetjük össze.
A döntési szabály egyszerű: ha egy URL-csoport részesedése a robotkérésekből jóval nagyobb, mint az üzleti vagy keresési értéke, ott pazarlás van; ha jóval kisebb, ott a belső linkelés vagy a sitemap hiányos.
Gyakori hibák
A naplóelemzés csapdája, hogy a nyers adat meggyőzőnek tűnik, pedig a hibás előkészítés teljesen félrevezető következtetésekhez vezethet. A leggyakoribb hibák szinte mindig az adatgyűjtésnél és a szűrésnél keletkeznek, nem az értelmezésnél.
Az első a hiányos napló. Ha csak a származási szerver naplóját elemzed, miközben a forgalom nagy része a CDN-en fut át, akkor a robot kéréseinek egy részét egyszerűen nem látod. Hasonló hiba, ha a naplórotáció miatt a régebbi fájlok már törlődtek, és csak néhány napnyi adat áll rendelkezésre. A második a hamis robotok bent hagyása. A Googlebotnak kiadott, de valójában más forrásból érkező kérések torzítják az arányokat, különösen akkor, ha egy agresszív lekaparó program tömegesen kér le oldalakat.
A harmadik hiba a csoportosítás elhanyagolása. Aki URL-enként próbálja értelmezni az adatot, elveszik a részletekben, és a sablonszintű mintázatokat nem veszi észre. A negyedik az, amikor az elemző a feltérképezés gyakoriságát a rangsorolással azonosítja. Az, hogy a robot gyakran kér le egy oldalt, nem jelenti, hogy jól is rangsorol, és a ritka lekérés sem jelent önmagában büntetést. Egy ritkán változó, stabil oldal teljesen rendben lehet heti egy látogatással.
Az ötödik gyakori hiba a statikus erőforrások és a dokumentumoldalak összemosása. A robot a renderelés miatt képeket, stíluslapokat és szkripteket is lekér, és ezek a kérések számszerűen könnyen túlsúlyba kerülhetnek. Ha nem választod külön őket, úgy tűnhet, hogy a feltérképezés nagy része „elveszik”, holott csak a megjelenítéshez szükséges fájlokról van szó. A hatodik a szezonalitás figyelmen kívül hagyása: egy akciós időszak, egy nagy tartalomfeltöltés vagy egy szerverleállás napjai eltorzítják az összehasonlítást, ezért ezeket jelölni kell az idővonalon.
Ellenőrzőlista az elemzés előtt
- Megvan az összes forrás naplója: CDN, terheléselosztó, minden alkalmazásszerver?
- Legalább néhány hétnyi összefüggő adat áll rendelkezésre, kimaradt napok nélkül?
- A robotkéréseket IP-alapon is ellenőrizted, nem csak a user-agent szerint?
- Az időzóna egységes a különböző forrásokban?
- A statikus erőforrásokat (képek, CSS, JavaScript) külön csoportba tetted?
- Megvan a sitemap és egy friss crawl az összevetéshez?
- A napló személyes adatait (IP-címek) az adatvédelmi szabályoknak megfelelően kezeled és tárolod?
Az utolsó pont nem formalitás. Az IP-cím személyes adatnak minősülhet, ezért a látogatói sorokat érdemes minél korábban kiszűrni vagy anonimizálni, és csak a robotforgalmat megtartani az elemzéshez.
Mérés
A naplóelemzés akkor ér valamit, ha rendszeresen, ugyanazzal a módszerrel ismétled, és a változásokat követed. Egy egyszeri pillanatkép érdekes, de a beavatkozások hatását csak két azonos módon előállított időszak összevetése mutatja meg.
A mérés alapja néhány jól definiált mutató. Ezeket URL-csoportonként érdemes számolni, mert az oldalszintű átlag elfedi a lényeget. Egy általános átlag jónak tűnhet akkor is, ha a legfontosabb sablon teljesen háttérbe szorult.
Mutatók és értelmezésük
| Mutató | Mit mér | Mikor gyanús |
|---|---|---|
| Kérések megoszlása csoportonként | Hová megy a feltérképezés | Ha értéktelen csoport viszi el a nagyobb részt |
| Nem 200-as válaszok aránya | Átirányítások, hibák, nem létező oldalak | Ha tartósan emelkedik, vagy egy csoportban koncentrálódik |
| Egyedi lekért URL-ek száma | A feltérképezés szélessége | Ha jóval kevesebb, mint a sitemap fontos URL-jei |
| Első lekérésig eltelt idő | Új oldalak felfedezésének gyorsasága | Ha az új tartalom napokig érintetlen marad |
| Szerver válaszideje robotkéréseknél | A kiszolgálás terhelhetősége | Ha lassul, miközben a kérésszám csökken |
A válaszidő külön figyelmet érdemel. A Google dokumentációja szerint a feltérképezés intenzitását a szerver állapota is befolyásolja: ha a szerver lassan vagy hibával válaszol, a robot általában visszafogja a kéréseit. Ha tehát a naplóban a válaszidő romlása és a kérésszám visszaesése egy időben jelenik meg, a probléma valószínűleg a kiszolgálásban van, nem a tartalomban.
Az eredményeket érdemes egy egyszerű, ismétlődő jelentésben rögzíteni. A jelentés tartalmazza az időszakot, az adatforrásokat, a csoportosítás szabályait és a fenti mutatókat csoportonként, valamint egy rövid megjegyzést arról, milyen változtatás történt az előző mérés óta. A csoportosítási szabályokat ne módosítsd két mérés között, mert akkor a számok már nem összevethetők. Ha mégis új csoportra van szükség, az előző időszakot is számold újra az új szabállyal.
Döntési szabály a beavatkozásokhoz
- Egy csoport sok hibás választ kap: először a belső linkeket és a sitemapet javítsd, csak utána az átirányításokat.
- Egy fontos csoport alig kap kérést: erősítsd a belső linkelést, és ellenőrizd, hogy szerepel-e a sitemapben.
- Egy értéktelen csoport sok kérést kap: szüntesd meg a feltérképezhető linkeket, és mérlegeld a robots.txt szabályt.
A mérés ritmusa az oldal méretétől függ. Nagy, gyakran változó oldalnál havi rendszeres elemzés és folyamatos riasztás a hibakódok ugrására indokolt. Kisebb oldalnál elég egy nagyobb átalakítás, domainváltás vagy migráció előtt és után lefuttatni. Migrációnál a napló a legközvetlenebb bizonyíték arra, hogy a robot megtalálta-e az új URL-eket, és követi-e az átirányításokat.
Kapcsolódó részletes útmutatók
A naplóelemzés eredményeit a feltérképezést és az indexelést vezérlő eszközökkel tudod érvényre juttatni. Az alábbi útmutatók ezekhez adnak részletes segítséget.
Csináltassuk meg helyetted
Ha ez sok, mi elvégezzük. Egy munkanapon belül konkrét ajánlatot kapsz.