视频 sitemap 里 player_loc 写的是播放页地址,这个地址会先 302 到带签名的临时链接。必应富媒体检测提示「播放地址不可访问」,视频 tab 里一条都不显示,提交了 2000 条。

一开始怀疑是「player_loc 指向 API 接口而不是 HTML 页面」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。播放地址经过 302 跳转,校验器要求直接返回播放器页面。少数情况下是签名链接 10 分钟过期,抓取时已经失效。

不容易想到的是,视频页本身有 noindex,连带视频条目被忽略。

上来先看 player_loc 的返回码和跳转目标

curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' 'https://www.example.com/play/123'

然后确认视频页本身是否可索引

curl -s https://www.example.com/video/123 | grep -i noindex

再往下核对 sitemap 里写的地址

curl -s https://www.example.com/video-sitemap.xml | grep -o '<video:player_loc>[^<]*' | head -3

等前面都确认过,再用富媒体工具复验一条

https://www.bing.com/webmasters/urlinspection

别只看报错消失,验证要多做一步。player_loc 直接返回 200 且内容含播放器标签,视频 tab 里重新出现条目,两周内恢复到 1500 条以上。

这里还有个坑。sitemap 里的地址要能长期访问,带签名和过期的链接不适合放进去。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189