排名涨了流量没涨?用 CTR 曲线找出该改标题的页面

来源:互联网 时间:2026-09-09

一个页面排名从 15 涨到 8,点击却没怎么动——这种事在 Search Console 数据里天天发生。道理不复杂:流量约等于曝光 × 点击率,排名只影响其中一项。排名到位了 CTR 拖后腿,说明问题出在搜索结果页上的“门面”:标题和描述没赢过同屏的其他候选者。

找优化目标别凭感觉,用自己站的数据筛。GSC 效果报表把每个查询词的曝光、点击、点击率、平均排名都摆着,筛选逻辑就三行:曝光量大(说明这个词有真实搜索需求且你已经上榜)、排名靠前(第 1 到 10 位,改标题才立竿见影)、点击率明显低于你站内同水位页面的均值。三个条件同时命中的,就是“排名给了机会、门面没接住”的页面,按优先级排队改标题。界面上导出 CSV 就能跑:

import csv

# GSC 效果报表导出的 CSV(英文界面列名为英文)
rows = csv.DictReader(open("gsc_export.csv", encoding="utf-8-sig"))

hits = []
for r in rows:
imp = int(r["Impressions"])
ctr = float(r["CTR"].rstrip("%")) # "3.2%" -> 3.2
pos = float(r["Position"])
# 高曝光 + 排名前10 + 低点击率
if imp > 1000 and pos < 10 and ctr < 1.5:
hits.append((imp, r["Query"], pos, ctr))

hits.sort(reverse=True)
for imp, kw, pos, ctr in hits[:20]:
print(f"曝光{imp:7d} 排名{pos:4.1f} CTR {ctr:4.1f}% {kw}")

这份清单就是标题优化工作单。改的思路是给标题加“可比较的差异点”:数字、年份、适用对象、结果承诺,同屏竞争者的标题都长一样时,差异化文案就是免费点击。描述行同步补一句承接标题的说明,搜索结果里描述是标题的推销词。注意一次改一批里最值得改的三五个,别全站标题一夜翻新——那本身就是一次全站级变更,波动分析会分不清因果。

# 验证:改完记录基线,14 天后重拉数据对比

# 对比口径:同查询词的 CTR 变化(排名变动超过±2位的样本剔除,

# 排除排名本身的干扰,看纯文案效果)

# date | query | old_pos | new_pos | old_ctr | new_ctr

有一类查询词改标题也没用:GSC 里的匿名化查询(隐私保护被隐藏的那部分词)。这些词在界面和 API 里都拿不到完整数据,官方的大批量导出同样不含它们,所以这份清单永远是样本不是全量——但不影响用法,曝光量越大的词越不可能被隐藏,高价值词都在明面上。改标题之外还有一个 CTR 优化位别漏掉:站点的 favicon 和面包屑路径,结果页里它们影响整条结果的观感,两分钟就能配好,全站受益。

收尾记住这个闭环:排名追踪管曝光端,CTR 筛查管点击端,两边数据都来自 GSC 一份报表,成本低到没有理由不做。把 CTR 优化做成月度例行动作——每月筛一批、改三五个、两周后复盘,一年下来站内头部页面的门面会明显比竞品精细,这部分点击是纯技术活白捡的。

相关阅读:CTR 筛查一个月做一轮就够。SEO 自动化总清单:日、周、月、季各该跑什么》把它排在每月组,攒够曝光量再筛查,改标题改得有依据。

相关文章

标签:

A5创业网 版权所有