Dina SEO-siffror rör sig varje vecka, men ”varför” försvinner i flikar, exporter och dashboards som inte visar vad som faktiskt ändrades. När du väl ser ett verkligt tapp (eller en oväntad vinst) är ögonblicket passerat och du reagerar i stället för att styra.
Den här konfigurationen för GSC Slack alerts slår hårdast mot SEO-ansvariga och contentteam. Tillväxtdrivna marknadschefer känner det också, särskilt när ledningen vill ha svar på måndagsmorgonen. Resultatet är enkelt: färre avstämningar, snabbare upptäckt och en veckorapport du kan agera på på några minuter.
Det här workflowet jämför förra veckan med veckan innan, flaggar viktiga förändringar per segment (varumärke, icke-varumärke, innehållskategorier), pingar sedan Slack bara när det är relevant och mejlar en Top 25 upp/ner-rapport. Du ser vad det gör, vad du behöver och hur du anpassar det för din webbplats.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: Google search console + slack: seo-rörelsevarningar
flowchart LR
subgraph sg0["Scheduled Run Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Run Trigger", pos: "b", h: 48 }
n1["<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/>Compute Week Ranges"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Branch by Week Label", pos: "b", h: 48 }
n3["<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/>GSC Request Prior"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>GSC Request Recent"]
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/code.svg' width='40' height='40' /></div><br/>Annotate Prior Week"]
n6["<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/>Annotate Recent Week"]
n7["<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/>Normalize Prior Rows"]
n8["<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/>Normalize Recent Rows"]
n9["<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/merge.svg' width='40' height='40' /></div><br/>Combine Week Streams"]
n10["<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/>Compare Week Metrics"]
n11["<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/>Segment Queries"]
n12["<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/>Aggregate by Query"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Segment", 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/>Brand Movers Filter"]
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/>Brand Top25 Table"]
n16["<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/slack.svg' width='40' height='40' /></div><br/>Brand Slack Alert"]
n17["<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/>Brand+Recipe Movers"]
n18["<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/>Brand+Recipe Top25"]
n19["<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/slack.svg' width='40' height='40' /></div><br/>Brand+Recipe Slack"]
n20["<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/>Recipe Movers Filter"]
n21["<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/>Recipe Top25 Table"]
n22["<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/slack.svg' width='40' height='40' /></div><br/>Recipe Slack Alert"]
n23["<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/>Nonbrand Movers Filter"]
n24["<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/>Nonbrand Top25 Table"]
n25["<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/slack.svg' width='40' height='40' /></div><br/>Nonbrand Slack Alert"]
n26["<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/merge.svg' width='40' height='40' /></div><br/>Merge Top25 Sets"]
n27["<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/>Compose Email Body"]
n28@{ icon: "mdi:message-outline", form: "rounded", label: "Send Report Email", pos: "b", h: 48 }
n2 --> n3
n2 --> n4
n27 --> n28
n9 --> n10
n5 --> n7
n26 --> n27
n13 --> n14
n13 --> n15
n13 --> n18
n13 --> n17
n13 --> n21
n13 --> n20
n13 --> n24
n13 --> n23
n6 --> n8
n7 --> n9
n8 --> n9
n4 --> n6
n3 --> n5
n10 --> n11
n1 --> n2
n15 --> n26
n18 --> n26
n21 --> n26
n24 --> n26
n12 --> n13
n0 --> n1
n14 --> n16
n17 --> n19
n20 --> n22
n23 --> n25
n11 --> n12
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 n2,n13 decision
class n3,n4 api
class n1,n5,n6,n7,n8,n10,n11,n12,n14,n15,n17,n18,n20,n21,n23,n24,n27 code
classDef customIcon fill:none,stroke:none
class n1,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27 customIcon
Problemet: SEO-”övervakning” skapar brus, inte tydlighet
De flesta team har inte ett SEO-övervakningsproblem. De har ett uppmärksamhetsproblem. Google Search Console är full av data, men vecka-för-vecka-rörelser försvinner eftersom du tittar på totalsummor, inte förändringar, och definitivt inte förändringar per segment. Så du exporterar, filtrerar, bygger ett kalkylark och försöker sedan komma ihåg hur ”normalt” brukar se ut. Under tiden fortsätter den ena sökfrågan som tappade rejält att blöda klick i flera dagar. Eller så tar en sida plötsligt fart och ingen märker det, vilket ärligt talat gör ont.
Det blir snabbt mycket. Och friktionen ökar när du jonglerar varumärkestermer, kategorisidor och olika intressenter som alla vill ha en egen vy.
- Veckovisa GSC-avstämningar blir en manuell revision som kan ta cirka 2 timmar när du räknar in export, filtrering och rimlighetskontroll.
- Små förändringar skapar falsklarm, så teamet börjar ignorera dashboards helt.
- Segmentering av varumärke vs. icke-varumärke (och innehållstyper) finns ofta i någons huvud eller i ett stökigt kalkylark.
- När en verklig avvikelse inträffar upptäcker du den sent, och frågan ”vad ändrades?” blir panikartad.
Lösningen: Veckovis upptäckt av GSC-rörelser med Slack-pingar + ett Top 25-mejl
Det här n8n-workflowet körs enligt schema (oftast måndag), hämtar två veckor av Google Search Console-data och jämför dem för att hitta meningsfulla rörelser. Det rensar och normaliserar rader så att mätvärden för ”föregående vecka” och ”senaste vecka” linjerar, och beräknar sedan delta och procentuell förändring för klick, CTR, exponeringar och genomsnittlig position. Därefter segmenterar det sökfrågor och sidor i grupper som matchar hur du tänker kring SEO, till exempel varumärke, icke-varumärke och en innehållskategori (exemplet använder ”Recept”, men det kan vara vilken sektion som helst på din webbplats). Därifrån filtrerar det fram stora skiften (standard är ±200 klick och ±30 %), skickar Slack-aviseringar bara när trösklar passeras och mejlar en fullständig HTML-rapport med Top 25 ökningar och Top 25 minskningar per segment, inklusive länkade URL:er.
Workflowet startar med en veckotrigger och en beräkning av ”veckointervall” så att jämförelsen blir konsekvent över tid. Därefter hämtar det föregående och senaste GSC-prestanda via HTTP-förfrågningar, slår ihop båda flödena, beräknar förändringar vecka-för-vecka och routar resultaten per segment. Till sist får Slack ”nu ska du vara uppmärksam”-ögonblicken, och Gmail levererar den fullständiga Top 25-tabellrapporten till dem som behöver detaljerna.
Det här får du: automation vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: Så här ser det ut
Säg att du följer 4 segment (varumärke, icke-varumärke, blogg och en kategori som ”recept”). Manuellt är det vanligt att lägga cirka 30 minuter per segment på att exportera GSC, jämföra veckor, sortera på klick och plocka ut URL:er, så du landar på ungefär 2 timmar varje måndag. Med det här workflowet lägger du cirka 10 minuter en gång på att definiera dina varumärkestermer och URL-filter, och sedan är den veckovisa körningen automatisk. Du öppnar bara GSC när Slack flaggar en verklig rörelse, och Top 25-mejlet ger dig hela bilden utan extra jobb.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Search Console för veckovis prestandadata
- Slack för att ta emot aviseringar om rörelser
- Gmail för att skicka Top 25 HTML-rapporten
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard)
Kunskapsnivå: Medel. Du kopplar konton, ändrar segmenteringsregler och testar en veckokörning.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett veckoschema drar igång. n8n kör den dag du väljer (måndag är vanligt) och beräknar två tydliga veckointervall så att jämförelsen är konsekvent över tid.
Search Console-data hämtas två gånger. Workflowet använder HTTP-förfrågningar för att hämta ”föregående vecka” och ”senaste vecka”, annoterar och normaliserar sedan båda uppsättningarna så att raderna kan jämföras tillförlitligt.
Förändringar beräknas och segmenteras. Det slår ihop de två veckorna, beräknar delta och procentuella förändringar (klick, CTR, exponeringar, position) och routar sedan poster till segment som varumärke, icke-varumärke och innehållskategorier baserat på dina sökfrågetermer och URL-mönster.
Aviseringar och rapportering sker i slutet. Slack får ett meddelande bara när rörelser passerar dina trösklar, och Gmail skickar en fullständig HTML-rapport som visar Top 25 ökningar och minskningar per segment med länkade URL:er för snabb granskning.
Du kan enkelt ändra tröskelvärden för rörelse och segmentdefinitioner så att de matchar din webbplats storlek och hur teamet rapporterar SEO-framsteg. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda triggern
Ställ in veckoschemat som startar jämförelseflödet för Search Console.
- Lägg till och öppna Scheduled Run Trigger.
- Ställ in schemaregeln till cron-uttrycket
0 15 * * 1så att arbetsflödet körs varje måndag kl. 15:00. - Koppla Scheduled Run Trigger till Compute Week Ranges.
Steg 2: Anslut Google Search Console
Konfigurera veckovisa datumfönster, förgrena efter veckomärkning och hämta GSC-data för båda perioderna.
- I Compute Week Ranges behåller ni den medföljande JavaScript-koden som returnerar intervallen
priorWeekochlastWeek. - I Branch by Week Label ställer ni villkoret Left Value till
{{ $json.label }}och Right Value tillpriorWeek. - I GSC Request Prior ställer ni Method till
POSToch JSON Body till={"startDate":"{{ $json.startDate }}","endDate":"{{ $json.endDate }}","dimensions":["page","query"],"rowLimit":2500,"dataState":"all"}. - Inloggningsuppgifter krävs: Anslut era googleOAuth2Api-inloggningsuppgifter i GSC Request Prior.
- Upprepa samma konfiguration i GSC Request Recent med identisk JSON-body.
- Inloggningsuppgifter krävs: Anslut era googleOAuth2Api-inloggningsuppgifter i GSC Request Recent.
Steg 3: Sätt upp bearbetning och jämförelse
Normalisera båda veckorna, slå ihop strömmarna och beräkna differenser för klick, CTR, visningar och positioner.
- Koppla GSC Request Prior → Annotate Prior Week → Normalize Prior Rows.
- Koppla GSC Request Recent → Annotate Recent Week → Normalize Recent Rows.
- Kombinera båda normaliserade strömmarna i Combine Week Streams.
- Skicka Combine Week Streams till Compare Week Metrics för att beräkna differenser och procentuella förändringar.
Steg 4: Konfigurera segmentering och routing
Segmentera sökfrågor i brand, recept, brand+recept och nonbrand-flöden, och routa sedan varje segment för alerts och top-25-tabeller.
- I Segment Queries uppdaterar ni varumärkestermerna i raden
query.includes("BRAND TERM 1", "BRAND TERM 2", "ETC.")så att de matchar era egna varumärkesnyckelord. - Koppla Compare Week Metrics → Segment Queries → Aggregate by Query → Route by Segment.
- Bekräfta att Route by Segment använder
{{ $json.segment }}och utdata-nycklar förbrand,brand+recipes,recipesochnonbrand. - Route by Segment skickar utdata parallellt till både Brand Movers Filter och Brand Top25 Table.
- Routa även de återstående grenarna till Brand+Recipe Movers och Brand+Recipe Top25, Recipe Movers Filter och Recipe Top25 Table, samt Nonbrand Movers Filter och Nonbrand Top25 Table respektive.
Steg 5: Konfigurera Slack-alerts och e-postutskick
Skicka alerts vid stora förändringar till Slack och sammanställ de största rörelserna i en veckovis e-postrapport.
- Koppla Brand Movers Filter → Brand Slack Alert, Brand+Recipe Movers → Brand+Recipe Slack, Recipe Movers Filter → Recipe Slack Alert och Nonbrand Movers Filter → Nonbrand Slack Alert.
- Inloggningsuppgifter krävs: Anslut era slackApi-inloggningsuppgifter i Brand Slack Alert, Brand+Recipe Slack, Recipe Slack Alert och Nonbrand Slack Alert.
- Slå ihop de fyra tabellutdata i Merge Top25 Sets med Number of Inputs satt till
4. - Koppla Merge Top25 Sets → Compose Email Body → Send Report Email.
- I Send Report Email ställer ni Message till
{{ $json.body }}och Subject till{{ $json.subject }}. - Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter i Send Report Email.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta att både Slack-alerts och den veckovisa e-postrapporten skapas korrekt.
- Klicka på Execute Workflow med start från Scheduled Run Trigger för att köra hela flödet.
- Verifiera att Compare Week Metrics returnerar delta-fält som
deltaClicksochpercentChangeClicks. - Kontrollera att Slack-meddelanden kommer från Brand Slack Alert, Brand+Recipe Slack, Recipe Slack Alert och Nonbrand Slack Alert när tröskelvärdena uppnås.
- Bekräfta att e-postmeddelandet från Send Report Email innehåller fyra tabeller med rubriker och en ämnesrad som
Top Weekly SEO Movers – YYYY-MM-DD. - När ni är nöjda växlar ni arbetsflödet till Active för veckovisa produktionskörningar.
Vanliga fallgropar
- Åtkomst till Google Search Console kan vara boven. Om HTTP-förfrågningarna misslyckas, kontrollera dina OAuth-behörigheter och att det anslutna kontot har åtkomst till rätt egendom.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 15–25 minuter om dina segment redan är definierade.
Nej. Du kopplar främst konton och justerar några filter. Workflowets logik är redan byggd; du anpassar det bara för din webbplats.
Ja. n8n har ett gratis self-hosted-alternativ 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-användning (oftast små för veckosammanfattningar).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Du justerar segmenteringslogiken så att sökfrågor och URL:er routas till rätt grupp, och finjusterar trösklar per segment vid behov. Vanliga justeringar är att lägga till varianter av varumärkestermer, dela upp innehållstyper efter URL-sökväg (som /blog/ vs /product/) och skapa ett segment för ”kategorisidor” för mallar.
Oftast handlar det om behörigheter eller fel egendom. Bekräfta att det anslutna Google-kontot har åtkomst i Search Console och kontrollera sedan URL-formatet för egendomen (domänegendom vs URL-prefix) som används av HTTP-förfrågningarna. Om du nyligen ändrat lösenord eller admininställningar löser en ny auktorisering av anslutningen i n8n ofta problemet. Rate limits kan också ställa till det om du lägger till många segment samtidigt, så minska omfattningen och testa igen.
Tillräckligt för de flesta små och medelstora webbplatser, eftersom den körs veckovis och sedan filtrerar ner till Top 25-rörelser per segment.
Ofta ja, eftersom delen ”jämför två datumintervall, normalisera rader, segmentera och generera en rankad HTML-tabell” snabbt blir komplex i enklare verktyg. n8n hanterar förgreningar och datatransformering utan att bli en hög av sköra steg, och du kan self-hosta för att slippa begränsningar i antal körningar. Zapier eller Make kan ändå fungera om du bara vill ha en enkel automation som ”skicka mig en veckovis export”. Om du är osäker, prata med en automationsexpert och mappa det mot dina rapporteringsbehov först.
När detta väl rullar blir din ”SEO-koll” på måndag en snabb genomläsning och ett par beslut, inte en halvdagsuppgift. Workflowet bevakar svängningarna. Du agerar på dem som spelar roll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.