Complete Guide

How to Combine GA4 and Google Search Console Data for Deeper Organic Traffic Insights

Google Analytics 4 tells you what happens on your site. Google Search Console tells you what happens before your site. Neither alone answers: "Which search queries drive my most engaged traffic?" This guide walks you through 5 methods to combine them, from free manual setups to fully automated tools.

    
Chapter I

Why Combining GA4 and Google Search Console Matters

GA4 shows sessions, engagement rate, and conversions by landing page, but it cannot tell you which search queries brought those visitors. Google Search Console shows queries, impressions, click-through rate, and average position, but it has zero visibility into what users do after they click.

Combining both datasets lets you answer questions neither tool can answer alone:

  • Which keywords bring high-converting traffic?
  • Which pages rank well but underperform on-site (high impressions, low engagement)?
  • Where are content opportunities with high impressions but low CTR?
  • Are ranking drops actually hurting sessions and conversions, or is traffic shifting to other pages?

The natural join key between both datasets is the landing page URL. Match on that, and you unlock a complete picture of your organic search funnel from impression to conversion.

Key Takeaway

GA4 tells you what happens on your site. GSC tells you what happens before your site.

  • Join key: Landing Page URL
  • GA4: sessions, engagement, conversions
  • GSC: queries, impressions, CTR, position
Skip the manual work
Nexus by Boundify combines GA4 and GSC data automatically with URL normalization and keyword drilldowns. No setup required.
Try Nexus Free
Chapter II

What Data Lives Where: A Quick Reference

Before blending, understand which metrics come from which source. The landing page URL is the only dimension that appears in both, making it your primary join key.

Dimension / MetricGA4GSC
Search queries
Impressions
CTR
Average position
Sessions
Engagement rate
Conversions / Key events
Landing page URL
Device category
Country

Important caveat: URL formats differ between tools. GSC includes the full URL with protocol and trailing slash, while GA4 often stores only the path. You will need to normalize URLs in every method below.

Dimension / Metric
GA4 comptab-infoalt7-icon
GSC comptab-infoalt7-icon
Search queries
comptab-no-icon
comptab-yes-icon
Feature
comptab-yes-icon
comptab-yes-icon
Feature
comptab-yes-icon
comptab-yes-icon
Feature
comptab-yes-icon
comptab-yes-icon
Feature
comptab-yes-icon
comptab-yes-icon

Join Key

Landing Page URL is the only dimension shared by both GA4 and GSC.

Always normalize URLs before joining:

  • Strip protocol and domain
  • Remove trailing slashes
  • Handle www vs non-www
  
Chapter III

Method 1: Looker Studio Data Blending

Looker Studio (formerly Data Studio) is the most popular free method because it connects natively to both GA4 and Google Search Console.

Step 1: Connect Both Data Sources

  1. Open Looker Studio and create a new report.
  2. Add a Google Analytics connector and select your GA4 property.
  3. Add a Search Console connector, select your site, and choose URL Impression table type.

Step 2: Create a Blended Data Source

  1. Go to Resource > Manage blended data > Add a blend.
  2. Left table (GSC): Landing Page, Query, Date + Impressions, Clicks, CTR, Position.
  3. Right table (GA4): Landing Page, Date + Sessions, Engaged Sessions, Conversions.
  4. Join key: Landing Page + Date. Use Left outer join.

Step 3: Normalize URLs

REGEXP_REPLACE(Landing Page, "https?://[^/]+", "")

Step 4: Build Your Report

Create a table chart showing: Query, Landing Page, Impressions, Clicks, CTR, Sessions, Engagement Rate, and Conversions.

Pros

  • Free and native to Google ecosystem
  • Visual drag-and-drop interface
  • Shareable reports with auto-refresh

Cons

  • URL normalization requires REGEX calculated fields
  • Blended sources capped at 50K rows
  • GA4 data sampling on high-cardinality dimensions

Best For

Marketing teams who want free, visual reports without code.

Key Limitation

Blended data sources are capped at 50K rows.

Looker Studio blending takes work
Nexus handles URL normalization, pagination, and data thresholds automatically. No calculated fields to maintain.
Try Nexus Free
  
Chapter IV

Method 2: Google Sheets (Manual Export or API)

Option A: Manual Export

  1. In GSC, go to Performance, then Export to Google Sheets.
  2. In GA4, go to Reports > Engagement > Landing Page, then Export.
  3. Use VLOOKUP or INDEX-MATCH on the normalized URL to join.

Option B: Apps Script API Fetch

For automated refreshes, use Google Apps Script:

const gscResponse = SearchConsole.Searchanalytics.query(
  'https://example.com',
  { startDate: '2026-01-01', endDate: '2026-03-31',
    dimensions: ['page', 'query'], rowLimit: 25000 }
);

