如何修改面向爬虫的meta description长度限制解决Bing收录问题
解决方案
一、针对爬虫返回截断版meta description的实现方案
你的页面都是PHP后缀,只要调整meta description的输出逻辑即可实现需求,不需要逐个修改页面内容:
- 首先通过请求头的UA字段判断访问者是否为搜索引擎爬虫,主流爬虫的UA都会携带专属标识,比如Bing爬虫的标识是
bingbot、BingPreview - 给爬虫返回截断到160字符的meta description,普通用户访问时仍然展示完整内容,注意处理中文多字节编码避免截断出现乱码
直接替换你现有页面中输出meta description的代码即可,通用代码片段如下:
<?php // 替换为你原本的meta description内容变量 $origin_desc = "你的原meta description完整文本"; // 判断是否为搜索引擎爬虫 $is_spider = preg_match('/(bingbot|BingPreview|Googlebot|Baiduspider|YandexBot|Sogou spider)/i', $_SERVER['HTTP_USER_AGENT']); if ($is_spider) { // 爬虫访问时截断到160字符,用mb_substr适配中文编码 $show_desc = mb_substr(trim($origin_desc), 0, 160, 'UTF-8'); // 超出长度的内容末尾加省略号 if (mb_strlen($origin_desc, 'UTF-8') > 160) { $show_desc .= '...'; } } else { // 普通用户访问展示完整描述 $show_desc = $origin_desc; } // 输出meta标签,转义特殊字符避免语法错误 ?> <meta name="description" content="<?php echo htmlspecialchars($show_desc, ENT_QUOTES, 'UTF-8'); ?>">
如果你的所有页面是统一引入公共头部文件,只需要修改一次头部文件即可全局生效。
二、其他保障Bing正常收录的补充方案
- 排查其他收录阻碍:除了meta description长度问题,还要确认页面没有重复内容、没有返回4xx/5xx状态码、没有被robots.txt封禁爬虫、页面加载速度正常,这些都是常见的被Bing拒收录的原因
- 提交站点地图:主动生成XML格式的站点地图提交到Bing站长平台,不需要等待爬虫自发爬取,能大幅提升收录效率
- 保证内容相关性:不要为了凑长度修改meta description为和页面内容无关的文本,Bing会校验描述和页面主体内容的匹配度,相关性低的内容就算长度合规也可能被拒收录
内容的提问来源于stack exchange,提问作者user8409158
相关产品推荐
相关产品推荐

