Rank tracking låter enkelt tills du gör det för hand. Flikar överallt. Inkognitosökningar. ”Vänta, varför ligger det här sökordet plötsligt på sida 4?” Automatisering av SERP-rank tracking löser den röriga delen: att samla in konsekventa Google-resultat utan den dagliga copy-paste-tröskan.
SEO-ansvariga känner av det i veckorapporteringen. Detsamma gäller marknadsansvariga som behöver snabba svar till intressenter, och byråer som inte har råd med ”vi kollar senare”. Det här flödet gör en återkommande uppgift till ett repeterbart system.
Du sätter upp ett n8n-flöde som hämtar Google-SERP:ar från ScrapingRobot, rensar resultaten, beräknar placeringar och skickar utdata till Google Sheets för pålitliga tabeller du faktiskt kan lita på.
Så fungerar automatiseringen
Här är hela flödet du kommer att sätta upp:
n8n Workflow Template: ScrapingRobot till Google Sheets: stabila rankingtabeller
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "SERP results", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Title Empty", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Assign SERP #pos"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>GET SERP"]
n6@{ icon: "mdi:cog", form: "rounded", label: "Connect to your own database..", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Keywords to get SERPs for", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Connect to your own database2", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign SearchQuery", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split out Keywords", pos: "b", h: 48 }
n5 --> n1
n2 --> n3
n1 --> n2
n3 --> n9
n4 --> n8
n9 --> n4
n10 --> n5
n7 --> n10
n6 --> n7
n0 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n3 decision
class n5 api
class n4 code
classDef customIcon fill:none,stroke:none
class n4,n5 customIcon
Varför det här spelar roll: tillförlitlig rank tracking för sökord utan manuella kontroller
Manuell rank tracking går sönder på subtila sätt. Du söker på ett sökord en gång, ser ett resultat och klistrar in det i ett kalkylark. Nästa vecka gör du samma sak, men Google visar en lite annan sida eftersom plats, personalisering och timing har ändrats. Sedan kommer rapportdagen och du försöker förklara ”rörelser” som kanske inte ens är verkliga. Det värsta är den mentala belastningen. Du lägger din bästa analystid på att samla in data i stället för att tolka den.
Det blir snabbt mycket. Här är var friktionen byggs på.
- Att kontrollera ens 30 sökord manuellt kan äta upp cirka 2 timmar när du räknar in kopiering av URL:er, titlar och positioner.
- Olika personer kontrollerar placeringar på olika sätt, så kalkylarket blir inkonsekvent och svårt att jämföra vecka för vecka.
- Konkurrentbevakning blir ofta ”uppskjuten”, vilket innebär att du märker dem först efter att de tagit din plats.
- När resultaten ser fel ut hamnar du i att dubbelkolla allt, och hela uppgiften tar dubbelt så lång tid.
Det du bygger: ScrapingRobot SERP-hämtningar till strukturerade Google Sheets-tabeller
Det här flödet börjar med en lista över sökord du vill spåra (antingen inskrivna i n8n för ett snabbt test, eller hämtade från din egen sökordsdatabas senare). För varje sökord anropar det ScrapingRobot-API:t för att hämta Googles sökresultat och returnerar strukturerad SERP-data som URL:er, sidtitlar och ordning. Därefter formar det om råsvaret till prydliga rader, delar upp organiska resultat och filtrerar bort skräpposter (som saknade titlar). Till sist kopplar det den ursprungliga sökfrasen till varje rad och beräknar rankpositionen så att ditt ark har ”Sökord + Rank + Titel + URL” klart för rapportering. Slutresultatet är en konsekvent rank-tabell som du kan uppdatera på beställning eller schemalägga.
Flödet startar i n8n, loopar igenom din sökordslista och hämtar SERP-svar via HTTP. Efter det normaliserar det fält, extraherar organiska listningar, beräknar rank-nummer och skickar de rensade raderna till Google Sheets (eller ett annat utdata du föredrar).
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du spårar 50 sökord och fångar topp 10 organiska resultat för varje. Manuellt tar även en ”snabbkoll” kanske 2 minuter per sökord när du kopierar titlar, URL:er och positioner, vilket blir cirka 2 timmar per körning. Med det här flödet klistrar du in eller laddar sökordslistan, kör det och låter ScrapingRobot returnera SERP:arna medan n8n skriver rader i Google Sheets. Din handpåläggning sjunker till cirka 10 minuter, och du får ändå ett mer komplett dataset för konkurrentanalys.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- ScrapingRobot för Google SERP-data via API.
- Google Sheets för att lagra och dela rank-tabeller.
- ScrapingRobot API-nyckel (hämta den i din ScrapingRobot-dashboard)
Svårighetsnivå: Nybörjare. Du klistrar mest in en API-nyckel, väljer sökordsinmatning och pekar utdata mot ett ark.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En manuell körning startar det. I mallen klickar du på ”Execute workflow” för att testa. När du är nöjd kan du byta trigger till ett schema så att din SERP-rank tracking-automatisering uppdateras dagligen eller veckovis.
Sökord definieras och delas upp. Flödet sätter en lista med sökord och delar sedan upp dem i enskilda objekt så att varje sökord behandlas korrekt. Om du redan har sökord i ett ark eller en databas byter du ut den här delen så att den hämtar från din källa i stället.
ScrapingRobot hämtar SERP:arna. n8n skickar en HTTP-förfrågan till ScrapingRobots ”GET SERP”-endpoint med din token och sökordsfråga. Svaret innehåller organiska resultat (och ofta extra SERP-detaljer) i en strukturerad payload.
Resultat rensas och rankas. Flödet mappar fält till ett standardformat, delar upp organiska resultat i rader, filtrerar bort tomma titlar, kopplar på sökordet och beräknar rankpositionen så att din rapport inte bygger på manuell räkning.
Du kan enkelt ändra sökordskällan så att den hämtar från Google Sheets i stället för den inbyggda sökordslistan, beroende på behov. Se hela implementationsguiden nedan för alternativ för anpassning.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startar manuellt och passerar sedan genom en platshållarnod innan konfigurationen av nyckelord börjar.
- Lägg till noden Manual Execution Start som din trigger.
- Anslut Manual Execution Start till Database Placeholder Step för att spegla arbetsflödets initiala flöde.
- Behåll Database Placeholder Step som en no-op-nod för att möjliggöra framtida databasanslutningar innan nyckelordskonfigurationen.
Steg 2: anslut datakällan för SERP
Konfigurera HTTP-requesten som hämtar Google SERP-data för varje nyckelord.
- Lägg till Primary SERP Request och ställ in URL på
https://api.scrapingrobot.com. - Ställ in Method på
POSToch Specify Body påJSON. - Ställ in JSON Body på
{ "url": "https://www.google.com", "module": "GoogleScraper", "params": { "query": "{{ $json["Keyword"] }}" } }. - Aktivera Send Body och Send Headers.
- Lägg till en header-parameter med Name
acceptoch Valueapplication/json. - Inloggningsuppgifter krävs: Anslut era
httpQueryAuth-uppgifter (används av Primary SERP Request). - Inloggningsuppgifter krävs: Anslut era
httpHeaderAuth-uppgifter (också konfigurerade i Primary SERP Request).
⚠️ Vanlig fallgrop: Om SERP-API:t returnerar fel, verifiera att autentiseringstypen är satt till genericCredentialType med httpQueryAuth och att er header-autentisering matchar leverantörens krav.
Steg 3: definiera och expandera nyckelord
Skapa nyckelordsarrayen och dela upp den till individuella requests.
- I Define Keyword List, lägg till en tilldelning med Name
Keyword, Typearrayoch Value["constant contact email automation", "business worfklow software", "n8n automation"]. - Anslut Database Placeholder Step till Define Keyword List.
- I Expand Keyword Items, ställ in Field To Split Out på
Keyword. - Anslut Define Keyword List till Expand Keyword Items och sedan till Primary SERP Request.
Steg 4: mappa, filtrera och berika SERP-resultat
Transformera API-svaret, dela upp organiska resultat och bifoga söktermen för rankning.
- I Map SERP Output, ställ in organicResults på
{{ $json.result.organicResults }}. - Ställ in peopleAlsoAsk på
{{ $json.result.peopleAlsoAsk }}, searchQuery på{{ $json.result.searchQuery.term }}och paidAds på{{ $json.result.paidResults }}. - Anslut Primary SERP Request till Map SERP Output och sedan till Split Organic Results.
- I Split Organic Results, ställ in Field To Split Out på
organicResults. - I Filter Nonempty Titles, konfigurera villkoret som String → notEmpty med Left Value
{{ $json.title }}. - I Attach Query Term, aktivera Include Other Fields och ställ in searchQuery på
{{ $('Map SERP Output').item.json.searchQuery }}. - Anslut Filter Nonempty Titles till Attach Query Term.
Steg 5: beräkna SERP-rankning och förbered output
Tilldela rankningspositioner och skicka resultaten till output-stubben.
- I Compute SERP Rank, använd den medföljande JavaScript-koden för att gruppera per
searchQueryoch lägga tillpositionbaserat på index. - Anslut Attach Query Term till Compute SERP Rank.
- Anslut Compute SERP Rank till Database Output Stub för att hålla resultaten inför en framtida databasskrivning.
⚠️ Vanlig fallgrop: Om rankningspositionerna blir fel, säkerställ att Attach Query Term inkluderar rätt searchQuery-värde innan det når Compute SERP Rank.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att SERP-requests och rankningslogiken fungerar end-to-end.
- Klicka på Execute Workflow från Manual Execution Start för att köra hela sekvensen.
- Bekräfta att Primary SERP Request returnerar data och att Map SERP Output skapar
organicResultsochsearchQuery. - Verifiera att Compute SERP Rank outputar items med ett numeriskt fält
position. - När allt är verifierat, aktivera arbetsflödet för produktion och ersätt Database Output Stub med er faktiska nod för datalagring.
Felsökningstips
- ScrapingRobot-inloggning kan löpa ut eller kräva specifika behörigheter. Om det börjar skapa fel, kontrollera först token i din ScrapingRobot-dashboard och parametern ”token” i noden HTTP Request.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstider. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata i all oändlighet.
Snabba svar
Cirka 30 minuter om du redan har din ScrapingRobot-nyckel och ett målark i Google Sheets.
Nej. Du klistrar in en API-nyckel, väljer din sökordskälla och mappar utdata till Google Sheets.
Ja. n8n har ett gratis alternativ 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 med ScrapingRobot-API-kostnader beroende på hur många SERP-hämtningar du kör.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Du kan ersätta noden ”Define Keyword List” med ett lässteg från Google Sheets och sedan behålla resten av flödet som det är. Många team justerar också hur många organiska resultat de sparar (topp 10 vs topp 50) och lägger till extra kolumner som ”Domain” för snabbare konkurrentgruppering. Om du vill ha sammanfattningar kan du koppla in ett OpenAI-steg efter ”Map SERP Output” för att märka intent eller klustra sökord.
Oftast handlar det om token-parametern. Skapa om din ScrapingRobot API-nyckel, uppdatera den i noden HTTP Request och kör sedan om ett enskilt sökord för att bekräfta svarstrukturen. Om det fortfarande fallerar, kontrollera rate limits på din plan och bekräfta att query-parametrarna matchar det ScrapingRobot förväntar sig för Google SERP-förfrågningar.
Om ditt ScrapingRobot-konto stödjer det kan flödet hantera tusentals sökningar, och mallen nämner upp till 5000 sökningar på ett gratis konto. På n8n Cloud beror din månatliga exekveringsgräns på din plan, medan egen hosting inte har något fast tak (det handlar främst om serverkapacitet och API:ets rate limits). I praktiken börjar de flesta team med en veckokörning på några hundra sökord och skalar sedan när arkstrukturen är stabil.
Ofta, ja. n8n hanterar loopar över sökordslistor, uppdelning av organiska resultat till rader och beräkning av rankpositioner utan att bli dyrt eller klumpigt. Du får också möjlighet till egen hosting, vilket är praktiskt när du kör många schemalagda kontroller. Zapier eller Make kan fungera för väldigt små sökordsuppsättningar, men SERP-tolkning i flera steg blir snabbt omständligt. Prata med en automationsexpert om du vill ha en snabb rekommendation utifrån din volym och rapporteringsstil.
När detta väl rullar slutar rank-tabeller att vara en veckovis brandkårsutryckning. Du lägger tiden på beslut, inte på datainsamling.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.