Sådan identificerede vi købsfaserne for 16.290 søgeord på Google

Hvad er brugernes søgeintention på Google? Lær hvordan vi med en innovativ metode identificerer købsfasen for specifikke søgeord.

Matcher dit indhold på sitet, det som brugerne søger efter på Google?

Det er det store spørgsmål for mange e-commerce sites.

Hvis du har et website, som sælger rygsække, så vil Google være en vigtig trafikkanal. Men hvordan ved du, hvilket indhold som brugerne søger efter på Google, når de søger efter rygsække?

Der er 800 søgninger på Google om måneden på “rygsæk”. Tæller vi alle varianter med, hvor søgeordet indgår, så er der flere end 50.000 søgninger.

I hvilken købsfase befinder de sig?

Hvad er deres search intent?

Er de ved at finde ud af, hvilken rygsæk er den bedste til lige præcis deres behov, eller sidder de klar med kreditkortet i hånden?

Faktum er:

Hvis vi forstår brugernes søgeintention, så kan vi levere det rigtige indhold.

I dette blogindlæg vil jeg vise dig, hvordan vi med en innovativ metode taggede 16.290 søgeord for en kunde for at identificere søgeintentionen for hvert eneste søgeord. Med denne indsigt kan man forstå, hvilket indhold man skal udvikle, og hvordan man konstruerer bedre kunderejser.

søgeintention for 16K søgeord på Google

Det har konsekvenser, når sitet ikke matcher søgeintentionen

  1. Du leverer ikke en god brugeroplevelse, så en bruger forlader hurtigt sitet.
  2. Google fravælger at vise dit site på side 1, når du ikke leverer en ordentlig oplevelse. Du kan arbejde nok så meget med SEO såsom linkbuilding, men det vil være, som at slå i en dyne.

Lad os vende den om:

Forestil dig i stedet at hver gang, at brugerne søgte på søgeord relateret til “rygsække”, så leverede dit site det rigtige indhold. Du tager dem i hånden, når de spørger om “hvilken rygsæk er bedst?”, “hvilken rygsæk til at gå caminoen?” og “hvor meget plads i rygsækken?”.

Ikke blot vil du nu være brugernes primære brand ved konstant at levere en stærk brugeroplevelse. Google vil også belønne dit site med en perlerække af topplaceringer på diverse “rygsæk” søgeord.

At tagge søgeord efter købsfase er en vigtig opgave for at kunne få indsigt i, om ens site rammer “skævt”. Traditionelt set fokuserer store webshops på den sene del af købsrejsen og ignorerer i den grad den tidlige del. De er heller ikke særligt opmærksomme på at hjælpe kunder efter et køb med diverse spørgsmål. Vi kan nu vise med data, at de købsfaser ikke må undervurderes.

Har vi styr på tagging, så er det langt nemmere at matche sitet 1:1 med brugerne.

Men hvordan identificerer jeg brugernes søgeintentioner, og hvordan skalerer jeg til tusindvis af søgeord?

For det er en tung, manuel opgave at tagge søgeord, og det er svært at klassificere søgeord korrekt.

Men fortvivl ikke…

For i 2019 så jeg lyset!

 

Historisk har man arbejdet med tagging af søgeord ud fra en mavefornemmelse. I dette blogindlæg vil jeg bryde med denne metode.

Men ikke nok med det. Kvaliteten af taggingen er langt højere end de traditionelle metoder.

Til sidst i blogindlægget får du manualen til selv at prøve det af via Python og Power BI.

Men først…

Hvad er de 4 søgeintentioner?

