Chart your export here
Drop a CSV here. xmetric reads every row in this browser and draws a first chart you can regroup or change the measure of. Nothing is uploaded.
No file loaded yet. You can also drop a CSV on this box.
How to export Google organic search queries from GA4
When you link Google Search Console to Google Analytics 4 and publish the Search Console collection in Reports > Library, GA4 adds two Search Console reports (Google Organic Search Queries and Google Organic Search Traffic).
- Open Google Analytics 4 and go to Reports > Search Console > Queries (or open the Google Organic Search Queries card under Reports > Acquisition > Acquisition overview).
- Set your date range to the last 28 or 90 days (avoid mixing pre- and post-title-change periods) and click Share this report > Download File > Download CSV.
- You can also drop the
Queries.csvfile downloaded directly from Google Search Console > Performance > Search results > Export; the column names differ, as the table below shows.
| GA4 Search Console Export Column | Direct GSC Queries.csv Column | Role in CTR Curve |
|---|---|---|
Google organic search query | Top queries | Search keyword string |
Organic Google Search clicks | Clicks | Actual clicks from Google Search |
Organic Google Search impressions | Impressions | Search impression volume (bubble size and filter threshold) |
Organic Google Search click-through rate | CTR | Observed query CTR (Clicks / Impressions) |
Organic Google Search average position | Position | Mean ranking slot (1.0 = top organic result) |
Formulas to find title-tag and snippet quick wins
1. Rounded Position Bucket Expected CTR (FIXED LOD)
Instead of comparing your site against generic industry CTR studies that vary wildly by SERP features, compute your own site's weighted average CTR for each rounded ranking position (1, 2, 3, ..., 10) using a FIXED Level of Detail expression.
xmetric / Tableau formula ([Position Bucket]):
ROUND([Organic Google Search average position], 0)xmetric / Tableau formula ([Expected Position CTR]):
{ FIXED [Position Bucket] :
SUM([Organic Google Search clicks]) / NULLIF(SUM([Organic Google Search impressions]), 0)
}2. Potential Extra Clicks from Rewriting Title & Meta Description
For example (sample numbers), if a query ranks at position 3.2 with 15,000 impressions and a 1.8% CTR, while your sitewide average CTR at position 3 is 6.5%, multiplying the CTR gap by impressions estimates the click upside from improving the title tag.
xmetric / Tableau formula ([Potential Extra Clicks]):
IF [Organic Google Search click-through rate] < [Expected Position CTR]
THEN [Organic Google Search impressions] * ([Expected Position CTR] - [Organic Google Search click-through rate])
ELSE 0
ENDSQL equivalent:
WITH bucketed AS (
SELECT
"Google organic search query" AS query,
"Organic Google Search clicks" AS clicks,
"Organic Google Search impressions" AS impressions,
"Organic Google Search click-through rate" AS ctr,
"Organic Google Search average position" AS avg_position,
ROUND("Organic Google Search average position", 0) AS position_bucket
FROM ga4_search_queries
WHERE "Organic Google Search average position" <= 15
),
benchmarks AS (
SELECT
*,
SUM(clicks) OVER (PARTITION BY position_bucket) * 1.0
/ NULLIF(SUM(impressions) OVER (PARTITION BY position_bucket), 0) AS expected_bucket_ctr
FROM bucketed
)
SELECT
query,
ROUND(avg_position, 1) AS pos,
impressions,
clicks,
ROUND(ctr * 100, 2) AS actual_ctr_pct,
ROUND(expected_bucket_ctr * 100, 2) AS benchmark_ctr_pct,
ROUND(impressions * GREATEST(expected_bucket_ctr - ctr, 0), 0) AS potential_extra_clicks
FROM benchmarks
WHERE impressions >= 500
AND ctr < expected_bucket_ctr
ORDER BY potential_extra_clicks DESC;3. Position 8-15 "Striking Distance" Filter
Queries ranking between position 8.0 and 15.0 straddle the bottom of page 1 and top of page 2. Moving a high-impression query from position 11 to position 6 usually yields a larger click jump than rewriting a snippet at position 11.
xmetric / Tableau filter formula:
[Organic Google Search average position] >= 8.0
AND [Organic Google Search average position] <= 15.0
AND [Organic Google Search impressions] >= 300Limits of the GA4 Search Console integration
- No Query + Landing Page cross-tab in the GA4 UI: In the GA4 Queries report (
Google Organic Search Queries), you can drill into Search Console dimensions, but not Analytics dimensions such asLanding page. If you need exact(query, page)pairs, export via the Google Search Console API or the Search Console BigQuery bulk data export and open the CSV or Parquet file in the xmetric app. - 1,000-row limit in direct GSC UI exports: Downloading directly from the Google Search Console web UI caps at 1,000 rows, whereas the GA4 UI CSV export supports up to 100,000 rows (as of October 2026).
Questions people ask
Should I filter out branded search queries before calculating the CTR benchmark curve?
Yes. Branded queries (queries containing your company or product name) often have 30% to 60% CTR at position 1, which inflates the position-1 benchmark for non-branded informational queries. Add a filter in xmetric: NOT CONTAINS(LOWER([Google organic search query]), 'yourbrand').
Why does Google AI Overviews lower CTR at positions 1 to 3?
Informational queries that trigger an AI Overview often show high impressions and an average position between 1 and 5 with lower organic click-through rates. Segment queries by intent word (how, what, vs, alternative, free) in xmetric to compare commercial queries against pure definitions.
Is my Search Console query export uploaded anywhere?
No. Files you drop are read in your browser and nothing is uploaded, unless you sign in and save a workbook online.
Drop your GA4 Google_organic_search_queries.csv or GSC Queries.csv above for a first chart, then rank your highest-upside title tag updates in the xmetric app.