视频 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 里的地址要能长期访问,带签名和过期的链接不适合放进去。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
