一、搜索结果里那两行字,决定了有没有人点
做个人站久了会发现一个反常识的事实:排名上去之后,流量未必跟着上去。同样排在第 5 位,有的页面一个月带来 800 个点击,有的带来 80 个。差别几乎全在搜索结果里那两行:标题和描述。用户在看列表页时,两秒钟内决定点不点,而这两秒钟里他看到的不是你的正文,是你写的标题和描述。
谷歌的搜索结果里,标题最多显示约 30 个汉字(桌面端宽一些,移动端窄一些),描述约 78 个汉字。这意味着一件事:你写的第 31 个字之后的标题、第 79 个字之后的描述,用户永远看不到。很多站长的标题写成「关于某某某的一些思考与实践(三)」——前半截是废话,真正有价值的信息被挤到第二行甚至被截断。
这篇文章讲的是我在几个站点上做标题与描述优化的具体做法:怎么找出该改哪些页、怎么写出有差异化的标题、怎么用 Search Console 的数据验证效果,以及哪些做法看起来有用实际上会掉点击。
二、先找出「有排名没点击」的页面
不要全站三千篇一起改,那样既没有精力也看不出效果。第一步是从 Search Console 里筛出真正值得改的页面。
打开 Search Console 的「效果」报告,把时间范围设成最近 3 个月(太短的数据噪声大,太长会把早期的高排名页面混进来),然后按网页维度看,导出后按下面的逻辑筛:
- 曝光量 > 500:说明这个页面在搜索结果里被看到过很多次,改动的影响面足够大。
- 点击率 < 2%:同位置的平均点击率一般在 3%~8% 之间,低于 2% 就是明显的标题/描述问题。
- 平均排名 < 15:排名太靠后的页面改标题收益有限,先救前面这批。
用导出的 CSV 在表格里做一列简单计算就能筛出来,也可以直接在命令行里处理:
awk -F',' 'NR>1 { gsub("%","",$4); if ($3>500 && $4<2 && $5<15) print $1"\t"$3"\t"$4"\t"$5"\t"$2 }' \
Queries.csv | sort -k2 -nr | head -30(列号按你导出的列顺序调整,重点是把曝光、点击率、排名三个条件叠加起来。)
第一轮我在这条命令里筛出了 27 个页面,加起来月曝光 4.2 万、点击数只有 600 多,点击率 1.4%。这就是最值得动手的地方——只改这 27 个页面,比改全站效率高十倍,而且效果能在两周内从数据里看出来。
三、标题的写法:把关键词放在最前面
标题的第一要务不是「好听」,而是「在搜索结果里被认出来」。用户的视线扫过列表页时,通常只读开头的几个字,所以最具体的那个词必须在前 10 个字内出现。
几种常见坏标题和对应的改法:
- 「关于 Nginx 缓存配置的一些经验总结」→「Nginx 缓存配置:五个参数与三个坑」。前者前面的「关于」和后面的「一些经验总结」全是废字,真正有信息量的词被稀释了。
- 「我的博客日记第三十八期」→「MySQL 慢查询日志:从开启到定位」。「第几期」对搜索者没有任何意义。
- 「网站性能优化(完整版)」→「网站首屏 3 秒降到 800ms 的六步」。数字和具体场景比「完整版」这种自夸词更能带来点击。
- 「如何在 Linux 上安装配置 Nginx 并优化性能使其更快」→「Linux 安装 Nginx 并调优:配置与参数清单」。中文标题里堆「使」「让」「如何」这类连接词非常浪费字位。
几条我自己坚持的规则:
- 一个核心词 + 一个限定词 + 一个收益词,比如「docker 多阶段构建:镜像从 1.6G 到 180M」。核心词说明是什么,限定词说明范围,收益词说明为什么要点。
- 控制长度在 26~30 个汉字。低于 20 字往往信息不足,高于 30 字容易被截断成一条没有信息量的半句。可以用中文字数统计直接验证:
echo -n "标题内容" | wc -m。 - 不要用竖线堆砌「关键词 | 关键词 | 关键词」,这是十年前的做法,现在的用户看到了会直接跳过,而且容易被判断为关键词堆砌。
- 带数字的标题点击率普遍更高,但数字必须真实,写「五个坑」正文里就必须有五个可数的坑,不然用户进来就走,跳出率反而拉低排名。
还有一条容易被忽略的:如果你不改 title 标签,Google 会自己从正文里挑一段当标题。有时候它会挑得比你自己写的好,但更多时候会挑出一句上下文断裂的句子,看起来像乱码。所以要么认真写 title,要么至少在正文第一个 h1 里写一句完整的、能独立成句的描述。
四、描述:写给正在做决定的人
描述不是摘要,是销售文案。用户看到标题决定「这个可能有用」,看到描述决定「现在点」。所以描述要回答的是「点进去能拿到什么」,而不是「这篇文章讲了什么」。
对比两种写法:
- 弱:「本文介绍了 Docker 多阶段构建的概念、原理以及实际应用场景,并对相关配置进行了详细说明。」——读完不知道能拿到什么。
- 强:「同一个 Dockerfile 分两个阶段:编译期装全量依赖,运行期只留产物。附 .dockerignore 模板与 buildkit 缓存写法,1.6G 镜像压到 180M。」——读完知道有三样具体东西可以拿。
具体做法上,我习惯按这个结构写 70~78 个字:
- 第一句(15 字内)说具体场景或问题:让用户确认「这就是我要找的」。
- 中间说文章里有什么:几个可执行的步骤、几条命令、几个可复制的配置。用具体的名词,不要用「详细」「全面」「深入」这种空泛形容词。
- 最后一句给量化结果或边界:「压到 180M」「排查时间从小时降到十分钟」「适用于单机、不适用于集群」。
描述里出现的关键词会被加粗显示(当用户搜索的词恰好出现在描述里),这是提升点击的免费机会。所以描述里要自然地包含这个页面主打的那两三个关键词,但不要硬塞,读起来不通顺反而掉点击。
另外,描述要每个页面都不一样。全站统一的模板描述(比如「本站专注分享 Linux 运维经验,欢迎访问」)在搜索结果里毫无辨识度,几十个页面长得一模一样,用户根本分不清该点哪个。
五、结构化数据能拿到的那几行额外位置
标题和描述之外,搜索结果里还有几块可以争取的位置,它们都是通过结构化数据(JSON-LD)实现的。
最常见的是 Article 与 BreadcrumbList。文章类页面加上 Article 结构化数据后,时间较新的文章可能在搜索结果里显示日期,某些情况下还会显示评分或作者。面包屑结构化数据则会让搜索结果里的 URL 变成「首页 > 分类 > 文章」的形式,看起来更可信,点击率通常能提升几个百分点。
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "首页", "item": "https://example.com/"},
{"@type": "ListItem", "position": 2, "name": "技术教程", "item": "https://example.com/tech/"},
{"@type": "ListItem", "position": 3, "name": "文章标题"}
]
}加上之后用 Google 的富媒体搜索结果测试工具验证一遍,确认没有报错。这里最常见的错误是 position 从 0 开始、或者 item 字段写了相对路径——都必须是绝对 URL。
FAQ 结构化数据也曾经很好用,但谷歌从 2023 年起大幅收缩了 FAQ 富媒体结果的展示范围,现在只有权威站点才会显示。个人站花时间做 FAQ 结构化数据的收益已经很低,不如把精力放在标题和描述上。
六、A/B 测试:用数据决定,不靠感觉
改标题是个主观性很强的活,写完自己觉得好,用户未必买账。所以必须做对照实验。最省事的做法是按时间前后对比,但有季节性干扰;更严谨一点的做法是分组对比。
我用的方法是把筛出的 27 个页面分成两组:A 组 14 个改标题,B 组 13 个暂时不动。两周后对比两组的点击率变化。如果 A 组明显上升而 B 组基本持平,就说明改法有效;如果两组都在涨,说明可能是搜索需求本身在变化,不能归因于改动。
记录表格至少要有这几列:页面 URL、改前曝光、改前点击、改前点击率、改后曝光、改后点击、改后点击率、改动日期、改动内容。这张表是长期资产,改过三轮之后你就能总结出自己站点上哪类标题真的更好用。
两个注意点:
- 至少等两周。谷歌重新抓取并更新搜索结果的展示需要时间,改完第二天看数据往往还没生效。数据量小的页面(曝光低于 200)等三到四周才够。
- 一次只改一个变量。标题和描述同时改、正文也重写,最后涨了也不知道是哪一步起了作用。想验证多个变量就分成多轮。
七、几个看起来有用其实有害的做法
做这件事的过程中踩过几个坑,值得单独列出来:
- 标题里堆同义词:「图片压缩 - 图片优化 - 图片瘦身 - 图片减小体积」,用户看着像垃圾站,搜索引擎也更容易判定为堆砌。写一个最准确的词就够了。
- 用「震惊」「必看」「99% 的人不知道」这类标题党:短期点击率可能上升,但跳出率极高,停留时间和回访数据变差,长期看反而会压低排名。而且这类标题会毁掉站点在用户心中的专业形象。
- 给每个页面加同样的后缀:「_技术博客_某某一站」。这会占掉 5~8 个宝贵的字位,而用户根本不需要在搜索结果里重复看到站名(域名就显示在标题下方)。
- 描述里写满关键词不留句子:谷歌会检测描述的可读性,关键词密度过高的描述有时会被直接丢弃,改用正文片段,你精心写的描述就白费了。
- 改完马上又改:短时间内反复改动标题会让搜索引擎反复重新评估这个页面,期间排名可能波动。一次改到位,观察两周再决定下一步。
八、日常节奏:每季度一轮,一次三十个页
这件事不需要天天做,做成固定的季度动作就够了:
- 每季度初导出一次 Search Console 的最近三个月数据,筛出高曝光低点击的页面,通常 20~40 个。
- 按曝光量排序,先改前 20 个。每个页面看看它当前排名靠前的那个词是什么,让标题和描述都围绕这个词来写。
- 改完记录到表格里,设一个两周后的提醒。
- 两周后对比数据,把有效的写法沉淀成自己的模板,无效的写法记下来以后别再用。
一年下来大约能改 100~150 个页面,覆盖站点上大部分有流量的页面。我在一个日更站点上按这个节奏做了三个季度,剩下的是把精力放回内容本身——毕竟标题和描述只是把已有流量接住,真正的增量还得靠新内容。
九、小结
标题和描述优化的核心是两件事:把最具体的词放在搜索结果可见的字位里,以及让描述回答「点进去能拿到什么」。做法上先筛出高曝光低点击的页面,一次改二三十个,用两周的对照数据验证,把有效的写法沉淀成模板。结构化数据能争取到额外位置但收益有限,别本末倒置。所有改动都要能被数据验证,凭感觉改标题是最容易白忙一场的做法。