🔓 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 Search Console to Gmail, weekly SEO report ready

Lisa Granqvist Partner Workflow Automation Expert

Your SEO numbers are in Google Search Console, but your weekly update is stuck in a messy loop of exporting, filtering, screenshotting, and second-guessing what changed.

This GSC email report automation hits SEO leads hardest. But marketing managers and agency owners feel it too, because nobody wants to spend Monday morning building the same report again.

This workflow pulls last week vs. the week before, splits brand vs non-brand clicks, calculates week-over-week changes, then sends a clean Gmail summary you can forward as-is.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Search Console to Gmail, weekly SEO report ready

The Problem: Weekly SEO Reporting Is Repetitive (and Error-Prone)

Weekly SEO reporting sounds simple until you actually do it. You open Search Console, set date ranges, export, then repeat for the previous week. Next comes the “brand vs non-brand” split, which usually means filters, regex, or a separate spreadsheet tab you don’t totally trust. Then you calculate changes for clicks, impressions, CTR, and average position, and you try to explain what moved without accidentally comparing the wrong windows. By the time you paste it into an email, the numbers feel stale and your confidence is lower than it should be.

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

  • You spend about an hour every week rebuilding the same view of performance from scratch.
  • Brand vs non-brand segmentation turns into a fragile spreadsheet routine that breaks when naming conventions shift.
  • Week-over-week deltas are easy to miscalculate, which means you can end up celebrating a “win” that isn’t real.
  • Stakeholders get a wall of numbers, not a clear story, so you still have to answer follow-up questions all day.

The Solution: Google Search Console → Gmail Weekly Summary

This n8n workflow runs on a weekly schedule (for example, Monday morning) and builds your update automatically. It calculates the right date ranges, pulls Google Search Console metrics for “Last Week” and “2 Weeks Ago,” then merges the two windows so comparisons are consistent. In the middle, it separates brand and non-brand clicks using your segmentation rules, and it also retrieves totals so you’re not relying on a single query set. Finally, it builds a formatted performance table that includes raw values plus week-over-week % change for clicks, impressions, CTR, and position, with color cues so gains and drops are obvious at a glance. The finished summary is sent through Gmail, ready to forward to your team or clients.

The workflow starts with a scheduled trigger, then uses HTTP requests to pull GSC data for two time windows. After brand logic and merging, it generates a clean table and emails it automatically, so your “weekly report” becomes a recurring deliverable instead of a recurring task.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you report on 5 brand segments every Monday. Manually, you might spend about 10 minutes per segment pulling two date ranges, plus another 20 minutes cleaning up the totals, calculating changes, and writing the email, which is roughly 70 minutes each week. With this workflow, the trigger runs automatically and the email lands in Gmail after processing, usually within a couple minutes. Your weekly effort becomes “skim the table, add a sentence if needed, forward it.”

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Search Console as the source of SEO metrics.
  • Gmail to deliver the weekly report email.
  • OpenAI if you want AI-assisted summarization via the included AI Agent.

Skill level: Beginner. You’ll mainly connect accounts and adjust brand segmentation rules to match your naming.

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

How It Works

A weekly schedule kicks it off. The workflow starts with a scheduled trigger (often Monday), so reporting happens even when your calendar is chaos.

Date ranges are computed for fair comparisons. A small code step calculates “Last Week” and “2 Weeks Ago,” which keeps week-over-week numbers consistent instead of accidentally comparing mismatched days.

Search Console data is pulled and segmented. HTTP requests retrieve totals and query-level data, then the workflow separates brand vs non-brand clicks using your label rules and merges everything into one dataset.

A performance table is built and emailed. The workflow calculates changes for clicks, impressions, CTR, and position, formats a clean table (including color-coded deltas), and sends it through Gmail to whoever needs it.

You can easily modify the brand segmentation logic to match how you track brands (domain, label, or custom filters) 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 starts the reporting workflow.

  1. Add the Scheduled Weekly Start node.
  2. Set the schedule rule to weekly with Trigger at Day as Monday (1) and Trigger at Hour as 15.
  3. Connect Scheduled Weekly Start to Compute Week Ranges.

Step 2: Connect Google Search Console Data Requests

Configure the HTTP requests that pull GSC query and totals data for both time windows.

  1. In Fetch Brand Queries, set Method to POST and JSON Body to ={ "startDate": "{{$json.startDate}}", "endDate": "{{$json.endDate}}", "dimensions": ["query"], "rowLimit": 5000 }.
  2. In Fetch Brand Queries 2, use the same body: ={ "startDate": "{{$json.startDate}}", "endDate": "{{$json.endDate}}", "dimensions": ["query"], "rowLimit": 5000 }.
  3. In Retrieve Totals A and Retrieve Totals B, set JSON Body to ={ "startDate": "{{$json.startDate}}", "endDate": "{{$json.endDate}}", "rowLimit": 5000 }.
  4. Credential Required: Connect your googleOAuth2Api credentials in Fetch Brand Queries, Fetch Brand Queries 2, Retrieve Totals A, and Retrieve Totals B.

