Blog Egy szuper haladó SEO trükk, csak profiknak
seo trükk
írta:

Egy szuper haladó SEO trükk, csak profiknak

Ha a cím rávett, hogy elolvasd a cikket, akkor szeretném újra megerősíteni: ez tényleg egy haladó SEO poszt. Van benne data backup, on-page optimalizálás, statisztikai háttér, kis kódolás és automatizálás is. De pont ez adja az erejét. Azért szeretem ezt a megoldást, mert egyszerre okos, hasznos és elegáns is.

Néhány héttel ezelőtt a 9-es buszon utaztam munkába menet és belebotlottam egy érdekesnek tűnő cikkbe. A legtöbb olvasó valószínűleg egyből átugrotta volna, még a SEO szakértők nagy része is.

A cikk arról szólt, hogy miként lehet statisztikai modellt, egyfajta eloszlásfüggvényt illeszteni a saját weboldalunk Google találati rangsorban történő kattintási arányaira.

Már a címnél éreztem, hogy ez egy érdekes irány lehet, mert ezen én is gondolkoztam korábban. Még 2016-ban nekikezdtem az első hazai CTR (click-through rate) alapú SEO esettanulmánynak, de végül nem fejeztem be. Főleg azért, mert nem tudtam valódi felhasználási területet, use case-t találni a végeredménynek. Viszont miután elolvastam a cikket, támadt egy jó ötletem.

A SEO trükk háttere

Nagyjából ez fogalmazódott meg bennem:

Mi lenne ha backupolnám a Google Search Console adatokat? Ott a pozícióhoz kapcsolódó CTR (kattintási arány) értékeket összevetném iparági benchmarkkal vagy akár egy saját oldalamra illesztett egyedi regresszióval? Ezt követően pedig a kiugró értékeket leszűrném, és automatikusan kapnék  egy emailt is ezekről!

Jogosan merül fel a kérdés: mire lenne jó mégis mindez?

Nézzünk egy egyszerű példát.

Az átlagos kattintási arányok az adott organikus Google pozíció esetében így alakulnak:

Google CTR adatok

Iparági adatok alapján ezek a párok:

  • 1. hely: 31% kattint
  • 2. hely: 14% kattint
  • 3. hely: 10% kattint
  • 4. hely: 7% kattint
  • 5. hely: 5% kattint
  • 6. hely: 3% kattint
  • és így tovább.

Ez persze oldalanként, témánként és kifejezésenként is változik. Legegyszerűbb példa az ún branded keyword-ök esete: ha valaki egy konkrét cégre, névre keres (mondjuk. “The Pitch blog”), akkor a kattintási arány jellemzően 60-70% körül is alakulhat az 1. helyen. Nagyon általános kifejezéseknél (pl. “keresőoptimalizálás”) pedig simán lehet 5-10% körüli (vagy alatti) is a kattintási arány az 1. helyen.

A kattintási arányt emelett befolyásolja a megjelenő hirdetések száma is (minél több a hirdetés, annál alacsonyabb az organikus CTR). Szóval elsőre nehéznek tűnik ebben bármilyen “összefüggést” keresni. Azonban mégis lehet találni. Bár sok a “zaj” egy ilyen rendszerben, de ennek ellenére akad bőven kiaknázatlan lehetőség is.

Gondoljunk bele egy “extrém” esetbe. Egy 8-12. hely között lévő találatra kevesebb, mint 1-5% kattint. De mi van akkor, ha valami “anomália van a rendszerben” és mégis 20% feletti kattintást érünk el itt?! Miért nem keressük tehát ki azokat a kifejezéseket, ahol:

  • nagyon rossz a Google pozíciónk, de a CTR mégis magas!

Őket nevezem én positive CTR outliernek. Ezeknél rossz a Google pozíció, mégis behozzák a keresőket az oldalunkra.

