How to Automate Google Search Console Data Exports With n8n
Open the Performance report in Google Search Console, apply a filter, click Export, and you get your data — capped at 1,000 rows. For a hobby blog that is plenty. For a site with thousands of ranking queries, that export is a thin slice of the real picture, and the long tail where most optimisation decisions actually live never makes it into the file. An n8n workflow sits in the gap between that capped manual click and a full data-warehouse build, pulling far more rows on a schedule and dropping them exactly where your team already works.
Three ways to get data out of Search Console
Before automating anything, it helps to see the three real paths out of Search Console side by side. Each one breaks at a different point, and knowing where it breaks tells you which tool the job needs.
| Method | Rows per pull | Freshness | Setup effort | Best for |
|---|---|---|---|---|
| Manual UI export | 1,000 | On demand | None | One-off checks, small sites |
| Search Analytics API (via n8n) | Up to 25,000 per request, paginated | Scheduled, near real time | Low – medium | Recurring reports, mid-size portfolios |
| BigQuery bulk data export | Unsampled daily dump | Daily | Medium – high | Large sites, long-horizon analysis |
The pattern is clear: the UI is free but capped, the API trades a little setup for roughly twenty-five times the rows, and the BigQuery bulk export (accessed 26 Oct 2026) removes sampling entirely at the cost of standing up a data warehouse. Most teams hit the wall at step one and overshoot straight to step three when the middle path would serve them for a year.
Want to know where your own site stands? Get a free automated audit of your site, delivered to your inbox as a PDF.
Audit my site freeWhere an n8n workflow actually fits
n8n is the right tool when you have outgrown the 1,000-row manual export but a dedicated BigQuery pipeline would be overkill — either because you do not yet have the data volume to justify it, or because nobody on the team owns a warehouse. If you pull Search Console data on a repeating cadence (a weekly query report, a monthly client deck, a rolling log of position changes), that recurring need is exactly what an automation layer is built for.
It is the wrong tool in two cases. If you only need a number once, open the UI and export; building a workflow for a single pull wastes more time than it saves. And if you genuinely need every impression for a site with millions of queries feeding a business-intelligence stack, go straight to the bulk export — n8n paginating through the API will be slower and more fragile than letting Google write to BigQuery for you.
Connecting n8n to the Search Console API
The export runs on the Search Console (Webmaster Tools) API, so the connection is the part worth getting right once. In the Google Cloud console, create a project and enable the Search Console API. Create an OAuth 2.0 client, and when you authorise it, request the read-only scope https://www.googleapis.com/auth/webmasters.readonly — your workflow never needs write access, so there is no reason to grant more.
In n8n, store those credentials once as a Google OAuth2 credential and reuse them across every Search Console workflow you build. From there you can either use a generic HTTP Request node pointed at the API or a community node that wraps it; the HTTP Request route is the most transparent because you can see exactly which endpoint and body you are sending. The same credential also powers related jobs such as automated indexing requests, so the setup pays off beyond exports.
Building the export workflow, step by step
A working export is four nodes once the credential is in place:
- Schedule Trigger — set the cadence that matches the report you are feeding. Weekly is a sensible default; move to daily only if someone reads the data that often.
- HTTP Request — send a
POSTto the Search Analytics query endpoint (accessed 26 Oct 2026),https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query. In the JSON body set yourstartDate,endDate, thedimensionsyou need (query, page, country, device), and arowLimit. - Pagination loop — the API caps each response, so a loop increments the
startRowoffset until a response comes back short (more on this below). - Destination node — append the rows to Google Sheets for a report people can read, or to Postgres/MySQL if the data feeds dashboards. For client decks, writing to a dated tab keeps a clean history.
Because the API honours Search Console’s two-to-three-day processing delay, schedule the run for the morning and request data up to three days back to avoid pulling partial rows. If you are mainly building shareable query reports, the pattern lines up closely with best practices for automating GSC query reports.
Getting past the 25,000-row limit
The Search Analytics API returns a maximum of 25,000 rows per request. To pull a complete data set you paginate: set rowLimit to 25,000, send the first request with startRow at 0, then repeat with startRow at 25,000, 50,000, and so on, stopping when a response returns fewer rows than the limit. In n8n this is a simple loop that feeds the running offset back into the HTTP Request body. It is the single most common reason an export looks incomplete — teams forget the data continues past the first page and quietly report on a truncated sample.
When to graduate to the BigQuery bulk export
If paginating starts to feel slow, or you need unsampled history across a large property, that is the signal to move up. Google’s bulk data export writes your Search Console data to BigQuery on a daily basis with no row sampling, which is something neither the UI nor the standard API can match. The trade-off is a BigQuery project and the small storage and query costs that come with it. The honest rule: stay on n8n while the API comfortably covers your row counts, and switch when the volume — not the novelty — forces the change.
Frequently asked questions
Which OAuth scope does the export need?
Only https://www.googleapis.com/auth/webmasters.readonly. The export reads performance data and never modifies your property, so a read-only scope is both sufficient and safer than granting full access.
Why does my export stop at 25,000 rows?
That is the per-request ceiling of the Search Analytics API, not the total available. Add a pagination loop that increments startRow by 25,000 until a response returns fewer rows, and you will capture the full long tail.
Does automating the export cost anything?
The Search Console API is free within Google’s quota, and n8n can be self-hosted at no licence cost, so a scheduled export to Sheets or a database runs for free. Costs only appear if you move to the BigQuery bulk export, which bills for storage and queries.
Choosing your export path
Match the method to the job rather than defaulting to the one you know. A single lookup belongs in the UI. A recurring report that outgrows 1,000 rows belongs in an n8n workflow against the Search Analytics API, with pagination handling the volume. And an unsampled, warehouse-scale history belongs in the BigQuery bulk export. The middle path is where most SEO teams spend their time, and it is the one n8n automates with the least overhead.
Want to know where your own site stands?
Get a free automated SEO audit: technical health, speed, AI-search readiness and competitors, delivered as a PDF action plan.
Rather have it handled for you? See Donna’s plans →
