Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google Sheets + Search Console: kannibaliseringslarm

Rickard Andersson Partner, Nodenordic.se

Ditt kalkylark för sökordsspårning säger ”allt ser bra ut”. Google Search Console säger att två (eller fem) olika URL:er slåss om samma sökfråga. Och du får reda på det först efter att rankingen börjar svaja, trafiken dippar eller en kund frågar varför det inte är ”huvudsidan” som visas.

SEO-ansvariga känner av det först eftersom de äger resultatet. Byråägare och inhouse-marknadsförare dras in härnäst, oftast mitt i en sprint. Den här automatiseringen för cannibalization alerts håller övervakningen konstant och diagnosen konsekvent, utan att du behöver bo i Search Console-flikar.

Det här arbetsflödet bevakar ditt Google-kalkylark, hämtar de senaste 30 dagarna från Search Console för upp till fyra sajter, kör en AI-baserad riskbedömning och skriver sedan felfria, kundklara anteckningar tillbaka i arket. Du får se hur det fungerar, vad du behöver och vilka resultat du kan förvänta dig.

Så fungerar automatiseringen

Hela n8n-arbetsflödet, från trigger till slutligt resultat:

n8n Workflow Template: Google Sheets + Search Console: kannibaliseringslarm

Problemet: kannibalisering gömmer sig mitt framför ögonen

Sökordskannibalisering är lurigt eftersom det ser ut som ”täckning”. Du ser att en sökfråga driver exponeringar, men klicken är utspridda över flera URL:er. Rankingen hoppar, CTR sjunker och ingen kan med säkerhet säga vilken sida som ska vinna. Sedan kör du den manuella loopen: exportera Search Console, filtrera på sökfråga, gruppera per sida, jämför positioner och skriv anteckningar som förklarar allt på begripligt språk. Det funkar en gång. Det är brutalt när du gör det varje vecka för flera kunder, med nya sökord som läggs till hela tiden.

Det växer snabbt. Här är var det oftast fallerar.

  • Du lägger cirka 30 minuter per sajt bara på att hämta och forma om samma 30-dagarsdata från Search Console.
  • Sökord läggs till i spårningsarket, men ingen kommer ihåg att kontrollera om flera URL:er nu rankar på dem.
  • När 3–5 sidor konkurrerar blir prioriteringen en åsikt i stället för en repeterbar riskregel.
  • Kundanteckningar tar längre tid än analysen eftersom du måste förklara ”varför det här är riskfyllt” varje gång.

Lösningen: AI-driven övervakning av kannibalisering i Sheets

Det här n8n-arbetsflödet gör ditt Google-kalkylark till en levande monitor för kannibalisering. Det börjar med att bevaka arket efter sökordsändringar (varje minut), laddar sedan dina målsökord och de kundsajters URL:er du bryr dig om. Därefter skickar det varje kund genom sin egen Google Search Console API-förfrågan och hämtar en felfri 30-dagarsögonblicksbild: sökfrågor, sidor, positioner, klick, exponeringar och CTR. Arbetsflödet grupperar råresultaten per sökord, stämmer av dem mot sökorden du spårar och filtrerar bort allt som faktiskt inte rankar. Till sist granskar en AI-agent mönstret ”vilka sidor rankar på den här sökfrågan”, tilldelar en risknivå med tydlig motivering och åtgärdsförslag, och skriver tillbaka allt i samma kalkylark.

Arbetsflödet börjar i Google Sheets, så teamet behöver inget nytt verktyg. Search Console-data hämtas och normaliseras för upp till fyra kundsajter, och AI sammanfattar överlappet i konkurrensen. Resultatet hamnar tillbaka i Google Sheets, redo att sorteras, prioriteras och klistras in i en kunduppdatering.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du hanterar 4 kundsajter och spårar 50 sökord per sajt. Manuellt tar det ofta runt 2 timmar per sajt att hämta 30-dagars GSC-data, gruppera per sökord och skriva en kort notering, så du tappar större delen av en dag. Med det här arbetsflödet lägger du till eller redigerar sökord i Google-arket, väntar några minuter på GSC-hämtningarna och AI-analysen, och arket fylls med risk, motivering och nästa steg. Du granskar fortfarande rekommendationerna, men det stökiga är redan avklarat.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra spårade sökord och resultat.
  • Google Search Console för data om prestanda per sökfråga/sida.
  • OpenAI API-nyckel (hämta den från sidan för API-nycklar i din OpenAI-dashboard).

Kunskapsnivå: Medel. Du kopplar Google-inloggningar, lägger till en API-nyckel och matchar dina kolumner i arket mot arbetsflödets fält.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett sökord ändras i Google Sheets. Arbetsflödet körs på en frekvent Google Sheets-trigger, så nya sökord eller ändringar startar automatiskt en uppdaterad kontroll.

Kundsajter skickas till rätt datahämtning. Det laddar dina kund-URL:er och använder sedan enkel styrning av typen ”om detta är kund 1/2/3/4” så att varje property går igenom rätt Search Console-förfrågan.

