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

如何仅向Yandex爬虫展示WordPress特定页面的meta标签

解决方案:结合爬虫检测与原有页面模板条件

最简单的实现方式就是在你现有的PHP条件外层,再嵌套一层Yandex爬虫检测逻辑——通过判断请求的User-Agent头是否包含Yandex爬虫的标识,来决定是否输出目标meta标签。

基础实现代码

直接修改你现有的代码,加入爬虫检测:

<?php
// 检测是否为Yandex爬虫(匹配标准桌面爬虫)
$is_yandex_crawler = strpos($_SERVER['HTTP_USER_AGENT'], 'YandexBot') !== false;

// 同时满足:是指定模板页面 + 是Yandex爬虫
if (is_page_template('template.php') && $is_yandex_crawler) : ?>
    <meta name="fragment" content="!">
<?php endif; ?>

优化版:覆盖更多Yandex爬虫类型

Yandex还有移动版爬虫(YandexMobileBot),如果需要覆盖这类场景,可以用正则匹配来兼容更多爬虫标识:

<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// 不区分大小写匹配Yandex桌面/移动爬虫
$is_yandex_crawler = preg_match('/Yandex(?:Mobile)?Bot/i', $user_agent);

if (is_page_template('template.php') && $is_yandex_crawler) : ?>
    <meta name="fragment" content="!">
<?php endif; ?>

原理说明

  1. 爬虫识别:Yandex的官方爬虫会在请求头的User-Agent中携带YandexBot(桌面)或YandexMobileBot(移动)的标识,我们通过检测这个字符串来判断访客是否是Yandex爬虫。
  2. 条件叠加:保留你原有的is_page_template判断,确保只有访问指定模板页面的Yandex爬虫才会看到这个meta标签,其他爬虫或普通访客都不会加载该标签。

注意事项

  • $_SERVER['HTTP_USER_AGENT']在绝大多数服务器环境下都能正常获取,但如果你的主机有特殊配置导致该变量不可用,可以考虑使用WordPress的wp_get_user_agent()函数替代。
  • 虽然存在爬虫伪造User-Agent的可能性,但正常情况下Yandex官方爬虫不会这么做,这个方案足够满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:03:09