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

WordPress till Google Sheets – korrekta innehållsrapporter

Rickard Andersson Partner, Nodenordic.se

Din innehållsrapport är bara så bra som din senaste export. Och ärligt talat: exporter glöms bort, skrivs över eller blir tyst inaktuella medan alla fortsätter fatta beslut utifrån dem.

Det här problemet med WordPress Sheets sync slår först mot marknadschefer, men innehållsstrateger och byråägare känner av det också. Du vill ha ett kalkylark som alltid speglar det som är live på sajten, utan att jaga kollegor efter ”senaste versionen”.

Det här arbetsflödet kopplar WordPress till Google Sheets och håller inlägg, kategorier, taggar och media uppdaterade automatiskt. Du får se hur det fungerar, vad du behöver och vilka resultat du kan förvänta dig.

Så fungerar automatiseringen

Här är hela arbetsflödet du kommer att sätta upp:

n8n Workflow Template: WordPress till Google Sheets – korrekta innehållsrapporter

Varför det här spelar roll: innehållsrapportering som folk faktiskt litar på

Innehållsrapportering går sönder på tråkiga sätt. Någon exporterar inlägg från WordPress, klistrar in dem i ett ark och kallar det en dashboard. En vecka senare har kategorier ändrats, taggar har strukturerats om och fem nya inlägg har publicerats. Nu är din ”innehållsinventering” tyst fel. Det är då du slösar timmar på att diskutera siffror, dubbelkolla URL:er och bygga om rapporter du redan byggt en gång. Den verkliga kostnaden är inte själva exporten. Det är allt tvivel, all omkontroll och de missade möjligheterna när du inte kan se vad som faktiskt händer på sajten.

Det växer snabbt. Här är var det brukar falla isär i det dagliga arbetet.

  • Team tappar cirka 1–2 timmar i veckan på att exportera om och rensa listor med inlägg och metadata.
  • Ändringar i kategorier och taggar kommer inte med i rapporteringen, så SEO-revisioner bygger på felaktiga antaganden.
  • Mediespårning saknas ofta helt, vilket gör det svårt att hitta gamla tillgångar eller trasiga länkar.
  • Olika personer har sina egna kalkylark, och ingen vet vilket som är ”källan till sanningen”.

Det du bygger: en live WordPress-innehållsdatabas i Google Sheets

Du sätter upp ett n8n-arbetsflöde som hämtar innehåll direkt från WordPress REST API och skriver in det i ett strukturerat Google Sheet. Det kan köras på schema (till exempel varje natt) eller starta direkt via en webhook när du behöver en färsk ögonblicksbild inför ett möte. Arbetsflödet hämtar inlägg sidvis, expanderar resultaten till enskilda rader och uppdaterar din flik ”Inlägg”. Sedan gör det samma för kategorier och taggar, så att din taxonomirapportering förblir korrekt. Slutligen synkar det ditt mediebibliotek till en flik ”Media”, vilket är förvånansvärt användbart när du rensar gamla tillgångar eller bygger en plan för innehållsuppdatering.

Arbetsflödet startar med en schemalagd trigger eller en inkommande webhook. Därifrån loopar det igenom WordPress-endpoints med pagineringslogik och uppdaterar Google Sheets under tiden. När det är klart har du ett ark som matchar det som finns i WordPress just nu, inte det som stämde förra månaden.

Det du bygger

Förväntade resultat

Säg att din sajt publicerar 20 inlägg i månaden och du kör en veckovis innehållsrapport. Manuellt kanske du exporterar inlägg, kategorier och taggar, sedan rensar och klistrar in allt, vilket lätt tar runt 45 minuter varje gång (och längre när någon har ändrat kategorier). Det blir cirka 3 timmar i månaden, plus det sporadiska ”vänta, varför saknas det här?”-felsökandet. Med det här arbetsflödet är din veckouppdatering i princip noll ansträngning: låt schemat köra över natten, eller trigga webhooken och vänta några minuter på att synken ska bli klar.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • WordPress-sajt med åtkomligt REST API
  • Google Sheets för att lagra flikarna Inlägg, Kategorier, Taggar, Media
  • WordPress Application Password (skapa det i WP Användare → Profil)

Kunskapsnivå: Nybörjare. Du kopplar konton, klistrar in din sajt-URL och bekräftar att dina flikar i arket matchar arbetsflödet.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Välj hur det startar (schema eller på beställning). Arbetsflödet kan köras via en Scheduled Trigger (till exempel varje natt) eller via en Incoming Webhook Trigger när du vill uppdatera direkt.

Initiera paginering så att du inte missar något. Det sätter sidvariabler, använder sedan en räknare och kontroller för ”sidgräns” för att loopa igenom WordPress-resultaten tills allt är hämtat.

Hämta inlägg och skriv sedan korrekt formaterade rader till Sheets. n8n anropar WordPress-endpointen för inlägg med en HTTP Request, delar upp listan i enskilda inlägg och synkar dem till din flik ”Inlägg” i Google Sheets.

