先把“被抓取”和“被收錄”分開看
入口頁自己没被收錄,和蜘蛛有没有来過、有没有解析過里面的連結,其實是三件不同的事:
- 抓取:蜘蛛請求了入口頁的 HTML,這就是一次抓取行為。
- 索引:搜尋引擎决定把頁面内容存進索引,之後它才可能在搜尋结果里出現。
- 連結跟進:蜘蛛在解析 HTML 的過程中看到站内連結,把目标 URL 放進抓取队列。
只要入口頁被真正抓取過、連結以可解析的形式寫在 HTML 里,即使這個入口頁長期不進入索引,里面的目标 URL 仍然可能被發現。反過来,入口頁被收錄了但蜘蛛再没回訪過,新加進去的連結一样不會被發現。
入口頁没被收錄的两種情况
情况一:被抓取了,只是没進索引
常见于頁面内容單薄、與站内其他頁高度重复、被 noindex 标记、canonical 指向了別的地址等。這類頁面虽然不出現在搜尋结果里,但蜘蛛讀取 HTML 的過程照常發生,連結解析也照常發生。也就是说,它作為“發現通道”的功能還在。
情况二:根本没被抓取
這才是真正會断鏈的情况,典型原因有:
- 被 robots.txt 挡在门外,蜘蛛不會請求頁面正文,自然也解析不到連結;
- 入口頁没有任何外部連結指向,sitemap 里也没有,蜘蛛没有理由知道它存在;
- 服務器長時間超时或返回 5xx,连續失敗後蜘蛛會降低回訪频率;
- 連結靠 JavaScript 在客戶端渲染後才出現,抓取时拿到的初始 HTML 里是空的。
noindex 和 robots 屏蔽,別混為一谈
這一條经常被搞错:
- robots.txt 屏蔽:等于明确告诉蜘蛛不要抓取,通常它不會讀取頁面内容,連結也就無從解析;
- noindex:頁面仍然可以被抓取和解析,只是不被加入索引,連結一般仍會被跟進。
所以,如果你的目的是用入口頁帮蜘蛛發現其他 URL,用 noindex 比用 robots.txt 屏蔽要温和得多。当然,前提仍然是入口頁能被正常訪問和抓取。
怎么核對入口頁到底有没有起作用
- 在服務器日誌里筛出入口頁的訪問记錄,看返回狀態碼是不是 200,爬取次數和時間分布是否合理;
- 用抓取模拟工具或渲染後的 HTML 快照,確認目标連結在初始 HTML 里就能看到,而不是渲染之後才出現;
- 检查入口頁的 robots meta、canonical 以及 X-Robots-Tag 响應头,確認没有被意外屏蔽或指向別處;
- 抽查目标 URL 的日誌,看是否有對應的爬取請求,哪怕入口頁本身没有收錄记錄。
實际运营中可以這样做
- 入口頁不必强求收錄,但一定要保證“可抓取 + 連結可解析”;
- 連結用普通 a 标簽寫在 HTML 里,指向站内可直接訪問的地址;
- 用 sitemap 和 URL 提交接口做保底,入口頁連結作為日常發現渠道;
- 不要為了凑數量批量生成内容高度相似的入口頁,這類頁面既难被收錄,也容易被判定為低價值;
- 定期看日誌,發現入口頁抓取失敗率上升时,先查服務器和 robots 配置,再查内容本身。
把“入口頁被收錄”当成發現目标 URL 的前提,是常见誤解。真正的门槛是:入口頁被抓取過,並且連結能在 HTML 里被解析到。