Vi vil tage udgangspunkt i de 4 søgeintentioner, som opstår i forbindelse med en normal købsrejse. Jeg bruger nedenfor “rygsæk” som det praktiske eksempel:

  1. Informational: Brugeren har fået aktiveret et behov og søger efter en løsning. Philip Kotler kalder dette for Need arousal. I denne købsfase bliver der som udgangspunkt søgt på symptomer og senere på løsningen, men uden at det bliver for specifikt. Det kan være, at brugeren til at starte med søger efter, hvad man skal have med på Camino de Santiago, den lange vandretur gennem Spanien. Her giver en rygsæk mening, så brugeren vil gennemføre de første søgninger på løsningen. Det kunne f.eks. være en simpel sammenligning af rygsække (“bedste rygsække til vandretur”). Akademisk taler man om at brugeren begynder at forme en forståelse for, hvilke kriterier, som man evaluerer ud fra. Derfor ligger der en stor opgave i at uddanne brugeren til at kigge i den retning, hvor vi er stærke. Det an være produktattributter, men det kan også være vores værdisæt (f.eks. at produktet er økologisk).
  2. Commercial: brugeren går fra en meget bred løsning, hvor de søger inspiration og begynder at definere løsninger til at konkretisere løsningen og yderligere skærpe søgningen ved valg af attributter. Et eksempel på en søgning kunne være “Rygsæk til 30 liter”. I grænselandet til næste fase Transactional vil der også være søgninger efter specifikke mærker og sammenligning af forskellige rygsækmærker.
  3. Transactional: Brugeren har uddannet sig selv om, hvilken rygsæk som er den perfekte til Caminoen og søger nu aktivt efter modellen, pris og evt. hvor den fysisk kan købes.
  4. Navigational: Denne type søgninger dækker over vores brandsøgninger. De dækker alle købsfaser. Hvis brugeren har valgt, at vi er deres primære brand, så skal vi kunne levere, når de søger på Google efter vores brand + produkt, model eller butik, og når de vil købe rygsækken. Eller når de har spørgsmål til vores betingelser omkring håndtering af returvarer, garanti eller generelle spørgsmål, efter at de har købt. Måske har de her spørgsmål om, hvordan man pakker bedst til den forestående tur, eller hvordan man vasker en rygsæk efter Caminoen. Hvis man skal skabe loyalitet, så starter det lige præcis dér, hvor brugeren har et spørgsmål til det produkt, som de har købt.

Se hvordan de fordeles i nedenstående kunderejsemodel.

fire faser af købsrejsen

Ovenfor blev de 4 brugerintentioner defineret.

Det næste store spørgsmål er så…

Hvordan tagger vi søgeord efter søgeintention?

Som nævnt tidligere har man traditionelt tagget søgeord manuelt eller semi-manuelt v.h.a. forskellige filtre.

Det er en kæmpeopgave, når der skal tagges tusindevis af søgeord for et website, og man skal vurdere, i hvilken kategori hvert eneste søgeord passer ind.

Men i april 2019 skete der noget.

Benjamin Burkholder udgav et indlæg på Medium, om automatisk tagging af søgeord ud fra, hvad Google vælger at vise.

Det var en genial indsigt.

Hvorfor gætte på søgeintentionen, når Google allerede har valgt at vise, hvad deres data viser, hvilket resultat er det vigtigste for brugerne?

Hvis Wikipedia rangerer nr. 1 på Google på et specifikt søgeord, så er søgeintentionen højst sandsynligt Informational. Vælger Google at vise en kategoriside, så er der en god chance for at intentionen er Commercial.

Vejen var dog stadig lang

For da vi testede Benjamin Burkholders script af, var kvaliteten af tagging ikke som forventet. F.eks. havde han valgt som en regel, at bliver der vist Google Shopping, så skal søgeordet tagges som Transactional. Der bliver smidt masser af dumme penge efter betalt annoncering, så vi indså hurtigt, at betalte søgeresultater kun ville mudre forståelsen af søgeintentionen.

Vi valgte derfor kun at fokusere på organiske søgeresultater. Vi startede med at scrape top 10 organiske resultater på Google. Top 10 var dog for bredt, fordi der vises flere forskellige søgeintentioner. Og da vi ikke går efter at ramme søgeintentionen for resultater i bunden på side 1 så fokuserede vi på top 3 resultater i næste scrape.

Efter en del iterationer var det først, da vi baserede tagging udelukkende på den organiske placering 1, at kvaliteten levede op til vores forventninger. Øvelsen bestod nu i, hvordan vi prioriterede filtreringen.

Her er nogle af reglerne:

Det gav sig selv, at alle Wikipedia søgeresultater er Informational, og at alle Pricerunner søgeresultater skulle være Transactional.

Navigational søgninger er den nemmeste, da det er alle søgninger hvor ens brand er nævnt (f.eks. “Lego brandstation” eller “Spejdersport rygsæk”).

Ved at arbejde i Power BI er det meget fleksibelt at oprette regler på tværs af filtre. D.v.s. at vælge at basere tagging på søgeordet i visse tilfælde, udelukker ikke at vi i andre situationer kan basere tagging på topresultatet på Google, title tag eller URL, når det giver mening. F.eks. skal produkttests og produktsammenligninger tagges som Commercial, og her har vi brug for title tagget. Vi bruger også title tagget til at identificerer Informational søgeintentioner, når søgeord som “Hvordan” og “Hvad”, optræder, så er det typisk How to guides og inspirationsindhold, som bliver vist.

Langt de fleste søgeord har Commercial søgeintention. Det vil klart være at foretrække, at man opdeler denne kategori i Early Commercial og Late Commercial, hvor man i den tidlige del ser på brede søgninger på løsningen (“løbestrømper”), og i den senere del løsning plus attribut (løbestrømper i uld).