Upprepa samma mönster för kategorier, taggar och media. Kategorier och taggar hämtas och synkas till sina egna flikar, medan media kör sin egen pagineringsloop så att även större bibliotek blir klara på ett tillförlitligt sätt.

Du kan enkelt justera per-sida-gränsen och kolumnerna i arket så att det matchar din rapporteringsstil. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera typ av trigger

Det här arbetsflödet kan starta enligt ett schema eller via en webhook för att initiera sidindelningsvariabler för synkning av WordPress-data.

  1. Öppna Scheduled Run Trigger och ställ in schemaregeln så att den körs var 3:e dag med den befintliga intervallkonfigurationen.
  2. Öppna Incoming Webhook Trigger och bekräfta att Path är 4c34beca-b5d7-48bd-bd11-f24f760c039d för manuell eller extern trigging.
  3. Koppla båda triggrarna till Init Page Variables så att antingen trigger initierar sidindelningsläget.

Steg 2: anslut WordPress (HTTP Basic Auth)

HTTP-förfrågningar hämtar inlägg, kategorier, taggar och media från WordPress. Varje förfrågan använder HTTP Basic Authentication.

  1. I Fetch WP Articles ställer ni in URL till {{$json.base_url}} och aktiverar Send Query.
  2. Ställ in frågeparametrar i Fetch WP Articles till: per_page={{$json.per_page}}, page={{ $json.current_page }}, _embed=wp:featuredmedia,wp:term, _fields={{$json.fields}}, orderby=date, order=desc.
  3. Inloggningsuppgifter krävs: Anslut era httpBasicAuth-uppgifter i Fetch WP Articles.
  4. I Retrieve WP Categories ställer ni in URL till https://ozwebexpert.com/wp-json/wp/v2/categories och låter Execute Once vara aktiverat.
  5. Inloggningsuppgifter krävs: Anslut era httpBasicAuth-uppgifter i Retrieve WP Categories, Fetch Media Library och Fetch WP Tags.
  6. I Fetch WP Tags bekräftar ni att URL är https://ozwebexpert.com/wp-json/wp/v2/tags med frågeparametrarna per_page=100 och _fields=id,name,slug.

Steg 3: sätt upp sidindelning och logik för synkning av inlägg

Det här avsnittet initierar sidindelningsvariabler, hämtar inlägg sida för sida och fortsätter iterera tills alla sidor har bearbetats.

  1. I Init Page Variables ställer ni in JSON Output till { "base_url": "https://ozwebexpert.com/wp-json/wp/v2/posts", "fields": "id,slug,link,date,title,excerpt,categories,tags,featured_media,_embedded", "per_page": 10, "current_page": 0 }.
  2. Behåll koden i Advance Page Counter som den är för att öka current_page i varje loop.
  3. Koppla Advance Page Counter till Fetch WP Articles så att varje ökning hämtar en ny sida med inlägg.
  4. I Expand Post Items ställer ni in Field to Split Out till body och Include till allOtherFields.
  5. I Page Limit Check behåller ni villkoret som jämför {{ $('Advance Page Counter').item.json.current_page }} med {{ $('Fetch WP Articles').item.json.headers['x-wp-totalpages'] }} för att stoppa loopen på sista sidan.

Page Limit Check skickar utdata till både Retrieve WP Categories, Init Media Variables och Fetch WP Tags parallellt.

Steg 4: konfigurera grenar för synkning av media och taggar

Två ytterligare grenar hämtar media- och taggdata och itererar genom deras sidor oberoende av varandra.

  1. I Init Media Variables ställer ni in JSON Output till { "base_url": "https://ozwebexpert.com/wp-json/wp/v2/media", "per_page": 10, "current_page": 0 }.
  2. Behåll koden i Advance Media Counter för att öka current_page för mediesidindelning.
  3. I Fetch Media Library ställer ni in URL till {{$json.base_url}} med frågeparametrarna per_page={{ $json.per_page }}, page={{ $json.current_page }} och parent_exclude=0.
  4. I Expand Media Items ställer ni in Field to Split Out till body.
  5. Behåll villkoret i Media Page Check som jämför {{ $('Advance Media Counter').item.json.current_page }} med {{ $('Fetch Media Library').item.json.headers['x-wp-totalpages'] }} för loopstyrning.
  6. I Expand Tag Items ställer ni in Field to Split Out till body för att packa upp taggresultat från Fetch WP Tags.

Steg 5: konfigurera utdata-noder för Google Sheets

