For the complete documentation index, see llms.txt. This page is also available as Markdown.

Google Search Console

Google Search Console (GSC) is Google's free tool for monitoring your website's presence in Google Search results. By connecting Google Search Console to Coupler.io, you can automatically export search performance data, Discover metrics, Google News stats, and URL indexing information to spreadsheets, BI tools, or data warehouses — without manual CSV downloads or custom API integrations.

Coupler.io's Google Search Console integration pulls data from the GSC API using Google OAuth authentication, covering 5 report types: Search results performance, Search results performance by appearance, Discover performance, Google News performance, and URLs index performance.

Why connect Google Search Console to Coupler.io?

  • Automate SEO reporting — Schedule regular exports of search performance data with clicks, impressions, CTR, and position breakdowns so your dashboards always reflect the latest organic search trends.

  • Analyze by multiple dimensions — Break down search data by query, page, country, device, and date to identify high-performing content and optimization opportunities.

  • Monitor indexing health — Export URL inspection data to track which pages are indexed, identify crawl issues, and monitor AMP and mobile usability status.

  • Flexible destinations — Export to AI tools, Google Sheets, Excel, BigQuery, Looker Studio, or other supported destinations.

Prerequisites

Before connecting, make sure you have:

  • A Google Search Console account with verified site ownership or delegated access

  • A Coupler.io account

You must have at least Restricted or Full user access to the GSC property you want to export. Owner-level access is not required for performance reports, but may be needed for URL inspection data.

Quick start

How to connect

1

In Coupler.io, create a new data flow and select Google Search Console as the source. Click Connect and sign in with your Google account.

2

Grant Coupler.io permission to access your Search Console data.

3

Select one or more Sites and a Report type — Search results performance (default), Search results performance by appearance, Discover performance, Google News performance, or URLs index performance.

4

Configure the Report period (Start date / End date), select Dimensions and optional Filters by dimensions, and adjust Advanced settings (Search results type, Aggregate data by, Data state) as needed.

5

Choose your destination and run the import.

Google Search Console data overview

Coupler.io's Google Search Console integration pulls data from the GSC Search Analytics API and URL Inspection API. You select one report type per data flow — performance reports for search clicks and impressions data, or URL inspection for indexing status.

Available report types

Report type
Description
Typical use case

Search results performance

Clicks, impressions, CTR, and average position for Google Search results. Supports dimensions: Date, Country, Device, Page, Query.

SEO dashboards, keyword tracking, page-level performance

Search results performance by appearance

Same metrics as Search results performance, but automatically grouped by search appearance type (e.g., AMP, Rich result, Video).

Identifying which search features drive traffic

Discover performance

Clicks, impressions, CTR, and position for Google Discover. Supports dimensions: Date, Country, Page.

Content marketing analysis, Discover traffic trends

Google News performance

Clicks, impressions, CTR, and position for Google News. Supports dimensions: Date, Country, Device, Page.

News content performance, editorial reporting

URLs index performance

Indexing status, coverage state, crawl details, AMP status, mobile usability, and rich results for a list of specified URLs.

Technical SEO audits, index coverage monitoring

The four performance reports (Search results, Search results by appearance, Discover, Google News) share the same core metrics: clicks, impressions, ctr, and position. They differ only in the available dimensions and which Google surface they report on.

Metrics and dimensions

Performance reports (Search results, Discover, Google News)

Column
Description

siteURL

URL of the verified site property

clicks

Number of clicks from Google to your site

impressions

Number of times your site appeared in results

ctr

Click-through rate (clicks ÷ impressions). Values range from 0 to 1.0

position

Average ranking position in search results

date

Date of the data row (only if Date dimension is selected)

country

3-letter ISO 3166-1 alpha-3 country code (only if Country dimension is selected)

device

Device type: DESKTOP, MOBILE, or TABLET (only if Device dimension is selected)

page

Page URL (only if Page dimension is selected)

query

Search query / keyword (only if Query dimension is selected)

Search results performance by appearance

Column
Description

siteURL

URL of the verified site property

keys

Search appearance type (e.g., AMP_TOP_STORIES, RICH_RESULT, VIDEO)

clicks

Number of clicks

