页面已经出现在搜索结果里,说明收录这一步基本过了。但点开前看到的标题或摘要,跟页面上的内容对不上——标题是一句模板话、一段导航文字,摘要像是从别的页面抄来的——这时候要处理的不是收录,而是展示信息。
先分清:进了索引,和呈现成什么样,是两件事
收录指的是这个 URL 已经进了索引,能被搜索命中。至于结果里显示什么标题、什么摘要,搜索引擎会从多个来源里自己挑、自己拼,不一定会用你写在 title 里的那句。它改写标题是常态,不是异常。
展示信息一般来自这几个地方
- 页面 title 标签与 H1
- 正文开头的前一两段
- meta description
- 结构化数据里声明的标题和描述
- 指向该页面的外链锚文本
- 页面上的面包屑、导航、栏目名
摘要部分还常常按用户搜索词做二次截取,所以同一页在不同关键词下显示不同摘要,属于正常现象。
常见的几类成因
模板化、重复度高的标题
列表页、详情页、标签页共用一套 title,只替换中间一个变量,同一站点几十上百个页面标题几乎一样。这种情况下搜索引擎很难选出有区分度的那一句,只能自己从正文里拼。
页面里存在多个互相冲突的标题
标题在 title 里写一个、H1 写一个、栏目名或图片 alt 又写一个,几个版本表达的不是同一件事,机器不知道该用哪个。
结构化数据与可见正文不一致
结构化数据里声明的是一个旧标题、旧描述,页面上早已改过。两者对不上时,声明的那份反而更容易被采信。
服务端返回的和前端渲染的不是一套
源码里标题是空的或者只是占位符,真正的内容靠 JS 写进去。抓取时如果没执行或执行不完整,看到的就只是那套占位内容。
摘要被按搜索词重写
这一条不需要处理,属于正常的展示逻辑。
核对的顺序
- 先确认你看到的是哪个地址。同一个页面可能有多条 URL 进了索引,参数页、大小写变体、移动端版本各显示一套信息,先定位到具体那一版。
- 看服务端返回的源码。关掉 JS,直接看返回的 HTML 里 title、H1、首段分别是什么,是不是你想的那样。
- 看结构化数据。里面写的标题描述是否还停留在旧版本,和正文对不对得上。
- 对比同模板的其他页面。如果一批页面的展示都是同一个毛病,那就是模板问题,改一处能带动一批;如果只有个别页面异常,再往单页内容上找。
- 看外部锚文本。如果大量外链用同一句不准确的话指向这个页面,展示标题也可能跟着走偏。
能改的改,改完别来回折腾
- 让 title 和 H1、正文主题保持一致,不堆关键词,不写与内容无关的修饰语。
- 一个页面保留一个主 H1,其余层级用 H2、H3。
- 结构化数据里的字段和页面可见内容对齐,页面改了记得同步。
- 关键信息尽量在服务端返回的 HTML 里就存在,不要只靠前端渲染。
- 不要在短时间内反复改标题。每次改动都要等重新抓取和索引更新,频繁改动只会让判断失去参照。
有些情况可以先不动
展示标题被改写,但意思准确、没有误导,用户点进来也不会觉得受骗,这种情况优先级可以放低。搜索引擎自行组织标题和摘要,本身就是常见做法。
真正需要处理的是那类会误导点击的结果:标题写的是别的内容、摘要透露的是另一个页面的信息、或者同一站点多个页面在结果里长得几乎一样,用户根本分不出该点哪个。
处理之后怎么观察
抓取、索引、展示三层各自有时间差,改动当天看不到变化是正常的。观察时按批次看:同一模板下的一批页面是不是同时往好的方向走,比盯着单个页面反复刷新更有意义。
如果只改了单个页面,就先确认它有没有被重新抓取、索引里的版本有没有更新,再谈展示是否变化。