# 1295-SEONexus 老模板播放页 Patch 模板 - 2026-04-17 ## 目的 这份文档专门服务第一批 5 个播放页文件。 它的作用和 [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md) 一样: - 不是继续分析 - 而是给主 Codex 一份可以直接照着写 patch 的模板 适用文件: - `videoDadi/video/getVideoPlayUrl.html` - `videoDingZhu/video/getVideoPlayUrl.html` - `videoBoKu/video/getVideoPlayUrl.html` - `videoLaoNiu/video/getVideoPlayUrl.html` - `videoNuNu/video/getVideoPlayUrl.html` ## 一、这 5 个文件当前共同问题 共同问题非常一致: 1. canonical 已经是播放页 2. `og:url` 仍然是详情页 3. JSON-LD `url` 仍然是详情页 也就是说当前是典型的: - 一半在说“我是播放页” - 一半在说“我是详情页” 这会持续制造: - `play|301` - 详情页与播放页规范信号冲突 ## 二、目标状态 播放页三件套全部统一: 1. canonical 指向播放页 2. `og:url` 指向播放页 3. JSON-LD `url` 指向播放页 ## 三、当前最稳策略 ### 第一批先走保守收口 当前老模板 canonical 写法普遍是: ```tpl {site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /} ``` 这不一定是当前真实线路和真实集数,但它至少已经是“播放页路径”。 因此第一批最稳策略不是一步做复杂,而是: - 先让 `og:url` 和 JSON-LD `url` 与当前 canonical 完全一致 这样能最快消除 detail/play 信号分裂。 ## 四、最稳参考 可以参考 `videoGpt1` 当前播放页: - [videoGpt1/getVideoPlayUrl.html:117](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117) - [videoGpt1/getVideoPlayUrl.html:143](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:143) - [videoGpt1/getVideoPlayUrl.html:202](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:202) GPT 那边已经是: - canonical、`og:url`、JSON-LD `url` 三者完全一致 ## 五、推荐 patch 思路 ### 第一步:保留当前 canonical 不动 当前老模板 canonical 已经存在,例如: ```tpl {if $Request.route.intVId && $Request.route.intVForgeId} {/if} ``` 第一批先不要动这段结构。 ### 第二步:把 `og:url` 改成和 canonical 一致 把当前: ```tpl ``` 统一替换为: ```tpl ``` ### 第三步:把 JSON-LD `url` 改成和 canonical 一致 把当前: ```tpl "url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}', ``` 统一替换为: ```tpl "url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}', ``` ## 六、推荐的统一替换结果 ### 头部关键区域 最终应接近: ```tpl {if $Request.route.intVId && $Request.route.intVForgeId} {/if} ``` ### JSON-LD 区域 最终应接近: ```tpl "url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}', ``` ## 七、5 个文件的差异提醒 这 5 个文件在当前 patch 涉及区域内几乎完全同构。 也就是说: - 这组 patch 比分类页还更适合批量统一处理 目前没有看到会影响这次 patch 的明显结构差异。 ## 八、为什么第一批不直接做“当前线路当前集数精确 URL” 因为那会把这批 patch 从“稳定收口”变成“逻辑改造”。 第一批更稳的目标是: - 先把 detail/play 信号分裂压掉 - 先让播放页内部信号统一 等第一批跑通之后,第二批再评估要不要升级为: - 根据 `Request.route.strPlayType` - 根据 `Request.route.intPlayIndex` - 输出当前真实播放页 URL ## 九、建议验收方式 每改完 1 个文件,至少做一次页面级验收。 ### 页面源代码验收 确认: 1. canonical 仍存在 2. `og:url` 与 canonical 完全一致 3. JSON-LD `url` 与 canonical 完全一致 ### 域名级优先验收 优先看: - `yagyjt.com` - `ningxiaowei.com` ## 十、验收后的日志观察 改完这 5 个播放页之后,连续看 3 天最值得盯的是: 1. `play|301` 是否下降 2. `play|200` 是否更稳 3. `detail|301` 是否开始和 `play|301` 一起收敛 ## 一句话交接 > 老模板第一批播放页 patch 的核心不是“做得多花”,而是先让 canonical、`og:url`、JSON-LD `url` 说同一句话;只要这 5 个播放页先统一收口,深页的百度识别成本就会明显下降。