impressions

Number of impressions

ctr

Click-through rate

position

Average position

URLs index performance

Column
Description

siteURL

URL of the verified site property

inspectURL

The inspected URL

inspectionResultLink

Link to the inspection result in GSC UI

indexStatusResult.verdict

High-level verdict: PASS, NEUTRAL, FAIL, VERDICT_UNSPECIFIED

indexStatusResult.coverageState

Coverage state: Submitted and indexed, Crawled - currently not indexed, etc.

indexStatusResult.robotsTxtState

Whether robots.txt blocks the page

indexStatusResult.indexingState

Whether a noindex directive is present

indexStatusResult.lastCrawlTime

Last time Google crawled the URL

indexStatusResult.pageFetchState

Whether Google could fetch the page

indexStatusResult.googleCanonical

The canonical URL Google selected

indexStatusResult.userCanonical

The canonical URL declared by the page

indexStatusResult.crawledAs

Which Googlebot crawler was used

ampResult.verdict

AMP validation verdict

mobileUsabilityResult.verdict

Mobile usability verdict

richResultsResult.verdict

Rich results eligibility verdict

Configuration options

Sites

Select one or more verified sites to export data from. Each site appears as a separate row group identified by the siteURL column. Available for all performance reports (not for URLs index performance — site is inferred from the URL).

Report period (Start date / End date)

Define the date range for performance reports. Default is 60 days ago to today. Format: YYYY-MM-DD. Use the date picker to set specific dates.

Dimensions

Select dimensions to break down your performance data. Available dimensions vary by report type:

Dimension
Search results
Discover
Google News

Date

Yes

Yes

Yes

Country

Yes

Yes

Yes

Device

Yes

No

Yes

Page

Yes

Yes

Yes

Query

Yes

No

No

If no dimensions are selected, the report returns a single aggregated row per site with totals for the entire date range.

Filters by dimensions

Refine results using dimension filters. You can filter by any dimension, even those not selected as report dimensions. Supported operators:

  • Contains / Does not contain — partial text match

  • Equals / Does not equal — exact match

  • Including Regex / Excluding Regex — regular expression match

To find valid values for the Search appearance filter, run the Search results performance by appearance report first. It returns the list of search appearance types active on your site.

Search results type

Filter results by search type. Available for Search results performance and Search results performance by appearance:

  • Web (default)

  • News

  • Image

  • Video

Aggregate data by

Control how data is aggregated:

  • Auto (default) — Google selects the aggregation method automatically

  • Page — Data is aggregated by canonical URI

  • Property — All data for the same property is aggregated together

  • News showcase panel — Aggregates by News Showcase panel (only for Discover and Google News reports; must be used with a Search appearance = NEWS_SHOWCASE filter)

Data state

Control data freshness:

  • Final (default) — Settled data, several days old, no further changes expected

  • All — Includes the latest data (up to 24 hours old), which may still change

Use cases by role

Export Search results performance with Date, Query, and Page dimensions to build keyword ranking dashboards. Track position changes over time, identify queries losing impressions, and find pages that rank but have low CTR. Use dimension filters to focus on branded vs. non-branded queries.

Use the Discover performance report to measure how your articles perform in Google Discover. Track clicks and impressions by page and date to understand which content formats and topics resonate with the Discover audience. Compare Discover traffic alongside Search results data in a combined dashboard.

Export URLs index performance for your key pages to monitor indexing status, crawl issues, canonical conflicts, and mobile usability. Schedule weekly exports to detect indexing regressions. Use the rich results verdict to confirm structured data is being recognized.

Use the Google News performance report to track how your articles perform in Google News. Break down by Date and Country to understand geographic reach. Monitor impression trends to evaluate editorial strategy and content distribution.

Platform-specific notes

  • Data processing delay — Google Search Console data is typically delayed by 2–3 days. The most recent dates may show incomplete data even with Data state set to "All". For accurate reporting, use the Final data state.

  • 16-month data retention — GSC retains performance data for approximately 16 months. You cannot query data older than this limit.

  • Dimension cardinality — When using the Query dimension, Google may group low-volume queries under "(other)" if there are too many unique queries. This is a GSC API limitation.

  • CTR and Position are averages — CTR is clicks ÷ impressions per row. Position is the average ranking. Neither metric is directly summable across dimensions without recalculation.

  • URL inspection quota — The URL Inspection API has a quota limit. Coupler.io fetches up to 20 URLs concurrently. For large URL lists, the import may take longer.

  • Multiple sites in one flow — You can select multiple verified sites in a single data flow. Each site's data is identified by the siteURL column.

