很多人把「蜘蛛来過」和「頁面被收錄」当成一件事,其實中間還隔着一步:先被發現,再排队被抓。一個 URL 如果從来没進入過蜘蛛的候選清單,後面所有關于抓取预算、抓取频次的讨论都没有意义。所以新頁面發布之後,先要解决的是「能不能被發現」。
發現和抓取是两個阶段
蜘蛛的工作大致是這样:從已知 URL 出發,讀取頁面内容,把里面出現的新 URL 提取出来加入候選清單,然後按某種優先級决定下一次去抓谁。提取 URL 這一步就是「發現」。被發現只說明你進了清單,不代表马上會被抓,也不代表抓完就會收錄。
理解這一点之後,就能明白為什么有些頁面几個月没動静:不是抓取环节出了問题,而是根本没有從任何地方被提取到。
通路一:站内連結,最稳定的一條
對绝大多數站点来说,内鏈是發現新頁面最可靠的方式。蜘蛛抓一個栏目頁时,會把頁面上出現的連結一並带走,新頁面只要挂在已经有抓取活動的頁面上,就有机會被發現。
几個容易踩的点:
- 連結要能被解析。用 a href 寫在 HTML 里最稳妥。如果連結是 JS 执行後才插入 DOM、或者要点击按钮才生成,發現可能會延迟,甚至不發生。
- 出發頁面要選對。首頁、栏目頁、列表頁、最近更新模块這類本来就被频繁抓取的頁面,是最合适的起点。
- 別把新頁埋在深處。從入口点几次能到,比 URL 字符串有几层更重要。
- 孤立頁面没有出路。只在站内搜尋或表單提交後才出現的頁面,基本要靠 Sitemap 或外鏈补救。
另外提一句,nofollow 主要影响的是權重传递层面的處理,並不等于该連結一定會被無视,不同搜尋引擎的處理也不完全一致。所以不要把 nofollow 当成「既不传權重又完全不暴露 URL」的開關,重要頁面還是给它正常的連結入口。
通路二:XML Sitemap,给清單做兜底
Sitemap 的價值不在于加快抓取,而在于把容易漏掉的 URL 主動交到蜘蛛手上。它特別适合三類頁面:刚發布還没有内鏈的新頁、层級很深的老頁、以及站内确實没有入口的孤立頁。
用的时候注意几点:
- 只放你希望被抓取、且能正常返回 200 的 URL,別把重定向、參數頁、已经下线的地址塞進去。
- lastmod 寫真實時間,批量改成一個時間戳會让這個字段失去參考價值。
- URL 數量多的时候做好分片,並维護一個 Sitemap 索引文件,方便蜘蛛按需讀取。
- 提交只是一個候選動作,不代表會立刻被抓,更不代表收錄。
通路三:外部引用,能帮上但不完全可控
外部連結、社交平台分享、行业聚合頁、被轉载的文章,都可能让蜘蛛從站外走到你的新頁面。它的問题是不可控:什么时候出現、出現在哪個頁面、對方是否允许抓取,都取决于外部环境。
比較實际的做法是:把外部引用当成补充渠道,而不是主力渠道。新頁面發布後,站内入口先铺好,再考虑通過正常的合作關系获取引用。
還有些辅助入口值得留意
- RSS / Atom 订阅源,對时效性内容的發現有一定帮助。
- 标簽頁、归档頁、热门文章模块,本身就是内鏈的一部分。
- 搜尋引擎站長平台提供的 URL 提交入口或 IndexNow 類协议,可以作為孤立頁面的补充手段,但各家的接受程度和响應方式不同。
怎么確認發現真的發生了
與其猜,不如查服務器日誌。按蜘蛛的 User-Agent 過滤,看新 URL 有没有出現過請求记錄,以及請求的返回狀態是什么。一個可落地的排查顺序:
- 確認新頁面至少有一個站内 HTML 連結指向它。
- 確認该 URL 已寫入 Sitemap,且地址本身能正常訪問。
- 查日誌,看是否已有蜘蛛請求该 URL。
- 如果完全没有請求,检查入口頁是否被 robots.txt 挡掉、是否被 WAF 或防火墙拦截、頁面是否返回 5xx。
- 以上都正常但仍無請求,再考虑补充外部引用或走站長平台提交。
几個常见誤判
- 「提交了 Sitemap 就等于被收錄」——提交只是提供候選,抓取和收錄是後面的事。
- 「頁面一發出去蜘蛛就该来」——没有入口的頁面,蜘蛛没有理由知道它存在。
- 「内鏈多了就一定好」——重复堆砌同一批連結,收益递减,還可能分散對真正重要頁面的注意力。
把發現這一步做扎實,比纠结抓取频次更實际:先让 URL 進入清單,再谈抓取和收錄。