Parallel Execution: Branch by Label outputs to both Fetch Brand Queries and Retrieve Totals A in parallel, while its second branch outputs to Fetch Brand Queries 2 and Retrieve Totals B.

Step 3: Set Up Date Logic and Branching

Define the reporting windows and route data to the correct paths.

  1. In Compute Week Ranges, keep the provided jsCode to output two items labeled 2 Weeks Ago and Last Week with startDate and endDate.
  2. In Branch by Label, set the condition to compare Left Value ={{ $json.label }} with Right Value 2 Weeks Ago.
  3. Confirm Compute Week Ranges outputs to Branch by Label, Combine Two Weeks, and Combine Last Week in parallel.

Step 4: Configure Brand vs Non-Brand Processing

Filter branded queries, flatten totals, and align each week’s results.

  1. In Separate Brand Clicks and Separate Brand Clicks 2, replace ['BRAND TERMS'] with your actual brand terms list.
  2. In Flatten Totals A and Flatten Totals B, keep the provided jsCode to merge startDate, endDate, and totals from rows[0].
  3. Ensure Separate Brand Clicks 2 and Flatten Totals A both connect to Combine Two Weeks, and Separate Brand Clicks and Flatten Totals B both connect to Combine Last Week.

Parallel Execution: Compute Week Ranges outputs to Branch by Label, Combine Two Weeks, and Combine Last Week in parallel.

Step 5: Merge Time Windows and Label the Brand

Combine both weeks into one data object and tag it with the brand name.

  1. Connect Combine Two Weeks and Combine Last Week into Merge Time Windows.
  2. In Attach Brand Label, replace brand: "BRAND NAME" with your actual brand name.
  3. Connect Merge Time Windows to Attach Brand Label, then to Build Performance Table.

Step 6: Configure Output Email Delivery

Generate the HTML table and email it to your stakeholders.

  1. In Build Performance Table, keep the provided jsCode that builds htmlTable with weekly deltas and totals.
  2. In Send Metrics Email, set Subject to Weekly GSC Metric Send.
  3. Set Message to ={{ $json["htmlTable"] }} so the HTML table is sent in the email body.
  4. Credential Required: Connect your gmailOAuth2 credentials in Send Metrics Email.

Step 7: Test and Activate Your Workflow

Verify each branch produces the expected metrics table and email output.

  1. Use Execute Workflow to run the workflow manually from Scheduled Weekly Start.
  2. Check that Build Performance Table outputs a populated htmlTable with both 2 Weeks Ago GSC and Last Week GSC rows.
  3. Confirm the email from Send Metrics Email includes the HTML table with delta columns and metrics.
  4. Activate the workflow by toggling it to Active for weekly production runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Search Console access can be the silent blocker. If the HTTP requests fail, confirm the property is correct and the connected Google account has permission in Search Console 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 GSC email report automation?

Usually about 10 minutes if your Search Console access is already in place.

Do I need coding skills to automate GSC email report delivery?

No. You’ll connect Google accounts and adjust a couple of brand-segmentation settings. The workflow logic is already built.

Is n8n free to use for this GSC email report 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 OpenAI API costs if you keep the AI Agent enabled.

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 GSC email report automation for multiple domains or brands?

Yes, and honestly it’s the first customization most teams do. You’ll update the brand segmentation logic where the workflow branches by label, then adjust the “Attach Brand Label” step so each row in the table is tagged correctly. Some people segment by domain, others by query patterns, and some by a custom label list. You can also swap the final Gmail send for Slack if you prefer updates in a channel.

Why is my Google Search Console connection failing in this workflow?

Most of the time it’s permissions or the wrong property. Confirm the Google account connected in n8n is an owner (or has access) to the Search Console property you’re querying, then double-check the site URL format matches what Search Console expects. If it worked once and stopped, re-authenticate and rerun, because tokens can expire. Also watch for quota issues if you scale this across many properties.

How many brand segments can this GSC email report automation handle?

For most small teams, “dozens” is fine on a normal schedule, and if you self-host you’re mainly limited by your server and Google’s API quotas.

Is this GSC email report automation better than using Zapier or Make?

For this use case, n8n is usually a better fit because you’re doing multi-step branching, merging two time windows, and running custom calculations before the email goes out. That kind of logic can get awkward (and pricey) in tools that charge per step or push you toward simpler flows. n8n also gives you the option to self-host, which is handy when you want predictable costs. Zapier or Make can still work if you only need a basic “send me metrics” email with minimal transformation. If you want help deciding, Talk to an automation expert.

Once this is running, your weekly SEO update becomes a reliable system instead of a recurring scramble. The workflow handles the repetitive parts, so you can focus on what the numbers actually 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