现场是这样的。视频页用自研播放器,播放地址放在 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 标签。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189