SEO 数据分析
没有数据就没有优化——用 GSC 和 GA4 驱动每一个 SEO 决策。
SEO 数据体系
graph TD
DATA[SEO 数据体系] --> GSC[Google Search Console]
DATA --> GA4[Google Analytics 4]
DATA --> RANK[排名追踪工具]
DATA --> AUDIT_T[技术审计工具]
GSC --> IMP[展示次数]
GSC --> CLK[点击次数]
GSC --> CTR_D[平均 CTR]
GSC --> POS[平均排名]
GSC --> IDX[索引状态]
GA4 --> TRAFFIC[自然流量]
GA4 --> BEHAVIOR[用户行为]
GA4 --> CONV[转化]
style DATA fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style GSC fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
GSC 关键报告
"""
GSC 数据分析框架
"""
from dataclasses import dataclass
@dataclass
class GSCAnalysis:
"""GSC 数据分析"""
@staticmethod
def find_opportunities(queries: list[dict]) -> dict:
"""发现优化机会"""
quick_wins = []
optimize = []
new_content = []
for q in queries:
if 4 <= q["position"] <= 10 and q["impressions"] > 500:
quick_wins.append({
"关键词": q["query"],
"当前排名": q["position"],
"展示量": q["impressions"],
"建议": "已在首页,优化内容冲前3",
})
elif 11 <= q["position"] <= 20 and q["impressions"] > 1000:
optimize.append({
"关键词": q["query"],
"当前排名": q["position"],
"展示量": q["impressions"],
"建议": "第2页, 大量展示但无点击, 值得优化",
})
elif q["ctr"] < 2 and q["position"] <= 5:
new_content.append({
"关键词": q["query"],
"排名": q["position"],
"CTR": f"{q['ctr']}%",
"建议": "排名好但 CTR 低, 优化标题和描述",
})
return {
"速赢机会": quick_wins,
"值得优化": optimize,
"CTR 优化": new_content,
}
queries = [
{"query": "python 教程", "position": 5, "impressions": 8000, "clicks": 320, "ctr": 4.0},
{"query": "python 入门", "position": 12, "impressions": 5000, "clicks": 50, "ctr": 1.0},
{"query": "python 安装", "position": 3, "impressions": 3000, "clicks": 45, "ctr": 1.5},
{"query": "python 列表操作", "position": 7, "impressions": 2000, "clicks": 100, "ctr": 5.0},
{"query": "python vs java", "position": 15, "impressions": 4000, "clicks": 40, "ctr": 1.0},
]
result = GSCAnalysis.find_opportunities(queries)
print("=== GSC 机会分析 ===")
for category, items in result.items():
if items:
print(f"\n【{category}】({len(items)} 个)")
for item in items:
print(f" • {item['关键词']} → {item['建议']}")
GA4 SEO 报告
"""
GA4 自然流量分析
"""
GA4_SEO_REPORTS = {
"着陆页分析": {
"维度": "Landing Page + Source = organic",
"指标": ["会话数", "用户数", "参与时间", "跳出率", "转化"],
"用途": "找出流量最高和转化最好的页面",
},
"自然流量趋势": {
"维度": "日期 + Source/Medium = google/organic",
"指标": ["会话数", "新用户"],
"用途": "监控自然流量增长趋势和异常",
},
"转化路径": {
"维度": "转化路径报告",
"指标": ["辅助转化", "首次互动", "末次互动"],
"用途": "量化 SEO 对转化的真实贡献",
},
"用户行为": {
"维度": "参与度 + 自然流量",
"指标": ["页面浏览", "滚动深度", "事件"],
"用途": "评估内容质量和用户满意度",
},
}
print("=== GA4 SEO 核心报告 ===")
for report, info in GA4_SEO_REPORTS.items():
print(f"\n【{report}】")
print(f" 维度: {info['维度']}")
print(f" 指标: {', '.join(info['指标'])}")
print(f" 用途: {info['用途']}")
SEO KPI 仪表盘
"""
SEO KPI 追踪
"""
SEO_KPIS = {
"流量指标": [
{"KPI": "自然流量", "基准": "月均同比增长 10%+", "频率": "周"},
{"KPI": "品牌搜索量", "基准": "持续增长", "频率": "月"},
{"KPI": "新关键词排名数", "基准": "每月新增 50+", "频率": "月"},
],
"排名指标": [
{"KPI": "Top 3 关键词数", "基准": "持续增长", "频率": "周"},
{"KPI": "Top 10 关键词数", "基准": "月增 10%", "频率": "周"},
{"KPI": "平均排名位置", "基准": "持续下降(更好)", "频率": "月"},
],
"技术指标": [
{"KPI": "索引覆盖率", "基准": "> 95%", "频率": "月"},
{"KPI": "CWV 通过率", "基准": "> 75%", "频率": "月"},
{"KPI": "爬取错误数", "基准": "< 1%", "频率": "周"},
],
"商业指标": [
{"KPI": "自然流量转化率", "基准": "> 2%", "频率": "月"},
{"KPI": "SEO 带来收入", "基准": "持续增长", "频率": "月"},
{"KPI": "每次自然访问成本", "基准": "持续降低", "频率": "季"},
],
}
print("=== SEO KPI 仪表盘 ===")
for category, kpis in SEO_KPIS.items():
print(f"\n{category}:")
for kpi in kpis:
print(f" • {kpi['KPI']}: {kpi['基准']} [{kpi['频率']}]")
SEO ROI 计算
"""
SEO ROI 计算器
"""
def seo_roi(
monthly_spend: float,
organic_sessions: int,
conversion_rate: float,
avg_order_value: float,
) -> dict:
"""计算 SEO ROI"""
conversions = organic_sessions * conversion_rate / 100
revenue = conversions * avg_order_value
roi = (revenue - monthly_spend) / monthly_spend * 100
cost_per_visit = monthly_spend / organic_sessions if organic_sessions else 0
# 对比付费流量成本
estimated_cpc = 3.0 # 假设行业平均 CPC
saved_ad_spend = organic_sessions * estimated_cpc
return {
"月度 SEO 投入": f"¥{monthly_spend:,.0f}",
"自然流量": f"{organic_sessions:,}",
"转化数": f"{conversions:,.0f}",
"收入": f"¥{revenue:,.0f}",
"ROI": f"{roi:.0f}%",
"每次访问成本": f"¥{cost_per_visit:.2f}",
"等价广告费": f"¥{saved_ad_spend:,.0f} (CPC ¥{estimated_cpc})",
"节省广告费": f"¥{saved_ad_spend - monthly_spend:,.0f}",
}
result = seo_roi(
monthly_spend=15000,
organic_sessions=50000,
conversion_rate=2.5,
avg_order_value=200,
)
print("=== SEO ROI 分析 ===")
for k, v in result.items():
print(f" {k}: {v}")
常用工具
| 工具 | 用途 | 价格 |
|---|---|---|
| Google Search Console | 排名/索引/CWV | 免费 |
| Google Analytics 4 | 流量/行为/转化 | 免费 |
| Ahrefs | 外链/关键词/竞品 | $99+/月 |
| SEMrush | 全能 SEO 工具 | $130+/月 |
| Screaming Frog | 技术审计 | 500URL免费 |
行动清单
- [ ] 在 GSC 筛选排名 4–10 且曝光量 > 500 的关键词,这是最快的排名提升机会池
- [ ] 在 GA4 建立"自然搜索转化"报告:流量来源 = Organic Search,追踪购买/注册/询盘转化
- [ ] 计算月度 SEO ROI:(自然流量 × 行业平均 CPC) ÷ 月度 SEO 投入,向管理层展示价值
- [ ] 设置 GSC 邮件提醒:当网站索引覆盖出现错误增加时,第一时间发现技术问题
- [ ] 建立 SEO 仪表盘(GA4 + GSC):每周查看流量/转化/Top 关键词 3 个核心数据
- [ ] 每月对比当月与上月 GSC 数据:识别哪些关键词 CTR 下降(需优化标题/描述)
下一节:02-SEO报告与向管理层汇报 — 把 SEO 数据翻译成管理层能理解的业务语言。