做入口页时很容易遇到一个矛盾:入口页本来是给人看的会显得很怪,一堆外链堆在那里,体验不好。于是有人会想,能不能只对搜索蜘蛛返回带链接的版本,对普通访客返回一个正常的页面。这就是通常说的“差异化返回”,英文里叫 cloaking。
差异化返回一般怎么实现
技术上不算复杂,判断依据主要有几类:
- User-Agent 判断:识别到 Bingbot、Googlebot 这类 UA 时返回一份 HTML,其他 UA 返回另一份。
- IP 反查:判断访问 IP 是否落在搜索引擎公布的官方网段,再决定返回什么。
- 行为特征:是否执行 JavaScript、是否加载图片、有没有正常浏览行为等。
- 来源判断:从搜索引擎结果页点进来的给一份,直接访问的给另一份。
搜索引擎对这件事的态度
需要说清楚:主流搜索引擎把“向访客和搜索蜘蛛提供实质不同内容”列为作弊手法之一,写进了站长指南。各家判断标准和执行尺度不一样,也可能出现误判,但方向是明确的——它不是一种模糊的灰色技巧,而是被点名过的违规行为。
如果两份内容只是排版不同、核心信息一致,通常不算问题;如果一份有链接、另一份没有,或者一份是给人读的文章、一份是纯链接列表,性质就变了。
可能出现的后果
- 抓取信任度下降:蜘蛛可能降低对你这个站点的抓取频次,甚至短期停止抓取。
- 入口页被降权或从索引中移除,页面里的链接自然也不会再被跟随。
- 如果入口页和目标 URL 在同一个主域下,影响会顺着域扩散到主站。
- 反复出现时,可能触发人工处理,波及整个站点。
这些后果不是必然发生,也不是立刻就发生。自动化判断本身有延迟和误差,很多人短期内看不到明显变化,就容易误以为“没事”,等抓取量掉下来再回头排查,定位难度反而更大。
相对稳妥的做法
如果目标只是让入口页不那么难看,其实有更省事的路子:
- 对所有访问者返回同一份内容,把链接做成正常可读的列表,配一两句简短说明,用户和蜘蛛看到的完全一样。
- 链接用标准的 a 标签,不要用 JS 跳转或 onclick 代替,保证可抓取。
- 如果实在不想让用户看到大量链接,可以把入口页放在不对普通用户开放的路径下,但这样蜘蛛通常也访问不到,就失去了入口页的意义,需要谨慎评估。
- 更实际的做法是控制入口页数量和链接质量,别指望靠“藏内容”去解决体验问题。
自查方法
- 用 curl 分别带上常见蜘蛛 UA 和不带 UA 请求同一个 URL,对比返回的 HTML 是否一致。
- 用浏览器无痕模式打开该 URL,看内容和蜘蛛看到的版本是不是同一份。
- 查服务器日志,看同一路径是否针对不同 UA 走了不同分支。
- 如果用了 CDN 或 WAF,检查有没有“爬虫模式”之类的开关在返回不同版本。
小结
入口页给搜索蜘蛛和访客返回不同内容,短期内也许看起来有效,但它属于被明确列出的违规操作,风险落在入口页本身,也可能牵连主站。做站点运营还是让入口页的内容对谁都是一样的更省心。链接能不能被发现,主要取决于是否可抓取、页面是否被正常索引,而不是靠“只给蜘蛛看”。