搜尋抓取

上线一個新頁面之後:怎么自己按蜘蛛的路径走一遍

新頁面上线後,先別急着看資料。可以自己按蜘蛛的路径走一遍:確認内鏈和 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 挡在门外。
自检是一次性的動作,抓取却是持續的過程。建议把上面的步骤固化成一份發布清單,每次上线新頁面都過一遍。

把這條流程跑顺之後,再遇到“頁面没有被收錄”的情况,你至少能快速分清是發現环节的問题,還是抓取、渲染、索引环节的問题,排查范围會小很多。