Miért jó ezeket megkeresni? Mert ha javítani tudom ezeknek a pozícióját, akkor még több látogatót tudok behozni az oldalra velük. De a másik oldal is érdekel.

Melyek azok a kifejezések, ahol jó a pozíció, de a CTR mégis alacsony. Ők a negative CTR outlierek.

Itt pedig azt akarom megnézni, hogy a jó pozíció ellenére miért kattintanak kevesen. Nem elég meggyőző a meta leírás (meta description)? A Google az én találatomat dobja fel jó helyen, de amikor elolvasod a szöveget (title + meta) a Google találatok között, akkor egyből tudod, hogy az a találat nem is arról szól? Ekkor van az, amikor a hang ezt mondja a fejedben: “Nem, nem. Google, nem is erre kerestem. Miért ilyen találatokat adsz ki nekem? Most tényleg menjek el a Google 4. oldaláig, hogy megtaláljam, amit keresek?” Itt a cél pedig az, hogy vagy írjak egy új tartamat, ami a megfelelő a keresési szándékot (search intent) célozza, vagy optimalizáljam a SEO címet és meta leírást.

Így tehát nemcsak a pozitív, hanem a negatív outlierekben is óriási potenciál rejlik. Egy oldal SEO forgalmát 20-50%-al is növelni lehet, hogyha ezeket a pozitív és negatív kiugró értékeket megtaláljuk és megfelelően cselekszünk.

A feladatom tehát az, hogy ezeket gyorsan, hatékonyan és nagy mennyiségben ki tudjam szűrni.

Emellett az is jó lenne, ha minden hónapban kapnék egy listát kizárólag azokról a kifejezésekről, ahol teljesül a pozitív vagy negatív outlier feltétel. Így nem kellene folyton manuálisan mentegetni, ellenőrizni, szűrni. Pontosan ezt dolgoztam ki nemrég a buszon előjött ötletem alapján.

A folyamat így néz ki:

  1. Backupolom a Google Search Console adatokat
  2. Készítek egy CTR modellt
  3. Párosítom a kulcsszó backup sorait a CTR modellel
  4. Kiszámolom a CTR különbségeket
  5. Írok egy scriptet, ami automatizál és
  6. A végén az adatokról emailt küld nekem

Mindezt pedig gyakorlatilag teljesen automatizálva.

Google Search Console adatok mentése

Első lépésként a Google Search Console (GSC / Webmester Eszközök) adatait kell lementeni időnként. Mivel a GSC csak 90 napig tárolja az adatokat, ezért érdemes időként ezt backupolni. De ahelyett, hogy havonta mentegetném ezt manuálisan, ezt automatizáltan is megtehetem.

Én a Search Analytics for Sheets segítségével backupolom minden hónapban az adatokat. Mivel az adatok a GSC-ben késleltetve jelennek meg, ezért minden hónap 3-án fut le az előző hónap mentése.

webmester-eszkozok-backup

Tehát a 2017 szeptemberi adatokat október 3-án menti a rendszer, és erről emailt is küld nekem, ahogy a korábbi hónapokban is tette.

webmester-eszkozok-mentes-email

Ez később még 1 pontban hasznos lesz, ugyanis ez az email lesz a trigger egy következő lépéshez.

Egy lefutott backupnak ez az eredménye:

search-console-backup

A táblázatban benne van a:

  • kulcsszó: query
  • oldal: page
  • kattintások: clicks
  • megjelenések: impressions
  • kattintási arány: CTR
  • pozíció: position

Alul pedig az egyes hónapokat külön fülre gyűjti a rendszer. Így most már nem csak hónapokra, hanem évekre visszamenőleg megvannak a Search Console adatok minden fontos projektnél.

CTR modell

A CTR modellre használhatunk egy iparági benchmark modellt, átvehetünk mástól egyet vagy elkészíthetjük a sajátunkat. Itt pusztán annyit kell megadni, hogy az adott pozíciónál milyen kattintási értéket várunk el.