Det kan betale sig at investere tid i at filtrere.

Man skal også gøre sig klart, hvor man vil skelne mellem Informational og Commercial søgeintentioner. En konkret produkttest er Commercial, mens produkttest af 12 forskellige produkter gør, at søgningen stadig er meget bred og søgeintentionen definerer vi som Informational. Her er vores regel, at indeholder title tag “Bedste” og et højt tal, så skal den tagges som informational.

 

informational søgeintention
Lad os opsummere de store aha-indsigter inden vi går videre.

At primært basere tagging på det organiske topresultat på Google fremfor egen vurdering var et kæmpe skridt.

At lave en hybrid hvor man i visse tilfælde tagger ud fra søgeord og andre gange ud ffra title tag, URL eller aet ndet signal var et andet gennembrud.

Jo mere man arbejder med filtre i Power BI, jo bedre bliver kategoriseringen. De fleste søgeord enden i Commercial-kategorien, men investerer man tid i en mere omhyggelig filtrering, så kan vi få endnu bedre resultater.

Hvad får man ud af at tagge 16.290 søgeord?

Som nævnt i indledning har vi i en ny case tagget 16.290 søgeord for en større omnichannel spiller i Danmark. Hvad kan man udlede af data? Lad os gå tilbage til vores eksempel fra før med “rygsække”. Ved at lave en søgning i vores Power BI dashboard kan vi nu hurtigt forstå, hvordan søgevolumen er fordelt på “Rygsæk”:

search intent distribution

Det er tydeligt, at dette overvejende er Commercial søgninger. D.v.s at hvis vi vil eje kunderejsen, så skal det store slag slås her. Når man ser ned i data, så dominerer kategorisider. Men der er også 3.000 søgninger om måneden på Informational søgninger, hvor “rygsæk” er inkluderet.

Se f.eks. nedenstående søgning. 1.200 søgninger på “backpacker rygsæk” og “backpack rygsæk”. Mavefornemmelsen siger kategoriside, Google siger, at du skal lave en guide.

søgeintention informational

Det kan godt være, at det ikke virker som om, at der er meget at hente på Informational søgninger, men hvis man først forbinder symptomsøgninger som f.eks. søgninger på Caminoen, så har vi lige pludselig 15.000 ekstra Informational søgninger.

informationssøgninger på Google

Der findes også en del søgninger på Transactional. Et af de store filtre er, at hvis Pricerunner rangerer nr. 1, så definerer vi søgeordet i denne kategori. Man kan altid argumentere for at søgningen er Commercial, da brugeren sammenligner produkter. Men da Pricerunner fokuserer benhårdt på transaktioner, og Google kan følge med i interaktionerne, så ser vi det som Googles bedste forsøg på at give den købsklare bruger det hurtigste resultat for at lave en ordre.

transaktion søgninger

Jeg vil også gerne identificere, hvornår Google viser en produktside som topresultat. Det er ikke umuligt, men da URL strukturen er forskellig fra site til site, så skal man arbejde med mange filtre for at fange produktsider.

Man kan finde masser af indsigter, men det vigtigste er at, data normalt vil vise, at man skal lave indhold til alle fire købsfaser. Og det er den primære vigtige lektion.

Vil du prøve det selv?

Lad os komme i gang.

Hvordan tagger man søgeord efter søgeintention?

Til den semi-automatiserede proces har vi brug for følgende:

  1. listen over vores søgeord.
  2. Vores værktøj til at scrape Google. Vi bruger serpapi.com, som koster 1 cent per søgeord. Der findes gratis alternativer, men vi har endnu ikke fundet den helt perfekte løsning.
  3. Vores Python script (eller R script), som trækker data fra serpapi.com og hvorfra, at vi opstiller reglerne for, hvordan søgeord skal tagges.
  4. Power BI til at visualisere tagging. Man kan sikkert også bruge Excel, men det er ikke nogen hemmelighed, hvad min holdning er til dette værktøj.

Disclaimer: Serpapi hævder selv, at de kan scrape 6.000 søgeord i timen. Det var ikke min oplevelse. Det tog en hel del flere timer, men denne del af processen bør kunne gøres langt hurtigere.

Indsigter fra tagging af 16.290 søgeord med Search Intent Manual

Ved hjælp af 2 stærke steps kan vi hurtigt få tagget søgeordene op.

 

Manualen er rettet mod Windows brugere (For MAC brugere, benyttes nogle andre syntakser i Command Prompt).

 

