把目标URL寫進入口頁的源碼、再用 CSS 把它藏起来,是不少人试過的取巧做法。它牵涉两個問题:搜尋蜘蛛能不能讀到這條連結,以及讀到之後愿不愿意跟進。答案偏向“能讀到,但代價不小”。
搜尋蜘蛛主要讀源碼,不是看画面
搜尋蜘蛛抓取入口頁时拿到的是 HTML 源碼,排版渲染是後續的事,而且很多抓取场景根本不做渲染。也就是说,一條被 display:none 隐藏的連結,在源碼里和一條普通連結没有区別。除非搜尋引擎在解析阶段主動過滤隐藏元素里的連結,否則這條 URL 一样會進入待抓队列。
是否渲染會带来差別
如果搜尋引擎對入口頁做了完整渲染再抽取連結,隐藏元素通常會被识別出来;如果只走源碼解析,就很可能被当成正常連結。两套流程在不同搜尋引擎、不同頁面上並不统一,所以结果並不稳定——有时目标URL确實被抓了,有时日誌里什么都没有。
常见的隐藏方式,被抓到的概率不一样
- display:none、visibility:hidden:最容易被识別為刻意隐藏,風險最高。
- 字号设為 0 或 1px:同样属于典型的作弊特征。
- 文字與背景同色、用定位把区块推到屏幕外:源碼里清晰可讀,抓取上大概率有效,但被判定作弊的風險一样存在。
- 藏在 HTML 注释或隐藏表單域里:注释内容一般不會被当成連結,隐藏域也不算連結,這類方式多數無效。
- 用 JavaScript 在加载後插入並同时隐藏:要经過渲染和脚本执行才可能出現,發現效率更低,不确定性更大。
能抓到,不等于值得做
隐藏連結是搜尋引擎明确列為作弊的手法之一。短期可能看到目标URL被抓,但風險落在入口頁本身:
- 入口頁被判定為作弊頁後,連結價值基本清零,之後再放多少連結都难以被稳定跟進。
- 同一批入口頁往往结构相似,其中一個被處理,其余頁面容易一起受影响。
- 如果入口頁與目标URL在同一域名或同一主体下,風險還可能传導到目标站。
換句话说,隐藏連結是拿入口頁的信任度去換一次抓取。而蜘蛛池依赖的恰恰是入口頁能長期、稳定地吸引搜尋蜘蛛来訪,這筆帳通常不划算。
更稳妥的替代做法
- 連結保持可见,位置自然:放在正文段落中或列表里,周围有與该連結主题相關的文字。
- 锚文本寫清楚目标頁讲什么,而不是“点击這里”這類空泛词。
- 控制單頁連結數量,不要把大量 URL 堆在一屏里。
- 让入口頁本身有可讀内容,連結只是内容的一部分,而不是頁面的唯一目的。
- 保持正常的更新节奏,让抓取频次相對稳定。
已经用了隐藏連結,怎么自查
把入口頁在浏览器里正常打開,看看目标連結是否可见、是否處在用戶能点到的地方。如果答案是否定的,就把它改成可见形式;同时观察這些頁面在服務器日誌里的来訪频次,明顯下滑往往就是信号。已经失效的入口頁不要繼續留着,改成 301 或直接下掉,都比留着强。
隐藏連結在技術上常能被搜尋蜘蛛讀到,但它把入口頁的可信度当成了本钱。對依赖長期抓取的蜘蛛池来说,可见、自然、带上下文的連結,才是更稳定的 URL 發現方式。