蜘蛛抓一個頁面之前,得先知道這個 URL 存在。這件事听起来简單,但站点規模一大,很多頁面長期没被發現,往往不是抓取能力的問题,而是發現渠道没铺到位。
常见的發現渠道大致有三條:外部連結、Sitemap、站内連結。它們不是互相替代的關系,各自解决的阶段也不一样。
外部連結:慢,但更接近真實传播路径
外鏈是搜尋引擎最早采用的發現方式。一個新域名或新栏目,如果没有任何外部引用,蜘蛛可能需要很久才會第一次走到。外鏈的價值在于它是別人给出的引用,通常意味着這個頁面被放進了某個上下文里。
- 新站前期,几處相關站点的自然引用,比短期内堆一批低质量連結更有意义
- 外鏈可以指向首頁、栏目頁,也可以直接指向内容頁,指向的深浅會影响蜘蛛第一次到達的位置
- 外鏈不會一直帮你發現新頁面,站内新增的内容仍然要靠站内渠道承接
需要說明的是,外鏈只能解决第一次知道,後續這個 URL 是否被反复訪問,取决于站点自身的结构和更新节奏。
Sitemap:清單式覆盖,但只是候選
Sitemap 的作用比較直接,就是把一批 URL 集中列出来交给搜尋引擎。它适合處理那些靠站内連結不容易走到的頁面,比如分頁較深的列表、按條件生成的詳情頁。
但要清楚,Sitemap 更像一份候選清單,不是抓取指令。蜘蛛會不會按顺序走、走多少,仍然由它自己判断。
- 尽量只放可以正常返回内容的 URL,把已刪除或長期不可用的頁面清掉
- 分批提交,比一次性塞進几萬個 URL 更容易观察效果
- 提交後留意抓取日誌里對應目錄的訪問是否增加,用来判断這條路有没有走通
站内連結:决定蜘蛛接下来能走到哪
前两條渠道解决的是進来,站内連結解决的是繼續走。蜘蛛進入一個頁面之後,能走多遠几乎完全由頁面上的連結决定。
如果栏目頁只有横向導航、没有指向具体内容的纵向出口,蜘蛛容易在同一层級里来回走,深层頁面就一直等不到訪問。
- 列表頁保留足够的分頁和下一頁連結,避免只靠 JS 加载
- 詳情頁之間适当互鏈,给蜘蛛多几條到達相似内容的路径
- 每层都留出向下的出口,比在首頁堆大量連結更有效
發現渠道的任務是让 URL 進入蜘蛛的视野,抓取路径的任務是让它繼續往前走。两者缺一,都會出現提交了但没動静的情况。
三條渠道怎么配合
比較稳妥的做法是按頁面類型分開處理:
- 首頁和主要栏目:靠外鏈和站内導航被發現,同时放進 Sitemap
- 新增内容頁:靠站内列表和相邻内容互鏈,配合 Sitemap 补充
- 深层或低频頁面:主要依赖 Sitemap,站内連結能加就加
三條渠道同时铺開时,可以在抓取日誌里對比来自 Sitemap 目錄和站内路径的訪問量,看看哪條更顺畅,再决定把维護精力放在哪里。
几個常见誤区
- 以為提交了就一定會被抓,其實提交只是让 URL 進入候選池
- 只做 Sitemap,不修内鏈,蜘蛛進来了也走不遠
- 只靠外鏈引導新栏目,短期有效,長期還是要靠站内结构承接
把這三件事分開看,很多时候就能解释為什么某些頁面一直没動静。先確認 URL 有没有進入蜘蛛的视野,再看站内有没有给它留出可以繼續走的路。