Google Search Console common issues

Connection issues

Cannot connect Google account — OAuth popup fails or closes

Problem: Clicking "Connect" opens the Google sign-in screen but it fails to complete, or closes without connecting.

Fix:

  1. Disable browser popup blockers and ad blockers for coupler.io and accounts.google.com.

  2. Clear browser cookies and try in an incognito window.

  3. Make sure you're signing into the Google account that has access to the Search Console properties you want to export.

  4. If your Google account uses 2-factor authentication, complete the verification prompt before the popup times out.

No sites appear in the Sites dropdown

Problem: After connecting your Google account, the Sites selector shows no options.

Fix:

  1. Verify that the connected Google account has access to at least one verified property in Google Search Console.

  2. Check whether the property is a Domain property (e.g., sc-domain:example.com) or a URL-prefix property (e.g., https://example.com/). Both types should appear.

  3. If the property was recently added or verified, allow a few minutes for the GSC API to reflect the change.

  4. Try disconnecting and reconnecting the Google account from coupler.io/app/connections.

Error after reconnecting — data flow fails immediately after re-auth

Problem: You reconnected your Google account but the data flow still fails with an authentication error.

Fix:

  1. Go to coupler.io/app/connections, remove the existing Google Search Console connection, and reconnect from scratch.

  2. When reconnecting, make sure you grant all requested permissions — if you skip a permission scope, the data flow will fail.

  3. Check myaccount.google.com/permissions to confirm Coupler.io has access.

Missing data

No data returned for the selected date range

Problem: The data flow completes but returns zero rows for the chosen date range.

Fix:

  1. Google Search Console data has a 2–3 day processing delay. If your End date is today, the most recent days will have no data. Try setting the End date to 3 days ago.

  2. If using Data state: Final, the cutoff is even further back — typically 3–5 days. Switch to All if you need the freshest available data (understanding it may still change).

  3. GSC retains data for approximately 16 months. If your Start date is older than 16 months, no data will be returned for those dates.

  4. Verify the selected site actually received impressions during the date range. A new or low-traffic site may have no data.

Query dimension shows "(other)" instead of actual search terms

Problem: Some rows in the export show (other) in the query column instead of the actual search term.

Fix: This is a Google Search Console API limitation, not a Coupler.io issue. When there are too many unique queries (high cardinality), Google groups low-volume queries under (other) to protect user privacy and manage data volume. There is no workaround — the underlying data is anonymized by Google.

To reduce the (other) bucket:

  1. Narrow the date range to a shorter period (fewer unique queries per day).

  2. Add a Page dimension filter to focus on specific pages.

  3. Add a Country filter to limit the geographic scope.

Discover or Google News reports return no data

Problem: Selecting the Discover performance or Google News performance report type returns zero rows.

Fix:

  1. Not all sites have Discover or Google News data. Your site must appear in Google Discover or Google News to generate data for these reports.

  2. Check the Google Search Console UI directly — if Discover or Google News sections don't appear in the sidebar, your site doesn't have data for these surfaces.

  3. These reports have a shorter data retention period than Search results — data may be available for a more limited window.

URLs index performance returns errors for some URLs

Problem: Some URLs in the inspection report show errors in the coupler_io_import_error column instead of inspection results.

Fix:

  1. Verify the URLs are correct and belong to the verified site property. The URL must match the property's scheme and domain exactly.

  2. The URL Inspection API has a per-property quota. If you inspect too many URLs in a short period, some may fail with quota errors. Reduce the number of URLs per data flow and retry.

  3. If a URL returns a 403 error, the connected Google account may not have permission to inspect URLs for that property.

Data discrepancies

Click and impression counts don't match the GSC UI

Problem: The numbers exported by Coupler.io differ from what the Google Search Console web interface shows.

Fix:

  1. Check the Data state setting. The GSC UI defaults to "Final" data. If your Coupler.io export uses "All", you'll see fresher but potentially different numbers.

  2. Check the Search results type setting. The GSC UI defaults to "Web". If you selected "News", "Image", or "Video" in Coupler.io, the numbers will differ.

  3. Check the Aggregate data by setting. "Auto" vs. "Page" vs. "Property" can produce different numbers for the same date range because of how Google deduplicates impressions.

  4. Ensure the date range in Coupler.io exactly matches what you're viewing in the GSC UI.

  5. Check the selected dimensions — adding dimensions like Query or Page changes how impressions are counted (one impression per query-page-date combination vs. one impression per page-date combination).

CTR values seem wrong or don't add up

Problem: CTR values in the export don't match manual calculations or don't sum correctly.

Fix: CTR is calculated per row as clicks ÷ impressions. It is not summable across rows. If you add CTR values from multiple rows, you'll get a meaningless number. To calculate aggregate CTR, sum the clicks and impressions separately, then divide:

Total CTR = Sum(clicks) ÷ Sum(impressions)

This is the same behavior as in the GSC UI. Coupler.io exports the per-row CTR exactly as returned by the GSC API.

Position values differ from what I see in GSC

Problem: Average position values in the export don't match the GSC UI.

Fix:

  1. Position is an impression-weighted average per row. Like CTR, it is not directly summable across rows.

  2. The aggregation method affects position calculation. "By Page" aggregation deduplicates by canonical URL, while "By Property" aggregates across the entire property. Ensure you're using the same aggregation method in both Coupler.io and the GSC UI.

  3. If you're comparing a specific query's position, make sure the date range and filters match exactly.

Rate limits and timeouts

Timeout on large date ranges or many dimensions

Problem: The data flow times out when exporting a long date range with multiple dimensions selected.

Fix:

  1. Reduce the date range. Instead of 12 months, try 3 months at a time.

  2. Reduce the number of dimensions. Each additional dimension multiplies the number of rows.

  3. Add dimension filters to scope the export (e.g., filter by country or device to reduce the dataset).

  4. If you need a long date range with all dimensions, set up multiple data flows with non-overlapping date ranges and combine the results in your destination.

URL inspection fails with quota exceeded

Problem: The URLs index performance report fails with a quota-related error.

Fix:

  1. The URL Inspection API has a daily quota limit per property. Coupler.io inspects up to 20 URLs concurrently, which can consume quota quickly.

  2. Reduce the number of URLs in a single data flow. Split large URL lists across multiple flows scheduled at different times.

  3. Check whether other tools or scripts are also using the URL Inspection API for the same property — they share the same quota.

  4. Wait until the next day for the quota to reset and retry.

Google Search Console FAQ

Which report types can I export from Google Search Console?

Coupler.io supports the following GSC report types:

  • Search results performance (default) — clicks, impressions, CTR, position for Google Search

  • Search results performance by appearance — same metrics grouped by search appearance type

  • Discover performance — clicks and impressions for Google Discover

  • Google News performance — clicks and impressions for Google News

  • URLs index performance — indexing status, AMP, mobile usability, and rich results for specific URLs

Each data flow exports one report type at a time.

What dimensions are available for each report type?

Available dimensions vary by report type:

Dimension
Search results
Discover
Google News

Date

Yes

Yes

Yes

Country

Yes

Yes

Yes

Device

Yes

No

Yes

Page

Yes

Yes

Yes

Query

Yes

No

No

The Search results performance by appearance report automatically uses the Search appearance dimension — you don't select it manually.

The URLs index performance report doesn't use dimensions — it reports per-URL inspection results.

Why does my export show "(other)" in the query column?

This is a Google Search Console API limitation. When a site has too many unique queries, Google groups low-volume queries under (other) to protect user privacy. Coupler.io exports the data exactly as the GSC API returns it.

To reduce the (other) bucket, narrow your date range, add a Page filter to focus on specific URLs, or add a Country filter to limit the scope.

Why is recent data missing or showing zeros?

Google Search Console data has a 2–3 day processing delay. Data from the most recent 2–3 days may be incomplete, show zeros, or not appear at all. This is normal GSC behavior.

If you're using the Final data state (default), the cutoff is typically 3–5 days. Switch to All data state if you want the freshest available data, understanding it may be revised.

What's the difference between "Final" and "All" data state?
  • Final (default): Returns settled data that is several days old and won't change. Best for dashboards and recurring reports where consistency matters.

  • All: Returns the latest available data, which can be as recent as 24 hours old but may still be revised. Best for ad-hoc checks when you want the freshest view.

For most use cases, Final is recommended.

How do I match the numbers I see in the GSC web interface?

To replicate the GSC UI's default view in Coupler.io, use these settings:

  1. Report type: Search results performance

  2. Search results type: Web

  3. Aggregate data by: Auto

  4. Data state: Final

  5. Same date range as shown in the GSC UI

  6. Same dimensions selected

Any difference in these settings will produce different numbers. Pay special attention to the aggregation method — "By Page" vs. "By Property" counts impressions differently.

Can I export data for multiple sites in one data flow?

Yes. The Sites selector supports multiple selections. Each site's data is identified by the siteURL column in the output. However, for clarity and easier maintenance, consider creating one data flow per site — especially if you need different date ranges, dimensions, or refresh schedules per site.

What is the "Aggregate data by" setting and when should I change it?

This controls how Google deduplicates impressions:

  • Auto (default) — Google selects the best method. This matches the GSC UI's default.

  • By Page — Aggregates by canonical URI. One impression per page per query. Best for page-level SEO analysis.

  • By Property — Aggregates across the entire property. One impression per property per query. Best for overall property health metrics.

  • By News showcase panel — Only for Discover and Google News reports. Must be combined with a Search appearance = NEWS_SHOWCASE filter.

For most SEO dashboards, leave it on Auto or use By Page.

Can I filter by specific queries or pages?

Yes. Use the Filters by dimensions option. You can filter by Query, Page, Country, Device, or Search appearance using these operators:

  • Contains / Does not contain

  • Equals / Does not equal

  • Including Regex / Excluding Regex

You can filter by dimensions even if they're not selected as report dimensions. For example, you can filter by Query = "coupler" without adding Query as a dimension.

How far back can I export data?

Google Search Console retains performance data for approximately 16 months. You cannot query data older than this limit. If you need long-term historical data, set up recurring exports and store the data in your destination (using "Replace" mode for each run, or archiving snapshots separately).

Why doesn't the Discover or Google News report return any data?

Not all sites appear in Google Discover or Google News. These reports only return data if your site's content is surfaced on those platforms. Check the Google Search Console UI — if the Discover or Google News sections don't appear in the left sidebar, your site has no data for these surfaces.

How does the URLs index performance report work?

Unlike the performance reports, the URLs index performance report requires you to provide an explicit list of URLs (one per line). Coupler.io inspects each URL using Google's URL Inspection API and returns:

  • Index status — whether the page is indexed, its coverage state, crawl time, and canonical URL

  • AMP status — validation results for AMP pages

  • Mobile usability — mobile-friendliness verdict

  • Rich results — structured data eligibility

This report does not use date ranges or dimensions. It inspects the current state of each URL.

Can I combine GSC data with Google Analytics (GA4) data?

Yes. Set up separate data flows for GSC and GA4, then combine them in your destination using Coupler.io's data join or in your BI tool. Join on the page URL from GSC with the landing page path from GA4.

Note that GSC uses full URLs (e.g., https://example.com/blog/post) while GA4 typically uses paths only (e.g., /blog/post). You may need a formula column to extract the path from the GSC URL for joining.

See Combining GSC data with other sources in Best Practices for details.

My data flow is timing out. What should I do?

Timeouts typically occur when exporting long date ranges with many dimensions. To fix this:

  1. Reduce the date range (e.g., 30–90 days instead of 12 months)

  2. Remove unnecessary dimensions — each dimension multiplies the row count

  3. Add dimension filters to scope the export (e.g., filter by country or page path)

  4. Split large exports into multiple data flows with non-overlapping date ranges

See Common Issues for more timeout troubleshooting steps.

Last updated

Was this helpful?