You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅对Google、Yahoo等搜索引擎显示特定文本/链接,对普通浏览器隐藏

重要风险提示

这种针对搜索引擎UA和普通用户返回不同内容的行为属于「斗篷伪装(Cloaking)」,明确违反Google、Yahoo等主流搜索引擎的站长规范,一旦被识别会直接导致站点被降权、甚至完全移出搜索索引,不建议在生产环境使用。

技术实现方案

1. 服务端判断实现(最推荐,普通用户无法在前端源码查看到隐藏内容)

核心逻辑是服务端先读取请求的User-Agent请求头,和指定的搜索引擎UA特征做匹配,匹配成功才输出对应内容,否则不输出相关代码。

Nginx 匹配规则示例

可以先在Nginx层统一识别爬虫UA,再传递给后端服务判断:

# 匹配指定搜索引擎UA
map $http_user_agent $is_search_bot {
    default 0;
    ~*(googlebot|bingbot|slurp|yahoo! slurp|duckduckbot) 1;
}

PHP 后端判断示例

function isSearchBot() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
    // 按需添加需要适配的搜索引擎UA特征
    $allowedBots = [
        'googlebot',
        'bingbot',
        'slurp',
        'yahoo! slurp',
        'duckduckbot'
    ];
    foreach ($allowedBots as $bot) {
        if (stripos($userAgent, $bot) !== false) {
            return true;
        }
    }
    return false;
}

// 仅匹配到爬虫时输出内容
if (isSearchBot()) {
    echo '<a href="目标链接">仅搜索引擎可见的文本</a>';
}

2. 前端判断实现(不推荐,用户可通过查看源码、禁用JS查看到内容)

如果没有服务端修改权限,可以通过前端JS动态判断插入内容:

const isSearchBot = /googlebot|bingbot|slurp|yahoo! slurp/i.test(navigator.userAgent);
if (isSearchBot) {
    const hiddenContent = document.createElement('a');
    hiddenContent.href = '目标链接';
    hiddenContent.innerText = '仅搜索引擎可见的文本';
    document.body.appendChild(hiddenContent);
}

注意事项

  • 搜索引擎爬虫的UA会不定期更新,需要定期维护匹配的UA特征库
  • 部分爬虫会模拟普通浏览器的UA,这类判断逻辑无法完全覆盖
  • 所有主流搜索引擎都有专门机制识别Cloaking行为,违规使用有极高的站点被惩罚风险

内容的提问来源于stack exchange,提问作者edy12014

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:54:04