Tutorial: Setting Up GA4 + GSC Integration for Complete SEO Analytics

Integrate Google Analytics 4 with Google Search Console for comprehensive SEO analytics that combines behavioral data with search performance data.

Prerequisites

Step 1: Link GSC to GA4

  1. Go to GA4 → Admin → Product linking
  2. Click "Search Console links"
  3. Click "Link" → Select your GSC property
  4. Enable all data sharing options
  5. Wait 24-48 hours for data to populate

Step 2: Configure GA4 Custom Reports

Create SEO Exploration

  1. Go to Explore → Blank exploration
  2. Add dimensions: Landing page, Query, Device, Country
  3. Add metrics: Sessions, Engagement time, Conversions, Revenue
  4. Set filter: Session medium = organic

Key Custom Reports

Report 1: Organic Landing Page Performance

Dimension: Landing page + query class
Metrics: Sessions, Engagement rate, Conversions, Revenue
Filter: Medium = organic
Sort: Sessions descending

Report 2: Query Performance

Dimension: Search query, Landing page
Metrics: Clicks, Impressions, CTR, Position (from GSC)
Sort: Impressions descending

Step 3: Build Looker Studio Dashboard

Connect Data Sources

  1. Add GA4 data source
  2. Add GSC data source
  3. Configure data blending for combined views

Dashboard Layout

┌─────────────────────────────────────────────┐
│ Executive KPI Scorecards                     │
│ [Organic Traffic] [Revenue] [Conv Rate]     │
├──────────────────┬──────────────────────────┤
│ Traffic Trend    │ Revenue Trend            │
│ (Line chart)     │ (Line chart)             │
├──────────────────┴──────────────────────────┤
│ Top Landing Pages with GSC Query Data       │
│ (Table with blended data)                   │
├──────────────────────────────────────────────┤
│ Keyword Opportunities (High Imp, Low CTR)   │
│ (Table with filters)                         │
├──────────────────┬──────────────────────────┤
│ Device Split     │ Geographic Distribution   │
│ (Pie chart)      │ (Map chart)              │
└──────────────────┴──────────────────────────┘

Step 4: Data Blending Configuration

Blend GA4 + GSC Data

In Looker Studio:

  1. Create blended data source
  2. Join on: Landing page URL
  3. GA4 metrics: Sessions, Engagement, Conversions
  4. GSC metrics: Clicks, Impressions, CTR, Position

SQL for BigQuery Blend

SELECT
  gsc.page_url,
  gsc.query,
  gsc.clicks,
  gsc.impressions,
  gsc.ctr,
  gsc.position,
  ga.sessions,
  ga.engagement_time,
  ga.conversions,
  ga.revenue
FROM `project.searchconsole.searchdata_site_impression` gsc
LEFT JOIN (
  SELECT
    REGEXP_EXTRACT(page_location, '^[^?]+') as page_url,
    COUNT(DISTINCT session_id) as sessions,
    AVG(engagement_time_msec) / 1000 as engagement_time,
    COUNTIF(event_name = 'purchase') as conversions,
    SUM(ecommerce.purchase_revenue) as revenue
  FROM `project.analytics.events_*`
  WHERE traffic_source.medium = 'organic'
  GROUP BY page_url
) ga ON gsc.page_url = ga.page_url
ORDER BY gsc.impressions DESC

Step 5: Set Up Automated Alerts

Create Alert Rules

  1. Traffic drop alert: Organic traffic down >20% day-over-day
  2. Ranking drop alert: Average position decline >5 positions
  3. Index issue alert: New crawl errors detected
  4. Conversion drop: Organic conversion rate down >25%

Implementation via Google Apps Script

function checkSEOAlerts() {
  const propertyId = 'YOUR_GA4_PROPERTY_ID';
  const today = new Date();
  const yesterday = new Date(today - 86400000);
  
  // Get yesterday organic traffic
  const organicTraffic = getOrganicTraffic(propertyId, yesterday, today);
  const previousWeekTraffic = getOrganicTraffic(propertyId, 
    new Date(yesterday - 604800000), yesterday);
  
  // Check for significant drop
  if (organicTraffic < previousWeekTraffic * 0.8) {
    sendAlert('Organic traffic dropped by ' + 
      Math.round((1 - organicTraffic/previousWeekTraffic) * 100) + '%');
  }
}

Validation Checklist