Att hämta SERP:ar för ett sökord låter enkelt tills du gör det varje vecka. Du skrapar, du klistrar in, du städar konstig HTML, och ändå slutar du med “anteckningar” som ingen litar på.
Den här SERP CSV-automatiseringen slår hårt mot SEO-byråteam, men även growth marketers och produktteam som följer konkurrenter känner av det. Vinsten är enkel: du får strukturerad SERP-data plus rekommendationer och trender som färdiga CSV-filer, utan att bo i kalkylblad hela dagen.
Nedan ser du exakt vad det här arbetsflödet gör, vad du behöver för att köra det och hur du kan tänka kring anpassning för din egen rapportering av search intelligence.
Så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Bright Data + Google Gemini, rensade SERP-CSV:er
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: "Set input fields", pos: "b", h: 48 }
n2["<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/>Perform Bright Data Web Requ.."]
n3@{ icon: "mdi:robot", form: "rounded", label: "Google Search Data Extractor", 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/>Code"]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Trends Data Extractor", pos: "b", h: 48 }
n7@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser for..", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Recommendation Data Extractor", pos: "b", h: 48 }
n11@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n12@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser for..", pos: "b", h: 48 }
n13@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser for..", pos: "b", h: 48 }
n14["<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/>Code for Recommendations"]
n15["<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/>Code for Trends"]
n16@{ icon: "mdi:cog", form: "rounded", label: "Convert to File for Trends", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Convert to File for Recommen..", pos: "b", h: 48 }
n18@{ icon: "mdi:cog", form: "rounded", label: "Write the trends csv file to..", pos: "b", h: 48 }
n19@{ icon: "mdi:cog", form: "rounded", label: "Write the recommendations cs..", pos: "b", h: 48 }
n4 --> n5
n15 --> n16
n5 --> n6
n5 --> n10
n1 --> n2
n6 --> n15
n14 --> n17
n16 --> n18
n3 --> n4
n10 --> n14
n2 --> n3
n0 --> n1
n18 --> n5
n17 --> n19
n9 -.-> n6
n13 -.-> n6
n7 -.-> n3
n8 -.-> n3
n11 -.-> n10
n12 -.-> n10
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,n6,n8,n10,n12,n13 ai
class n7,n9,n11 aiModel
class n2 api
class n4,n14,n15 code
classDef customIcon fill:none,stroke:none
class n2,n4,n14,n15 customIcon
Varför detta spelar roll: från stökiga SERP:ar till beslut
SERP-spårning havererar på tråkiga sätt. En skrapare fungerar… tills den inte gör det. Någon exporterar resultat, klistrar in dem i ett dokument och lägger sedan en timme på att ta bort skräpmarkering och försöka minnas vad som ändrades sedan förra veckan. Även när du får “datan” är den sällan redo för beslut. Teamet måste fortfarande tolka den, sammanfatta den och översätta den till åtgärder som “uppdatera den här sidan”, “skapa ett jämförelseinlägg” eller “sluta rikta in oss på den frågan”. Det är den verkliga kostnaden: tid som försvinner och möjligheter som missas.
Det summeras snabbt. Här är var det faller i det dagliga arbetet.
- Manuell extrahering är skör, så rankingar och SERP-funktioner glider tyst innan någon märker det.
- SERP-HTML är brusig, vilket gör att din “rapport” blir ett städprojekt.
- Insikter bor i någons huvud eller i en Slack-tråd, inte i en konsekvent export du kan jämföra vecka för vecka.
- Team lägger cirka 2 timmar på att tolka resultat för varje batch med sökord, eftersom “vad betyder det här” aldrig ingår.
Vad du bygger: Bright Data SERP:ar → Gemini → CSV-rapporter
Det här arbetsflödet tar en enkel input (din sökterm, din Bright Data-zon och en valfri webhook-URL) och omvandlar live-resultat från Google till korrekta, strukturerade utdata. Det börjar med att anropa Bright Datas Web Unlocker för att hämta verklig SERP-HTML pålitligt. Därefter tolkar Google Gemini den ostrukturerade SERP-sidan till strukturerad JSON, så att du inte längre behöver gissa var titlar, URL:er, snippets och SERP-funktioner ligger. Sedan itererar arbetsflödet igenom de extraherade posterna, ber Gemini om två olika perspektiv och skapar två separata CSV-filer: en för rekommendationer och en för trender. Till sist sparar det dessa CSV:er på disk och kan notifiera ett annat system via webhook med en sammanfattning eller referens till filerna.
Arbetsflödet startar när du kör det i n8n (manuell trigger som standard). Bright Data hämtar färska SERP:ar, Gemini konverterar sidan till strukturerad data och två AI-pass genererar “vad du ska göra härnäst” och “vad som förändras”. Slutresultatet är ett par CSV:er som du kan öppna i Google Sheets eller Excel och agera på.
Vad du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du följer 20 sökord varje måndag. Manuellt kan du lägga cirka 5 minuter per sökord på att hämta resultaten, kopiera dem och städa upp dem, vilket blir ungefär 100 minuter innan du ens skriver insikter. Med det här arbetsflödet matar du in sökordsuppsättningen en gång, låter Bright Data hämta SERP:arna och väntar på att Gemini producerar strukturerad output plus de två CSV:erna (ofta cirka 10–15 minuters bearbetningstid beroende på volym). Du granskar fortfarande rapporten, men du granskar – inte formaterar.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Bright Data för pålitlig extrahering av Google SERP:ar.
- Google Gemini för att tolka SERP:ar och generera insikter.
- Bright Data Web Unlocker-token (hämta den i dina Bright Data-zoninställningar).
Kompetensnivå: Medel. Du är bekväm med att lägga till credentials, redigera några fält och testköra i n8n.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (kostnadsfri 15-minuters konsultation).
Steg för steg
Du anger sökinput. Arbetsflödet startar med en manuell körning i n8n, där det läser ditt sökord (eller fras), ditt Bright Data-zonnamn och webhook-URL:en om du vill ha notifieringar.
Bright Data hämtar live-SERP:ar. En HTTP-request anropar Bright Data Web Unlocker-endpointen och returnerar innehållet från Googles resultatsida. Det här undviker den klassiska situationen “skraparen blev blockerad” som gör spårning opålitlig.
Gemini gör ostrukturerade sidor till strukturerad data. Google Gemini tolkar SERP-HTML:en till strukturerad JSON, sedan extraherar arbetsflödet resultats-arrayen och loopar igenom varje post i batchar. Två separata Gemini-prompter genererar (1) rekommendationer du kan agera på och (2) trendinsikter du kan följa över tid.
CSV-filer skapas och sparas. Arbetsflödet formaterar dessa utdata till två CSV:er (rekommendationer och trender) och sparar dem, så att du kan öppna dem i Google Sheets eller Microsoft Excel 365 eller skicka dem vidare i nästa steg.
Du kan enkelt justera inputfälten för att följa andra sökordsuppsättningar, platser eller rapportformat utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: konfigurera manuell trigger
Starta arbetsflödet manuellt så att ni kan validera SERP-analysflödet innan ni schemalägger eller bygger ut det.
- Lägg till och behåll noden Manual Start Trigger som arbetsflödets startpunkt.
- Koppla Manual Start Trigger till Assign Input Parameters för att skicka sökparametrarna vidare.
Steg 2: anslut Bright Data API och ställ in inparametrar
Definiera Google-sök-URL, sökfråga och Bright Data-zon och skicka sedan SERP-förfrågan via Bright Data.
- I Assign Input Parameters, ställ in url till
https://www.google.com/search. - Ställ in search till
best crm for the year 2025och zone tillweb_unlocker1. - Ställ in webhook_notification_url till
[YOUR_WEBHOOK_URL](ersätt med er faktiska webhook om den används senare). - Öppna Bright Data API Request och ställ in URL till
https://api.brightdata.com/requestmed MethodPOST. - I Bright Data API Request → Body Parameters, mappa:
- zone till
{{ $json.zone }} - url till
{{ $json.url }}?q={{ encodeURI($json.search) }} - format till
raw
- zone till
- Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-uppgifter i Bright Data API Request.
Steg 3: extrahera sökresultat med LLM-kedjan
Tolka den råa SERP-HTML:en till strukturerade resultat med LLM-kedjan och output parser.
- I Search LLM Extractor, ställ in Text till
=Extract the following: Rank (position in list) Title URL Snippet/description Type (organic/ads/map) {{ $json.data }} Make sure to return the data in JSON. - Säkerställ att Search LLM Extractor har Has Output Parser aktiverat och är kopplad till Search Output Parser.
- Öppna Search Output Parser och behåll Schema Type som
manualmed det tillhandahållna JSON-schemat. - Öppna Extract Results Array och behåll JavaScript Code som
return $input.first().json.output.resultsför att skapa en enkel resultatlista. - Inloggningsuppgifter krävs: Anslut era googlePalmApi-uppgifter i Gemini Chat for Search.
- Notis om AI-parser: Search Output Parser är en undernod till Search LLM Extractor; inloggningsuppgifter läggs till i Gemini Chat for Search, inte i parsern.
Steg 4: iterera resultaten och kör rekommendationer och trender parallellt
Loopa igenom varje resultat och generera rekommendationer och trender samtidigt.
- Behåll Iterate Through Entries kopplad efter Extract Results Array för att batcha varje SERP-resultat.
- Iterate Through Entries skickar output till både Trend Insight LLM och Recommendation LLM parallellt för samtidig analys.
- I Recommendation LLM, ställ in Text till
=Provide recommendations based on the title and spippet: Title : {{ $json.title }} Snippet : {{ $json.snippet }} Make sure to return the data in JSON. - I Trend Insight LLM, ställ in Text till
=Extract the trends based on the title and spippet: Title : {{ $json.title }} Snippet : {{ $json.snippet }} Make sure to return the data in JSON. - Inloggningsuppgifter krävs: Anslut era googlePalmApi-uppgifter i Gemini Chat for Advice och Gemini Chat for Trends.
- Notis om AI-parser: Advice Output Parser och Trends Output Parser är undernoder; inloggningsuppgifter ska ligga på Gemini Chat for Advice och Gemini Chat for Trends.
Steg 5: parsa, formatera och spara CSV med rekommendationer
Konvertera rekommendations-JSON till en fil och spara den på disk.
- I Parse Recommendations List, behåll JavaScript Code inställt till
return $input.first().json.output.recommendations. - Koppla Parse Recommendations List till Format Advice File för att konvertera listan till ett filformat.
- I Save Advice CSV, ställ in Operation till
writeoch File Name till=d:\Google_SERP_Recommendations_Response_{{ new Date().toISOString().replace(/[:.]/g, '-')}}.csv.
Steg 6: parsa, formatera och spara CSV med trender
Konvertera trend-JSON till en fil och spara den på disk innan ni loopar tillbaka till nästa post.
- I Parse Trends List, behåll JavaScript Code inställt till
return $input.first().json.output.trends. - Koppla Parse Trends List till Format Trends File för att förbereda en filutdata.
- I Save Trends CSV, ställ in Operation till
writeoch File Name till=d:\Google_SERP_Trends_Response_{{ new Date().toISOString().replace(/[:.]/g, '-')}}.csv. - Säkerställ att Save Trends CSV är kopplad tillbaka till Iterate Through Entries för att fortsätta bearbeta återstående resultat.
Steg 7: testa och aktivera ert arbetsflöde
Validera körningen från start till mål och bekräfta att båda CSV-utdata genereras för SERP-sökningen.
- Klicka på Execute Workflow för att köra från Manual Start Trigger.
- Verifiera att Save Advice CSV och Save Trends CSV vardera skapar en fil med ett tidsstämplat namn.
- Kontrollera att körningen bearbetar alla objekt genom att bekräfta att Iterate Through Entries slutförs utan fel.
- När allt är bekräftat, växla arbetsflödet till Active för produktionsanvändning eller ersätt triggern med en schemalagd trigger vid behov.
Tips för felsökning
- Bright Data-credentials kan gå ut eller kräva specifika behörigheter. Om det strular: kontrollera först din Bright Data zone token och Header Auth-credential i n8n.
- Om du använder Wait-noder eller extern bearbetning varierar tajmingen. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Gemini-prompter startar generiskt. Lägg in din tonalitet och din definition av “bra rekommendationer” tidigt, annars kommer du redigera utdata för alltid.
Snabba svar
Cirka 30 minuter om du redan har dina Bright Data- och Gemini-nycklar.
Nej. Du klistrar in credentials, ställer in inputfälten och kör en testkörning.
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 in Bright Data-användning samt kostnader för Gemini API (ofta några cent per körning, beroende på hur mycket du tolkar och sammanfattar).
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det bör du. De flesta börjar med att ändra fälten i “Assign Input Parameters” (sökord, zon, webhook-URL), och finjusterar sedan de två Gemini-prompter som används för rekommendationer och trender så att output matchar din nisch. Om du vill ha andra CSV-kolumner justerar du noderna “Format Advice File” och “Format Trends File” för att inkludera eller exkludera fält. Du kan också byta destination: istället för att spara till disk kan du pusha rader till Google Sheets eller Excel 365.
Oftast beror det på att Web Unlocker-token eller zonnamnet är fel i inputfälten. Dubbelkolla Header Authentication-credential i n8n och bekräfta att requesten skickar en Bearer-token. Om requesten fungerar ibland och fallerar i burstar kan du slå i Bright Data-gränser eller få intermittenta blockeringar på specifika frågor, så sänk batchhastigheten och försök igen på misslyckade requests.
I de flesta n8n-uppsättningar är dussintals sökord per körning normalt, och du kan skala vidare med batching och schemaläggning.
Ofta ja, eftersom det här arbetsflödet kräver tolkning i flera steg, loopning igenom arrayer och strukturerad AI-output. n8n hanterar förgreningar och kodliknande transformationer utan att göra varje steg till en betald “task”, och du kan köra egen hosting när volymen växer. Zapier och Make fungerar fortfarande bra för enkla “hämta → skicka”-flöden, men SERP-arbete blir rörigt snabbt. Om compliance är viktigt är egen hosting en tydlig fördel eftersom du kontrollerar körning och loggar. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och dina rapporteringsbehov.
När detta väl rullar slutar SERP-spårning vara ett återkommande måste och blir ett repeterbart underlag för riktiga beslut. Arbetsflödet tar hand om det monotona, så att du kan fokusera på vad du ska publicera, förbättra eller sluta göra.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.