教程:搭建 GA4 + GSC 集成,实现完整的 SEO 分析

将 Google Analytics 4 与 Google Search Console 集成,实现将行为数据与搜索表现数据相结合的全面 SEO 分析。

前置条件

第一步:将 GSC 链接到 GA4

  1. 前往 GA4 → 管理 → 产品链接
  2. 点击 "Search Console links"(Search Console 链接)
  3. 点击 "Link"(链接)→ 选择你的 GSC 媒体资源
  4. 启用所有数据共享选项
  5. 等待 24-48 小时让数据填充

第二步:配置 GA4 自定义报告

创建 SEO 探索分析

  1. 前往 探索 → 空白探索
  2. 添加维度:着陆页、查询、设备、国家/地区
  3. 添加指标:会话数、互动时长、转化次数、收入
  4. 设置过滤条件:会话媒介 = organic

关键自定义报告

报告 1:自然搜索着陆页表现

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

报告 2:查询表现

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

第三步:构建 Looker Studio 仪表板

连接数据源

  1. 添加 GA4 数据源
  2. 添加 GSC 数据源
  3. 配置数据混合以实现合并视图

仪表板布局

┌─────────────────────────────────────────────┐
│ 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)              │
└──────────────────┴──────────────────────────┘

第四步:数据混合配置

混合 GA4 + GSC 数据

在 Looker Studio 中:

  1. 创建混合数据源
  2. 关联字段:着陆页 URL
  3. GA4 指标:会话数、互动、转化次数
  4. GSC 指标:点击次数、展示次数、CTR、排名位置

用于 BigQuery 混合的 SQL

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

第五步:设置自动化提醒

创建提醒规则

  1. 流量下降提醒:自然搜索流量环比下降 >20%
  2. 排名下降提醒:平均排名位置下降 >5 位
  3. 索引问题提醒:检测到新的抓取错误
  4. 转化下降提醒:自然搜索转化率下降 >25%

通过 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) + '%');
  }
}

验证清单