🔓 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

Bright Data to Google Sheets, rankings logged daily

Lisa Granqvist Partner Workflow Automation Expert

Manual rank checks are the worst kind of “important.” They’re repetitive, easy to mess up, and they quietly steal time from work that actually moves traffic.

SEO managers feel it on reporting days. Agency owners feel it when clients ask, “Any updates?” Marketing leads dealing with five priorities at once feel it too. This rank tracking automation keeps a daily log in Google Sheets so you stop doing the same Google searches over and over.

You’ll set up an n8n workflow that pulls your keywords from a sheet, checks Google via Bright Data’s SERP API, writes results back to a “Results” tab, then emails a clean HTML summary.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Bright Data to Google Sheets, rankings logged daily

Why This Matters: Daily rank checks waste real time

If you track rankings manually, you already know the routine. Open an incognito window, search a keyword, scroll, squint, click around, then paste the “rank” into a spreadsheet (and hope you didn’t accidentally copy yesterday’s row). Do that for 20 keywords and it’s suddenly most of your morning. Worse, manual checks aren’t consistent: location, personalization, and “did I search the exact phrase?” all creep in. Then, when someone asks for a trend line, you realize you never logged history reliably, so you can’t explain what changed.

It adds up fast. Here’s where it usually breaks down in real teams.

  • Rank checks happen “when someone remembers,” so you end up with gaps that ruin trend analysis.
  • Copy-paste logging introduces small mistakes that turn into embarrassing client updates.
  • Multiple domains or locations make the process feel endless, which means you track fewer keywords than you should.
  • Stakeholders want a tidy email summary, but you’re stuck screenshotting SERPs or sending messy spreadsheets.

What You’ll Build: Bright Data SERP checks logged to Sheets

This workflow turns rank tracking into a repeatable daily system. It starts on a schedule trigger (every 24 hours) or whenever you click “Test workflow” in n8n. First, it reads a Google Sheets tab that lists the keywords you care about alongside the target domain for each one. Next, it formats each keyword into a URL-friendly query (spaces become +), then processes the list in batches so each keyword gets its own SERP request. For every keyword, n8n calls Bright Data’s SERP API, receives the raw HTML, and parses out the non-Google links to find where your target domain appears. Finally, it appends a timestamped record to a “Results” sheet and emails an HTML table summary through Gmail.

The workflow starts from Google Sheets, which becomes your simple control panel. Bright Data handles the Google SERP retrieval, and n8n extracts rank, URL, and a “how many results were checked” context. Then Gmail delivers the report so you can forward it to a client or drop it into an internal update.

What You’re Building

Expected Results

Say you track 30 keywords for one domain and you check rankings five days a week. Manually, even “quick” checks take about 2 minutes each once you search, scan, and log, which is about 1 hour a day. With this workflow, adding the keywords to Google Sheets takes maybe 10 minutes once, then your daily effort is basically zero while n8n runs and emails you the table. You get about 5 hours back every week, plus a real history you can chart.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Bright Data for SERP API access to Google results
  • Google Sheets to store keywords and save rank history
  • Bright Data API token (get it from your Bright Data dashboard)

Skill level: Intermediate. You’ll paste an API token, connect Google, and confirm your Sheets columns match what the workflow expects.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A daily schedule (or a manual run) kicks things off. You can run it on demand to test changes, then let the 24-hour schedule handle ongoing checks.

Your keyword list is pulled from Google Sheets. The workflow reads rows that contain a Keyword and a Domain, then reformats each keyword so it’s safe to use in a SERP request.

Bright Data is called once per keyword, in batches. n8n loops through your list, requests the Google results HTML via Bright Data’s SERP API (with a default US location), then parses links to find your target domain and rank position.

Results are stored and reported automatically. Every run appends a new line to your “Results” tab for history, then builds an HTML email table and sends it through Gmail to the recipients you choose.

You can easily modify the location parameter (gl=) to run checks for another country based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Set up the workflow entry points so you can run it on demand or on a schedule.

  1. Add the Manual Execution Start node to allow manual runs for testing.
  2. Add the Timed Schedule Trigger node for automated daily runs.
  3. In Timed Schedule Trigger, keep the interval set to hours and 24 to run once per day.
  4. Connect both Manual Execution Start and Timed Schedule Trigger to Fetch Keyword Sheet so either trigger starts the same data flow.

Step 2: Connect Google Sheets

Configure the Google Sheets nodes that read keywords and write rank results.

  1. Open Fetch Keyword Sheet and set Document ID to ={{ $credentials.googleSheetDocId }}.
  2. Set Sheet Name in Fetch Keyword Sheet to Keyword.
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials in Fetch Keyword Sheet.
  4. Open Append Rank Records and set Operation to append.
  5. Set Document ID to ={{ $credentials.googleSheetDocId }} and Sheet Name to Results.
  6. Map columns in Append Rank Records with expressions like ={{ $json.rank }}, ={{ $json.url }}, and ={{ $('Fetch Keyword Sheet').item.json.Domain }}.
  7. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Rank Records.