Ha a korábban hivatkozott általános iparági modellt alkalmazzuk, akkor:

  1. hely: 31%
  2. hely: 14%
  3. hely 10%

és így tovább. És ezt használjuk segédtáblaként.

Vagy készíthetünk egy sajátot is, a saját oldalunk adatai alapján.

Itt egy két oldali hipotézis-vizsgálat első fajú hibáját nézzük meg a z-próbával, amit kis elemszámú minták esetén érdemes módosított változatban használni:

módosított z-érték = (0.6745 * (egyedi CTR – pozíció medián CTR értéke)) / adott pozíció medián abszolút szórása)

Aztán ebből lehet visszaépíteni a CTR modellt.

Ha ez túl bonyolultnak hangzik, akkor egyszerűbb megoldás, ha pozíció alapján “klaszterezzük” és átlagoljuk az értékeket, valahogy így:

CTR-esettanulmany-klaszter

A lényeg, hogy kell egy segédtábla, aminek segítségével párosíthatjuk a backupban lévő valódi CTR értéket, a “becsült, benchmark” értékkel. Ezt rakom be az “Industry average” részbe a K-L oszlopokba.

CTR értékek párosítása

A CTR értékek párosítását egy sima FKERES (VLOOKUP) függvénnyel meg tudjuk tenni. Ez a függvény kikeresi az adott pozícióhoz tartozó becsült CTR értéket, amit itt a K és L oszlopokban látunk (ez a CTR modell segédtábla).

fkeres-vlookup-seo

Ezt feltölti nekünk a G oszlopot.

Különbség kiszámolása

Ezt követően egy különbségfüggvénnyel kiszámoljuk a tényleges és becsült érték különbségét, amit feltételes formázással én be is szoktam színezni, hogy könnyebb legyen áttekinteni. Ez kerül a H oszlopba.

A 2. sorban található (H2 cella) “-21.65%” azt jelenti, hogy a becsült CTR érték 30%, a valódi érték csak 8.35%, így ez a kulcsszó 21.65%-al alulteljesíti az átlagot. Míg a 11. sorban (H11) a 26.52% azt jelenti, hogy a várt 30% helyett 56.25%-ot hoz ez a kifejezés.

Ha sok száz, vagy ezer ilyen kifejezés van, akkor ezeket sok idő minden hónapban manuálisan végignézni. Főleg ha több projekten is dolgozunk. Itt jön képbe a script.

Google Script készítése

Minden egyes Google Sheethez lehet egyedi scriptet írni (Tools / Script Editor).

Google Script Editor

Itt pedig be lehet azt állítani, hogy milyen feltételek teljesülése esetén, milyen automatizáció lépjen életbe.

A Google tudásbázisa közepesen hasznos egyedi scriptek esetében, de Stack Overflown egész jó mintákat lehet találni. Kódolási tudás nélkül viszont nem érdemes nekiállni ilyeneket írni, mert nem fogod tudni átrágni magad rajta. Nekem például nem sikerült elsőre tökéletesen működő scriptet írni, ezért segítséget kértem Jäger Tomitól, a Shapr3D egyik fejlesztőjétől. Pár perc után viszont már ment minden, és azóta egyedül is mennek a scriptek és a módosítások.

Ez az egyik korai script verzió, amit használtam.

kattintási arány - ctr script

Ez a fenti script (“ctr outlier notification script”) a következőt csinálja:

  • végignézi a képletekkel ellátott Google Sheetet
  • megvizsgálja, hogy hol nagyobb 20%-nál a CTR eltérés pozitív vagy negatív irányban a modellhez képest (ezt állítja be a var outlyingDifference = 0.2)
  • erről pedig 2 külön emailt küld nekem
  • az emailben benne van a kulcsszó, az oldal, a megjelenések száma és a CTR különbség

De ennek bármelyik része testre szabható innentől kezdve.

