🔓 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, clean SERP reports

Lisa Granqvist Partner Workflow Automation Expert

Your competitor tracking shouldn’t live in a messy mix of browser tabs, screenshots, and “I’ll paste it later” notes. But that’s usually how it goes. One missed copy-paste, one wrong country setting, and your “SERP report” turns into a guessing game.

SEO leads feel it when reporting day hits. Marketing managers feel it when they need answers fast. Agency operators feel it when a client asks, “Did we move this week?” This SERP report automation pulls rankings into Google Sheets so you can compare keywords and countries without the manual grind.

Below you’ll see exactly what the workflow does, what you get out of it, and what to watch for when you plug in Bright Data and Sheets.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Bright Data to Google Sheets, clean SERP reports

The Problem: SERP tracking turns into copy-paste ops

Checking rankings for a few keywords is easy. Checking them for multiple countries, week after week, is where things fall apart. Someone searches Google, scrolls, copies URLs, grabs titles, then pastes into a sheet that never quite stays consistent. Even when you’re careful, the “same” report ends up with different formats, missing rows, and results that are hard to compare. The real cost isn’t just the time. It’s the mental load of knowing your data is kind of fragile, which makes decisions slower and less confident.

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

  • You spend about 10 minutes per keyword per country just gathering the basic results.
  • Your sheet ends up with inconsistent columns, so analysis turns into cleanup work.
  • People forget to change location settings, which quietly skews the whole dataset.
  • When you need to scale from 10 keywords to 50, the process simply doesn’t scale with you.

The Solution: Bright Data SERPs into a structured Google Sheet

This workflow turns SERP collection into a repeatable system. You keep a simple input sheet called “Keywords” with two columns: the keyword and the target country code (US, GB, DE, and so on). When you run the workflow, n8n reads those rows, safely encodes each search term, then processes them in batches so you don’t hammer the API. For every keyword-country pair, it calls Bright Data’s SERP API to fetch the Google results HTML. Then a parsing step extracts the competitor details you actually care about (domain/name, URL, title, snippet) and prepares clean fields for your spreadsheet. The end result is a “Competitor Results” sheet filled with consistent rows you can filter, pivot, chart, and share.

The workflow starts with a manual launch in n8n. It pulls your keywords and countries from Google Sheets, loops through them one-by-one (or in small batches), calls Bright Data, then writes structured results back to Sheets as tidy records.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you track 20 keywords across 3 countries. Manually, if it takes about 10 minutes to capture results for one keyword-country pair, that’s roughly 10 hours of tedious work every cycle. With this workflow, you update the “Keywords” sheet once, click run, and let it process. Expect around a minute per keyword (plus built-in waiting to avoid rate limits), so you’re closer to about an hour of hands-off processing while you do other work.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for keyword input and saved results
  • Bright Data SERP API to fetch Google result pages
  • Bright Data API token (get it from your Bright Data dashboard)

Skill level: Intermediate. You’ll connect credentials, confirm sheet columns, and paste an API token.

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

How It Works

You run it manually when you need fresh data. The workflow begins with a manual trigger inside n8n, so you can run it on demand (for example, every Monday before reporting).

Your keyword list comes from Google Sheets. n8n reads the “Keywords” tab, pulling the keyword text and the 2-letter country code that determines where the results should be collected.

Each keyword is prepared and processed in batches. Search terms are URL-encoded so characters like “&” or “/” don’t break requests. Then the workflow loops through items using a batch iterator, which is the difference between “works once” and “works every week.”

Bright Data returns the SERP HTML, then it gets parsed into clean fields. The HTTP request grabs the Google results via Bright Data’s SERP API, and a parsing step extracts consistent data points like website URL, title, and description for your “Competitor Results” sheet.

You can easily modify the fields you extract to include more SERP details based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually, so you’ll trigger it on demand to fetch and process SERP keyword data.

  1. Add the Manual Launch Trigger node as the workflow trigger.
  2. Leave default settings as-is in Manual Launch Trigger (no parameters required).

Step 2: Connect Google Sheets

Pull keyword inputs from your spreadsheet so each row becomes a keyword record.

  1. Add the Retrieve Sheet Keywords node and connect it to Manual Launch Trigger.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Set Document to YOUR_GOOGLE_SHEET_ID.
  4. Set Sheet Name to Keywords (the sheet with gid=0).

