很多人判断站点收录情况,第一反应是在搜索框里输入 site:example.com。数字涨了高兴,跌了紧张。但 site: 返回的是一次检索结果,不是后台索引库的导出清单,两者之间存在系统性偏差。把它当趋势参考没问题,当成精确计数就会误判。
site: 返回的到底是什么
site: 是一种查询语法,作用是在索引里按域名做过滤,再按相关性和一系列过滤规则返回一部分结果,并给出一个估算总数。这个总数是近似值,不是数据库里的行数。
- 结果数通常是估算并取整,不精确
- 同一域名下被判定为高度相似的页面可能被折叠展示
- 结果页自身会去重、聚类、做内容安全过滤
- 不同时间、不同地区、不同设备查,数字可能不一样
为什么这个数字会偏低
- 索引里确实存在,但和 site: 这个空泛查询的相关性太低,没被召回
- 页面被标为备用版本,不再单独占一条结果
- 深层页面权重低,排在几百条之后,翻页根本翻不到
- 站点有大量模板化相似页,被折叠成一条展示
为什么这个数字会偏高
- 大小写、斜杠、参数、协议不同造成的重复 URL 各算一条
- 已经下线但索引还没清理干净的旧地址仍挂在结果里
- 被视为低质或已排除的页面偶尔也会露头
所以这个数字同时受“漏报”和“多报”影响,方向不固定,用它来判断收录是涨是跌,本身就带噪声。
更接近实际的几种查法
想了解真实收录量,站长后台通常比 site: 更靠谱,因为它是从索引侧给出的统计:
- 站长平台:Google Search Console 的页面索引报告、百度搜索资源平台的索引量工具,会给出“已编入索引”的页面规模,也能看到被排除的页面和原因。
- 服务器日志:能看清蜘蛛实际抓了哪些 URL、返回什么状态码、多久抓一次。它反映的是抓取层,和收录层要分开看。
- 线上 URL 对账:导出实际线上地址,和 sitemap、索引报告逐条比对,找出“线上有但没被抓”“抓了但没进索引”的差集。
- 单条精确搜索:拿页面的独特标题或一段独有句子去搜,看回来的地址是不是你想要的这一个。
判断单个页面有没有收录
查具体页面时,别再用 site: 整站,那只会给你一堆无关结果。正确做法是取这个页面最独特的一句话做精确查询:如果搜到的是你这个地址,说明它进了索引;如果搜到的是别的站点或别的地址,说明这个 URL 没被选为代表版本;如果什么都搜不到,说明还没进索引或已经掉了。
同一个页面出现两个地址怎么办
搜出来两个地址都指向同一内容,说明规范页没被明确。先确认 canonical、内链和 sitemap 里给的是同一个地址,再观察一段时间,别急着反复改动。
site: 的数字适合看趋势,不适合当对账表。用它做月度记录可以,用它判断某条页面在不在索引里,几乎一定会得到错误答案。
怎么用好这些数字
- 每周或每月固定记录一次,看长期曲线,而不是每天盯着看
- 关注突然的大幅变化,小幅波动先观察
- 结合日志里的抓取量一起看,抓取和收录是否同步变化
- 记住收录数增加不等于流量增加,还要看页面是否被召回
与其纠结 site: 少了几条,不如把精力放在页面质量、URL 规范和内链结构上。这些是能自己控制的输入,而索引里最终呈现什么,是搜索引擎根据这些输入自己决定的。