Files
SEONexus/docs/old-tmp-seo/07-主Codex检查清单补充修正-2026-04-17.md
2026-04-17 21:09:06 +08:00

173 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。