Step 3: Set Up Processing Nodes

Encode keywords for safe URL usage, then iterate through them in batches.

  1. Add Encode Search Terms and connect it to Retrieve Sheet Keywords.
  2. In Encode Search Terms, set JavaScript Code to const encode = encodeURIComponent; for (const item of $input.all()) { item.json.Keyword = encode(item.json.Keyword); } return $input.all();.
  3. Add Batch Keyword Iterator and connect it to Encode Search Terms.

Encode Search Terms outputs to Batch Keyword Iterator, which prepares each keyword for the API request loop.

Step 4: Configure SERP API Request and Parsing

Send each encoded keyword to the SERP API, then parse the competitor HTML response.

  1. Add SERP API Request and connect it to Batch Keyword Iterator.
  2. Credential Required: Connect your httpHeaderAuth credentials.
  3. Set URL to https://api.brightdata.com/request.
  4. Set Method to POST, enable Send Body, Send Query, and Send Headers.
  5. In Body Parameters, add: zone = serp_api1, url = =https://www.google.com/search?q={{ $json.Keyword }}, format = raw, country = = {{ $json['Target Country'] }}.
  6. In Query Parameters, set async to true.
  7. In Header Parameters, set Accept to application/json.
  8. Add Parse Competitor HTML and connect it to SERP API Request.
  9. Set JavaScript Code in Parse Competitor HTML to const html = $input.first().json.data || ''; return [{json: {websiteName: 'demo', websiteUrl: 'https://example.com', websiteTitle: 'Example Title', websiteDescription: 'Example description'}}];.

SERP API Request outputs to Parse Competitor HTML to transform the raw SERP response into structured competitor data.

⚠️ Common Pitfall: If your spreadsheet doesn’t include the Keyword and Target Country fields, the API request expressions will fail. Ensure both columns exist in the sheet.

Step 5: Test and Activate Your Workflow

Run a manual test to validate API responses and parsing output, then activate for production use.

  1. Click Execute Workflow to run Manual Launch Trigger and process a sample batch.
  2. Confirm Retrieve Sheet Keywords outputs rows with Keyword and Target Country fields.
  3. Verify SERP API Request returns a JSON response and Parse Competitor HTML outputs structured competitor data.
  4. When results look correct, switch the workflow to Active for ongoing use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Bright Data credentials can expire or need specific permissions. If things break, check your Bright Data dashboard token and plan access 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.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this SERP report automation automation?

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

Do I need coding skills to automate SERP report automation?

No. You’ll connect accounts and paste an API token. The only “code” here is already packaged inside the workflow.

Is n8n free to use for this SERP report 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 run.

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 SERP report automation workflow for weekly scheduled runs?

Yes, but you’ll swap the Manual Trigger for a Schedule trigger in n8n and keep the rest mostly the same. Common tweaks include adding extra extracted fields in the “Parse Competitor HTML” step, filtering out your own domain, and changing batch sizes in the iterator so you match your Bright Data limits. If you need separate tabs per country, you can also route outputs based on the Country column.

Why is my Bright Data connection failing in this workflow?

Usually it’s an invalid or expired API token in the HTTP header. Confirm your Bright Data SERP API is enabled, you still have credits, and the Authorization header is exactly what Bright Data expects. If it works for one keyword and fails for many, you may be hitting rate limits, so keep the built-in waiting and reduce batch size.

How many keywords can this SERP report automation automation handle?

Plenty for most teams. The workflow typically runs about a minute per keyword with the recommended 30-second delay, so 50 keywords can take close to an hour. On n8n Cloud, your monthly execution limits depend on your plan; if you self-host, you’re mostly limited by your server and your Bright Data usage limits.

Is this SERP report automation automation better than using Zapier or Make?

Often, yes. This workflow leans on batching, looping, and HTML parsing, which are awkward (or expensive) in many Zapier-style tools. n8n also gives you more control over request headers, retry behavior, and data shaping before it hits Google Sheets. If you only run a couple of keywords and want a quick two-step zap, Zapier or Make may be simpler. If you’re building a real reporting process you’ll trust, n8n is a better long-term home, honestly. Talk to an automation expert if you want help choosing.

Once this is running, your SERP tracking stops being a recurring chore and becomes a dataset you can actually trust. Set it up, run it when you need it, and use the time you get back for decisions instead of data entry.

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