Decodo to Google Sheets, SEO audits stay current
SEO audits don’t usually fail because you don’t know what to do. They fail because the checking, copying, and documenting never ends, so “monthly” audits quietly turn into “when we have time.”
This Decodo Sheets automation hits SEO specialists first, but marketing leads and agency teams feel it too. It keeps a living watchlist of pages, re-checks them on a schedule, and logs the changes in Google Sheets so you can spot problems early without babysitting it.
Below, you’ll see how the workflow runs every few days, what it captures, and how it turns raw page data into a clean, shareable audit history.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Decodo to Google Sheets, SEO audits stay current
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Decodo", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "SEO Analyzer", pos: "b", h: 48 }
n7@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model1", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Notify Team"]
n9@{ icon: "mdi:database", form: "rounded", label: "Store Result", pos: "b", h: 48 }
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/>Mapping Result"]
n0 --> n6
n6 --> n10
n9 --> n3
n10 --> n9
n3 --> n8
n3 --> n0
n1 --> n2
n2 --> n3
n4 -.-> n6
n5 -.-> n6
n7 -.-> n5
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 n1 trigger
class n5,n6 ai
class n4,n7 aiModel
class n2,n9 database
class n10 code
classDef customIcon fill:none,stroke:none
class n8,n10 customIcon
The Challenge: Keeping SEO audits current without living in spreadsheets
Most “SEO monitoring” is really just good intentions plus a recurring calendar reminder. You open a sheet, pick a few URLs, run checks across tools, then paste snippets into notes that nobody reads next week. Meanwhile titles change, internal links break, Core Web Vitals dip, and you only notice after rankings wobble or a stakeholder asks why traffic is down. The worst part is the mental overhead. You spend your sharpest hours doing clerical work, not analysis or fixes.
It adds up fast. Here’s where it usually breaks down in real life.
- Pages get re-audited inconsistently, so you can’t tell what changed versus what you just missed last time.
- On-page data is gathered from multiple places, which means copy-paste errors and mismatched snapshots.
- Insights live in someone’s head or in a one-off doc, so the team has no shared history to act on.
- You find problems late because nobody is notified when a scheduled review actually finishes.
The Fix: Automated SEO watchlist audits logged in Google Sheets
This workflow turns your “list of important pages” into a living audit system. Every five days, it pulls URLs from a Google Sheet, checks each page with Decodo to collect live on-page signals (metadata, headings, links, schema, and performance-related signals like Core Web Vitals), then sends that structured page data into an AI review step for scoring and commentary. The AI output is forced into clean JSON, so you don’t end up with messy paragraphs you can’t sort or filter. Finally, it appends a fresh row of results back into Google Sheets and sends a Telegram message when the run completes. You get a running timeline of SEO health without rebuilding the same report over and over.
The workflow starts on a schedule, reads your watchlist, and processes URLs in batches so it stays stable even as your list grows. Decodo captures the “what’s on the page right now,” and the Gemini-based analysis explains why that matters and what to look at next. Your sheet becomes the single source of truth.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you monitor 30 key URLs. A manual mini-audit is often about 5 minutes per page (open, check title/meta/H1, skim links/performance, paste notes), so you’re looking at roughly 2.5 hours every run. This workflow runs automatically every five days: you spend maybe 10 minutes maintaining the URL list, then you just wait for the Telegram “done” message. That’s about 2 hours back each cycle, and you also gain an audit trail you can share without rewriting anything.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Decodo for live page inspection and extraction.
- Google Sheets to store the URL watchlist and results history.
- Telegram to notify the team when runs complete.
- Decodo API credentials (get them from your Decodo dashboard).
Skill level: Intermediate. You’ll connect accounts, paste API keys, and be comfortable editing a prompt and a few sheet columns.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A scheduled run kicks things off. The workflow starts automatically every five days, so your monitoring doesn’t depend on someone remembering a recurring task.
Your Google Sheet becomes the source list. It reads the URL watchlist from Google Sheets, then loops through each row in controlled batches to keep execution reliable.
Decodo captures the current page reality. For each URL, Decodo fetches live on-page data like titles, meta descriptions, headings, schema, links, and performance signals. That “snapshot” is what makes the later analysis trustworthy.
Gemini analysis turns data into an SEO review. The SEO review chain uses the Gemini chat model to score and comment on content, metadata quality, structure, speed, and linking. A structured output parser forces consistent JSON so it’s sortable and easy to store.
Results are logged and the team is notified. The workflow appends the summary back into Google Sheets, then sends a Telegram alert when the batch completes so you know the log is fresh.
You can easily modify the scoring weights and the URL columns to match how your team audits. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set the workflow to run on a fixed cadence to pull URLs from your sheet.
- Open Scheduled Run Start.
- In Rule, set the interval to
daysInterval: 5to run every five days. - Optionally keep Flowpast Branding as a reference note; it does not affect execution.
Step 2: Connect Google Sheets
Pull target URLs from a spreadsheet and prepare a results sheet for output.
- Open Retrieve Sheet Rows and set Document to your Google Sheets URL.
- Set Sheet Name to the tab that contains the input URLs.
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Rows.
- Open Append to Results Sheet and set Operation to
append. - Set Sheet Name to
[YOUR_ID](replace with your destination tab) and set Document to your results sheet URL. - Keep the column mappings as configured: url
={{ $json.url }}, date={{ $json.time }}, checks={{ $json.checks }}, issues={{ $json.issues }}, recommendations={{ $json.recommendations }}. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Append to Results Sheet.
Step 3: Configure Batching and Page Fetching
Iterate through each URL and fetch page content for analysis.
- Open Batch Item Iterator and keep default batch options for sequential processing.
- Ensure the connection is Retrieve Sheet Rows → Batch Item Iterator.
- Open Decodo Fetcher and set URL to
={{ $json.url }}. - Credential Required: Connect your decodoApi credentials in Decodo Fetcher.
- Batch Item Iterator outputs to both Dispatch Team Alert and Decodo Fetcher in parallel.
Step 4: Set Up the AI SEO Analysis
Analyze fetched HTML with Gemini and parse structured SEO insights.
- Open SEO Review Engine and keep Text as
=Input {{ JSON.stringify($json.results[0] )}}. - Review the prompt content in SEO Review Engine to ensure the checks and scoring match your SEO requirements.
- Open Structured JSON Parser and keep Auto Fix enabled with the provided JSON schema example.
- Confirm Gemini Chat Model is connected as the language model for SEO Review Engine.
- Credential Required: Connect your googlePalmApi credentials in Gemini Chat Model.
- Structured JSON Parser is connected to Gemini Chat Model B for parsing; add credentials to Gemini Chat Model B (not the parser).
- Credential Required: Connect your googlePalmApi credentials in Gemini Chat Model B.
Step 5: Format and Store Results
Convert structured results into readable summaries and write them to your results sheet.
- Open Format Output Summary and keep the JavaScript that maps checks, issues, and recommendations into newline-delimited strings.
- Verify the output fields time, url, checks, issues, and recommendations are returned as shown in the code.
- Ensure the connection path is SEO Review Engine → Format Output Summary → Append to Results Sheet.
Step 6: Configure Team Notifications
Notify the team that results are available after each batch item begins processing.
- Open Dispatch Team Alert and set Text to
=⚠️INFORMATION⚠️ Date: {{ new Date() }} Kindly check the gsheets for the latest analysis result. - Set Chat ID to your Telegram chat or channel ID (currently blank).
- Credential Required: Connect your telegramApi credentials in Dispatch Team Alert.
=, Telegram notifications will fail. Use a numeric chat ID or channel username.Step 7: Test & Activate Your Workflow
Verify that each step runs correctly before enabling production scheduling.
- Click Execute Workflow to run a manual test from Scheduled Run Start.
- Confirm that Retrieve Sheet Rows pulls URLs and Decodo Fetcher returns content for each item.
- Check that SEO Review Engine and Structured JSON Parser output structured JSON with expected keys.
- Verify that Append to Results Sheet writes a new row with populated url, date, checks, issues, and recommendations.
- Confirm Dispatch Team Alert sends a Telegram message after batch processing starts.
- Toggle the workflow to Active to enable the five-day schedule.
Watch Out For
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials panel and confirm the connected Google account still has edit access to the results sheet.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Common Questions
Usually about 30 minutes once your accounts are ready.
Yes, but you’ll want one person who’s comfortable connecting OAuth accounts and pasting API keys. After that, it’s mostly editing sheet columns and tweaking the AI prompt.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Decodo API usage and Gemini API costs based on how many URLs you audit.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Start by changing the interval in Scheduled Run Start if five days is too slow (or too noisy). Then tune the scoring logic inside SEO Review Engine by adjusting the prompt and weights so it matches what your team cares about (metadata quality, internal linking, speed, content depth). If you want different output columns, update Format Output Summary and the fields being written in Append to Results Sheet. You can also swap Telegram alerts for email or Slack later without changing the core audit loop.
Usually it’s an expired or incorrect Decodo API credential. Regenerate your key in Decodo, update the credential in n8n, and rerun a single URL. If it still fails, check rate limits and make sure the URLs in Google Sheets are valid and publicly accessible.
It can comfortably handle dozens to a few hundred URLs per run for most small teams.
For this use case, n8n is usually the better fit because batching, branching logic, and structured parsing are built for workflows like this. Zapier and Make can do parts of it, but multi-step AI analysis plus looping through lots of URLs gets expensive and harder to control. n8n also gives you a self-host option, which is useful when the watchlist grows. If your goal is only “send me a message when a sheet row changes,” then Zapier or Make may feel simpler. Talk to an automation expert if you want help picking the right approach.
Once this is running, your SEO watchlist stops being a “project” and becomes infrastructure. The workflow keeps the log current, and you spend your time making decisions instead of collecting screenshots.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.