搜尋抓取

锚文本與連結上下文:蜘蛛跳轉前會讀到的信息

蜘蛛發現 URL 靠連結,但連結不只是一個 href。锚文本、連結周围的文字、面包屑层級、图片替代文本,都會參與蜘蛛對目标頁面的判断。這些信息寫得清楚,抓取路径就更容易保持秩序;寫得含糊,URL 即使出現在頁面上,也可能被排在後面。

搜尋抓取

锚文本與連結上下文:蜘蛛跳轉前會讀到的信息

蜘蛛發現新 URL,主要靠頁面上的連結。但一個連結递给蜘蛛的信息,並不只是一個地址。同一段 HTML 里,href 只是其中一部分,锚文本、連結周围的文字、所在的導航层級、甚至图片的 alt,都會一起被讀到。這些信息不直接决定收錄,却會影响蜘蛛如何理解這個 URL、是否值得優先抓取。

href 之外,蜘蛛還會讀什么

把連結拆開看,通常有這几层信息:

  • 锚文本:可点击的文字,最直接的语义提示。
  • 連結上下文:連結所在的段落、列表項、标题或表格單元格里的其他文字。
  • 位置與层級:連結出現在主導航、面包屑、正文還是頁脚,蜘蛛看到的路径顺序不同。
  • 补充属性:图片連結的 alt、連結的 title 属性。它們不是锚文本的替代品,但能提供一点补充。

這些信息拼在一起,构成了蜘蛛對目标 URL 的第一印象。它未必决定最终排序,但會影响抓取时的取舍。

锚文本怎样參與 URL 發現

当一個頁面被大量連結指向时,蜘蛛會從這些連結的文本里,逐渐拼出這個頁面的主题轮廓。如果锚文本是“点击這里”“更多”“詳情”,那么除了地址本身,蜘蛛几乎没有額外线索。相反,如果連結文本能說明目标内容,例如“服務器响應碼排查”,蜘蛛更容易把它归到相關的主题簇里。

同一目标 URL 出現多個不同锚文本是正常的。導航里可能是简称,正文里可能是完整描述。關键是這些文本彼此之間不要互相矛盾,也不要為了堆词而铺满關鍵詞。锚文本的作用是描述目标頁,不是重复目标頁的關鍵詞。

還有一種常见情况:連結由 JavaScript 生成,或者锚文本来自客戶端渲染。蜘蛛在初次抓取 HTML 时可能讀到的是空文本。如果頁面本身依赖渲染才能出現連結,那么發現路径就會變慢。能放在服務端 HTML 里的連結和文本,尽量放進去。

連結上下文给抓取路径带来秩序

蜘蛛在站内移動时,通常沿着一條條路径走。上下文清晰的連結,會让路径更顺:

  • 面包屑提供從首頁到目前頁的层級關系,蜘蛛能顺着往上回到更重要的节点。
  • 列表頁里每條連結都有可区分的文本,蜘蛛能判断它們是不同内容,而不是同一批 URL 的重复入口。
  • 正文中的内鏈如果出現在相關段落里,蜘蛛更容易把它和目前頁面建立语义联系。
  • 頁脚連結數量多、文本重复时,蜘蛛仍會跟,但它們對主题判断的帮助有限。

這不是说頁脚連結没有用。對于一個長期没有被連結到的頁面,任何一條可爬取的入口都有價值。只是入口的位置和寫法,會影响蜘蛛花多少精力去處理它。

從站点侧怎么检查

不需要把每個連結都改一遍,可以從几個抽样動作開始:

  1. 打開几個重要頁面的 HTML 源碼,屏蔽样式和脚本,只看連結和周围文字。
  2. 检查图片入口是否只有图片没有 alt,頁面内的連結文本是否全是“更多”。
  3. 看日誌或抓取工具里,目标 URL 是否被蜘蛛訪問過。發現和抓取是两件事,連結存在不等于被抓。
  4. 對長期没有入口的頁面,找一個主题相關的正文位置加連結,而不是只在頁脚列一堆。

這些動作不會立刻改變抓取结果,但能让站点的連結结构更容易被讀懂。

對蜘蛛来说,連結是一個入口,锚文本和上下文是一張标簽。入口决定它能不能来,标簽影响它先来哪、怎么理解。

把連結寫清楚,最终受益的不只是蜘蛛。用戶掃一眼連結文字,也能判断值不值得点。站内連結的可讀性,本来就是同一件事。