229 lines
6.8 KiB
Markdown
229 lines
6.8 KiB
Markdown
# 1275-SEONexus 主 Codex 可执行检查清单 - 2026-04-17
|
||
|
||
## 目的
|
||
|
||
这份文档用于把 `1271` 到 `1274` 的分析,压缩成主 Codex 可以直接开干的检查清单。
|
||
|
||
目标不是重复分析结论,而是明确:
|
||
|
||
1. 先看哪几个文件
|
||
2. 每个文件要判断什么
|
||
3. 哪些问题优先级最高
|
||
|
||
## 当前建议的排查顺序
|
||
|
||
### 1. 先查深页兼容入口是否仍然过宽
|
||
|
||
优先级:`P0`
|
||
|
||
文件:
|
||
|
||
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||
|
||
重点看:
|
||
|
||
- `legacyCompatRoutes` 里注册了多少历史 `detail/play` 入口
|
||
- 哪些入口现在仍然在日志里高频出现
|
||
- 哪些入口只是历史遗留,但已经几乎没有真实命中
|
||
|
||
当前直接对应的高频路径:
|
||
|
||
- `/voddetail/...`
|
||
- `/vodplay/...`
|
||
- `/video-info/...`
|
||
- `/video-play/...`
|
||
- `/video-show/...`
|
||
- `/vodbf/...`
|
||
|
||
要回答的问题:
|
||
|
||
- 这些兼容入口是否都还必须保留
|
||
- 是否存在“先接住再跳一次”的非必要链路
|
||
- 是否可以把部分兼容入口进一步统一到更少的规范路径
|
||
|
||
判断标准:
|
||
|
||
- 如果某类旧入口仍然是百度高频命中来源,就不能贸然删
|
||
- 但如果它只是为了兼容而兼容,且跳转链过长,就应优先考虑压缩
|
||
|
||
## 2. 再查 canonical 是否仍然和当前 family 脱节
|
||
|
||
优先级:`P0`
|
||
|
||
文件:
|
||
|
||
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1803)
|
||
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1831)
|
||
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1868)
|
||
|
||
重点看:
|
||
|
||
- `detectPageType()` 目前只识别 `voddetail/*` 和 `vodplay/*`
|
||
- `guessDetailUrlFromVideo()` 仍硬编码回 `/voddetail/...`
|
||
- `buildSeoMeta()` 的 canonical 生成没有明显读取当前站点 family
|
||
|
||
要回答的问题:
|
||
|
||
- 当前模板 canonical 是否仍然默认指向 `voddetail`
|
||
- 如果某站主输出不是 `voddetail`,canonical 会不会和真实输出路径冲突
|
||
- `play` 页 canonical 回 `detail` 时,是否一定回到了正确 family 下的 detail URL
|
||
|
||
判断标准:
|
||
|
||
- 如果 canonical 指向的不是当前规范输出 URL,这就是高优先级修复点
|
||
- 这条线和 `yagyjt.com`、`www.ningxiaowei.com` 的深页 `301` 很可能直接相关
|
||
|
||
## 3. 再查 sitemap 是否持续硬编码 `https://www.`
|
||
|
||
优先级:`P0`
|
||
|
||
文件:
|
||
|
||
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:196)
|
||
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:157)
|
||
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:177)
|
||
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:193)
|
||
|
||
重点看:
|
||
|
||
- 视频 sitemap 虽然已经开始读 `url_family['detail']['pattern']`
|
||
- 但最终 host 仍然是 `https://www.` + domain
|
||
- 小说 sitemap / 分类 / 章节相关输出同样大量直接拼 `https://www.`
|
||
|
||
要回答的问题:
|
||
|
||
- 当前真实规范 host 到底是不是 `www`
|
||
- 如果不是,sitemap 是否正在持续制造 `/|301` 和 host 规范化跳转
|
||
- sitemap 与 canonical、站内链接是否在同一 host 口径下
|
||
|
||
判断标准:
|
||
|
||
- 只要 sitemap 输出 host 和真实规范 host 不一致,这就是首页与深页 `301` 的高风险来源
|
||
|
||
## 4. 评估 fallback 机制是在“止血”还是在“制造语义偏差”
|
||
|
||
优先级:`P1`
|
||
|
||
文件:
|
||
|
||
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:821)
|
||
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:1021)
|
||
|
||
重点看:
|
||
|
||
- `getVideoByVId()` 查不到时会进入 `resolveFallbackVideoByRequest()`
|
||
- fallback 会写入 host 维度的本地绑定文件
|
||
- 可能把旧 `v_id` 回落到随机或排序兜底视频
|
||
|
||
要回答的问题:
|
||
|
||
- 这条链当前到底拯救了多少原本会 404 的深链
|
||
- 回落后的页面内容是否和原始 URL 语义足够接近
|
||
- 是否需要限制 fallback 的适用范围,例如只对某些入口生效
|
||
|
||
判断标准:
|
||
|
||
- 如果 fallback 只是减少硬 404,它有价值
|
||
- 但如果它让错误 deep link 长期稳定落到无关视频,这会引入新的 SEO 误导风险
|
||
|
||
## 5. `444` 不优先在 PHP 里深挖,先确认前置层
|
||
|
||
优先级:`P1`
|
||
|
||
文件:
|
||
|
||
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:560)
|
||
|
||
当前已知判断:
|
||
|
||
- 应用层主动拦截主要抛的是 `404`
|
||
- `isSpider()` 已对白名单蜘蛛放行
|
||
- 当前仓库里没有明显应用层 `444` 返回逻辑
|
||
|
||
要回答的问题:
|
||
|
||
- `444` 是否来自 nginx / waf / 路径探测拦截
|
||
- 当前 `444` 是否已经波及:
|
||
- `/`
|
||
- `robots.txt`
|
||
- `sitemap*.xml`
|
||
- `detail`
|
||
- `play`
|
||
|
||
判断标准:
|
||
|
||
- 如果 `444` 只集中在 `.rar/.zip/.txt/zb_system` 这类路径,先视为安全噪音
|
||
- 如果开始进入首页、sitemap、深页主路径,再提升为 `P0`
|
||
|
||
## 当前最值得优先验证的 5 个判断
|
||
|
||
### 1. `yagyjt.com` 的深页 `301` 是否主要来自 canonical / family 不一致
|
||
|
||
因为:
|
||
|
||
- 它已经是明确深抓正样本
|
||
- 但 `detail|301` / `play|301` 仍接近 `200`
|
||
|
||
### 2. `www.ningxiaowei.com` 的 `video-info / video-play` 是否只是兼容入口过多
|
||
|
||
因为:
|
||
|
||
- 这批路径仍然高频出现
|
||
- 很适合作为“内容层兼容是否还能继续收口”的观察站
|
||
|
||
### 3. sitemap 输出 host 是否和真实规范 host 一致
|
||
|
||
因为:
|
||
|
||
- 这条线会同时影响首页 `/|301`
|
||
- 也会影响深页入口持续规范化跳转
|
||
|
||
### 4. fallback 绑定文件是否正在稳定扩大“错误 deep link -> 可访问页面”的覆盖
|
||
|
||
因为:
|
||
|
||
- 这可能解释 `404` 的大幅下降
|
||
- 同时也可能埋下语义偏差风险
|
||
|
||
### 5. `444` 是否已经误伤真实搜索蜘蛛主路径
|
||
|
||
因为:
|
||
|
||
- 目前看更像前置层安全噪音
|
||
- 但这个结论需要持续观察,不应直接定死
|
||
|
||
## 建议的执行节奏
|
||
|
||
### 第一轮
|
||
|
||
- 只读检查 `router.php`
|
||
- 只读检查 `SiteStyle.php`
|
||
- 只读检查 `VideoSiteMapLogic.php` / `SiteMapLogic.php`
|
||
|
||
目标:
|
||
|
||
- 先确认深页主输出、兼容入口、canonical、sitemap host 是否在同一规范口径
|
||
|
||
### 第二轮
|
||
|
||
- 再看 `VideoService` fallback
|
||
|
||
目标:
|
||
|
||
- 判断 `404` 的下降里有多少是“真实修复”
|
||
- 有多少是“应用层兜底”
|
||
|
||
### 第三轮
|
||
|
||
- 再去联动前置层查 `444`
|
||
|
||
目标:
|
||
|
||
- 确认 `444` 是安全噪音,还是已经开始误伤 SEO 主路径
|
||
|
||
## 给主 Codex 的一句话
|
||
|
||
> 如果只能先看 3 个地方,就先看 `router.php` 的历史深页兼容、`SiteStyle.php` 的 canonical 构建、以及 `VideoSiteMapLogic/SiteMapLogic` 的 `https://www.` host 拼接;这三条线最有可能直接对应当前仍未收口的深页 `301` 和首页 `/|301`。
|