内容产出遇到瓶颈时,与其对着空白文档硬憋选题,不如换个问法:竞争对手的流量里,有多少是来自你根本没覆盖的话题?这就是内容差距分析——不是抄竞品的文章,而是找到对方的流量结构里你的空白区,把空白变成自己下个月的选题清单。
带工具的做法最省力:Ahrefs 的 Content Gap 功能里输入自己域名和两三个竞品域名,直接吐出“竞品有排名、你没有”的关键词列表,按流量潜力排序就是现成的选题池。免费的做法也有两层:一是从自己数据里挖边缘机会——GSC 里曝光量上千但排名 11 到 20 的词,说明需求存在、你只差临门一脚,优先补强;二是从竞品 sitemap 挖话题覆盖差——把对方的内容 URL 抓下来,提取 slug 里的主题词,和自己的话题清单对比,缺什么一眼可见。
import requests, re
sm = requests.get("https://compet itor. com/sitemap.xml",
timeout=15, headers={"User-Agent": "Mozilla/5.0"}).text
urls = re.findall(r"<loc>([^<]+)</loc>", sm)
# 从 URL slug 提取话题词(按自己的 URL 结构调整切割规则)
their_topics = set()
for u in urls:
if u.count("/") >= 4: # 只要内容页
slug = u.rstrip("/").split("/")[-1]
their_topics.add(slug.replace("-", " "))
mine = set(l.strip() for l in open("my_topics.txt") if l.strip())
gap = their_topics - mine
print(f"竞品话题 {len(their_topics)},我方 {len(mine)},差距 {len(gap)}")
for t in sorted(gap)[:30]:
print(" ", t)
两层数据合成一份选题优先级表:GSC 边缘机会词排最前(见效最快,补强就行),内容差距词排后面(需要新文章,按搜索意图分组建)。每条选题登记三个字段:目标词、意图类型、承接形式(新文章/聚合页/已有文章扩充)。这份表就是下个月的内容日历,写到哪勾到哪。
# 选题优先级表(gap_plan.csv)
# priority,kw,intent,format,deadline,status
# 1,高曝光边缘词,transactional,扩充已有文章,9-10,doing
# 2,话题差距词,informational,新文章,9-20,todo
两条纪律守住质量。第一,差距分析输出的是“该写什么”,不是“照着写什么”——竞品的文章标题只当选题线索,正文必须按自己的结构和论点重写,伪原创那种事既没排名也没尊严。第二,差距词要过一遍意图筛:竞品排上去的词未必匹配你的站点定位,跑题的流量不接也罢。三个月后回看这份清单的完成率和对应词的排名变化,内容差距分析才算真正闭环——它不是一次性报告,是选题流水线的入口。
再补一个高频疑问:差距分析的频率怎么定?每月跑一次轻量版(GSC 边缘机会刷新,十分钟的事),每季度做一次全量版(竞品 sitemap 话题对比加工具词表)。别做成了天天盯竞品——差距分析是战略工具,回答的是下个月写什么,不是今天写什么。选题焦虑最重的站长反而应该少看竞品:你的关键词库里躺着自己用户真实搜索的词,那才是离你最近的选题来源,竞品数据只是第三方参照系。
相关阅读:差距分析产出的选题要进内容排期。《SEO 自动化总清单:日、周、月、季各该跑什么》把它排在每季组,一季度补一批差距选题,内容池不断粮。
A5创业网 版权所有