173 lines
5.1 KiB
Markdown
173 lines
5.1 KiB
Markdown
# 1276-SEONexus 主 Codex 检查清单补充修正 - 2026-04-17
|
||
|
||
## 目的
|
||
|
||
这份文档用于补充修正 `1272` 到 `1275` 之间一个很关键的判断差异:
|
||
|
||
- `SiteStyle::buildSeoMeta()` 确实存在 canonical 兜底逻辑
|
||
- 但对当前重点观察的 `videoGpt1` 视频模板来说,它未必是前台实际 canonical 的主输出来源
|
||
|
||
这会直接影响主 Codex 的排查顺序。
|
||
|
||
## 本轮补充结论
|
||
|
||
一句话总结:
|
||
|
||
> 当前 `videoGpt1` 下,真正更值得优先核对的不是 `SiteStyle::buildSeoMeta()`,而是模板里实际写死的 canonical host 口径,以及 sitemap 里统一写成 `https://www.` 的 host 口径是否冲突。
|
||
|
||
## 一、为什么这是一个重要修正
|
||
|
||
### 1. `SiteStyle::buildSeoMeta()` 不是当前视频模板最直接的 canonical 输出源
|
||
|
||
虽然代码里有:
|
||
|
||
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1831)
|
||
|
||
而且里面存在:
|
||
|
||
- `play` 页 canonical 推断
|
||
- `guessDetailUrlFromVideo()` 硬编码 `/voddetail/...`
|
||
|
||
但这次继续对模板后发现,`videoGpt1` 的视频模板实际是自己输出 canonical。
|
||
|
||
### 2. `videoGpt1` 详情页模板实际 canonical
|
||
|
||
文件:
|
||
|
||
- [getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||
|
||
当前实际写法:
|
||
|
||
```html
|
||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
||
```
|
||
|
||
这说明:
|
||
|
||
- 详情页 canonical 不是由 `SiteStyle::buildSeoMeta()` 直接输出
|
||
- 它走的是模板标签 `{site:vurl ...}`,也就是更贴近当前路由/URL 生成体系
|
||
|
||
### 3. `videoGpt1` 播放页模板实际 canonical
|
||
|
||
文件:
|
||
|
||
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||
|
||
当前实际写法:
|
||
|
||
```html
|
||
<link rel="canonical" href='https://{$DomainModel->d_domain}{$strPlayCanonicalUrl}'>
|
||
```
|
||
|
||
并且:
|
||
|
||
- `$strPlayCanonicalUrl` 来自 `VideoService::getVideoPlayUrl()`
|
||
- 不是回详情页
|
||
- 而是当前播放页自身 URL
|
||
|
||
这说明:
|
||
|
||
- 当前 `videoGpt1` 播放页 canonical 逻辑,与 `SiteStyle::buildSeoMeta()` 里“play canonical -> detail”的兜底设想并不一致
|
||
|
||
## 二、这会带来什么新的主线判断
|
||
|
||
### 1. 当前更大的风险,不是 `voddetail` 硬编码本身
|
||
|
||
对 `videoGpt1` 视频页来说,更值得优先核对的是:
|
||
|
||
- canonical host 到底是 `https://domain`
|
||
还是
|
||
- `https://www.domain`
|
||
|
||
因为当前模板里写的是:
|
||
|
||
- `https://{$DomainModel->d_domain}`
|
||
|
||
而 sitemap 生成逻辑里大量写的是:
|
||
|
||
- `https://www.{$DomainModel->d_domain}`
|
||
|
||
这两条线如果同时存在,就会直接制造:
|
||
|
||
- 首页 `/|301`
|
||
- 深页 host 规范化 `301`
|
||
|
||
### 2. 当前“模板 canonical”和“sitemap canonical host”口径明显可能不一致
|
||
|
||
模板侧:
|
||
|
||
- 详情页 canonical:`https://{$DomainModel->d_domain}...`
|
||
- 播放页 canonical:`https://{$DomainModel->d_domain}...`
|
||
- 首页 canonical:`https://{$DomainModel->d_domain}/`
|
||
|
||
可以参考:
|
||
|
||
- [index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||
- [getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||
|
||
sitemap 侧:
|
||
|
||
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||
|
||
都在大量拼:
|
||
|
||
- `https://www.{$DomainModel->d_domain}...`
|
||
|
||
这意味着:
|
||
|
||
- 如果站点真实最终规范 host 不是 `www`
|
||
- 那么 sitemap 就在持续喂给蜘蛛一批要再跳一次的 URL
|
||
|
||
## 三、对 `1275` 的执行顺序修正
|
||
|
||
### 第一优先级仍然不变
|
||
|
||
还是先看:
|
||
|
||
1. 深页兼容入口
|
||
2. canonical
|
||
3. sitemap host
|
||
|
||
### 但 canonical 这条线的落点要修正
|
||
|
||
主 Codex 在 `videoGpt1` 下应该优先看:
|
||
|
||
- 视频模板里真实输出的 canonical
|
||
|
||
而不是先把精力放在:
|
||
|
||
- `SiteStyle::buildSeoMeta()` 的 `voddetail` 兜底
|
||
|
||
因为从当前代码看,后者更像兜底工具,不像视频模板主输出源。
|
||
|
||
## 四、现在最可能优先改的 3 个点
|
||
|
||
### 1. 统一 canonical 和 sitemap 的 host 口径
|
||
|
||
这是当前最像“能直接减少 `/|301` 与 host 301”的点。
|
||
|
||
### 2. 核对播放页 canonical 是否应该保留在播放页自身
|
||
|
||
当前播放页模板 canonical 指向播放页自己,不是详情页。
|
||
|
||
这条线值得主 Codex 明确判断:
|
||
|
||
- 当前策略是不是故意的
|
||
- 是否符合当前 SEO 设计目标
|
||
- 是否会放大 `play|301` 或索引策略混乱
|
||
|
||
### 3. 继续压缩历史兼容入口
|
||
|
||
因为日志里仍然高频出现:
|
||
|
||
- `video-info`
|
||
- `video-play`
|
||
- `video-show`
|
||
- `vodbf`
|
||
|
||
## 五、给主 Codex 的一句话修正
|
||
|
||
> `videoGpt1` 当前最值得先查的 canonical 问题,不是 `SiteStyle` 里那段 `/voddetail` 兜底,而是模板实际输出的 `https://{$DomainModel->d_domain}` 和 sitemap 统一输出的 `https://www.{$DomainModel->d_domain}` 之间,是否正在持续制造 host 级 301。
|