现场是这样的。视频页用自研播放器,播放地址放在 iframe 里,页面本身只有一段简介和一个封面。视频搜索收录是零,VideoObject 测试提示找不到视频内容,mp4 地址只存在 iframe 的源码里。
中间走过弯路,把「视频 sitemap 没有提交」当成主因,改完现象没变。
真正麻烦的地方在于,几个原因的现象几乎一样。蜘蛛不进入 iframe 拿不到 mp4 和播放器结构;页面没有 VideoObject 结构化数据;iframe 内的页面自己带了 noindex。
先用蜘蛛 UA 取页面看 video 标签
curl -s -A 'Baiduspider' https://www.example.com/v/1 | grep -o '<video[^>]*>'
正文直接输出 video 标签和 mp4 地址
<video controls poster="/img/v1.jpg" src="/media/v1.mp4"></video>
补 VideoObject 标注时间
<script type="application/ld+json">{"@context":"https://schema.org","@type":"VideoObject","name":"nginx 配置演示","uploadDate":"2026-10-01T09:00:00+08:00"}</script>
提交视频 sitemap
curl -s https://www.example.com/video-sitemap.xml | head -5
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
怎么算真的好了,看的是同一批现象。富媒体测试能读到视频实体,视频搜索里出现这条结果,日志能看到 mp4 的 Range 请求。
iframe 适合防盗链,不适合做唯一的播放入口,页面里至少要留一份可解析的 video 标签。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