Search Console-data grupperas till något du kan agera på. HTTP-förfrågningarna hämtar 30 dagars mätvärden, och sedan aggregerar arbetsflödet per sökord och stämmer av resultaten mot din lista över spårade sökord. Saknade sökord kan flaggas och hoppas över, vilket håller utdata strukturerad.

AI sätter risk och skriver noteringen. AI-agenten granskar hur många sidor som konkurrerar och hur stark varje sida är, och levererar sedan strukturerade fält som risknivå, motivering, observationer och åtgärdssteg. De fälten skrivs tillbaka i arket som rader redo för rapportering.

Du kan enkelt justera risktrösklarna så att de matchar hur offensivt teamet vill jobba (till exempel att behandla ”2 sidor i topp 10” som Måttlig i stället för Låg). Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera Google Sheets-triggern

Konfigurera arbetsflödet så att det bevakar ändringar i ert kalkylark för nyckelordsspårning.

  1. Lägg till noden Keyword Sheet Watcher och ställ in Poll TimeseveryMinute.
  2. Ställ in Document till https://docs.google.com/spreadsheets/d/[YOUR_ID]/edit och Sheet Name till Keywords.
  3. Autentiseringsuppgifter krävs: anslut era Google Sheets OAuth2-autentiseringsuppgifter.
  4. Bekräfta att Keyword Sheet Watcher skickar utdata parallellt till både Retrieve Client URLs och Load Target Keywords.
Tips: säkerställ att arket har en flik Keywords och att kalkylarks-id:t matchar det cachade arknamnet för att undvika att triggern inte matchar.

Steg 2: anslut datakällor i Google Sheets

Läs in klient-URL:er och målnyckelord från Google Sheets innan routning och analys.

  1. Konfigurera Retrieve Client URLs med Document satt till Client URLs och Sheet Name satt till URL.
  2. Konfigurera Load Target Keywords med Document satt till Client URLs och Sheet Name satt till Keywords.
  3. Autentiseringsuppgifter krävs: anslut era Google Sheets OAuth2-autentiseringsuppgifter till både Retrieve Client URLs och Load Target Keywords.
  4. Verifiera att Retrieve Client URLs skickar utdata parallellt till Client 1 Router, Client 2 Router, Client 3 Router och Client 4 Router.
⚠️ Vanlig fallgrop: arbetsflödet förväntar sig en kolumn med namnet Client Website i URL-arket. Om den saknas eller heter något annat kommer routrarna aldrig att matcha.

Steg 3: konfigurera klientroutning och GSC-anrop

Routa varje klient till rätt Google Search Console-anrop och hämta data för query/sida.

  1. I Client 1 Router ställer ni in villkoret Left Value till {{$json['Client Website'].trimStart().trimEnd()}} och Right Value till https://client-one.example/.
  2. I Client 2 Router ställer ni in villkoret Right Value till client-two.example och använder {{$json['Client Website'].trimStart().trimEnd()}} som vänstervärde.
  3. I Client 3 Router och Client 4 Router ställer ni in Right Value till https://client-three.example/ respektive https://client-four.example/.
  4. För alla fyra noderna GSC Request Client 1GSC Request Client 4 ställer ni in Method till POST och JSON Body till { "startDate": "{{ $now.minus(30, 'days').format('yyyy-MM-dd') }}", "endDate": "{{ $now.format('yyyy-MM-dd') }}", "dimensions": ["query", "page"] }.
  5. Autentiseringsuppgifter krävs: anslut era Google OAuth2 API-autentiseringsuppgifter till alla fyra GSC-anropsnoder.

Steg 4: aggregera och stäm av nyckelordsdata

Kombinera GSC-resultat med listan över målnyckelord och ta bort saknade poster.

  1. Låt JavaScript-logiken vara oförändrad i Aggregate Keywords C1, Aggregate Keywords C2, Aggregate Keywords C3 och Aggregate Keywords C4 för att gruppera nyckelord per URL med CTR, klick, visningar och position.
  2. Ställ in Combine All GSC Inputs till Number Inputs 5 för att slå ihop alla fyra klientaggregat plus Load Target Keywords.
  3. Lämna koden i Reconcile Sheet Keywords som den är för att matcha arkets nyckelord mot GSC-data och flagga saknade nyckelord med not_found_in_gsc.
  4. I Exclude Missing Keywords ställer ni in villkoret Left Value till {{$json.status}} och Right Value till not_found_in_gsc med operatorn notEquals.
Tips: eftersom Keyword Sheet Watcher körs parallellt med Retrieve Client URLs och Load Target Keywords, säkerställ att båda arken ligger i samma Google Drive-konto för att undvika behörighetskonflikter.

Steg 5: konfigurera AI-analys av kannibalisering

Analysera risk för kannibalisering med AI-agenten och strukturerad output.

  1. I Cannibalization Risk Analyst behåller ni prompten i Text med uttrycken {{$json.keyword}} och {{ JSON.stringify($json.urls) }}.
  2. Ställ in OpenAI Chat Model till modellen gpt-4o och anslut den som språkmodell för Cannibalization Risk Analyst.
  3. Behåll JSON-schemat för Structured Output Parser som angivet för att säkerställa strukturerad output.
  4. Autentiseringsuppgifter krävs: anslut era OpenAI API-autentiseringsuppgifter till OpenAI Chat Model (inte till parsern).
