Connect Google Search Console to Google Sheets

Import Search Analytics — clicks, impressions, CTR and average position — broken down by query, page, country or device, for your verified sites.

Coming soon — join the list to get early access

What you can pull from Google Search Console

Google Search Console exposes 5 objects you can pull, each as its own job. Every run will pull the records into a flat table, so nested fields arrive as ordinary columns that Google Sheets can sort, filter and total without further work.

Top queries

Search queries by day. The most common SEO report.

Columns returned by top queries
ColumnTypeNotes
datedimension
querydimension
clicksmetricAlways returned
impressionsmetricAlways returned
ctrmetricA fraction, not a percentage
positionmetricAverage position

Top pages

Landing pages by day, with the same four metrics.

By country

Search performance split by country.

By device

Desktop, mobile and tablet split.

Daily totals

One row per day, no breakdown.

Options you can set

site_url
A DNS-verified property uses the sc-domain: form, not the https:// URL
date_range
yesterday, last_7_days, last_28_days, last_90_days or custom

How it lands in Google Sheets

Google Sheets accepts append and overwrite writes. Overwrite replaces the target range, which suits a snapshot; append adds rows underneath, which suits a log you are accumulating. There is no upsert here, so rows are added or replaced rather than merged.

  • Append adds rows below existing content; overwrite replaces the target range.
  • No upsert: a spreadsheet has no primary key, so there is nothing to merge on. Use Airtable or Postgres if rows must be updated in place.
  • Google caps a spreadsheet at 10 million cells across all tabs. Filter before writing rather than after.

Authentication

You connect Google Search Console once through OAuth and the credential is stored server-side, never pasted into a cell or a formula. Only the scopes the connector actually calls are requested — the table below lists each one and what it is for.

What Google Search Console is asked for

webmasters.readonly non-sensitive
Read search performance. Read-only
userinfo.email non-sensitive
Label the connection

Keeping runs incremental

Yes. Pull a rolling date window and append, building history past the 16 months Search Console retains.

Because Google Sheets has no upsert, decide what a re-run should mean before you schedule it. Overwrite keeps a current snapshot; append accumulates history and will grow without bound.

Limits and pacing

These are the provider-side ceilings that shape a schedule, not ours. Knowing them up front is the difference between a job that runs quietly every morning and one that starts failing the week your data grows.

LimitValueApplies to
Data retention Google deletes beyond this. There is no upgrade that recovers it.16 monthsGoogle Search Console
Reporting lag The most recent days are incomplete until Google finishes processing.2-3 daysGoogle Search Console

Common gotchas

Most of what goes wrong with a scheduled sync is not a bug — it is a detail of how one side behaves that nobody wrote down. These are the ones that come up for this pair.

Clicks, impressions, CTR and position are always returned

Search Console has no selectable metrics - the four come back on every report and cannot be chosen.

Every preset includes the date dimension

Without it the API collapses the whole window into a single aggregated row, which is meaningless appended to a sheet on a daily schedule.

Search Console keeps 16 months

Older data is gone permanently - there is no upgrade that recovers it. Appending to a destination on a schedule is how you keep a longer history.

An open-ended range beats a padded one

Writing to A2:D is better than A2:D1000 for appends: the padded form reserves rows you may not need and makes the append boundary ambiguous.

Set it up in four steps

  1. 1

    Connect Google Search Console

    Connect your Google account, then choose a verified property.

  2. 2

    Connect Google Sheets

    Connect your Google account once. Paste a spreadsheet URL or ID.

  3. 3

    Shape the data

    Select the columns you want, filter rows, cast types and add computed fields. Everything else is dropped before it reaches the destination.

  4. 4

    Schedule it

    Run once, or on a cron. Every run refreshes Google Sheets with the latest Google Search Console data.

Do I need an add-on or extension for this?

No. The job runs server-side and writes into Google Sheets through its API, so there is nothing installed in the spreadsheet itself. It keeps running when nobody has the file open, and a copy of the file does not need anything installed to work.

How often does the data refresh?

On whatever schedule you set with a cron expression — hourly, daily, or a specific time on specific days. Each run pulls the latest from Google Search Console.

Do I need to write any code?

No. You connect both sides, map the fields in a wizard and set a schedule. Computed fields accept small expressions — abs, round, min, max, len — but there is nothing to host or maintain.

Can I get more than the 1,000 rows the UI exports?

Yes. The export limit is a property of the Search Console interface, not the API. A scheduled job pages through the full result set and writes all of it.

Why does my property URL not work?

A DNS-verified property is a Domain property, and the API addresses it as sc-domain:example.com rather than https://example.com/. Passing the URL form returns 403 even with correct permissions.

Do I have to give access to my whole Google Drive?

No. Only the spreadsheets scope is requested. The Drive scope that most spreadsheet tools ask for is a restricted scope granting read access to every file you own; it is deliberately not requested here, which is why you paste a spreadsheet URL rather than browsing Drive.

Will this keep working if I copy the sheet?

The job writes to a specific spreadsheet ID, so a copy will not receive data until you point a job at it. Nothing is installed in the file itself, though, so copying never breaks the original.

When will Google Search Console be available?

Google Search Console is built and waiting on verification. Join the early-access list and we will let you know the moment it opens.