🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Serper: keyword ranks logged weekly

Lisa Granqvist Partner Workflow Automation Expert

Weekly rank checks sound simple until you’re juggling 40 keywords, multiple pages, and “quick updates” that turn into an hour of tab-switching and second-guessing.

SEO specialists feel it first, honestly. But content marketers reporting on wins and agency leads trying to keep clients calm run into the same mess. This Serper rank tracking automation puts your rankings into Google Sheets every week, with a clean 12-week history you can trust.

Below you’ll see the exact workflow, what it automates, the business results you can expect, and the few setup details that matter.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Serper: keyword ranks logged weekly

The Problem: Weekly rank checks waste time and create reporting chaos

Manual rank tracking has a special kind of friction. You search a keyword, find your result (maybe), confirm it’s the right page, write the rank down somewhere, then repeat. Over and over. It’s not just the time. It’s the uncertainty when results look different, the “did I paste into the right row?” worry, and the awkward moment when a client asks for last month’s trend and you only have scattered notes. One missed week and your “trend” turns into a guess.

The friction compounds. Here’s where it breaks down.

  • Checking rankings for 30 to 50 keywords can quietly eat about 2 hours every Monday.
  • People record slightly different results, so the chart looks “off” and you end up defending the data instead of using it.
  • Historical tracking gets messy fast, because week-over-week columns aren’t maintained consistently.
  • Errors slip in when you’re matching the keyword to a specific target page under time pressure.

The Solution: Serper checks rankings and logs a 12-week history in Google Sheets

This workflow turns rank tracking into a scheduled, repeatable system. Every week (by default, Monday at midnight), n8n pulls your keyword list and target URLs from a Google Sheet. It then queries Google via the Serper API for each keyword, waits briefly between requests to avoid hammering the API, and extracts the rank plus the matching link from the search results. After that, it assembles the fields you actually care about (keyword, rank, found URL, target page, week column), merges everything into one clean output, and writes the update back into your sheet. The best part is the continuity: it keeps a consistent 12-week history so you can show movement without rebuilding a report every time.

The workflow starts on a weekly schedule, then loops through your sheet rows in batches. Each keyword triggers one Serper request, the result is parsed to find the correct page (URL-level or domain-level), and the final row update lands back in Google Sheets for the current week.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you track 40 keywords for a client and you check both the keyword and the target URL. Manually, even at about 3 minutes per keyword, that’s roughly 2 hours every week (plus the inevitable “double-check” time). With this workflow, you spend maybe 10 minutes once to confirm your Google Sheet columns and credentials, then the weekly run happens in the background while you sleep. On Monday morning, the sheet is updated and the last 12 weeks are still there.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store keywords, URLs, and weekly ranks
  • Serper API for Google search results by keyword
  • Google Service Account credential (create it in Google Cloud Console)
  • Serper API key (get it from your Serper dashboard)

Skill level: Beginner. You’ll connect accounts, paste IDs/keys, and edit one or two workflow fields.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Weekly schedule trigger. The workflow runs automatically every Monday at 00:00 by default, so you don’t need a recurring calendar reminder.

Keyword intake from Google Sheets. n8n reads rows that include a unique identifier, the keyword, and the target page you want to track. That target page matters because it helps the workflow decide what “success” looks like in the SERP.

Search + rank extraction through Serper. For each keyword, n8n sends an HTTP request to Serper, pauses briefly between queries, then parses the results to find the matching URL (or domain if you choose that mode) and its rank.

Write-back with 12-week history. The results are merged, output fields are assembled, and the Google Sheet is updated for the current week’s column without wiping prior weeks. You end up with a steady 12-week view you can reuse in reports.

You can easily modify the run schedule to a different day, or adjust how strictly the workflow matches URLs based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set the weekly schedule that kicks off the rank tracking run and optionally keep a manual trigger for testing.

  1. Open Weekly Schedule Trigger and confirm the cron rule under Rule is set to 0 0 * * MON for weekly runs.
  2. Keep Utility: Manual Run in the canvas for on-demand testing (no configuration needed).
  3. Verify the execution flow starts at Weekly Schedule TriggerFetch Target Keywords.

Step 2: Connect Google Sheets

Configure the spreadsheet used to load keywords and write back ranking updates.

  1. Open Fetch Target Keywords and set Document to [YOUR_ID] and Sheet Name to Sheet2 (or your actual sheet).
  2. Credential Required: Connect your Google Sheets (Service Account) credentials in Fetch Target Keywords.
  3. Open Update Ranking Sheet and set Document to your-google-sheet-id and Sheet Name to your-sheet-name.
  4. Credential Required: Connect your Google Sheets (Service Account) credentials in Update Ranking Sheet.

⚠️ Common Pitfall: The update node expects columns like Date 1..12, Ranking Date 1..12, and Ranking URL Date 1..12. Ensure your sheet has these exact headers.

Step 3: Control Batch Processing and Timing

