n8n & Google Sheets Integration

Build Your Own Google Rank Tracker with n8n

Stop checking rankings by hand. Connect Google Sheets, n8n, and SERPHouse to create a fully automated Google rank tracking workflow that monitors keyword positions, stores ranking history, and updates reports automatically.

50M+

API requests served

99.9%

Uptime SLA

100+

Countries supported

<5s

Median response time

Trusted by companies worldwide

DHL Shopify Mastercard Hotstar Royalty Range TCS The World Bank

Capabilities

What you can do

One SERPHouse API connection. A few n8n nodes. Full keyword rank tracking: automated, scheduled, and synced to Google Sheets.

Automate Keyword Rank Checks

Pull your keyword list from Google Sheets and let n8n query live Google rankings for every keyword automatically, with no manual searching required.

  • Scheduled or on-demand runs
  • Bulk keyword processing
  • Loop-based queries (no overload)
  • Live Google SERP data

Track Rankings By Location & Device

Query rankings the same way your audience actually searches: by country, city, language, and device.

  • City and region targeting
  • Desktop, mobile & tablet
  • Multi-language support
  • Automatic domain-match detection

Sync Results Straight to Google Sheets

Every keyword's position and matching URL get written back into your sheet automatically, with no copy-pasting required.

  • Auto-append new rows
  • Auto-update existing rows
  • Keyword-matched updates
  • Always-current rank history

Why It Matters

Manual rank checks only show you a fraction of what's actually happening

Most teams track rankings manually (a few keywords at a time), which means they only ever see a small slice of real visibility, and ranking drops often go unnoticed for days. Building this on n8n with the SERPHouse SERP API means rankings get checked automatically, accurately, and on schedule, with results landing exactly where your team already works.

check

Reliable, repeatable rank data instead of manual spot-checks

check

Automated tracking for every keyword, across every site

check

Clean, structured data ready for reporting or alerting

n8n workflow architecture

1

Schedule Trigger

Runs daily at 6 AM

2

Google Sheets (Read)

Load keyword list rows

3

Loop Over Items

Process one keyword at a time

4

SERPHouse HTTP Request

POST /serp/live → get position

5

Google Sheets (Write)

Append keyword, position, URL, date

Real-World Example

120 keywords. 8 clients. Zero manual effort.

An SEO agency tracks 120 keywords across 8 client websites. Checking rankings manually used to take a full day each week.

With the n8n + SERPHouse workflow, they now:

Run the workflow automatically every morning

Get each keyword's exact Google position and matching URL

See results land directly in their shared Google Sheet, ready for the weekly client report

The result

What used to take a full day now takes zero manual effort, and the data is more consistent than it ever was by hand.

keyword-rankings.gsheet
Keyword Position URL Date
best seo tools 4 /best-seo-tools Today
rank tracker free 7 /rank-tracker Today
keyword research api 12 /keyword-api Today
serp api pricing 2 /pricing Today
google search api 18 /google-serp-api Today

Code Examples

The SERPHouse API call that powers the n8n workflow

The rank tracking workflow sends one POST request per keyword. The response includes the full organic results array, which your code scans it for the target domain and records the position.

POST /serp/live · Live Google SERP endpoint
lang & loc · language + location targeting
organic[].position · position, title, URL per result
// n8n HTTP Request node: Body (JSON)
{
  "method":  "POST",
  "url":     "https://api.serphouse.com/serp/live",
  "headers": {
    "Authorization": "Bearer {{ $env.SERPHOUSE_API_KEY }}",
    "Content-Type":  "application/json"
  },
  "body": {
    "q":      "={{ $json.keyword }}",
    "domain": "google.com",
    "lang":   "={{ $json.lang }}",
    "loc":    "={{ $json.location }}",
    "device": "={{ $json.device }}"
  }
}

// Code node: find position for target domain
const organic = items[0].json.results?.organic ?? [];
const target  = "{{ $json.target_domain }}";
const match   = organic.find(r => r.url?.includes(target));
return [{ json: { position: match?.position ?? "not ranked", url: match?.url } }];

Try it live in the API Playground →

FAQ

Frequently asked questions

Everything you need to know before building your automated rank tracker with n8n and the SERPHouse API.

An n8n rank tracker is an automated workflow built in n8n that reads keywords from a source like Google Sheets, sends each keyword to the SERPHouse SERP API, retrieves the live Google position, and writes the result back to your sheet, all without manual checks. It runs on a schedule so rankings stay current automatically.

No. The n8n workflow uses a visual node editor. You connect a Google Sheets node, an HTTP Request node (calling SERPHouse), and a Code node to find the position without writing custom application code. Basic familiarity with n8n's interface is sufficient.

As often as your SERPHouse plan allows. Daily checks are typical for most SEO workflows. You can schedule the n8n workflow to run hourly, daily, or weekly using n8n's Schedule Trigger. Each keyword query counts as one API credit.

Yes. Pass the loc parameter (e.g., loc=United States, loc=United Kingdom) and the lang parameter in each SERPHouse API call. You can add a location column to your Google Sheet and loop over keyword-location pairs to track rankings in multiple markets from a single workflow.

After each SERPHouse API call, a Code node extracts the position by scanning the results array for the target domain. An n8n Google Sheets node then appends a new row, or updates an existing row, with the keyword, position, matched URL, and timestamp. n8n handles OAuth authentication with Google Sheets natively.

Each SERPHouse response includes the full organic results array: position, title, url, and snippet for each result. Your workflow scans those results for the target domain and records the position. You also get the full SERP context (featured snippets, People Also Ask, and local pack) if needed.

Yes. Add a target_domain column to your keyword sheet and pass it into the position-detection logic in the Code node. The workflow will check each keyword's SERP and find where that specific domain appears, supporting multiple sites from the same workflow.

Yes. Google Search Console reports average position over time with a delay of several days, and only for pages that have already received impressions. SERPHouse returns the live, real-time Google position for any keyword, including keywords you do not yet rank for, so you can track competitors, find gaps, and catch drops the same day they happen.

Related Use Cases

More ways to build with SERPHouse APIs

Start tracking keyword rankings automatically today

Free tier available. No credit card required. Your first rank check runs in under 5 minutes.