A script pedig automatikusan lefut, amikor módosul a dokumetum (ezt a function onEdit(e) kódsor teszi lehetővé). De ezt akár manuálisan is futtatni lehetne. Úgy, hogy a dokumentum megnyitásakor egy gombnyomással fusson le a rendszer.

Ehhez egy extra kódrészlet kell megadni:

function onOpen() {
// Add a custom menu to the spreadsheet.
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Sheet 1', functionName: 'sendEmails'}
];
spreadsheet.addMenu('Run Script', menuItems);
}

Ami egy plusz menüpontot ad hozzá a Google Sheetshez menüsorához:

Script futtatása

Ezt megnyomjuk, és lefut a script. De még ezt az egy lépést is ki lehet akár hagyni és teljesen automatikusan is futhat a script.

Amikor kész a sikeres backup adott hónap 3-án, akkor kapok egy emailt. Ekkor annyit kell tenni, hogy importálom az adatbázist abba sheetbe, ahol fut a script.

Ehhez nem kell más, csak a mentett adatbázis Google Sheet linkje és az +importrange() függvény.

import range függvény

Az importrange automatikusan behúzza a backup spreadsheet megfelelő fülét (itt a “Jun 2017”-et), lefut a script és jön az email.

Itt persze lehetne használni a sima másolás-beillesztés (Copy-Paste) kombinációt is, úgyis tökéletesen működne a script. De mégis elegánsabb, hogy adott hónapban csak az adott fül hónapindexét kell módosítani (pl Jun-ról Jul-ra, vagy majd a szeptemberi adatokhoz Aug-ról Sep-re.), így lefut a script és jön az automatikus email értesítő.

Email értesítés

Ilyenkor 2 emailt kapok.

CTR email

Az egyikben a pozitív CTR outlierek vannak:

ctr-positive-outlier

A másikban pedig a negatív CTR outlierek:

ctr-negative-outlier

Persze lehetne az értesítő emailt tovább formázni, táblázatba rendezni vagy akár PDF-et csinálni belőle. A jó hír, hogy ezt is meg lehet írni a scriptben pár extra sorral. De szerintem a folyamat lényege így is érthető.

Olyan rendszert sikerült összerakni, ami automatikusan lefut, és nagyon sok hasznos információt tartalmaz.

A feltételek viszont nincsenek kőbe vésve. Ha például a 20%-os CTR differencia túl nagy, akkor lehet csökkenteni 10%-ra mondjuk. Vagy épp ki lehet szűrni a branded kifejezéseket. Be lehet állítani megjelenési limiteket (csak 50 impression feletti értéket mutasson például), de ez már mind csak a finomhangolás része innentől.

Ami jó hír, hogy minden hónapban az importrange függvény 3 karakterének módosításával végigfut a folyamat és automatikusan megkapom ezt a listát emailben. Sőt, meg tudnám adni másnak az email címét is. Akár egy csapattagét vagy mondjuk egy ügyfél emailjét is.

Ezt követően gyorsan végig lehet pörgetni szemmel a listát, és ha megakad a szemünk egy érdekes soron, akkor máris utána lehet menni, hogy ott mi a teendő.

  • Újra kell írni a meta descriptiont?
  • Ez a téma nagyon fut?
  • Új cikket kéne írni belőle hasonló kulcsszavakra fókuszálva?
  • Ezt a cikket feljebb kéne hozni a rangsorban?

A választ már nem lehet automatizálni, de a cél itt nem is ez. Hanem, hogy előszűrt és hasznos információ fusson be egy projektről anélkül, hogy órákat kéne túrni az adatokat.

Egy konkrét példa

A negatív CTR outlier listában szerepel a “digitális marketing eszközök” kifejezés, ahol átlagosan az 1.3 pozícióban szerepel egy cikkem, de csak 6.5%-os kattintási arányt ér. Pedig itt 30%-ot simán hozni kéne. Ez a CTR rettenetesen alacsony. Miért? Mert ez a cikk nem a digitális marketing eszközökről szól. Elég csak rákeresni:

