Du hämtar en sitemap, klistrar in den i ett kalkylark och fem minuter senare är det kaos. Dubbla URL:er. Konstig teckenkodning. Ingen föräldra–barn-struktur. Nu “granskar” du, fast du i praktiken håller på med datarensning.
Den här Firecrawl Sheets sitemap-automationen träffar SEO-specialister först, men webbutvecklare som gör migreringar och marknadsansvariga som förbereder granskningar känner också av friktionen. Flödet gör om en webbplats-URL till en felfri, hierarkisk sitemap i Google Sheets, så att du kan granska strukturen utan att förlora en halv dag.
Nedan ser du exakt vad flödet producerar, hur det fungerar på vanlig svenska och vad du behöver för att köra det stabilt.
Så fungerar den här automationslösningen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: Firecrawl till Google Sheets, strukturerad sitemap
flowchart LR
subgraph sg0["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Firecrawl OK", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Copy template", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Data mapping", 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/>Sorting URL into table"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Bad URL"]
n6@{ icon: "mdi:location-exit", form: "rounded", label: "Map a website and get urls", pos: "b", h: 48 }
n1 --> n2
n1 --> n5
n2 --> n4
n4 --> n3
n6 --> n1
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 n1 decision
class n3 database
class n5 api
class n4 code
classDef customIcon fill:none,stroke:none
class n4,n5 customIcon
Problemet: sitemaps är “tillgängliga”, inte användbara
En sitemap-fil ska göra livet enklare. I praktiken skapar den ofta ett nytt jobb: att göra en hög med URL:er till något du faktiskt kan analysera. Du kopierar från XML, sorterar, och försöker gissa navigationsnivåer genom att titta på slugs. Subdomäner blandas in. Parametrar smiter igenom. Och när du delar “granskningsarket” med en kund eller kollega lägger du halva mötet på att förklara vad de tittar på, i stället för att prata om vad som ska åtgärdas.
Friktionen byggs på. Särskilt när du gör det här mer än en gång i månaden.
- Du lägger cirka 1–2 timmar per sajt bara på att göra URL:erna till en struktur som går att granska.
- Utan föräldra–barn-relationer är det svårt att snabbt upptäcka föräldralösa sidor eller uppblåsta sektioner.
- Team råkar granska sidor som inte ska indexeras eftersom källdatan är rörig.
- När en crawl misslyckas får du ofta veta det för sent, efter att du redan skapat dokument och mappar som du nu måste radera.
Lösningen: generera ett hierarkiskt sitemap-ark automatiskt
Det här flödet börjar med en enkel input: webbplatsens URL, skickad via ett n8n-chattgränssnitt. Därifrån följer Firecrawl sajtens sitemap-filer (och endast sitemap-filerna) för att hitta sidor på ett sätt som är snabbt och respektfullt mot crawl-regler. Om crawlen blockeras eller URL:en är ogiltig stoppar flödet snyggt och säger till direkt. Om det lyckas duplicerar n8n en Google Sheets-mall i din Google Drive, bearbetar URL:erna till en nivåbaserad hierarki (Niv 0 till Niv 5) och lägger sedan till raderna i arket med klickbara länkar. Resultatet blir en strukturerad sitemap som du kan filtrera, skumma och dela utan att först behöva göra manuell datarensning.
Flödet startar när du skickar in en URL i chatten. Firecrawl samlar in URL:er som deklarerats i sitemapen, sedan organiserar ett hierarkisteg dem i föräldra–barn-nivåer. Till sist skapar Google Drive kalkylarket från din mall och Google Sheets tar emot de formaterade raderna.
Det du får: automation vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du granskar 5 sajter på en vecka. Manuellt tar även en “enkel” sitemap oftast cirka 60–90 minuter att kopiera ut, avduplicera, avkoda konstiga URL:er och sortera till något som liknar en hierarki, alltså ungefär 6–8 timmar förarbete. Med det här flödet klistrar du in en URL i chatten (kanske 1 minut), väntar på crawl och bearbetning (ofta runt 10 minuter) och öppnar sedan det färdiga Google-arket via länken. Du gör fortfarande analysen, men du får tillbaka större delen av veckan.
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)
- Firecrawl för sitemap-baserad crawling och URL-upptäckt
- Google Sheets för att lagra den hierarkiska sitemap-utmatningen
- Firecrawl API-nyckel (hämta den i din Firecrawl-dashboard)
Kunskapsnivå: Medel. Du kopplar in inloggningar, duplicerar en mall och byter ett fil-ID en gång.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du skickar en webbplats-URL via chatt. Flödet använder en n8n-chatt-trigger, så du behöver inte bygga något formulär och du slipper hantera schemaläggning som “kör detta varje tisdag”.
Firecrawl följer endast sidor som deklareras i sitemapen. Det är viktigt eftersom det håller crawlen strukturerad och etisk. Den respekterar robots.txt och använder inställningar som är avsedda för sitemap-upptäckt (så att du inte råkar spindla hela sajten).
Flödet kontrollerar att det lyckas innan det gör något filarbete. Om webbplatsen blockerar crawlers, eller om URL:en är felaktigt formaterad, får du ett tydligt felmeddelande och körningen avslutas. Inga kvarlämnade kalkylark som skräpar ner din Drive.
En Google Sheets-mall dupliceras och fylls med hierarkinivåer. n8n skapar ett nytt ark i din Google Drive, organiserar URL:er i ett föräldra–barn-träd upp till fem nivåer djupt och lägger sedan till rader i Google Sheets som klickbara länkar.
Du kan enkelt anpassa mallens layout till din granskningsstil (kolumner, namngivning, extra anteckningsfält), så att utdata passar hur teamet redan jobbar. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera chattriggern
Konfigurera startpunkten så att användare kan skicka in en webbplats-URL via chatten och starta genomsökningen av webbplatskartan.
- Lägg till noden Incoming Chat Trigger.
- Ställ in Mode på
webhook. - Aktivera Public så att webhooken kan nås externt.
- Koppla Incoming Chat Trigger till Crawl Site Map URLs.
https://) i chattinmatningen för att undvika genomsökningsfel.Steg 2: anslut Firecrawl för URL-mappning
Konfigurera genomsökningen av webbplatskartan med Firecrawl för att mappa webbplatsens struktur.
- Lägg till noden Crawl Site Map URLs.
- Inloggningsuppgifter krävs: Anslut era firecrawlApi-autentiseringsuppgifter.
- Ställ in URL på
{{ $json.chatInput }}. - Ställ in Operation på
map. - Aktivera Sitemap Only genom att sätta den till
true. - Ställ in Ignore Sitemap på
false. - Koppla Crawl Site Map URLs till Crawl Success Check.
Steg 3: sätt upp validering av genomsökning och svarslogik
Använd villkorslogik för att hantera lyckade genomsökningar och returnera ett tydligt fel när URL:en är ogiltig eller inte stöds.
- Lägg till noden Crawl Success Check.
- Konfigurera villkoret för att kontrollera Boolean True med Left Value satt till
{{ $json.success }}. - Koppla utgången true från Crawl Success Check till Duplicate Sheet Template.
- Koppla utgången false från Crawl Success Check till Return Invalid URL.
- I Return Invalid URL, ställ in Respond With på
jsonoch behåll Response Body som{ "text": "L'url {{ $('Incoming Chat Trigger').item.json.chatInput }} n'est pas une url correcte ou elle n'est pas prise en compte par ce service" }.
Steg 4: anslut Google Drive
Duplicera en kalkylbladsmall för att lagra webbplatshierarkin för varje ny URL.
- Lägg till noden Duplicate Sheet Template.
- Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-autentiseringsuppgifter.
- Ställ in Operation på
copy. - Ställ in Name på
{{ $('Incoming Chat Trigger').item.json.chatInput }} - n8n - Arborescence. - Ställ in File ID till ert ID för mallkalkylbladet (ersätt
[YOUR_ID]). - Koppla Duplicate Sheet Template till Organize URL Hierarchy.
Steg 5: konfigurera URL-bearbetning
Transformera de genomsökta URL:erna till en strukturerad hierarki som kan skrivas till Google Sheets.
- Lägg till noden Organize URL Hierarchy.
- Behåll JavaScript Code som den är, för att bygga hierarkin i flera nivåer och utdata med hyperlänkar.
- Verifiera att noden läser data från Crawl Site Map URLs via
$('Crawl Site Map URLs').item.json. - Koppla Organize URL Hierarchy till Append Hierarchy Rows.
Steg 6: konfigurera utdata till Google Sheets
Lägg till de genererade hierarkiraderna i det duplicerade kalkylbladet.
- Lägg till noden Append Hierarchy Rows.
- Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter.
- Ställ in Operation på
append. - Ställ in Document ID på
{{ $('Duplicate Sheet Template').item.json.id }}. - Ställ in Sheet Name på
FR. - Låt Columns-mappningen vara på auto-map så att fält som Niv 0 till Niv 5 och URL läggs till korrekt.
Niv 0 till Niv 5 och URL för att undvika tomma rader.Steg 7: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta genomsökningen, skapandet av hierarkin och utdata till kalkylbladet.
- Klicka på Execute Workflow och skicka en giltig webbplats-URL till Incoming Chat Trigger.
- Bekräfta att Crawl Site Map URLs returnerar
success: trueoch att Crawl Success Check följer true-grenen. - Verifiera att ett nytt kalkylblad skapas av Duplicate Sheet Template och att rader läggs till av Append Hierarchy Rows.
- Om URL:en är ogiltig, säkerställ att Return Invalid URL svarar med felmeddelandet.
- När ni är nöjda, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Google Drive-inloggningar kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kolla först sidan Credentials i n8n och bekräfta sedan att Google-kontot kan skapa kopior i Drive.
- Om sajten blockerar crawling kan Firecrawl returnera misslyckad status även när sitemapen finns. Kontrollera robots.txt och säkerhetsverktyg (t.ex. bot-skydd) innan du antar att flödet är fel.
- Noden som kopierar mallen bygger på ett fil-ID. Om du glömmer att ersätta standard-ID:t för mallen med ditt eget kan du få behörighetsfel eller skriva till ett ark du inte kan dela på rätt sätt.
Vanliga frågor
Cirka 30 minuter om du redan har dina inloggningar redo.
Nej. Du kopplar konton och klistrar in din malls fil-ID en gång.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för Firecrawl API-användning (det beror på crawl-volym och din plan).
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änsat antal körningar men kräver grundläggande serverhantering.
Ja, och det borde du, helt ärligt. Enklast är att duplicera din egen Google Sheets-mall och sedan uppdatera noden “Duplicate Sheet Template” så att den använder din malls fil-ID. Du kan också justera vad som skrivs genom att ändra mappningen i “Append Hierarchy Rows”, där kolumner och formateringsval syns. Vanliga anpassningar är att lägga till en “Anteckningar”-kolumn för granskningar, byta namn på Niv-kolumner till “Level” och separera subdomäner i egna flikar.
Oftast är det en API-nyckelfråga (fel nyckel, utgången nyckel eller att inloggningen aldrig valdes på noden). Det kan också bero på att målsajten blockerar externa crawlers via robots.txt eller bot-skydd, vilket gör att Firecrawl inte kan hämta sitemap-URL:er. Om det bara misslyckas på vissa sajter, kontrollera de sajterna först, inte din n8n-setup. Rate limits kan också dyka upp när du kör många granskningar tätt efter varandra.
Den klarar de flesta vanliga sitemaps, men den verkliga gränsen är din Firecrawl-plan och hur stor sitemapen är.
Ofta, ja, eftersom det här jobbet kräver crawling, validering och hierarkibearbetning, inte bara “flytta data från A till B”. n8n hanterar förgreningslogik snyggt (lyckas vs. misslyckas) och self-hosting undviker körningsbegränsningar som kan bli dyra när du gör många granskningar. Du har också mycket mer kontroll över hur hierarkin byggs innan den skrivs till Google Sheets, vilket är där det mesta av värdet finns. Zapier eller Make kan ändå fungera om du bara behöver en enkel export i två steg och du är okej med en plattare, mindre strukturerad utdata. Prata med en automationsexpert om du är osäker på vad som passar.
När du väl har en felfri hierarki i Google Sheets blir granskningen enklare och diskussionen mer fokuserad. Sätt upp det en gång, så känns framtida sitemap-granskningar nästan orättvist enkla.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.