Inden vi går i gang med manualen, skal følgende være installeret:

  • Python 3.8.0: https://www.python.org/downloads/
  • NVM installeret i Command Prompt
  • PIP installeret i Command Prompt
  • Installeret google-search-results med pip:
    • Dette gøres ved at køre følgende i Command Prompt:
      • pip install google-search-results
  • Installeret et program som Visual Studio Code, til at kunne redigere i koden
  • Microsoft Power BI

 

Så kan vi gå i gang:

STEP 1: Data hentes gennem SERPAPI

  1. Hav’ din liste af søgeord klar
  2. Download denne ZIP-fil fra Github og pak den ud:
    1. https://github.com/ibebeebz/search-intent-categorizer
  3. Mappen indeholder i forvejen en Python fil med navnet ”serp-intent-categorizer-static.py”, denne har vi modificeret og lavet en version 2.0, som er indsat forneden. Denne kopieres og gemmes som en ny python fil, i samme mappe som hentet fra Github. Dette kan enten gøres ved at kopiere nedenstående ind i en txt fil, og gemmes ved at skrive ”.py” for enden af navngivelsen
  4. Script:

from serpapi.google_search_results import GoogleSearchResults

api_key = 'INDSÆT-DIN-API-NØGLE-HER'

downloadFile = 'serp-intent-results.csv'

file = open(downloadFile, 'w',encoding='utf16')

columnHead = 'Query,Search Intent Type,Paid Ad Companies,Top 1 Organic Results\n'

file.write(columnHead) #'\u2192'

withopen('serp_intent_queries.txt') as content:
content = [line.rstrip('\n') for line in content]

 

for line in content:'
print(f'Analyzing {line}...')
params = {
"q": str(line),
"location": "Denmark",
"hl": "da",
"gl": "dk",
"google_domain": "google.dk",
"api_key": api_key,
}

query = GoogleSearchResults(params)
dictionary_results = query.get_dictionary()

# Information Search Intent
serpURLs = []
orgRes = dictionary_results['organic_results']

for url in orgRes:
if url['position'] <= 1:
serpURLs.append(url['link'])
serpURLs.append(url['title'])

try:
answerbox = dictionary_results['answer_box']
paa = dictionary_results['related_questions']

except KeyError:
pass
else:
print(f'{line}, Information Search Intent, ,"{serpURLs}"')
file.write(f'"{line}", Information Search Intent, ,"{serpURLs}"\n')

#Navigational Search Intent
try:
knowledge_graph = dictionary_results['knowledge_graph']
site_links = dictionary_results['organic_results'][0]['sitelinks']
except KeyError:
pass
else:
print(f'{line}, Navigational Search Intent')
file.write(f'"{line}", Navigational Search Intent, ,"{serpURLs}"\n')

#Transactional
try:
shopping_ads = dictionary_results['shopping_results']
except KeyError:
pass
else:
print(f'{line}, Transactional Search Intent, ,"{serpURLs}"')
file.write(f'"{line}", Transactional Search Intent, ,"{serpURLs}"\n')

#Paid Ads Present
try:
paid_ads = dictionary_results['ads']
except (KeyError, NameError):
pass
else:
competitors = []
for data in paid_ads:
competitors.append(str(data['link']))
row = f'"{line}", Paid Search Ads Present,"{competitors}"\n'

# print(row)
file.write(row)

#Commercial Investigation
results = []
bottom_ads = ''
try:
ads = dictionary_results['ads']
answerbox = dictionary_results['answer_box']
paa = dictionary_results['related_questions']
organic_results = dictionary_results['organic_results']
for pos in organic_results:results.append(1)

if len(results) > 10:
bottom_ads = True
except KeyError:
pass
else:
if bottom_ads != '':
print(f'{line}, Commercial Investigation, ,"{serpURLs}"')
file.write(f'"{line}", Commercial Investigation, ,"{serpURLs}"\n')print(f'Analyzing {line}...done.')

file.close()

 

5. Scriptet skal modificeres:
  • I linje 2 skal din API nøgle til SERPAPI skrives ind:
  • Et par linjer længere nede bestemmes geografisk lokation for Google. På nuværende tidspunkt er scriptet indstillet til dansk.
    • Det markerede skal tilrettes til det ønskede land du foretrækker søgningen skal forestages i

 

6. Scriptet køres i Command Prompt

For at køre scriptet i Command Prompt skal vi åbne filen derinde

Det gør vi ved at skrive cd +filpath til mappen, vi har hentet fra Github

Derefter indtastes ”Dir” i Command Prompt, for at tjekke indholdet i mappen, for at være sikker på, at Command Prompt har åbnet den korrekte mappe.

 

 

Til slut skrives: ”python+ filnavn”

7. Data hentes

Scriptet kører et søgeord ad gangen, så afhængig af, hvor mange søgeord, der er indtastet, vil scriptet tage.

 

8. Resultatet bliver udskrevet til en CSV-fil

Resultatet vil blive udskrevet i en fil kaldt: ”serp-intent-results”, i filen fra Github.

Step 2: Data renses, regler implementeres og visualiseres i power bi

Filen ”serp-intent-results” åbnes i Power Bi.

 

Første step er at rense data i Power BI
  1. I CSV-filen, er alle kolonnerne indsat i én kommasepareret kolonne, som transformeres ind til kolonner i Power Bi.
  2. Derefter skal vi rense og fjerne det unødvendige.
    1. På nuværende tidspunkt vil URL+title være indsat i samme kolonne, disse skal splittes.
    2. Da vi laver vores egen regler, fjerner vi kolonnen: Search Intent Type
    3. Vi skal ikke bruge kolonnen: ”Paid Ad Companies”, denne kolonne slettes.
    4. Dataet skal renses og værdier skal erstattes, hvis nødvendigt
      1. Æ, Ø, Å
      2. [’
      3. Fjerne dubletter i kolonnen ”Query”
      4. Erstatte kolonnerne ”null” med ”no-data”. Dette er nødvendigt, da det kan risikere at forstyrre vores regler.

3. Efter dette er gjort, skal resultatet i Power Bi se således ud, inden vi begynder at implementere vores regler:

 

 

Nu skal vi i gang med at implementere vores regler.

For, at de endelige search intent regler kan komme i action, skal vi have oprettet 5 kolonner i Power Bi:

1. 1 kolonne som tjekker om søgeordet indeholder et nummer

Dette gøres med en ”Conditional column” på følgende måde:

2. 1 kolonne som tjekker antallet af ord i søgeordet

Dette gøres med en ”custom column”, hvor vi tæller antallet af mellemrum:

3. 1 kolonne som tjekker om søgeordet indeholder et brandnavn

Dette gøres med en ”conditional column”, hvor vi skriver alle brands ind indenfor                          industrien.

4. 1 kolonne som laver reglerne; navigational, informational, transactional og commercial

En ”custom column”, hvor vi skriver alle reglerne ned med if statements.

5. 1 kolonne ude i Power Bi ved hjælp af DAX, som krydser og prioriterer kolonnernes regler.

Én af reglerne resulterer i, at hvis søgeordet indeholder ”et nummer” og et ”brand”, er intentionen med søgeordet transaktion. Denne regel slår ikke igennem med en ”custom column”. Af denne grund opretter vi en kolonne ude i visualiseringen, hvor vi benytter os af en switch-statement.

I denne kolonne benytter vi af os den allerede eksisterende kolonne; Search intent, som selv blev oprettet i inde under redigering af queries.

Kolonnen oprettes ved at højre klikke ude i tabellen under filen. Her benyttes DAX og skrives følgende:

Nu er reglerne implementeret, og klar til at blive visualiseret i Power Bi. Det er er den sidst oprettede kolonne med DAX, som benyttes til at visualiseres med, da det er denne der slår igennem med alle reglerne.

Opsummering

Med tagging af købsfaser kan vi forstå, hvilket indhold som brugerne søger efter. Mange webshops er notorisk dårlige til at levere indhold i andre købsfaser end Commercial og Transactional, så ved at tagge kan man påvise, at her går man glip af brugernes søgninger.

Med en stærk cocktail af værktøjer som Serpapi, Python og Power BI kan vi automatisere en traditionelt meget tung manuel proces som tagging af købsfaser.

Vi er der ikke helt endnu. Serpapi var ret langsom til at scrape. Der er helt sikkert hurtigere værktøjer. M.h.t. filtrering så vil den være forskellig fra gang til gang, men metoden, som vi har defineret her, virker til at være den optimale. At krydse top 1 søgeresultat på Google med søgeord fra title tags og generelle søgeord er en god hybrid til en klassificering af søgeintentioner med høj kvalitet. Man skal dog investere en del tid i at få sine filtre på plads.

Men uanset hvor stærke værktøjer, som vi har, så starter det hele med en indsigt, som er: “Vi behøver ikke selv tagge søgeordene, for Google har allerede gjort det for os”. At bruge Googles data fremfor vores egen mavefornemmelse er den aller vigtigste erkendelse i dette blogindlæg, og en erkendelse som fundamentalt vil ændre måden at tagge på.

Vil du vide mere
om tagging af søgeord?

Så kontakt Kenneth, han kan fortælle dig meget mere

client consultant