Integrate Google Analytics 4 with Google Search Console for comprehensive SEO analytics that combines behavioral data with search performance data.
Prerequisites
- GA4 property configured
- Google Search Console verified
- Admin access to both properties
- Google Looker Studio access
Step 1: Link GSC to GA4
- Go to GA4 → Admin → Product linking
- Click "Search Console links"
- Click "Link" → Select your GSC property
- Enable all data sharing options
- Wait 24-48 hours for data to populate
Step 2: Configure GA4 Custom Reports
Create SEO Exploration
- Go to Explore → Blank exploration
- Add dimensions: Landing page, Query, Device, Country
- Add metrics: Sessions, Engagement time, Conversions, Revenue
- 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
- Add GA4 data source
- Add GSC data source
- 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:
- Create blended data source
- Join on: Landing page URL
- GA4 metrics: Sessions, Engagement, Conversions
- 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
- Traffic drop alert: Organic traffic down >20% day-over-day
- Ranking drop alert: Average position decline >5 positions
- Index issue alert: New crawl errors detected
- 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
- GSC linked to GA4 property
- Search Console data appearing in GA4 reports
- Custom SEO exploration created
- Looker Studio dashboard connected
- Data blending working correctly
- Automated alerts configured
- Weekly report scheduling set up
- Team access granted