搜索抓取

上线一个新页面之后:怎么自己按蜘蛛的路径走一遍

新页面上线后,先别急着看数据。可以自己按蜘蛛的路径走一遍:确认内链和 Sitemap 能到达、用命令行模拟抓取看状态码与 HTML、核对 canonical 与 noindex,再从服务器日志确认请求是否真的发生。文中给出一份可复用的自检清单。

搜索抓取

上线一个新页面之后:怎么自己按蜘蛛的路径走一遍

新页面发布之后,最怕的情况不是排名不好,而是蜘蛛根本没走到这个 URL。与其等日志慢慢攒数据,不如在发布后的几分钟内,自己按蜘蛛可能走的路径把页面走一遍。这一步不能保证收录,但能把大部分“抓不到”的问题挡在前面。

先确认这条 URL 至少有一条路能到

蜘蛛发现 URL 的方式无非几种:内链、Sitemap、外链,以及历史抓取记录。新页面通常靠前两种。检查顺序可以这样排:

  • 从首页出发,顺着导航和列表页能不能点到它,需要几次点击;
  • Sitemap 里是否已经写入这条 URL,有没有写错目录或协议;
  • robots.txt 里有没有被 Disallow 误伤,注意规则匹配的是前缀,不是完整路径;
  • 如果是改版过的老 URL,301 是否指向了新地址,链条有没有拉长。
内链能点到,通常比 Sitemap 更可靠。Sitemap 是提示,内链才是站内真实的通路。

用命令行模拟一次抓取

打开终端,用蜘蛛常见的 UA 请求一次,比在浏览器里看更接近真实情况。浏览器会带 Cookie、会执行脚本、会读缓存,这些都是蜘蛛不一定有的条件。

  1. 先用 curl -I 看响应头:状态码是不是 200,有没有意外的 301 或 302,Content-Type 是不是 text/html。
  2. 再用 curl -A 指定一个蜘蛛 UA,把 HTML 拉回来,确认正文内容在初始响应里就存在,而不是靠脚本渲染之后才出现。
  3. 检查 head 里的 canonical 是否指向自己,有没有残留的 noindex、nofollow。
  4. 把返回的 HTML 里的链接抽出来,看看关键链接是不是标准的 a 标签,而不是依赖点击事件跳转。

这一步的价值在于:你看到的就是蜘蛛拿到的第一份材料。如果这里缺内容、缺链接,后面再怎么调整内链都补不回来。

别忘了确认蜘蛛真的来过

自检只能证明“路径通了”,不能证明“蜘蛛走过”。发布后的一两天,可以在服务器日志里按 UA 和时间筛一下:

  • 这条 URL 有没有出现过 200 的请求记录;
  • 如果持续只有 404 或 5xx,先修服务器,再谈收录;
  • 如果日志里连一次请求都没有,回到第一步,检查内链和 Sitemap 是否真的生效。

几种常见的“走不通”

  1. 页面被放在需要登录或需要提交表单才能到达的路径后面;
  2. 列表页分页靠脚本加载,链接不在初始 HTML 里;
  3. Sitemap 文件内容变了但更新时间没变,蜘蛛可能一直按旧版本处理;
  4. 内链加了 nofollow,或者整页被 robots meta 挡在门外。
自检是一次性的动作,抓取却是持续的过程。建议把上面的步骤固化成一份发布清单,每次上线新页面都过一遍。

把这条流程跑顺之后,再遇到“页面没有被收录”的情况,你至少能快速分清是发现环节的问题,还是抓取、渲染、索引环节的问题,排查范围会小很多。