310 lines
6.8 KiB
Markdown
310 lines
6.8 KiB
Markdown
# 1280-SEONexus 第一批可落地修正设计 - 2026-04-17
|
||
|
||
## 目的
|
||
|
||
这份文档用于把 `1278` 和 `1279` 的候选方案与评审建议,进一步压成主 Codex 可以直接进入实施评估的“第一批可落地修正设计”。
|
||
|
||
这份文档仍然不直接改代码,但已经具备:
|
||
|
||
- 改哪些文件
|
||
- 为什么先改这些
|
||
- 改动边界在哪里
|
||
- 怎么验证
|
||
|
||
## 这批设计的总原则
|
||
|
||
第一批只做“低副作用、高确定性、容易验证”的统一动作。
|
||
|
||
因此本批次只建议优先考虑:
|
||
|
||
1. 统一 host 输出口径
|
||
2. 暂不碰大规模兼容入口删除
|
||
3. 暂不碰 fallback 收紧
|
||
|
||
## 设计目标
|
||
|
||
### 主目标
|
||
|
||
压低以下两类损耗:
|
||
|
||
- 首页 `/|301`
|
||
- host 级 `301`
|
||
|
||
### 次目标
|
||
|
||
让以下输出口径至少先一致:
|
||
|
||
- 模板 canonical
|
||
- OG URL
|
||
- 结构化数据 URL
|
||
- sitemap
|
||
- RSS
|
||
|
||
## 第一批建议改动范围
|
||
|
||
### A. sitemap 与 RSS 的 host 统一
|
||
|
||
建议优先级:`最高`
|
||
|
||
### 涉及文件
|
||
|
||
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
|
||
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
|
||
|
||
### 当前问题
|
||
|
||
这几处目前存在明显双口径:
|
||
|
||
- sitemap 很多地方硬编码 `https://www.{$DomainModel->d_domain}`
|
||
- RSS 中也混有 `www.` 口径
|
||
- 模板 canonical 则统一偏向 `https://{$DomainModel->d_domain}`
|
||
|
||
### 建议改动边界
|
||
|
||
第一批不要引入复杂的新 host 策略中心。
|
||
|
||
先做最小收口:
|
||
|
||
- 让 sitemap 与 RSS 的 host 输出,先与当前模板 canonical 口径一致
|
||
|
||
也就是:
|
||
|
||
- 如果模板当前是 `https://{$DomainModel->d_domain}`
|
||
- 那么 sitemap / RSS 第一批也先统一成这一套
|
||
|
||
### 为什么先这样做
|
||
|
||
原因不是“裸域一定对”,而是:
|
||
|
||
- 当前模板和站内主输出已经大量使用裸域口径
|
||
- sitemap / RSS 仍输出 `www`
|
||
- 这两者冲突会稳定制造 host 级跳转
|
||
|
||
在未建立统一 host 策略中心前,先朝站内主输出对齐,是副作用更小的做法。
|
||
|
||
### 第一批不建议做的事
|
||
|
||
不建议在这一步同时:
|
||
|
||
- 动 Nginx host 跳转策略
|
||
- 动 `DomainModel` 的 host 配置语义
|
||
- 动所有历史模板
|
||
|
||
先把 `videoGpt1` 这条主线收口,再看日志反馈。
|
||
|
||
## B. 模板层 canonical / og:url / structured data host 统一复核
|
||
|
||
建议优先级:`高`
|
||
|
||
### 涉及文件
|
||
|
||
- [videoGpt1/index/index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||
- [videoGpt1/video/getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||
- [videoGpt1/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||
|
||
### 当前问题
|
||
|
||
这些文件虽然大方向一致,都偏向非 `www` host,但仍需要主 Codex 顺手复核:
|
||
|
||
- canonical
|
||
- `og:url`
|
||
- JSON-LD `url`
|
||
|
||
是否完全同口径。
|
||
|
||
### 建议改动边界
|
||
|
||
第一批不建议在模板层大改页面语义。
|
||
|
||
只做:
|
||
|
||
- host 统一
|
||
- URL 输出口径统一
|
||
|
||
不做:
|
||
|
||
- 大改 title/description
|
||
- 改动页面结构
|
||
- 改 robots 策略
|
||
|
||
## C. 播放页 canonical 策略先做“确认”,不急着改
|
||
|
||
建议优先级:`中`
|
||
|
||
### 涉及文件
|
||
|
||
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:137)
|
||
|
||
### 当前问题
|
||
|
||
当前播放页:
|
||
|
||
- `robots = noindex,follow`
|
||
- canonical 指向当前播放页自身
|
||
|
||
这是一个“策略问题”,不是明显 bug。
|
||
|
||
### 第一批建议
|
||
|
||
第一批不要急着改。
|
||
|
||
主 Codex 只需要先确认一件事:
|
||
|
||
- 当前产品/SEO 立场,到底是要播放页保留自身 canonical
|
||
还是
|
||
- 要回详情页
|
||
|
||
### 为什么不建议第一批就动
|
||
|
||
因为:
|
||
|
||
- 这条线会直接影响 `play|301` 的解读
|
||
- 也会影响播放页是否继续作为独立规范对象存在
|
||
|
||
它的风险比 host 统一更偏设计取舍,不适合当第一刀。
|
||
|
||
## D. 历史兼容入口先观察,不立即收缩
|
||
|
||
建议优先级:`中后`
|
||
|
||
### 涉及文件
|
||
|
||
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||
|
||
### 第一批建议
|
||
|
||
这一批只做“分组清单”和“命中频率对应”,不做实际删除。
|
||
|
||
可以先把入口分成三组:
|
||
|
||
1. 高频仍命中
|
||
2. 低频偶发命中
|
||
3. 近 24 小时几乎不命中
|
||
|
||
但第一批不建议直接动路由。
|
||
|
||
### 原因
|
||
|
||
如果现在就删,很容易把:
|
||
|
||
- `301 -> 200`
|
||
|
||
重新打回:
|
||
|
||
- `404`
|
||
|
||
## E. fallback 机制先保留
|
||
|
||
建议优先级:`后`
|
||
|
||
### 涉及文件
|
||
|
||
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||
|
||
### 第一批建议
|
||
|
||
先不改 fallback。
|
||
|
||
只做两件事:
|
||
|
||
1. 明确它当前的收益
|
||
2. 明确它潜在的语义风险
|
||
|
||
### 原因
|
||
|
||
当前 `404` 的下降,很可能部分就来自 fallback 在止血。
|
||
|
||
在 host / canonical 还没统一前,先动它会让日志重新变脏。
|
||
|
||
## 推荐实施顺序
|
||
|
||
### 第一刀
|
||
|
||
统一 host 口径:
|
||
|
||
- sitemap
|
||
- RSS
|
||
- 模板 canonical
|
||
- og:url
|
||
- JSON-LD url
|
||
|
||
### 第二刀
|
||
|
||
复看日志:
|
||
|
||
- `/|301` 是否下降
|
||
- `www` / 裸域混合抓取是否下降
|
||
- `yagyjt.com` / `ningxiaowei.com` 等站的 host 301 是否下降
|
||
|
||
### 第三刀
|
||
|
||
再决定是否推进:
|
||
|
||
- 播放页 canonical 策略调整
|
||
- 历史兼容入口收缩
|
||
|
||
## 建议的验证口径
|
||
|
||
### 1. 日志指标
|
||
|
||
优先看:
|
||
|
||
- `/|301`
|
||
- `home|301`
|
||
- `detail|301`
|
||
- `play|301`
|
||
- 同一 base domain 下 `www` / 裸域双命中是否下降
|
||
|
||
### 2. 页面级抽查
|
||
|
||
至少抽查:
|
||
|
||
- 首页
|
||
- 一级分类
|
||
- 二级分类
|
||
- 详情页
|
||
- 播放页
|
||
- `robots.txt`
|
||
- `sitemap_index.xml`
|
||
- RSS 输出
|
||
|
||
确认:
|
||
|
||
- canonical host 一致
|
||
- og:url host 一致
|
||
- JSON-LD URL 一致
|
||
- sitemap / RSS host 一致
|
||
|
||
### 3. 重点域名
|
||
|
||
建议第一轮继续盯:
|
||
|
||
- `yagyjt.com`
|
||
- `www.ningxiaowei.com`
|
||
- `sctyjz.com`
|
||
- `www.haotianhaiyuan.com`
|
||
- `ctshuhua.com`
|
||
|
||
## 本批次最重要的边界
|
||
|
||
### 不做的事
|
||
|
||
- 不大规模删历史兼容路由
|
||
- 不先收 fallback
|
||
- 不大改播放页 SEO 立场
|
||
- 不同时改 Nginx + PHP + 模板三层 host 策略
|
||
|
||
### 只做的事
|
||
|
||
- 先统一输出口径
|
||
- 先降低确定性的 host 级损耗
|
||
|
||
## 给主 Codex 的一句话
|
||
|
||
> 第一批最适合真正落地的,不是“重构 SEO 路由体系”,而是先做一次低副作用的输出口径统一,让模板、sitemap、RSS 在 host 维度不再互相打架,再用日志看收益。
|