Varje dataset läggs till eller uppdateras i sitt eget ark med matchande ID:n.

  1. I Sync Posts Sheet låter ni Operation vara satt till appendOrUpdate, Document ID till https://docs.google.com/[YOUR_ID] och Sheet Name till Posts.
  2. Mappa kolumner i Sync Posts Sheet till inläggsfälten, till exempel id={{ $json.body.id }}, title={{ $json.body.title.rendered }} och categories={{ $json.body.categories[0] }}.
  3. I Sync Category Sheet låter ni Operation vara satt till appendOrUpdate, Sheet Name till Categories, och matchar på category_id.
  4. I Sync Media Sheet låter ni Operation vara satt till appendOrUpdate, Sheet Name till Media, och mappar värden som url={{ $json.source_url }} och media_id={{ $json.id }}.
  5. I Sync Tag Sheet låter ni Operation vara satt till appendOrUpdate, Sheet Name till Tags, och matchar på tag_id.
  6. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Sync Posts Sheet, Sync Category Sheet, Sync Media Sheet och Sync Tag Sheet.

⚠️ Vanlig fallgrop: Säkerställ att varje Google-ark har exakt de kolumnrubriker som definieras i nodmappningarna (t.ex. id, category_id, tag_id, media_id) annars kommer lägg till/uppdatera inte att matcha korrekt.

Steg 6: testa och aktivera ert arbetsflöde

Validera att varje gren körs och skriver data till era Google Sheets innan ni aktiverar schemat.

  1. Klicka på Execute Workflow för att testa med Scheduled Run Trigger eller skicka en förfrågan till URL:en för Incoming Webhook Trigger.
  2. Bekräfta att Sync Posts Sheet, Sync Category Sheet, Sync Media Sheet och Sync Tag Sheet var och en lägger till eller uppdaterar rader i ert målark.
  3. Verifiera att Page Limit Check och Media Page Check stoppar loopningen efter sista sidan baserat på svarshuvudena.
  4. När allt är verifierat växlar ni arbetsflödet till Active för att aktivera schemalagda körningar i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Tips för felsökning

  • WordPress-uppgifter för HTTP Basic Auth kan löpa ut eller sakna åtkomst. Om anropen börjar misslyckas, kontrollera först ditt WordPress Application Password och behörigheter för användarrollen.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
  • Google Sheets OAuth2 kan tappa åtkomst i det tysta efter lösenords- eller adminändringar. Återanslut Google-kontot i n8n-credentials och välj sedan kalkylarks-ID igen i varje Sheets-nod.

Snabba svar

Hur lång tid tar det att sätta upp den här WordPress Sheets sync-automatiseringen?

Cirka 30 minuter om dina WordPress- och Google-konton är redo.

Krävs det kodning för den här WordPress Sheets sync?

Nej. Du kopplar inloggningsuppgifter, uppdaterar några URL:er och klistrar in ditt kalkylarks-ID.

Är n8n gratis att använda för det här WordPress Sheets sync-arbetsflödet?

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 eventuell hostingkostnad om du self-hostar, plus normala kostnader för Google-/WordPress-konton.

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

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 klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag modifiera det här WordPress Sheets sync-arbetsflödet för andra användningsfall?

Ja, och det bör du. De flesta börjar med att ändra WordPress-endpoint-URL:en i HTTP Request-noderna (till exempel för att inkludera anpassade posttyper) och justera per_page-inställningen för att snabba upp stora synkar. Du kan också byta ut Scheduled Trigger mot webhook-only-körningar, beroende på hur du rapporterar. Till sist uppdaterar du Google Sheets-noderna för att mappa extra fält du bryr dig om, som författare, slug eller senast ändrad-datum.

Varför misslyckas min WordPress-anslutning i det här arbetsflödet?

Oftast beror det på ett felaktigt Application Password eller fel bas-URL för REST API. Generera ett nytt Application Password i WordPress, uppdatera HTTP Basic Auth-credential i n8n och dubbelkolla att du anropar /wp-json/wp/v2/ på rätt domän. Om det fungerar i en webbläsare men inte i n8n är behörigheter nästa misstänkta. Rate limits kan också dyka upp om du kör synken för ofta på en stor sajt.

Vilken volym kan det här WordPress Sheets sync-arbetsflödet hantera?

För de flesta små till medelstora sajter kan det utan problem synka tusentals inlägg och mediaobjekt per körning, eftersom det paginerar resultaten och fortsätter loopa tills det är klart.

Är den här WordPress Sheets sync-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja. Det här arbetsflödet kräver paginering, loopar och skrivning till flera flikar (inlägg, taggar, kategorier, media), och n8n hanterar det utan att det blir en hög av separata zaps/scenarios. Self-hosting är också viktigt om du förväntar dig frekventa synkar. Samtidigt: om du bara behöver ett enkelt upplägg ”nytt inlägg → lägg till en rad” kan Zapier eller Make gå snabbare att klicka ihop. Prata med en automationsexpert om du vill ha hjälp att välja det mest renodlade alternativet för din rapporteringsstack.

När detta väl rullar håller sig ditt innehållsark uppdaterat utan att du behöver passa det. Arbetsflödet sköter den repetitiva synkningen så att du kan fokusera på beslut, inte exporter.

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

Launch login modal Launch register modal