Pros

  • Free and familiar interface
  • Full control over transformations
  • Can automate with Apps Script triggers

Cons

  • Manual exports go stale immediately
  • GSC API limited to 25K rows per request
  • Sheets slows down past ~50K rows

Best For

Small sites and ad-hoc analysis where simplicity matters.

Tip

Use IMPORTRANGE to pull data from multiple sheets into one workbook.

  
Chapter V

Method 3: BigQuery for Large Sites

Set Up Exports

The Join Query

SELECT
  gsc.query, gsc.page AS landing_page,
  SUM(gsc.impressions) AS impressions,
  SUM(gsc.clicks) AS gsc_clicks,
  ROUND(AVG(gsc.position), 1) AS avg_position,
  SUM(ga4.sessions) AS sessions,
  SUM(ga4.key_events) AS key_events
FROM `project.dataset.searchdata_site_impression` gsc
LEFT JOIN (
  SELECT REGEXP_REPLACE(page_location, r'https?://[^/]+', '') AS page_path,
    event_date,
    COUNTIF(event_name = 'session_start') AS sessions,
    COUNTIF(event_name IN ('purchase','generate_lead','sign_up')) AS key_events
  FROM `project.dataset.events_*` GROUP BY 1, 2
) ga4 ON REGEXP_REPLACE(gsc.page, r'https?://[^/]+', '') = ga4.page_path
  AND FORMAT_DATE('%Y%m%d', gsc.data_date) = ga4.event_date
WHERE gsc.data_date BETWEEN '2026-01-01' AND '2026-03-31'
GROUP BY 1, 2 ORDER BY impressions DESC

Pros

  • Handles millions of rows
  • Full SQL flexibility
  • Scheduled queries for automation

Cons

  • Storage and query costs add up
  • Requires SQL knowledge
  • No built-in visualization
No SQL or Python required
Nexus queries both APIs in real-time, normalizes URLs, and shows you an interactive report with keyword drilldowns. Zero infrastructure.
Try Nexus Free
  
Chapter VI

Method 4: Python with GA4 and GSC APIs

For data teams comfortable with code, Python offers the most flexible approach. Pull data from both APIs, merge with pandas, and pipe into any visualization tool.

Prerequisites

  • Google Cloud project with Search Console API and Analytics Data API enabled
  • OAuth 2.0 credentials or service account
  • Python 3.8+ with google-analytics-data, google-auth, and pandas

Sample Script

import pandas as pd
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import RunReportRequest, DateRange, Dimension, Metric

ga4_client = BetaAnalyticsDataClient()
ga4_request = RunReportRequest(
    property="properties/YOUR_PROPERTY_ID",
    date_ranges=[DateRange(start_date="2026-01-01", end_date="2026-03-31")],
    dimensions=[Dimension(name="landingPage")],
    metrics=[Metric(name="sessions"), Metric(name="engagedSessions"), Metric(name="keyEvents")],
)

# Normalize and merge
from urllib.parse import urlparse
def to_path(url):
    return urlparse(url).path.rstrip("/") or "/"

df_combined = df_gsc.merge(df_ga4, on="page_path", how="left")

Pros

  • Maximum flexibility
  • Free (no paid tool required)
  • Easy to schedule via cron or Airflow

Cons

  • Requires Python and API knowledge
  • OAuth setup is non-trivial
  • Must handle API quotas and rate limits

Best For

Data teams who want full control and already use Python.

Tip

Use the searchconsole Python library for a simpler GSC API wrapper.

Python scripting is powerful but time-consuming
Nexus does the same API calls, URL normalization, and merging behind the scenes — with a visual dashboard and zero lines of code.
Try Nexus Free
  
Chapter VII

Method 5: Third-Party Tools and Platforms

If you'd rather not build and maintain the integration yourself, several tools can help — from Semrush's Organic Traffic Insights to ETL platforms like Supermetrics and Funnel.io.

ToolApproachCostSkill
Looker StudioData blendingFreeLow-Medium
Google SheetsManual export / Apps ScriptFreeMedium
BigQuerySQL joins$$High
Python / APIpandas mergeFreeHigh
SemrushBuilt-in GA/GSC merge$$$Low
Nexus by BoundifyPurpose-built GA4 + GSC intersectionFree tierNone

Our Pick

Nexus by Boundify — purpose-built to combine GA4 and GSC with zero setup, URL normalization, and keyword drilldowns.

  
Chapter VIII

Common Pitfalls When Combining GA4 and GSC

