常见問题

入口頁把連結藏在 display:none 或折叠区域里:搜尋蜘蛛還會跟進吗

蜘蛛池入口頁常把連結放進折叠面板、選項卡或用 display:none 隐藏,搜尋蜘蛛還能不能發現這些 URL?本文区分源碼层面與视觉层面的差別,說明几種常见隐藏方式的抓取表現,以及哪些做法容易被判定為刻意堆連結,並给出更稳妥的入口頁連結摆放建议。

常见問题

入口頁把連結藏在 display:none 或折叠区域里:搜尋蜘蛛還會跟進吗

搭建蜘蛛池入口頁时,為了頁面整洁,很多人會把連結塞進折叠面板、選項卡,或者干脆用 CSS 隐藏起来,等需要时再用 JS 展開。這類“看不见的連結”到底還算不算連結,搜尋蜘蛛會不會跟進,需要分情况看。

搜尋蜘蛛讀的是 HTML,不是渲染後的视觉效果

先要区分两件事:頁面源碼里有没有這個 URL,以及普通訪客能不能看到它。搜尋蜘蛛抓取入口頁时,首先拿到的是 HTML 源碼。只要連結以 a 标簽加 href 的形式出現在源碼中,並且没有被 rel=nofollow、robots 規則或 noindex 之類的東西挡住,它就有被發現的机會。视觉上是否可见,本身不是判断連結是否存在的唯一依據。

但“源碼里有”不等于“一定會被跟進”。搜尋引擎會综合评估入口頁的质量、連結的可信度和目前的抓取预算,隐藏連結往往會被打折扣。

几種常见隐藏方式的差別

display:none 與 visibility:hidden

用 display:none 隐藏的元素仍然留在 DOM 里,連結的 href 也存在于源碼中。多數搜尋引擎能解析到這些 URL,但會把它当成低優先級、可信度較弱的連結。如果是少量功能性隐藏,比如下拉菜單預設折叠,影响不大;如果整個入口頁几百個連結全用 display:none 藏起来,就很容易被识別為刻意堆連結。

visibility:hidden 同理,元素不可见但仍占位、仍在源碼里。

折叠面板、選項卡、轮播

這類通常由 CSS 加 JS 组合實現:初始狀態隐藏,点击後才展開。連結本来就在 HTML 中,搜尋蜘蛛讀到没有障碍。即使有些實現是点击时才動態插入 DOM,主流搜尋引擎的渲染能力也能處理一部分,但稳定性和優先級都不如直接寫在 HTML 里。

放在 noscript 里

寫在 <noscript> 中的連結,只有在浏览器不执行 JS 时才顯示。搜尋引擎渲染頁面时通常执行 JS,是否讀取 noscript 内容各家策略並不一致,實操上不要把關键 URL 只放在這里。

用图片、背景图或按钮伪装

這些没有 href,嚴格来说不算連結。除非旁邊同时有可讀的 a 标簽或纯文本 URL,否則搜尋蜘蛛很难把它当作可跟進的入口。

隐藏連結會不會被当成作弊

關键不在“隐藏”這個動作本身,而在隐藏的目的。導航菜單折叠、标簽頁切換属于正常设計;把大量與頁面内容無關的連結藏起来,只等着搜尋蜘蛛来讀,就接近隐藏連結或連結作弊的范畴。入口頁本身质量偏低,再加上隐藏操作,通常會让整頁的可信度繼續下降。

對蜘蛛池入口頁来说,連結可發現只是第一步。真正影响後續抓取意愿的,是入口頁本身是否被信任,以及目标 URL 的内容是否值得抓。

更稳妥的做法

  1. 入口頁的核心連結直接寫在 HTML 里,不要依赖 JS 渲染或展開後才出現。
  2. 确實需要折叠的,把連結保留在源碼中,避免用脚本動態刪除 DOM。
  3. 不要把整頁連結统一隐藏,可见連結與隐藏連結混排更容易被判定為刻意。
  4. 控制單頁連結數量,把重要 URL 放在靠前且預設可见的位置。
  5. 用服務器日誌確認搜尋蜘蛛是否真的抓過入口頁和目标 URL,再判断策略是否有效。

如果入口頁要承载的 URL 确實很多,可以考虑拆成多個正常展示的分類頁或分頁,而不是全部压在一頁里隐藏起来。入口頁做得干净、结构清晰,搜尋蜘蛛發現並跟進 URL 的過程才會更稳定。