新页面上线之后,很多人会做同一件事:过几个小时去搜一下标题,搜不到就开始怀疑自己是不是哪里做错了。其实从 URL 被系统知道,到它真的有机会出现在搜索结果里,中间要经过好几段路,每一段的节奏都由不同的事情决定。
把这条链路拆开看,比笼统地问“为什么没收录”更容易找到答案。
一、链路上的五个位置
大致可以分成五段:
- URL 发现:系统第一次知道这个地址存在。
- 抓取调度:把它排进某个时间点的抓取队列。
- 内容获取与渲染:真正把 HTML 和下发的资源取回来,必要时执行页面脚本。
- 索引判断:决定这个页面是否值得进索引、以哪个 URL 为代表。
- 可检索:进入索引之后,在查询时被选出来展示。
这五段里,前四段都属于“能不能被收录”,第五段属于“收录之后能不能被搜到”。两者不能混在一起判断。
二、不同环节卡住,表现不一样
发现环节卡住
典型表现是:日志里完全看不到这个地址的抓取记录,几天过去连一次访问都没有。常见原因是页面没有任何入口——没有内链指向、不在站点地图里、外部也没有链接提到它。孤立页面很难自动被发现。
抓取环节卡住
表现是:地址被访问过,但次数极少,或者返回的是超时、5xx、被限流的响应。这时问题不在页面内容,而在服务器的响应速度和稳定性。抓取机会是有限的,响应慢的站点,队列推进会明显拖后。
索引环节卡住
表现是:抓取正常、状态码正常,但页面一直没进索引,或者进了又变成“已抓取、未编入索引”这类状态。这时要回头看页面本身:正文信息量够不够、是否和站内其他页高度重合、是否被 canonical 指到了别处、是否有不该出现的 noindex。
可检索环节
页面确实在索引里,但用标题里的词去搜搜不到。这种情况常常和查询本身有关:标题里的词组竞争激烈、页面权重还不足以被排在前面,或者搜索词和页面实际表达的主题并不吻合。这不等于没收录。
三、发布后可以自己确认的几件事
- 页面是否能从站内某个已有页面点进去,路径有多深;
- 站点地图是否包含该 URL,且地图本身能被正常访问;
- 服务器日志里有没有出现该地址的抓取请求,返回码是什么;
- 页面在关闭脚本的情况下,正文是否仍然可见;
- 站内是否有其他页面在讲同一件事,是否需要用 canonical 收口。
这几项确认完,基本能判断问题出在哪一段,而不是盲目改代码。
四、时间预期不要设得太紧
不同站点、不同栏目、不同更新频率,节奏差别很大。内容更新频繁的站点,新页面被发现的间隔可能很短;长期不怎么更新的站点,间隔会拉长。给新页面留出合理的观察窗口,比每天反复查一次更有意义。
值得记住的一点:收录是系统根据页面价值做的判断,不是提交动作的必然结果。能做的是把入口、响应、内容和 URL 规范整理清楚,剩下的交给时间。
五、把注意力放在可控项上
当你把“发布 → 发现 → 抓取 → 索引”当成一条链路来看,排查就会变得有顺序:先看有没有入口,再看服务器答不答得上来,再看内容值不值得被索引,最后才谈搜索展示。顺序错了,常常会在一个本来没问题的环节上反复折腾。
对于日常运营来说,稳定的更新节奏、干净的 URL 结构、能在无脚本状态下读到正文,这几件事做到位,就已经解决掉大部分收录问题。