视频详情页的播放器加载之后才通过 JS 请求 m3u8,源码里只有一段播放器配置,蜘蛛抓到的页面没有 video 标签也没有 mp4 地址,视频始终进不了索引。
原因不止一个,得分开看。播放器脚本在运行时才注入 source,静态 HTML 里为空。还有一种是页面没有声明 VideoObject,也没有视频 sitemap 记录。
少数情况下是m3u8 索引文件被 robots 一并挡住。
第一件事是看源码里是否存在 video 或 source 标签
curl -s https://www.example.com/video/1 | grep -o '<video[^>]*'
接着在服务端直出 video 标签与封面
curl -s https://www.example.com/video/1 | grep -o 'poster="[^"]*"'
补一份视频 sitemap 并提交
curl -s https://www.example.com/video-sitemap.xml | grep -c 'video:content_loc'
当时还开着另一个排查窗口,两边日志对照着看才定位到。
同一份数据我导出了两份,一份留底,一份拿来试。
恢复的判定其实很直接。改为服务端直出后一周,视频页开始出现在视频搜索里,索引报告中的视频条目从零涨到两百多条。
这里还有个坑。视频能不能被收录,取决于源地址在静态 HTML 里是否可达,播放器多漂亮与此无关。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