Step 3: Set Up Keyword Processing

Transform keyword data and prepare it for batching and downstream rank checks.

  1. In Format Keyword Terms, keep the JavaScript that creates transformedKeyword by replacing spaces with +.
  2. Connect Fetch Keyword SheetFormat Keyword TermsIterate Keyword Batches to pass the transformed keywords into batching.
  3. Configure Iterate Keyword Batches to control batch size if needed (defaults are acceptable for small lists).
  4. Iterate Keyword Batches outputs to both Build Email Layout and Retrieve Search Ranks in parallel.

Tip: Keep keyword rows in the Keyword sheet consistent with fields like Keyword and Domain to avoid missing data in downstream nodes.

Step 4: Configure Rank Retrieval and Parsing

Request SERP data and extract rank positions for the target domain.

  1. In Retrieve Search Ranks, set URL to https://api.brightdata.com/request and Method to POST.
  2. Set JSON Body to ={"zone": "serp_n8n","url": "https://www.google.com/search?q={{ $json.transformedKeyword }}&gl=US", "format": "raw"} .
  3. Enable Send Headers and add Authorization with value Bearer {{$credentials.brightDataApiKey}}.
  4. In Determine Rank Position, keep the code that reads $('Fetch Keyword Sheet').first().json.Domain and outputs rank, url, and checkedAt.
  5. Connect Retrieve Search RanksDetermine Rank PositionAppend Rank Records.

Credential Required: Add Bright Data credentials to support {{$credentials.brightDataApiKey}} used in Retrieve Search Ranks.

Step 5: Configure Output Actions

Generate the email summary and send it after batch processing.

  1. In Build Email Layout, keep the JavaScript that builds the HTML table and outputs emailBody.
  2. Connect Build Email LayoutDispatch Email Update to send the summary email.
  3. In Dispatch Email Update, set Send To to ={{ $credentials.recipientEmail }}.
  4. Set Message to ={{ $json.emailBody }} and Subject to Ranked.
  5. Credential Required: Connect your gmailOAuth2 credentials in Dispatch Email Update.

Tip: The Flowpast Branding sticky note is informational and does not affect execution.

Step 6: Test and Activate Your Workflow

Validate the data flow and enable scheduled execution.

  1. Click Execute Workflow on Manual Execution Start to run a full test.
  2. Confirm that Append Rank Records adds new rows in the Results sheet with rank data.
  3. Verify that Dispatch Email Update sends an email containing a table of keywords and ranks.
  4. Once verified, toggle the workflow to Active to enable the Timed Schedule Trigger for daily tracking.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Sheets access can fail if the connected Google account loses permission to the file. If it errors, open the Google Sheets node in n8n and re-select the spreadsheet first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Bright Data requests can return unexpected HTML when rate limits or location settings change. Check the HTTP Request node’s response in n8n execution logs, then confirm your Authorization token and the gl= country parameter.

Quick Answers

What’s the setup time for this rank tracking automation?

About 30 minutes if your Sheets and Bright Data account are ready.

Is coding required for this rank tracking automation?

No. You’ll connect accounts, paste a token, and point the workflow at the right Google Sheet.

Is n8n free to use for this rank tracking automation 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 Bright Data SERP API usage costs based on how many keywords you check per day.

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 modify this rank tracking automation workflow for different use cases?

Yes, and it’s common. You can change the country by editing the Bright Data request URL in the “Retrieve Search Ranks” HTTP Request node (the gl= parameter), and you can tweak what gets logged by updating the “Determine Rank Position” code step. Many teams add extra columns like “device,” “notes,” or “campaign,” or route alerts to Slack when a keyword drops out of the top 10.

Why is my Bright Data connection failing in this workflow?

Usually it’s an invalid or expired API token in the HTTP Request node’s Authorization header. Check the execution output for 401/403 errors, regenerate the token in Bright Data, then update it in n8n. If the response is “successful” but the HTML looks odd, confirm your SERP parameters (including gl=) and make sure you’re not hitting usage limits. Occasionally, the issue is simply that your workspace firewall blocks outbound requests, which shows up as timeouts in the run logs.

What volume can this rank tracking automation workflow process?

On n8n Cloud, the practical limit depends on your execution quota and how many keywords you check daily. If you self-host, there’s no hard execution cap, but your server and Bright Data usage limits still matter. For most small teams, a few hundred keywords per day is realistic as long as you keep batching enabled and don’t email a massive table to 20 recipients every run.

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

Often, yes. This workflow relies on looping, HTML parsing, and custom logic, and that gets awkward (or pricey) in tools built around simple “trigger → action” zaps. n8n handles batching cleanly, and you can self-host to avoid per-task fees when you scale keyword volume. Zapier or Make can still be fine if you only need a tiny report and you never expect to grow past a handful of keywords. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation based on your reporting needs.

Once this is running, rankings become background data instead of a recurring chore. Open the sheet, skim the email, and get back to work that actually improves the numbers.

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