先看现象。站点做俄语市场的落地页,Yandex 站长后台显示收录只有 1 条首页。服务器日志里 YandexBot 一天来 200 多次,抓的全是首页和几个静态资源。
这类报错背后常见的原因有几处,逐个排除就行。站点按 UA 做了地域跳转,YandexBot 被跳到语言选择页。也可能是robots 里给 Yandex 单独加了 Clean-param,参数页全被合并。
还有一种情况,页面 lang 写成 zh-CN,Yandex 判为地域不相关降权。
另外,sitemap 只提交到 Google,Yandex 后台没绑定。
第一件事是确认 YandexBot 拿到的实际响应
grep -i yandexbot /var/log/nginx/access.log | awk '{print $7, $9}' | sort | uniq -c | sort -rn | head
去掉针对 Yandex 的 UA 跳转规则
curl -A 'Mozilla/5.0 (compatible; YandexBot/3.0)' -sI https://www.example.com/ru/
补交 sitemap 并配置地域
curl -s 'https://yandex.com/webmaster/api/sitemaps?host_id=xxx&sitemap_url=https://www.example.com/sitemap.xml'
给俄语页补 hreflang 与正确的 lang
curl -s https://www.example.com/ru/ | grep -o 'hreflang="[^"]*"'
命令输出我都留了记录,免得改完记不清原来的值。
怎么算真的好了,看的是同一批现象。YandexBot 的抓取分布从首页占到 90% 变成各栏目均摊,两周后收录涨到 640 条,俄语落地页开始有展示。
提醒一点。按 UA 做跳转对搜索引擎来说等同于屏蔽,凡是给普通用户看的地域引导,都不该作用在爬虫身上。这类问题最好一次改到位,反复小改反而容易把原因搅混。