digitális marketing eszközök

Az első organikus helyen egy olyan cikkem van, amit a Google hitelesnek gondol erre a kifejezésre, de ez a cikk nem is erről szól. Elég csak elolvasni a címét és a meta leírást. Nem véletlen, hogy a legtöbb felhasználó nem is kattint rá. Csak erre a kifejezésre (“digitális marketing eszközök”) havonta 40-en keresnek. A “digitális marketing”-re 90-en. Ha ennek a két kifejezésnek a 30%-át sikerül behozni az oldalra, akkor az havonta (40+90)*30% = 40 ember, ami évente nagyjából 500 extra látogatót jelent, csak organikus forgalomból. Elsőre nem tűnik soknak, de ha hetente találunk egy ilyen lehetőséget, akkor máris (52*500) 25.000+ embert hozunk be az oldalunkra, csak SEO-val. Ráadásul amíg a jó pozíció fennáll, addig ezt minden évben megtesszük majd.

Ezeket az apró ötleteket kell kiaknázni ahhoz, hogy akár 20-50%-kal növelni tudjuk az oldal SEO forgalmát. Akár pár hét, hónap leforgása alatt. Minél nagyobb az organikus forgalom, minél több kulcsszóra szereplünk jól, annál több ilyen ötletet tudunk automatikusan begyűjteni. Tehát ez egy önmagát segítő folyamat.

További script lehetőségek

Ez a folyamat persze nem csak a CTR értékekre alkalmazható. Más hasznos szűrési feltételeket is ki lehet találni. Küldhetek automatikus emailt olyan kifejezésekről, ahol:

  • az átlagos pozíció 11-14. között van, tehát pont a 2. oldal tetején. Itt a cél, hogy ezeket az első oldalra kell áthozni tartalmi optimalizálással / linkekkel.
  • a keresési mennyiség nagyobb mint 100, de nem szerepelek jól rá
  • újonnan belépő kulcsszó, ami a korábbi hónapokban nem szerepelt a kulcsszavak között
  • a pozíció 6-10. között van, tehát below the fold (BTF), amiket érdemes felhozni a 6. pozíció felé
  • a megjelenések száma több mint 100, de kevesebb mint 5 kattintás van

És így tovább. A lehetőségek tárháza végtelen.

Ezeket ki lehet szűrni manuálisan is minden hónapban, de minek órákat szánni rá, ha egy-két trükkel és egy okosan megírt scripttel ezt 10 mp alatt is, vagy akár teljesen automatizáltan is meg tudjuk tenni. Főleg akkor hasznos hogyha több projekten is dolgozik valaki párhuzamosan. Egy ilyen rendszerben óriási érték rejlik. És ugyanúgy működik egy kis cégnél, egy multinál vagy egy ecommerce vállalkozásánál is.

Sőt, akár PPC és Adwords kulcsszó adatok szűrésére és riportolására is lehet használni kis módosítással.

Érdekelnek ezek a scriptek?

Az elmúlt időszakban több ilyet is írtam saját felhasználásra. Ha nem szeretnél egyedül nekiállni ezeknek, akkor itt meg tudod őket venni (részletes beállítási útmutatóval, videókkal):

http://thepitch.hu/google-seo-scriptek/

seo script vásárlás

Szeretnél sajátokat írni? Egész nyugodtan. Szerintem érdemes kipróbálni Nektek is őket. Egyrészről jó bevezető a kódolásba, másrészt nagyon hasznosak is, mert tényleg jó eredményeket lehet velük elérni. Nekem 20-50% közötti forgalomnövekedést sikerült kizárólag ezekkel elérni néhány hónap alatt.

Te is használsz érdekes scripteket? Vagy van olyan feltétel, amit érdemes lenne felvenni a listára? Akkor írd meg kommentben!


Hozzászolások

Moderáld magad – vagy mi fogunk. :)
Na jó, nem fogunk, szóval csak ésszel!