Process keywords in batches and add a delay between search requests to avoid rate limits.

  1. In Iterate Records Batch, keep defaults or set Batch Size as needed for your API limits (defaults are fine if unspecified).
  2. Open Pause Between Queries and set Amount to 10 seconds to throttle requests.
  3. Confirm the parallel branch: Pause Between Queries outputs to both Google Search API Request and Combine Results in parallel.
  4. Ensure the loop back is connected: Update Ranking SheetIterate Records Batch for the next record.

⚠️ Common Pitfall: If your API has stricter limits, increase the wait time in Pause Between Queries to prevent throttling or errors.

Step 4: Configure the Search Request and Rank Logic

Set up the search API call and the ranking extraction logic.

  1. Open Google Search API Request and set URL to =https://google.serper.dev/search and Method to POST.
  2. Set Body Parameters to include q = {{ $json.Keyword }}, gl = in, and num = 100.
  3. Set Header Parameters to include X-API-KEY = {{ $credentials.serperApiKey }} and Content-Type = application/json.
  4. Credential Required: Connect your Serper API key credential in Google Search API Request.
  5. Open Derive Rank and Link and replace const HARDCODED_DOMAIN = "Update Your Domain"; with your target domain if you are not using the Target Page column.

⚠️ Common Pitfall: Derive Rank and Link references Fetch Target Keywords to access row data. Ensure the sheet includes row_number and Target Page or Page columns.

Step 5: Merge and Assemble the Update Payload

Combine the API result with the original sheet row and prepare the full update payload.

  1. Keep Combine Results connected so that Derive Rank and Link and the parallel branch can feed into it.
  2. In Assemble Output Fields, keep the default JavaScript to overlay updated fields while preserving the original row columns.
  3. Verify the flow continues: Combine ResultsAssemble Output FieldsUpdate Ranking Sheet.

Step 6: Configure Output Updates

Map all output fields to update the ranking sheet row-by-row.

  1. Open Update Ranking Sheet and verify Operation is set to update.
  2. Confirm Matching Columns includes Sr.no and that column mappings are expressions like {{ $json["Ranking Date 1"] }} and {{ $json["Ranking URL Date 1"] }}.
  3. Ensure all date/rank fields from Date 1 through Date 12 are mapped to keep historical data intact.

Step 7: Test and Activate Your Workflow

Run a manual test, verify the output, then activate the schedule.

  1. Click Execute Workflow and run Utility: Manual Run to test a single cycle.
  2. Confirm that Google Search API Request returns results and Derive Rank and Link outputs a rowNumber with the appropriate Ranking Date N, Ranking URL Date N, and Date N fields.
  3. Check the Google Sheet to confirm the row updated correctly after Update Ranking Sheet.
  4. Turn the workflow Active so Weekly Schedule Trigger runs automatically each week.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or lack the right permissions. If updates stop writing, check the Google Service Account access to the specific spreadsheet first.
  • If you’re using Wait nodes or external APIs, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Serper API limits can bite when you scale up to lots of keywords. If results come back incomplete, check your Serper usage dashboard and slow the loop with a longer pause.

Frequently Asked Questions

How long does it take to set up this Serper rank tracking automation?

About 30 minutes if your Google credentials and Serper key are ready.

Do I need coding skills to automate Serper rank tracking?

No. You will mostly copy IDs, connect credentials, and test a run. The only “technical” part is optional: adjusting URL-vs-domain matching in the workflow’s code step.

Is n8n free to use for this Serper rank tracking workflow?

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 Serper API usage, which depends on how many keywords you check each week.

Where can I host n8n to run this automation?

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.

Can I customize this Serper rank tracking workflow for domain-only tracking instead of a specific URL?

Yes, and it’s a common tweak. In the “Derive Rank and Link” logic, you can change the matching rule from exact target page URL to domain matching (and you can also set the HARDCODED_DOMAIN variable if you want to lock results to one site). Other popular customizations include changing the schedule, extending the history beyond 12 weeks by adding columns, and deciding whether the workflow is allowed to overwrite a week’s data.

Why is my Google Sheets connection failing in this workflow?

Usually it’s permissions. Make sure the Google Service Account email has been shared on the spreadsheet, then confirm the credential selected in both Google Sheets nodes is the same one you updated. If you copied the sheet ID or tab name wrong, the read step can still succeed while the update step fails, so double-check both fields.

How many keywords can this Serper rank tracking automation handle?

Plenty for most small teams.

Is this Serper rank tracking automation better than using Zapier or Make?

Often, yes, if you care about control and cost as you scale. This workflow loops through rows, waits between API calls, merges results, and updates specific week columns, which is the kind of multi-step logic that gets awkward (and expensive) in simpler automation tools. n8n also gives you a self-hosting option, which means you’re not paying per tiny step in the same way. Zapier or Make can still be fine for very small keyword lists, but weekly rank tracking tends to grow. If you want a second opinion before you commit, Talk to an automation expert.

Set this up once and your weekly rank story basically writes itself. The workflow handles the repetitive checking so you can focus on what the rankings mean.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal