判断“搜索引擎收录”问题属于哪一层,核心是看页面在链路中卡在哪一步:是爬虫根本没来(抓取层)、来了但没抓到内容(渲染层)、抓到了但没被选中入库(索引层),还是已入库但搜不到(展现层)。每一层的证据不同,处理方式也不同,混在一起排查就会反复返工。
多人协作时,最怕凭感觉猜“没收录”。先做可复核的观察,再下结论。
site: 查询或搜索控制台类的“网址检查”功能,看该 URL 是“已抓取未索引”“已发现未抓取”还是完全无记录。这三步能把问题从“不收录”拆成具体层级。如果日志里没有爬虫记录,问题在抓取层;有记录但状态码异常,属于抓取或服务响应层;抓取正常但内容为空,属于渲染层;内容正常却没进索引,属于索引层。
抓取层的问题特征是:目标 URL 从未出现在访问日志中,或爬虫访问后立即被拒绝。
常见原因包括 robots.txt 中对该路径写了 Disallow、服务器对爬虫返回 403 或 5xx、内链结构太深导致爬虫难以发现、站点地图未提交或提交后未被读取。需要区分“可能原因”和“已定位原因”:robots.txt 有限制不一定就是唯一原因,还要结合日志状态码判断。
处理与复查:先确认 robots.txt 是否误封目标路径,再检查服务器是否对特定 User-Agent 返回异常状态。修改后重新提交 URL 并观察日志中是否出现新的抓取请求。注意:robots.txt 的抓取限制不等于可靠的索引移除,它只控制抓取,不保证页面从索引中消失。
渲染层的典型现象是:日志显示爬虫访问成功,返回 200,但页面初始 HTML 中没有正文,只有框架或脚本占位。此时搜索引擎可能抓到了页面,却没有拿到可索引的内容。
判断方法是关闭 JavaScript 后查看页面源码,或在抓取工具中禁用脚本渲染,对比正文是否出现。如果正文只在浏览器执行脚本后才出现,而爬虫未执行或执行不完整,问题就落在渲染层。
处理与复查:优先把核心正文改为服务端输出或预渲染,确保初始 HTML 中包含主要文本。修改后用同样的无脚本抓取方式复查,确认正文已出现在源码中。不同搜索引擎对 JavaScript 渲染的支持程度不同,需要分别核查,不能假设一家能渲染另一家也能。
索引层的问题是:页面被抓取、内容也完整,但状态长期停留在“已抓取未索引”,或完全不在索引中。
常见判断依据包括:页面内容与站内其他页面高度重复、被 canonical 指向了别的 URL、被 noindex 标记、内容质量或时效性不足以被选中。这些是可能原因,不是必然结论,需要逐项核对页面本身的标签和内容差异。
处理与复查:检查 <meta name="robots"> 和 HTTP 响应头中是否有 noindex,检查 canonical 是否指向自身,对比同站相似页面的正文差异。修改后重新提交,并在一段时间后复查索引状态。站点地图不保证收录,它只是发现线索,不等于入库承诺。
展现层的问题是:页面确实在索引中,但用目标查询词搜不到,或排名极低。这时问题不在收录,而在相关性和竞争。
判断方法是先用 site: 加完整 URL 确认页面在索引中,再用目标词搜索,看是否出现的是站内其他页面而非目标页。如果页面在索引中但目标词下不出现,说明关键词匹配、标题描述或内链权重分配需要调整,而不是继续处理收录。
处理与复查:核对页面标题、正文首段和外部锚文本是否与目标查询一致,检查是否有其他页面在内部竞争同一批词。调整后复查目标词的展现变化。HTTPS 不保证安全无漏洞或排名,它只是基础条件之一,不能当作收录或排名的保证。
多人协作减少返工的关键,是把“哪一层、什么证据、改了什么、复查结果”写清楚。可以按以下格式交付:
下一步:挑一个当前未收录的目标 URL,按上面三个观察动作记录证据,先确定它卡在哪一层,再决定由谁处理、改什么、怎么复查。