Track Google keyword rankings with ScraperAPI, Google Sheets, and Gmail
UnknownWhat this workflow does
This workflow has 11 nodes and runs on a schedule (cron 0 8 * * *). Along the way it connects Google Sheets, Gmail and Scraperapi Official (community).
How it runs
Trigger: On a schedule (cron 0 8 * * *).
- Read Keywords in Sheets (Google Sheets): read (sheet)
- Loop Keywords (Loop Over Items (Split in Batches)): loops over the items in batches
- Read History in Sheets (Google Sheets): read (sheet)
- Scrape Google SERP (Scraper Api): google search (sde)
- Compute Keyword Changes (Code): runs custom JavaScript code
- Parse Search Rankings (Code): runs custom JavaScript code
- If: checks a condition and branches into true / false
- Append Rankings in Sheets (Google Sheets): append (sheet)
- Build Movement Digest (Code): runs custom JavaScript code
- Send Digest Email via Gmail (Gmail): send (message)
Services it uses
Before you upgrade to n8n 3.0
We can't fully verify this one: it relies on 1 community package, and n8n 3.0 turns unverified community packages off by default (N8N_UNVERIFIED_PACKAGES_ENABLED=false).
- Check that n8n-nodes-scraperapi-official is verified or supports 3.0 (used in Scrape Google SERP).
Nodes used (7)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - Google Sheets
n8n-nodes-base.googleSheets - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - Scraper Api
n8n-nodes-scraperapi-official.scraperApi - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Gmail
n8n-nodes-base.gmail
From the author
Quick Overview This workflow runs daily to read keywords from Google Sheets, scrape Google Search results via ScraperAPI, store ranking history back in Google Sheets, and email a Gmail digest when notable keyword ranking movements are detected. How it works…