Watch out for these common issues that can silently corrupt your data:

  • URL normalization — Trailing slashes, www vs non-www, HTTP vs HTTPS all cause mismatches. Always strip to path-only before joining.
  • Date and timezone alignment — GSC uses UTC. GA4 uses your property timezone. Expect cross-day mismatches.
  • GA4 data thresholds — GA4 hides rows below privacy thresholds with high-cardinality dimensions.
  • GSC row limits — The GSC API returns max 25,000 rows per request. Large sites need pagination.
  • Clicks ≠ sessions — GSC clicks include image and Discover. GA4 sessions require active JavaScript. Expect 10–30% variance.
  • Token refresh and API changes — Google APIs evolve. OAuth tokens expire. Scripts break silently.

Pro Tip

The #1 cause of broken joins is URL normalization. Always strip protocol, domain, trailing slashes, and query parameters before merging.

  
Chapter IX

What Insights Can You Unlock?

Once your data is combined, here are the most actionable patterns:

PatternWhat It MeansAction
High impressions, low CTRPages rank but titles don't compel clicksRewrite title tags and meta descriptions
High CTR, low engagementContent doesn't match search intentAlign page content with driving queries
Top queries with declining sessionsPossible ranking drop or SERP featureInvestigate SERP changes
Organic conversions, low impressionsHigh-value topic with room to growCreate supporting content and internal links
Device-level mismatchRanking well on mobile, bouncing on desktopInvestigate UX issues on underperforming device

Quick Win

Start with "high impressions, low CTR" pages — rewriting title tags is the fastest way to increase organic traffic without changing rankings.

  
Chapter X

Frequently Asked Questions

Frequently Asked Questions

Can I see search queries in GA4?

No. GA4 does not report individual search queries. You need Google Search Console for query-level data. GA4 shows landing pages and traffic metrics, but the actual keywords users searched for are only available in GSC.

Is the GA4 Search Console integration enough?

GA4's built-in Search Console report shows only landing page and query dimensions with limited metrics. A proper combined report gives you full control over both datasets, lets you add custom dimensions, and supports filtering and segmentation that the native integration cannot.

Why don't GSC clicks match GA4 sessions?

GSC counts clicks on search results (including image and Discover). GA4 counts sessions with active JavaScript. Differences in tracking methodology, bot filtering, and JavaScript execution mean you should expect 10–30% variance between the two.

How often should I refresh the combined data?

GSC data finalizes 2–3 days after the date. Daily or weekly refresh captures changes quickly enough for most use cases. Automated tools like Nexus refresh on every view, so your data is always current without manual intervention.

Do I need BigQuery to combine GA4 and GSC?

No. Looker Studio, Google Sheets, or dedicated tools like Nexus can combine the data without writing any SQL. BigQuery is best for enterprise-scale sites with millions of rows, but most sites can use simpler methods effectively.

Back to top

Still Have Questions?

Check out Nexus or reach out to our team for help.

  
Chapter XI

Conclusion

Combining GA4 and Google Search Console data is one of the highest-leverage analyses you can do for organic search. Each method has its place:

  • Looker Studio for quick, free, visual reports
  • Google Sheets for small sites and ad-hoc analysis
  • BigQuery for enterprise-scale data
  • Python for maximum flexibility and automation
  • Nexus by Boundify for teams that want insights without infrastructure

Whichever method you choose, the key is to start combining. The insights you'll uncover by bridging search visibility with on-site behavior are worth far more than the setup time.

Need help with your organic traffic strategy? Boundify's demand generation services can help you turn these insights into growth.

Stop building reports and start getting insights
Nexus by Boundify automatically combines your GA4 and Google Search Console data, including keyword drilldowns.
Try Nexus Free

Contributors:

emilio-garcia-headshot

Emilio Garcia

Managing Partner, Boundify

Sources:

1) GA4 Data API overview: Google Analytics Data API (GA4)
2) Search Console API - Search Analytics: Google Search Console API Reference
3) GA4 Dimensions & Metrics Explorer: GA4 API Schema
4) URL normalization best practices: RFC 3986 - Uniform Resource Identifier (URI)
5) Looker Studio data blending: Blend data in Looker Studio
6) BigQuery Export for GA4: Set up BigQuery Export
7) GSC bulk data export: Bulk data export from Search Console
8) GA4 landing page dimension: GA4 Dimensions & Metrics
Related Articles

From Our Blog

Stay up to date with what is new in our industry, learn more about the upcoming products and events.

Improve Your B2B Marketing Strategy with Data Analysis Tools
herramientas-analisis-de-datos

Improve Your B2B Marketing Strategy with Data Analysis Tools

Apr 3, 2026 5 min read
How to Make Your B2B Website a Demand-Gen Engine
march_demandgen_engine

How to Make Your B2B Website a Demand-Gen Engine

Mar 23, 2026 4 min read
The Secret of HubSpot's Content Hub for B2B Marketing Specialists
content-hub-hubspot-marketing-b2b

The Secret of HubSpot's Content Hub for B2B Marketing Specialists

Mar 9, 2026 4 min read