⚠️ Vanlig fallgrop: Structured Output Parser är en undernod; lägg till autentiseringsuppgifter i OpenAI Chat Model, inte i själva parsern.

Steg 6: konfigurera output till Google Sheets

Skriv tillbaka analysresultaten till ert dataark med logik för append/update.

  1. I Write Analysis to Sheet ställer ni in Operation till appendOrUpdate och väljer Sheet Name data.
  2. Mappa kolumnerna exakt enligt definitionen, inklusive Data satt till {{$json.output['URLs for Keyword'].map(i => `${i.url} | Position: ${i.position} | Clicks: ${i.clicks} | Impressions: ${i.impressions} | CTR: ${i.ctr}`).join('\n')}}.
  3. Ställ in Date till {{$now.format('yyyy-MM-dd')}} och Status till {{$('Reconcile Sheet Keywords').item.json.status}}.
  4. Autentiseringsuppgifter krävs: anslut era Google Sheets OAuth2-autentiseringsuppgifter till Write Analysis to Sheet.

Steg 7: testa och aktivera ert arbetsflöde

Validera arbetsflödet end-to-end innan ni aktiverar det för kontinuerlig övervakning.

  1. Använd Execute Workflow för att köra ett manuellt test med en exempelrad i arket Keywords.
  2. Bekräfta att Keyword Sheet Watcher triggar och att både Retrieve Client URLs och Load Target Keywords körs parallellt.
  3. Verifiera att Write Analysis to Sheet skriver strukturerade resultat, inklusive Risk Level, Summary och Target page.
  4. Slå på arbetsflödet som Active för att starta kontinuerlig övervakning.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Search Console-inloggningar kan löpa ut eller sakna åtkomst till en specifik property. Om det skapar fel, kontrollera Google-anslutningen i n8n och bekräfta att kontot har åtkomst till varje sajt i Search Console.
  • Om du använder Wait-noder eller träffar Search Console API under perioder med hög belastning varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet och önskat rekommendationsformat tidigt, annars kommer du att redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för cannibalization alerts?

Cirka en timme om dina Google-konton är redo.

Behöver jag kodkunskaper för att automatisera cannibalization alerts?

Nej. Du kopplar främst konton och mappar dina kolumner i Google-arket. Arbetsflödets logik är redan byggd; du konfigurerar det för dina kunder.

Är n8n gratis att använda för det här arbetsflödet för cannibalization alerts?

Ja. n8n har ett gratisalternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för OpenAI API, som oftast är några cent per körning beroende på hur många sökord du analyserar.

Var kan jag hosta n8n för att köra den här automatiseringen för cannibalization alerts?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för cannibalization alerts för fler än 4 kunder?

Ja, men du behöver duplicera kundstyrningen och Search Console-förfrågningsvägen. I praktiken lägger du till en gren till i ”kundrouter”, en till HTTP-förfrågan för den propertyn och en till aggregeringsväg innan allt slås ihop. Många team anpassar också AI-utdata så att den matchar deras ticket-mall, till exempel ”rekommenderad kanonisk URL”, ”sidor att slå ihop” och ”interna länkar att uppdatera”.

Varför misslyckas min Google Search Console-anslutning i det här arbetsflödet för cannibalization alerts?

Oftast beror det på utgångna Google-inloggningar eller att det anslutna kontot saknar åtkomst till någon av properties. Återanslut Google i n8n och dubbelkolla att exakt URL för Search Console-propertyn matchar det som arbetsflödet begär. Rate limiting kan också dyka upp om du hämtar många sökfrågor över flera sajter samtidigt, så det hjälper att sprida ut körningarna lite.

Hur många sökord klarar den här automatiseringen för cannibalization alerts?

I n8n Cloud Starter begränsas du av antal körningar per månad, inte av antal sökord, så den praktiska gränsen beror på hur ofta arket ändras. Om du kör egen hosting finns ingen körningsgräns; då handlar det mest om din server och att Search Console API svarar snabbt. För många små team är några hundra sökord över en handfull sajter inga problem. Om du spårar tusentals vill du minska hur ofta det körs och batcha sökorden mer noggrant.

Är den här automatiseringen för cannibalization alerts bättre än att använda Zapier eller Make?

Ofta, ja. Det här arbetsflödet använder förgrening per kund, sammanslagning av flöden och strukturerad AI-utdata, vilket tenderar att bli krångligt eller dyrt i Zapier-liknande automatiseringar med ”en väg”. n8n ger dig dessutom möjligheten till egen hosting, vilket är en stor fördel om du kör kontroller ofta. Om du bara behöver ett enkelt flöde som ”skicka mig ett meddelande när rankingen förändras” kan Zapier eller Make gå snabbare att sätta upp. Om du är osäker, prata med en automationsexpert och beskriv din rapporteringskadens och sökordsvolym.

När detta väl är igång slutar kannibalisering att vara en överraskning och blir en sorteringsbar lista. Arbetsflödet sköter den repetitiva kontrollen. Du fattar besluten som faktiskt flyttar rankingen.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal