入口頁要承担“让搜尋蜘蛛發現目标 URL”的任務,但很多入口頁為了排版或防爬,會把連結放在图片热区、iframe、按钮或 JS 事件里。這些形式對普通訪客也许能点,對搜尋蜘蛛不一定等價于一條可發現的連結。下面按常见承载方式拆開说。
先分清“發現 URL”和“抓取、收錄”
搜尋蜘蛛發現 URL 通常来自几個渠道:頁面里的可抓取連結、XML sitemap、歷史抓取记錄、外部連結等。入口頁里的連結形式,主要影响的是“能不能從目前頁面發現這個地址”。發現之後,是否抓取、何时抓取、是否收錄,還取决于目标 URL 本身的质量、服務器响應、robots.txt、canonical 等因素。所以不要把一個連結形式的差异直接等同于收錄结果。
几種承载形式,搜尋蜘蛛實际能讀到什么
1. 标准 a 标簽:最稳定
把目标 URL 寫成 a href,並且 href 是真實地址,是搜尋蜘蛛识別成本最低的形式。它不需要执行 JS,也不依赖渲染,通常能直接進入連結發現流程。如果入口頁有多個目标 URL,建议每個都至少有一條這样的連結。
2. 图片連結和图片热区
如果图片外层包着 a 标簽,图片本身只是可点击区域,搜尋蜘蛛讀到的仍然是 a 标簽里的 href,這種情况通常可以按普通連結處理。但如果只在图片上做热区,或者用 JS 监听图片点击再跳轉,href 不存在,搜尋蜘蛛一般不會把图片坐标当成 URL 来發現。img 的 alt 是文本描述,不是連結地址,不能替代 href。
3. iframe 内嵌頁面
iframe 里的内容是否被抓取,取决于搜尋引擎的渲染能力和 iframe 的可訪問性。同域 iframe 相對容易被渲染,跨域 iframe 可能因為安全策略、加载失敗或延迟加载而讀不到。即使能渲染,iframe 内連結的發現稳定性通常也不如主文档里的普通連結。把關键目标 URL 只放在 iframe 里,是風險較高的做法。
4. 表單按钮和 onclick 事件
按钮提交表單、onclick 跳轉、下拉菜單選擇後跳轉,這些交互依赖 JS 执行和用戶操作。搜尋蜘蛛一般不會主動点击按钮,也不會把 form action 或 onclick 里的 URL 当作頁面連結来發現。除非渲染後生成了真實 a 連結,否則這些形式對 URL 發現帮助很有限。
如果必须用非标准形式,怎么降低風險
- 每個目标 URL 至少保留一條可抓取的 a href,不要只放图片热区或按钮。
- iframe 尽量同域、静態、不要延迟加载,並在 iframe 外也给出普通連結。
- JS 跳轉的地址,可以在 noscript 或頁面底部用 a 标簽列一份。
- 入口頁本身不要被 robots.txt 誤拦,也不要给關键連結加 nofollow。
- 用 sitemap 作為补充,但 sitemap 不能替代頁面内的連結结构。
怎么驗證搜尋蜘蛛到底讀到了没有
最直接的是看服務器日誌:入口頁被抓取後,目标 URL 有没有出現来自搜尋蜘蛛的請求。如果没有,先確認入口頁返回的是 200,且連結不是只在 JS 里生成。其次可以用搜尋引擎的抓取測試或富媒体測試工具,查看渲染後的 HTML 里是否存在目标連結。也可以用同域測試頁,把不同連結形式放在一起,观察日誌差异。注意,日誌里出現請求只能說明被發現和抓取過,不能保證收錄。
入口頁的連結形式,决定的是“發現概率”,不是“收錄结果”。标准 a 标簽是基本盘,iframe、图片热区和按钮只能算辅助,而且需要日誌驗證。
如果你正在做蜘蛛池入口頁,優先把目标 URL 用普通 a 标簽寫清楚,再考虑其他展示形式。這样對搜尋蜘蛛最友好,也方便後續排查。