老模板优化

This commit is contained in:
Your Name
2026-04-17 21:09:06 +08:00
parent 4dc78e3366
commit c8fb6956ef
60 changed files with 9113 additions and 146 deletions

View File

@@ -0,0 +1,562 @@
# 1269-SEONexus 老模板第一阶段回灌执行文档
## 关联文档
- 协作与交接总规则:
[1270-SEONexus-Codex多版本协作交接总文档](/www/wwwroot/diff-maccms/docs/1270-SEONexus-Codex多版本协作交接总文档.md)
## 目标
这份文档只覆盖老模板的第一阶段回灌,原则是:
- 不改老模板大骨架
- 不依赖后台逐站编辑
- 先统一抓取入口、观测链、规范输出
- 先看蜘蛛访问和抓取变化
适用前提:
- 老模板共 5 套
- 域名会随机绑定其中一套模板
- 当前不准备把 `videoGpt1` 的整套结构层直接迁过去
---
## 为什么第一阶段要“直接改代码”
当前站点运行时链路是:
1. `DomainModel.t_id`
决定域名使用哪套视图模板
2. `SiteContext`
根据 `t_id` 读取模板路径
3. 模板本身再结合站点自己的 `t_cfg / d_seo_cfg` 输出页面
这意味着:
- 同一套老模板代码,被多个域名共用
- 第一阶段如果只是统一抓取入口、sitemap、canonical、观测能力
- 最稳的方式就是直接改这套老模板代码本身
不建议第一阶段依赖后台逐站编辑,因为后台编辑会触碰:
- `t_id`
- `t_cfg`
- `d_seo_cfg`
这些字段都可能改变老模板站点当前行为。
---
## 第一阶段要做什么
只做以下 4 层:
1. 抓取入口层
2. 输出规范层
3. 观测层
4. 静态资源发布层
明确先不做:
- 首页结构重排
- 列表卡片重构
- 评论区整体换骨架
- 深页整体布局替换
- 逐站后台批量套 SEO 策略包
---
## 第一步:选 1 套老模板做试点
不要 5 套一起动。
优先选择这类模板:
- 结构相对规整
- 已有基础抓取,但还没形成明显深抓
- 线上有一定流量,但不是最核心起量模板
- `robots / sitemap / canonical / footer` 这些基础层容易统一
暂时不要选:
- 起量最高的模板
- 历史补丁最多的模板
- 路径规则最杂的模板
---
## 第二步:先统一抓取入口层
### 2.1 统一 `robots.txt`
要求:
- 老模板必须稳定输出 `robots.txt`
- `robots.txt` 里必须声明百度 sitemap
- 百度不能被引到无效入口
建议统一成:
- `Sitemap: https://当前域名/rss/baidu.xml`
检查项:
- `robots.txt` 是否返回 `200`
- 内容里是否已有 `Sitemap:` 声明
- 是否仍然指向旧的死入口
### 2.2 统一 `rss/baidu.xml`
要求:
- 老模板必须稳定输出百度可用的 XML
- 优先输出详情页入口
- 链接协议统一 `https://`
检查项:
- `rss/baidu.xml` 是否返回 `200`
- 是否有真实 `<item><link>...` 内容
- 链接是否已经是最终规范地址
### 2.3 给 `sitemap_index.xml` 做兜底
老模板如果历史上已有:
- `/sitemap_index.xml`
不要直接让它继续 `404`
建议:
- 如果旧入口仍有历史外链或蜘蛛命中
- 让它兜底回落到当前实际可用的 sitemap 输出
目的:
- 减少历史路径继续浪费抓取机会
---
## 第三步:统一输出规范层
### 3.1 统一 canonical
检查项:
- 首页 canonical
- 分类页 canonical
- 详情页 canonical
- 播放页 canonical
目标:
- 都指向最终规范地址
- 尽量统一 `https://`
### 3.2 统一主要链接协议
重点看:
- sitemap 输出
- 页面 head 里的 canonical / og:url
- 页面内主要入口链接
目标:
- 减少 `http -> https` 跳转消耗
- 让百度尽量直接拿到最终 URL
### 3.3 统一 footer / sitemap 暴露入口
检查项:
- footer 里是否有百度 sitemap 或 XML 地图入口
- 是否还暴露旧死入口
目标:
- 对外暴露路径统一
- 不再继续给蜘蛛错误入口
---
## 第四步:接入观测层
这一步和模板结构解耦,但必须同步做。
要求:
- 前端站群 Nginx 已输出蜘蛛日志
- `spiderlog-agent` 已在前端机定时推送
- 后台蜘蛛抓取概览能观察到该模板站点的百度行为
重点只看:
- `baiduspider`
- `home`
- `robots`
- `sitemap`
- `category`
- `detail`
- `play`
第一阶段的观测目标不是“马上深抓”,而是先确认:
1. 百度是否稳定进入首页
2. 是否开始命中 `robots`
3. 是否开始命中 `sitemap`
4. 是否开始出现 `category`
---
## 第五步:统一静态资源发布层
老模板第一阶段也建议统一吃当前这套:
- 自动重编
- `STATIC_FILE_VERSION` 强制刷新兜底
使用原则:
- 平时样式/脚本变更依赖自动重编
- 只有前端站群 / CDN / 浏览器仍命中旧静态文件时,再手动提高 `STATIC_FILE_VERSION`
---
## 阶段观察记录
### 2026-04-15 蜘蛛抓取观察结论
本轮重点观察的是:
- 深页兼容修复
- 前端站群统一动态回源
- `rss/baidu.xml` 深链恢复
观察口径:
- 只看 `baiduspider`
- 重点只看:
- `home`
- `category`
- `detail`
- `play`
#### 结论
当前可以确认:
1. 修复方向是对的
2. 已出现真实成功样本
3. 但还没有扩大成全站稳定放量
也就是:
- 不是“修了没效果”
- 而是“已经开始出现正反馈,但还在观察窗口”
#### 关键成功样本
### 2026-04-16 深页残余 500 修复结论
本轮新增确认的不是入口层问题,而是深页随机兜底分支里的实现问题。
#### 新发现的问题
以下残余深页在外网直测时会返回 `500`
- `jingxifa.com /video-detail/mo-ri-yi-jia-qin-172009`
- `sjzyunyang.com /video-detail/a-te-yu-pei-pei-185677`
错误页正文一致,核心报错为:
- `the match filter must be an expression in an object`
#### 根因
问题位于:
- [VideoService.php](/www/wwwroot/diff-maccms/SEONexus/code/app/services/VideoService.php)
当原始 `v_id` 查不到真实视频时,系统会进入随机兜底逻辑:
1. 先尝试读取随机绑定
2. 未命中时走 Mongo `aggregate + sample`
3. 旧实现会在无筛选条件时传入:
- `['$match' => []]`
4. 该写法会触发 Mongo 聚合报错,从而把原来的 `301 -> 404` 残余坏链升级成:
- `301 -> 500`
#### 已做修复
当前已调整为:
- 只有在存在筛选条件时才注入 `$match`
- 无筛选条件时直接走 `$sample`
也就是:
- 不再把空数组作为 `$match` 表达式传给 Mongo
#### 修复后回测结果
以下链接已重新回测为 `200`
- `https://jingxifa.com/video-detail/mo-ri-yi-jia-qin-172009`
- `https://sjzyunyang.com/video-detail/a-te-yu-pei-pei-185677`
- `https://www.lgyz.net/voddetail/mo-shi-chao-neng-li-zhe-dong-tai-man-hua-69869`
- `https://www.lgyz.net/vodplay/bi-she-tang-yuan-bi-yi-zheng-fu-jin-di-yi-ji-53027-youzhi-8`
- `https://www.lgyz.net/voddetail/69869`
- `https://www.lgyz.net/vodplay/53027-youzhi-8`
并且本地兜底探针日志已出现真实命中:
- `requested_v_id = 172009 -> candidate_v_id = 119106`
- `requested_v_id = 185677 -> candidate_v_id = 50302`
这说明:
- 随机兜底逻辑已经真正执行成功
- 不再停在 Mongo 异常层
- 深页残余坏链继续从 `500``200` 收敛
#### 当前阶段判断
截至 `2026-04-16` 当前窗口,可以把这轮优化效果概括为:
1. 深页兼容入口已生效
2. 多站点已出现 `301 -> 200`
3. 随机兜底分支残余 `500` 主因已修掉
4. `www.lgyz.net` 这类此前仍偏弱的站点,当前外网回测也已恢复到 `200`
后续继续重点观察:
- `baiduspider` 是否重新放量回打 `detail / play`
- 新命中的深页是否继续保持 `200`
- 是否还会出现新的局部 `500` 或数据异常型落点
#### 2026-04-16 14:00 最新补充观察
截至当前最新一轮:
- `2026-04-16 14:00:02`
还没有出现更晚的抓取汇总文件。
这一轮里,最重要的新样本是:
- `sjzyunyang.com /video-bofang/zhe-zhi-172193-default-1`
- `page_type = play`
- 状态链为:
- `301`
- `200 (MISS)`
- `200 (HIT)`
这说明:
1. 百度在今天这轮里仍然继续命中新 `play` 深页
2. 系统不仅能把它接住,而且第一次已经真实回源生成成功
3. 后续立刻进入缓存命中,说明链路已经不是偶发通过
当前可以把这条样本理解为:
- 不是旧坏链修复后的被动回测
- 而是今天新命中的播放页也已经开始成功落地
因此,截至当前窗口,对这轮优化更准确的判断是:
- 深页兼容层有效
- 随机兜底层有效
- 新命中的 `play` 深页也开始持续出现 `301 -> 200`
##### `jingxifa.com`
`2026-04-15 17:40:03` 这一轮,百度命中:
- `/video-bofang/hao-bu-liu-qing-185887-default-1`
结果出现:
- `301 -> 200`
这说明:
- `play` 深页历史兼容开始生效
- 不再只表现为 `301 -> 404`
##### `www.vikau.com`
`2026-04-15 18:40:02` 这一轮,百度命中:
- `/voddetail/ma-xiang-lou-zhi-zao-meng-xian-sheng-47065`
结果出现:
- `301 -> 200`
这说明:
- `detail` 深页兼容也开始出现正向落地样本
#### 仍需继续观察的站点
以下站点在本轮观察窗口内,仍主要看到失败样本:
1. `www.lgyz.net`
2. `sjzyunyang.com`
3. `www.codohealth.com`
4. `gxhongzhuang.com`
这些站点的问题表现仍以:
- `301 -> 404`
为主,但失败样本主要集中在修复后的早期窗口,后续还需继续观察是否会像 `jingxifa.com` 一样转为成功样本。
#### 当前阶段判断
当前应将本轮结果理解为:
- 深页兼容修复已开始起效
- 但百度还没有重新形成稳定深抓
因此下一阶段的重点不是立即继续大改,而是:
1. 继续观察百度是否重新命中更多 `detail/play`
2. 继续记录哪些站从 `301 -> 404` 转成 `301 -> 200`
3. 将还未转正的域名继续列为重点观察对象
#### 观察建议
下一轮继续观察时,优先盯:
1. `jingxifa.com`
2. `www.vikau.com`
3. `www.lgyz.net`
4. `sjzyunyang.com`
目的:
- 确认成功样本是否持续出现
- 确认失败样本是否继续减少
这样第一阶段如果需要修老模板样式,不会卡在缓存上。
---
## 第六步:明确哪些不要碰
第一阶段明确不碰这些:
### 6.1 不要用后台逐站编辑改模板绑定
避免碰:
- `t_id`
- `t_cfg`
原因:
- `t_id` 会直接决定该站用哪套视图模板
- `t_cfg` 会影响该站冻结模板配置和 URL 模板映射
### 6.2 不要先批量套 `d_seo_cfg`
原因:
- 第一阶段先做基础设施层
- 不要让老模板先承受太多 SEO 输出行为变化
### 6.3 不要先改结构层
包括:
- 首页模块结构
- 列表卡片结构
- 评论区整体结构
- 全站导航结构
---
## 第七步:验收标准
第一阶段不看“感觉”,只看这 4 组信号。
### 7.1 百度入口命中
后台重点看:
- `home`
- `robots`
- `sitemap`
### 7.2 百度入口状态码
希望看到:
- `200`
尽量减少:
- `301`
- `404`
- `444`
### 7.3 是否开始出现 `category`
这是第一阶段最关键的推进信号。
如果 `category` 开始出现,说明:
- 百度已经不只是停在首页和入口层
### 7.4 静态资源是否可控
验证:
- 改样式能自动重编生效
- 必要时提升 `STATIC_FILE_VERSION` 能强制刷新
---
## 第八步:建议观察周期
试点模板完成第一阶段后,建议观察:
- `3-5` 天抓取变化
- `7` 天收录信号变化
如果信号对,再复制到其余老模板。
如果这一步还没看到明显入口改善,不要急着推进第二阶段内容增强。
---
## 第一阶段完成后的下一步
只有在第一阶段稳定后,才建议进入第二阶段:
- 详情页事实池轻接入
- 描述增强
- 播放页导语增强
- FAQ / 评论导语轻增强
第二阶段仍然建议:
- 先 1 套模板试点
- 不 5 套一起上
---
## 一句话版本
老模板第一阶段不是“升级成 gpt 模板”,而是:
- 先统一抓取入口
- 先统一输出规范
- 先统一观测能力
- 先统一静态资源发布能力
先把底座拉齐,再看第二阶段内容增强。

View File

@@ -0,0 +1,400 @@
# 1271-SEONexus 老模板蜘蛛日志观察交接文档 - 2026-04-16
## 目的
这份文档用于把本轮老模板蜘蛛日志观察结果,正式交接给主 Codex。
本轮遵循:
- `01-老模板第一阶段回灌执行文档.md`
- `1270-SEONexus-Codex多版本协作交接总文档.md`
因此本轮定位不是“旧版本自由发挥改一套实现”,而是:
- 先观察
- 先归纳
- 先分型
- 给主 Codex 提供下一步 SEO 优先方向
## 数据范围
- 项目:`SEONexus`
- 数据来源:`code/storage/domain-spider-crawl/runs/*/*/crawl-logs.summary.json`
- 观察对象:`baiduspider`
- 时间窗口:最近 24 小时
- 观察日期:`2026-04-16`
## 本轮总判断
当前百度蜘蛛的状态已经比较清楚:
1. 百度不是没来,首页抓取已经普遍存在
2. 深抓不是完全没有,已经有明确正样本
3. 当前主要问题不是“入口完全断掉”
4. 当前主要问题是 `301/404` 损耗过高
5. `category` 仍然弱,说明首页到中继层再到深页的稳定扩散还没普遍形成
一句话总结:
> 当前老模板第一阶段已经证明百度可以稳定进入首页,且部分站点已经出现真实深抓,但整体抓取预算仍在被首页规范化、深页跳转和历史错误入口大量消耗。
## 24 小时总览
### 页面类型计数
- `home`: `509`
- `other`: `266`
- `detail`: `119`
- `play`: `51`
- `category`: `2`
### 状态码计数
- `200`: `532`
- `301`: `231`
- `404`: `183`
- `444`: `1`
## 当前最重要的统一信号
### 1. 首页已成为百度主入口
`home` 是当前最主要页面类型,说明首页入口已经建立。
### 2. 深抓已经出现,但还没有大面积扩散
`detail``play` 已经不是零,说明深抓链路不是完全断的。
### 3. 最大损耗是 `301` 和 `404`
当前最值得优先处理的,不是继续争论“百度有没有来”,而是:
- 首页是否直达
- 深页是否带多余跳转
- 历史错误入口是否继续吞预算
### 4. `category` 仍然偏弱
最近 24 小时只有:
- `category|200 = 2`
说明首页到分类的中继层仍弱,深抓扩散还没进入更稳的阶段。
## 当前高频异常路径
本轮最明显的异常路径包括:
- `/|301`
- `/zb_system/login.php|301`
- `/zb_system/login.php|404`
- `/admin.php|301`
- 多个 `/voddetail/...|301`
- 多个 `/vodplay/...|301`
- 多个 `/video-info/...|301`
- 多个 `/video-play/...|301`
- 多个 `/video-show/...|301`
- `/showchengshi.asp?...|404`
- 一批 `/index.php/...shtml|404`
- 一批 `webuploader / upload / fileupload / preview``404`
对应判断:
1. 首页规范化还没完全收口
2. 深页历史路径兼容仍然有明显跳转损耗
3. 后台和旧脚本路径还在抢抓取预算
## 站点分型
### A 组:深抓正样本,优先保放量
#### `yagyjt.com`
核心统计:
- `detail|200`: `59`
- `detail|301`: `60`
- `play|200`: `25`
- `play|301`: `22`
- `home|200`: `18`
- `home|301`: `6`
结论:
- 百度已经真实进入详情页和播放页
- 当前主问题不是“能不能深抓”
- 当前主问题是“深页 301 太多,正在吃掉已出现的深抓放量”
主 Codex 建议:
- 优先减少 `detail|301`
- 优先减少 `play|301`
- 顺带继续压首页 `/|301`
- 继续观察 `/zb_system/login.php` 这类噪音入口
#### `junhaolab.com`
核心统计:
- `play|200`: `2`
- `play|301`: `2`
结论:
- 这是弱深抓样本
- 量小,但说明百度已经碰到播放页
主 Codex 建议:
- 作为次级深抓观察对象
- 重点看播放页跳转能否收敛
### B 组:错误入口高消耗样本,先清噪音
#### `qf123.net`
核心统计:
- `other|404`: `169`
- `home|200`: `1`
典型异常:
- `/js/webuploader/demo/server/upload.php|404`
- `/js/webuploader/demo/server/uploadfile.php|404`
- `/lib/webuploader-0.1.15/server/file.php|404`
- `/libs/webuploader/0.1.15/server/fileupload.php|404`
结论:
- 当前不是深抓问题
- 当前是错误入口纯消耗问题
主 Codex 建议:
- 先把这类历史上传组件和旧脚本路径的噪音收敛
- 在错误入口没下降前,不要把它当深抓效果站
#### `sctyjz.com`
核心统计:
- `home|200`: `12`
- `home|301`: `6`
- `other|404`: `8`
典型异常:
- `/|301`
- `/index.php/heixj/haoxj/haoxj/...shtml|404`
结论:
- 首页已开
- 但首页跳转和历史伪静态错误入口并存
主 Codex 建议:
- 先压首页 `/|301`
- 再处理 `/index.php/...shtml` 类旧路径噪音
#### `www.ap-hulan.com`
核心统计:
- `home|200`: `12`
- `home|301`: `6`
- `other|301`: `4`
典型异常:
- `/|301`
- `/admin.php|301`
结论:
- 首页已可抓
- 后台路径仍在分散预算
主 Codex 建议:
- 先压首页 `301`
- 再压 `/admin.php` 这类旧后台入口
### C 组:首页已起量,但 host 和内容路径仍在吃跳转预算
#### `www.ningxiaowei.com`
核心统计:
- `home|200`: `66`
- `home|301`: `5`
- `other|200`: `20`
- `other|301`: `18`
典型异常:
- `/|301`
- `/video-info/...|301`
- `/video-play/...|301`
#### `ningxiaowei.com`
核心统计:
- `home|200`: `13`
- `home|301`: `6`
- `other|200`: `10`
- `other|301`: `10`
结论:
- 首页已经起来
- 裸域和 `www` 都在消耗预算
- 内容层历史路径也还在持续跳转
主 Codex 建议:
- 优先收 host 规范
- 再压首页 `/|301`
- 再看 `video-info / video-play` 的兼容是否能进一步减损
### D 组:首页稳定样本,适合观察规范收口后是否自然扩深
#### `www.haotianhaiyuan.com` / `haotianhaiyuan.com`
核心统计:
- `www.haotianhaiyuan.com`: `home|200 = 44``home|301 = 9`
- `haotianhaiyuan.com`: `home|200 = 29``home|301 = 2``other|404 = 2`
典型异常:
- `/|301`
- `/showchengshi.asp?...|404`
#### `hymdrz.com` / `www.hymdrz.com`
核心统计:
- `hymdrz.com`: `home|200 = 37``home|301 = 2`
- `www.hymdrz.com`: `home|200 = 12``home|301 = 6`
结论:
- 首页抓取已经很稳
- 当前主要损耗仍是首页规范化和少量 host 分裂
- 不是高噪音站,也还不是深抓放量站
主 Codex 建议:
- 把它们作为“首页规范收口样本”
- 观察首页直达后是否自然向分类页和深页扩散
#### 首页稳定观察池
代表站点:
- `www.hygfbw.com`
- `www.shxmbz.com`
- `www.tvwallmountreview.com`
- `yaleyishu.com`
- `yqshu8.com`
- `yahuawang88.com`
- `www.syzhzs.com`
- `syzhzs.com`
共同模式:
- `home|200` 已有
- `home|301` 仍在
- 高频异常多为 `/|301`
补充信号:
- `syzhzs.com` 已出现 `category|200 = 2`
结论:
- 这批站适合作为“首页已稳、等待分类和深页自然扩散”的观察池
## 给主 Codex 的动作优先级
### 1. 首页直达化
当前最统一、最广泛的问题仍是:
- `/|301`
主线优化应优先检查:
- `http -> https`
- `www -> 非 www` 或反向规范
- 首页最终规范地址是否在配置、模板、链接输出中一致
### 2. 深页减损
`yagyjt.com` 这类已验证深抓的站点,优先目标不是“发明新入口”,而是:
- 降低 `detail|301`
- 降低 `play|301`
### 3. 错误入口降噪
`qf123.net``sctyjz.com` 这类站点,当前更应该先处理:
- 旧后台
- 旧上传组件
- 旧伪静态路径
### 4. host 规范收敛
当前多个站点都存在:
- 裸域和 `www` 同时被抓
- 两边都出现 `home|200``home|301`
主线优化要继续盯:
- canonical
- sitemap
- 站内链接输出
- 首页最终规范 host
### 5. 分类层继续观察
当前 `category|200` 仍然很弱,因此分类层不是这一轮最主要的问题,但需要继续监测。
## 建议的主线推进顺序
如果主 Codex 要从日志观察进入实现验证,更合理的顺序是:
1. 先压首页层 `301`
2. 再压深页层 `301`
3. 再清高频错误入口 `404`
4. 再观察 `category -> detail -> play` 是否自然扩散
不建议的顺序是:
- 还没把入口损耗压下去,就先大改深抓结构
## 本轮本地分析材料
本轮观察细节已沉淀在以下本地分析文档:
- `code/storage/_analysis/sources/baiduspider.md`
- `code/storage/_analysis/sources/baiduspider-priority-2026-04-16.md`
- `code/storage/_analysis/sources/baiduspider-action-checklist-2026-04-16.md`
- `code/storage/_analysis/domains/yagyjt.com.md`
- `code/storage/_analysis/domains/qf123.net.md`
- `code/storage/_analysis/domains/ningxiaowei-hosts.md`
- `code/storage/_analysis/domains/sctyjz.com.md`
- `code/storage/_analysis/domains/ap-hulan.com.md`
- `code/storage/_analysis/domains/haotianhaiyuan-hymdrz-hosts.md`
- `code/storage/_analysis/domains/home-stable-cluster.md`
## 交接结论
本轮可以正式交给主 Codex 的核心结论只有一句:
> 现在最值得做的不是继续证明蜘蛛有没有来,而是先系统性降低首页、深页和历史错误入口造成的 `301/404` 抓取预算损耗。

View File

@@ -0,0 +1,326 @@
# 1272-SEONexus 老模板蜘蛛日志与代码映射交接文档 - 2026-04-16
## 目的
这份文档是在 `1271` 的基础上继续往前走一步:
- 不再只停留在日志现象
- 而是把当前蜘蛛日志现象,映射到项目里最可能对应的代码位置
这样主 Codex 接手时,可以直接从关键入口开始排查,而不是重新全仓翻一遍。
## 和前置文档的关系
- `1269`:定义第一阶段目标
- `1270`:定义协作边界
- `1271`:沉淀蜘蛛日志观察结论
- `1272`:把观察结论映射到代码入口
## 当前最关键的代码位置
### 1. 路由层
主要文件:
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php)
关键点:
- `robots``sitemap``rss``sitemap_index``sitemap-main``sitemap-videos-*` 都在这里注册
- `videoGpt1` 分支里额外注册了大量历史详情页/播放页兼容路由
- 这些兼容路由正好和日志里高频出现的旧路径高度一致
直接对应的日志现象:
- `/voddetail/...|301`
- `/vodplay/...|301`
- `/video-info/...|301`
- `/video-play/...|301`
- `/video-show/...|301`
- `/shipin/...|301`
结论:
> 这批深页历史入口并不是“无路由直接 404”而是已经被路由层接住了。日志里大量 `301 -> 200` 的前提条件之一,就是这里的兼容路由在工作。
### 2. URL 规范输出层
主要文件:
- [UrlBuilder.php](/www/wwwroot/VideoSource2/code/app/common/helper/UrlBuilder.php)
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php)
关键点:
- `UrlBuilder::detail()` 默认走 `voddetail/{strPinyin}-{intVId}`
- `UrlBuilder::play()` 默认走 `vodplay/{strPinyin}-{intVId}-{strPlayType}-{intPlayIndex}`
- `VideoService::getVideoInfoUrl()` / `getVideoPlayUrl()``videoGpt1` 下优先走 `UrlBuilder`
直接对应的日志现象:
- 当前仍有大量 `voddetail` / `vodplay` 命中
- 同时又能看到 `video-info` / `video-play` / `video-show` 命中
结论:
> 当前项目里“规范输出路径”和“兼容接入路径”是两层结构。`UrlBuilder` 更像主输出,`router.php` 里的兼容列表负责兜住历史入口。
## 和首页 `/|301` 最相关的代码点
### 1. DomainModel 的 host 归一口径
主要文件:
- [DomainModel.php](/www/wwwroot/VideoSource2/code/app/model/DomainModel.php)
关键点:
- 存在 `canonical_mode`
- 存在 `play_index_mode`
- 多处会对 host 做 `preg_replace('/^www\\./', '', ...)`
这说明:
- 系统里已经有“规范 host / canonical 策略”的概念
- 但从日志看,裸域和 `www` 仍然同时被抓,说明这套策略没有完全在前台最终输出和真实访问上闭环
### 2. SiteContext 的域名识别口径
主要文件:
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php)
关键点:
- `getTemplate()` 用的是 `Request->rootDomain()`
- 然后用 root domain 去取 `DomainModel`
对应判断:
- 这有利于让 `www.xxx.com``xxx.com` 落到同一个站点配置
- 但这本身不会自动消除首页 `301`
- 它更多解决的是“能不能识别到站点”,不是“是否直达最终规范 host”
结论:
> 日志里大量 `/|301` 更可能是前台实际访问入口、host 规范和模板/链接输出之间还没有完全统一,而不只是域名识别不到。
## 和深页 `301` 最相关的代码点
### 1. 兼容路由列表
主要文件:
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:166)
这里显式注册了大量历史深页入口,包括:
- `voddetail`
- `vodinfo`
- `vod`
- `video-info`
- `video-detail`
- `video`
- `shipin`
- `vodplay`
- `video-play`
- `video-show`
- `shipin-play`
- `shipin-bofang`
这和日志完全对上了。
结论:
> 现在看到的大量深页 `301`,很可能正是“旧入口先接住,再跳到当前 family 主输出 URL”的结果。
### 2. VideoService 的主输出链接
主要文件:
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:80)
关键点:
- 详情页和播放页主输出都优先走 `UrlBuilder`
- 如果站点 family 不是历史路径样式,那么历史外链进来后出现一次 `301` 是符合当前结构的
这也解释了为什么:
- `yagyjt.com` 已经能深抓
-`detail|301` / `play|301` 仍然很高
结论:
> 代码结构上,深页 301 并不奇怪;真正值得主 Codex 继续排的是:哪些 `301` 是必要兼容,哪些 `301` 已经可以进一步压缩。
## 和 canonical / robots 最相关的代码点
### 1. SiteStyle 的 SEO meta 构建
主要文件:
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1800)
关键点:
- `detectPageType()` 目前只明确识别:
- `home`
- `voddetail/*` -> `detail`
- `vodplay/*` -> `play`
- `search`
- 部分 `rank`
- 部分 `category`
- `buildSeoMeta()` 里:
- detail 默认 `index,follow`
- play 默认 `noindex,follow`
- play canonical 会回指 detail
### 2. 当前存在的明显风险
`guessDetailUrlFromVideo()` 目前是硬编码回:
- `/voddetail/{slug}-{id}`
-`/voddetail/{id}`
这意味着:
- 如果站点当前主 family 并不以 `voddetail` 作为规范详情路径
- 或者主输出已经切到别的 detail pattern
- 那么模板 canonical 就可能和当前主输出路径不完全一致
这是当前最值得主 Codex 重点核对的一点。
### 3. DomainModel 配置和模板输出暂未明显打通
虽然 `DomainModel` 已有:
- `canonical_mode`
- `play_index_mode`
但从当前代码检索结果看:
- 这些配置主要存在于模型默认值、标准化、bootstrap 汇总
- 前台模板 meta 生成仍主要靠 `SiteStyle::buildSeoMeta()`
-`SiteStyle::buildSeoMeta()` 没有明显读取 `DomainModel` 的这两个配置
结论:
> 现在“配置层有 canonical/play_index 策略”和“前台模板真实输出什么 canonical/robots”之间存在未完全打通的风险。
## 和 sitemap 最相关的代码点
### 1. 前台 sitemap 读取
主要文件:
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:505)
关键点:
- `getSiteMapByCode()` 只是按约定文件名读取 `storage/SiteMap/{domain}/...`
- 如果文件不存在,直接返回 `404`
这说明:
- `sitemap*.xml` 的稳定性,既依赖路由,也依赖离线文件是否实际生成成功
### 2. sitemap 生成逻辑
主要文件:
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php)
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php)
关键点:
- 两处生成逻辑里多次直接写:
- `https://www.{$DomainModel->d_domain}/...`
- `VideoSiteMapLogic` 生成视频详情页时,会优先读当前 `url_family['detail']['pattern']`
- 但最终 host 仍然是硬拼 `https://www.` + domain
这和日志里的 host 分裂现象是高度相关的。
结论:
> 如果站点真实规范 host 不是 `www`,或者前台访问并没有完全锁在 `www`,那么 sitemap 长期输出 `https://www.xxx.com/...` 本身就可能持续制造首页和深页的规范化跳转。
## 和“非 404 而是随机回落”的代码点
主要文件:
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:760)
关键点:
- `getVideoByVId()` 在直接按 `v_id` 查不到时,会进入 `resolveFallbackVideoByRequest()`
- `resolveFallbackVideoByRequest()` 会:
- 先看绑定表
- 再随机采样可播放视频
- 再做兜底有序回落
- 命中后会把“请求的旧 id”绑定到“随机或兜底找到的新视频 id”
这说明:
- 某些旧深链并不一定直接 404
- 也可能被系统兜底绑定到别的视频,再输出一个可访问页面
对应日志判断:
- 这能解释为什么一部分历史深链现在表现成 `301 -> 200`
- 但也意味着 canonical 和真实内容语义一致性要特别小心
## 给主 Codex 的代码排查优先级
### 1. 先查 host 规范是否被多处硬编码成 `www`
优先看:
- `SiteMapLogic.php`
- `VideoSiteMapLogic.php`
- 任何模板里直接拼域名的位置
原因:
- 这最直接对应日志里的 `/|301`
- 也最直接对应裸域 / `www` 分裂
### 2. 再查 canonical 是否仍硬编码成 `/voddetail/...`
优先看:
- `SiteStyle::buildSeoMeta()`
- `SiteStyle::guessDetailUrlFromVideo()`
原因:
- 当前 detail/play 主输出已经有 family 概念
- canonical 仍硬编码 `voddetail` 风险较大
### 3. 再查历史兼容路由是否仍有可压缩空间
优先看:
- `app/home/config/router.php` 的 legacy compat 段
原因:
- 这直接对应日志里大量 `video-info` / `video-play` / `video-show` / `shipin` 的命中
- 主线要判断哪些入口必须保留,哪些入口可以进一步合并或缩短跳转链
### 4. 最后查 fallback 视频绑定是否会放大“错链也 200”
优先看:
- `VideoService::resolveFallbackVideoByRequest()`
原因:
- 这条链对“减少 404”有帮助
- 但如果过度回落,也可能把错误深链转成语义不一致的 `200`
## 给主 Codex 的一句话交接
如果主 Codex 要开始从实现层排这轮蜘蛛问题,最值得先看的不是模板样式,而是:
> `router.php` 的历史兼容入口、`SiteStyle` 的 canonical 输出、`VideoSiteMapLogic/SiteMapLogic` 的 `www` host 拼接、以及 `VideoService` 的 fallback 回落链。

View File

@@ -0,0 +1,305 @@
# 1273-SEONexus 老模板蜘蛛日志观察更新 - 2026-04-17
## 目的
这份文档用于承接 `1271``1272` 之后,基于 `2026-04-17` 最新代码与最新蜘蛛日志,再做一轮更新观察。
本轮重点不是重新从零分析,而是回答三个问题:
1. 相比 `2026-04-16`,整体抓取结构有没有变化
2. 哪些问题确实改善了
3. 哪些问题只是从 `301/404` 换成了新的损耗形态
## 数据范围
- 项目:`SEONexus`
- 数据来源:`code/storage/domain-spider-crawl/runs/*/*/crawl-logs.summary.json`
- 观察对象:`baiduspider`
- 时间窗口:最近 24 小时
- 观察日期:`2026-04-17`
## 与上一轮的核心对比
### `2026-04-16`
- `home`: `509`
- `other`: `266`
- `detail`: `119`
- `play`: `51`
- `category`: `2`
- `200`: `532`
- `301`: `231`
- `404`: `183`
- `444`: `1`
### `2026-04-17`
- `home`: `433`
- `other`: `106`
- `detail`: `95`
- `play`: `43`
- `category`: `0`
- `200`: `478`
- `301`: `158`
- `404`: `9`
- `444`: `32`
## 第一判断
这一轮最明显的变化不是“抓取总量暴涨”,而是“损耗结构明显变化”。
一句话总结:
> `2026-04-17` 相比 `2026-04-16`,百度蜘蛛的 `404` 大幅下降,`301` 也明显下降,说明旧错误入口和部分跳转损耗确实被压掉了;但同时出现了一批新的 `444` 拦截信号,说明问题并没有完全消失,而是部分从“错误入口消耗”转成了“拦截型消耗”。
## 本轮最值得确认的改善
### 1. `404` 从 `183` 降到 `9`
这是本轮最明确的正向信号。
说明:
- 之前那批高密度错误入口,不少已经不再继续大量落成 `404`
- 至少从日志表现上,老的纯错误入口吞预算问题大幅缓解
### 2. `301` 从 `231` 降到 `158`
说明:
- 首页和深页的跳转损耗总体也在下降
- 尤其是首页 `/|301` 从上一轮的 `98` 次,降到了这轮的 `59`
这虽然还不算完全收干净,但趋势是对的。
### 3. `qf123.net` 基本脱离“纯 404 黑洞”
上一轮:
- `qf123.net`: `other|404 = 169`
这一轮:
- `qf123.net` 已经没有继续出现高位 `other|404`
- `www.qf123.net` 只看到:
- `home|200 = 2`
- `home|301 = 1`
这说明:
- 之前那批 `webuploader / upload / fileupload` 噪音,至少在本轮窗口中已经不再是主问题
### 4. `sctyjz.com` 的首页结构比上一轮更分化
上一轮:
- `sctyjz.com`: `home|200 = 12``home|301 = 6``other|404 = 8`
这一轮:
- `sctyjz.com`: `home|200 = 3``other|404 = 8`
- `www.sctyjz.com`: `home|200 = 7``home|301 = 1``other|404 = 1`
说明:
- 裸域和 `www` 的抓取重心更明显地往 `www` 偏了
- 首页 `301` 的问题在 `www.sctyjz.com` 这一侧已明显下降
- 但旧伪静态 `404` 入口仍未根治
## 本轮没有解决、但结构更清楚的问题
### 1. `yagyjt.com` 仍然是深抓正样本,但深页 `301` 还在高位
本轮统计:
- `detail|200 = 48`
- `detail|301 = 47`
- `play|200 = 19`
- `play|301 = 20`
- `home|200 = 14`
- `home|301 = 4`
对比上一轮:
- `detail|200 = 59`
- `detail|301 = 60`
- `play|200 = 25`
- `play|301 = 22`
- `home|200 = 18`
- `home|301 = 6`
判断:
- 深抓还在,说明正样本地位没丢
- `home|301` 有下降,首页更干净了
- `detail/play``301` 也略有下降
- 但深页 `301``200` 仍然接近 1:1主矛盾没有本质变化
结论:
> `yagyjt.com` 依然不是“有没有深抓”的问题,而是“深抓已经建立,但深页规范化损耗仍然偏高”。
### 2. `www.ningxiaowei.com` 仍然是内容层跳转样本
本轮统计:
- `home|200 = 25`
- `home|301 = 4`
- `other|200 = 24`
- `other|301 = 24`
上一轮:
- `home|200 = 66`
- `home|301 = 5`
- `other|200 = 20`
- `other|301 = 18`
判断:
- 首页 `301` 有所下降
-`other|301` 反而更显眼了
- 异常仍然主要落在:
- `/video-info/...|301`
- `/video-play/...|301`
结论:
> `www.ningxiaowei.com` 当前更像“首页稍微更干净了,但内容层历史路径兼容仍在持续吃预算”。
### 3. `junhaolab.com` 仍然只是弱深抓样本
本轮:
- `play|200 = 2`
- `play|301 = 2`
说明:
- 播放页信号还在
- 但量级没有明显放大
## 本轮新增需要重点留意的问题
### 1. `444` 从 `1` 升到 `32`
这轮最值得警惕的新变化就是:
- `444` 明显增加
目前主要出现在:
- `rqgcmc.com`
- `yagyjt.com`
- `www.yagyjt.com`
### 2. `rqgcmc.com` 出现新的拦截型异常
本轮统计:
- `home|200 = 8`
- `home|301 = 4`
- `other|444 = 27`
典型异常:
- `/rqgcmc.com.rar|444`
- `/rqgcmc.com.zip|444`
- `/rqgcmc.rar|444`
- `/rqgcmc.zip|444`
- `/rqgcmc.txt|444`
- `/www.zip|444`
- `/www.rar|444`
- `/wwwroot.rar|444`
判断:
- 这不是内容层问题
- 而是明显的探测、打包、压缩包、站点根目录类异常请求
- 目前这些请求被 `444` 拦掉了
结论:
> 这类 `444` 比 `404` 更像“防探测拦截生效”,从安全上未必是坏事;但从蜘蛛日志观察角度,它仍然属于抓取预算噪音,需要和真正的 SEO 主路径分开看。
### 3. `/zb_system/login.php` 从 `301/404` 变成了 `444`
上一轮高频里:
- `/zb_system/login.php|301`
- `/zb_system/login.php|404`
这一轮高频里:
- `/zb_system/login.php|444 = 4`
判断:
- 这说明后台历史入口仍在被命中
- 只是处理方式从跳转/未找到,变成了直接拦截
## 当前阶段的新结论
本轮比上一轮更适合用“三类变化”来理解:
### 1. 确认改善的
- `404` 大幅下降
- 首页 `/|301` 明显下降
- `qf123.net` 的错误入口黑洞基本消失
### 2. 改善有限但方向正确的
- `yagyjt.com` 首页与深页 `301` 略降
- `sctyjz.com``www` 侧首页更干净
### 3. 新暴露出来的
- `444` 上升
- 一批探测型、压缩包型、后台入口型异常被直接拦截
## 给主 Codex 的更新建议
### 1. 不要再把当前主矛盾定义成“404 为主”
`2026-04-17` 这轮后,旧式 `404` 入口问题已经明显下降。
现在更应该拆成:
- 深页 `301` 是否还能继续压
- 首页 `/|301` 是否还能继续压
- `444` 是否属于可接受的防探测噪音,还是误伤了正常抓取入口
### 2. `yagyjt.com` 仍然是深抓优化第一观察站
因为:
- 深抓仍在
- 首页更干净了
- 现在更容易观察“深页跳转能否进一步收敛”
### 3. `www.ningxiaowei.com` 仍然是内容层历史路径兼容观察站
因为:
- `video-info / video-play` 仍然频繁出现
- 更适合继续验证 canonical / family / 兼容入口是否完全统一
### 4. `rqgcmc.com` 不应和普通 SEO 站点混在一起判断
它当前的主要问题已经不是内容入口,而是拦截型探测噪音。
### 5. `category` 仍然没有抬头
这一轮没有观察到新的 `category` 扩散信号。
这说明:
- 首页入口虽然在改善
- 但首页 -> 分类 -> 深页 的中继放量还没有明显出现
## 一句话交接
> `2026-04-17` 这轮最大的变化,是旧式 `404` 错误入口明显下降、首页与部分深页 `301` 也在下降,但问题没有完全消失,而是部分转成了 `444` 拦截型噪音;下一步更值得主 Codex 盯的是深页 `301` 压缩和 `444` 是否只是安全噪音而非误伤 SEO 主路径。

View File

@@ -0,0 +1,252 @@
# 1274-SEONexus 老模板蜘蛛日志变化与代码判断更新 - 2026-04-17
## 目的
这份文档是在 `1272``1273` 的基础上,继续把最新日志变化往代码判断上推进一步。
这一轮重点回答两个问题:
1. 为什么 `2026-04-17``404` 会明显下降
2. 为什么同一时间又出现更多 `444`
## 和前置文档的关系
- `1271`:日志观察首轮结论
- `1272`:日志现象与代码位置映射
- `1273``2026-04-17` 新日志更新
- `1274`:针对 `404 -> 444` 结构变化的代码判断
## 本轮关键结论
一句话总结:
> `2026-04-17` 这一轮里,`404` 下降更像是“历史深链和错误 ID 被更多地兜住了”,而 `444` 上升目前没有在应用层看到直接返回逻辑,更像是前置层或安全规则拦截带来的新噪音形态。
## 一、为什么 `404` 会明显下降
### 1. 旧深页入口早就不是直接裸 404
核心文件:
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php)
已经明确存在大量历史兼容入口:
- `voddetail`
- `vodinfo`
- `vod`
- `video-info`
- `video-detail`
- `video`
- `shipin`
- `vodplay`
- `video-play`
- `video-show`
- `shipin-play`
- `shipin-bofang`
这意味着:
- 日志里的旧详情页、旧播放页路径
- 很多并不是“根本没路由,直接 404”
- 而是已经被路由先接住了
所以 `404` 的下降,不能只理解成“错误入口少了”,也要理解成“已有更多旧入口被应用层成功承接”。
### 2. VideoService 存在明显的 fallback 回退链
核心文件:
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
关键逻辑:
- `getVideoByVId()` 查不到原始 `v_id` 时,不会立刻结束
- 而是进入 `resolveFallbackVideoByRequest()`
`resolveFallbackVideoByRequest()` 的处理顺序是:
1. 先读 host 维度的 fallback 绑定表
2. 如果已有绑定,则直接回用之前找到的视频
3. 没绑定时,从库里随机采样一批视频
4. 找到可用视频后,把“请求旧 id -> 真实新 id”的绑定写入本地文件
5. 如果随机采样还失败,再走按排序兜底
对应代码点:
- `readFallbackBindings()`
- `writeFallbackBindings()`
- `fallbackBindingsPath()`
- `_fallback_reason = bound_random_video / random_video / ordered_fallback_video`
### 3. 这条链足以解释一部分“404 明显下降”
这意味着:
- 某些过去会直接 404 的旧视频 ID
- 现在可能被 fallback 机制回落成一个可访问页面
所以:
- `404` 下降未必全部来自“外部噪音消失”
- 也可能来自“应用层兜底更积极了”
这对 SEO 的影响有两面性:
- 正面:减少了硬 404抓取预算不再直接浪费
- 风险:如果旧 URL 被回落到语义不一致的视频页,就会带来 canonical 和内容一致性风险
## 二、为什么 `444` 会明显上升
### 1. 当前应用层没有看到明确的 `444` 返回逻辑
本轮代码检索没有在应用层发现:
- `http_response_code(444)`
- `return 444`
- `HttpException(444)`
这意味着:
- 当前日志里的 `444`
- 很大概率不是 ThinkPHP 应用层主动抛出来的
### 2. 应用层的主动拦截主要还是 `404`
核心文件:
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:560)
`limitRequestRate()``checkCnzzCookie()` 里,可以看到多类拦截:
- 黑名单 IP
- 普通访客短时限速
- 普通访客高频请求拉黑
- 伪 Googlebot UA
- `Amazonbot / zgrab / crawler` 等 UA
- 无 CNZZ cookie 的普通访客
但这些分支最终抛出的都是:
- `HttpException(404, ...)`
而且 `isSpider()` 里对以下蜘蛛是直接白名单放行的:
- `Baiduspider`
- `Googlebot`
- `Sogou`
- `Bytespider`
- `Bingbot`
- 等主流搜索蜘蛛
这说明:
- 对真实 `Baiduspider` 来说,应用层限速本身不太像当前 `444` 的直接来源
### 3. 当前 `444` 更像前置层或安全规则拦截
从日志表现看,`444` 主要集中在:
- `/zb_system/login.php`
- `*.rar`
- `*.zip`
- `*.txt`
- `/www.rar`
- `/wwwroot.rar`
这类 URL 具有明显特点:
- 都不像正常内容页
- 更像安全探测、压缩包探测、站点根目录打包探测
结合本轮代码检索结果,更合理的判断是:
- 这类请求大概率在更前层就被拦掉了
- 例如 nginx / waf / 黑名单 / 探测规则
所以:
- `444` 的上升不应直接按“SEO 主路径坏了”解读
- 更像“非内容型噪音被更前层提前拒绝”
## 三、对当前日志变化的更准确解释
### 1. `404` 下降,不等于所有问题都解决了
更准确的说法应该是:
- 旧错误入口有一部分确实少了
- 另一部分则被路由兼容和 fallback 机制兜住了
### 2. `444` 上升,不等于主内容路径一定被误伤
更准确的说法应该是:
- 当前看到的 `444`
- 主要还集中在探测型、后台型、压缩包型 URL
如果后续 `444` 开始扩散到:
- `robots.txt`
- `sitemap*.xml`
- `/`
- `detail`
- `play`
那才是更值得警惕的 SEO 主路径误伤。
### 3. 目前最值得继续盯的仍然是深页 `301`
原因很简单:
- `404` 下降已是阶段性利好
- `444` 当前更像安全噪音
-`yagyjt.com` 这类站点的 `detail|301 / play|301` 仍接近 `200`
这说明:
- 主内容抓取链路的最大损耗,依然还在深页规范化
## 四、给主 Codex 的代码排查建议更新
### 1. 优先继续查深页规范化,不要被 `444` 全部带偏
当前 `444` 虽然增加,但从现象和代码看:
- 还更像边缘噪音
- 暂时不像主内容入口集体误伤
所以主线仍应优先:
- 查 detail/play 主输出和兼容跳转链
- 查 canonical 是否和当前 family 一致
### 2. 对 fallback 机制要做“收益”和“风险”双向评估
`VideoService::resolveFallbackVideoByRequest()` 这条链现在值得主 Codex 明确判断:
- 它是不是正在帮我们减少 404
- 它是否会把错误 deep link 回落到语义不相干内容
- 这是否会影响 canonical、一致性、搜索引擎理解
### 3. `444` 这条线更适合联动前置层配置看
因为当前仓库内没有明显应用层 `444` 返回实现,所以如果主 Codex 要深挖 `444`,下一步更应该查:
- nginx 配置
- 前置防护规则
- UA / 路径黑名单策略
而不是只在 PHP 应用层里继续找。
## 五、补充说明
本轮尝试查看仓库最近提交时,`git` 返回了仓库 ownership 安全限制:
- `fatal: detected dubious ownership in repository at '/www/wwwroot/VideoSource2'`
因此这次没有继续依赖 `git log` 判断“哪次提交导致了日志变化”,这里只基于当前代码结构和最新日志做判断。
## 一句话交接
> 当前 `404` 的显著下降,很可能既有入口噪音减少的因素,也有 `VideoService` fallback 兜底在起作用;而 `444` 的上升目前更像前置层拦截探测噪音,不像应用层主动误伤主内容入口,所以主 Codex 仍应优先盯深页 `301` 和 canonical/family 一致性。

View File

@@ -0,0 +1,228 @@
# 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`。

View File

@@ -0,0 +1,172 @@
# 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。

View File

@@ -0,0 +1,240 @@
# 1277-SEONexus 第一轮只读代码审查发现 - 2026-04-17
## 目的
这份文档是在 `1275``1276` 的基础上,进一步给主 Codex 提供“第一轮只读代码审查发现”。
这不是改动方案文档,而是:
- 先列发现
- 再说明为什么它可能对应当前蜘蛛日志
- 方便主 Codex 直接决定先改哪一处
## 发现一:模板 canonical host 与 sitemap host 口径明显不一致
严重度:`高`
### 证据
`videoGpt1` 模板侧 canonical 普遍使用:
- [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)
- [getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
这些位置都在输出:
- `https://{$DomainModel->d_domain}...`
而 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`,那么当前系统会同时存在:
- 模板 canonical 喂一套 host
- sitemap 喂另一套 host
这会直接制造:
- 首页 `/|301`
- 深页 host 规范化 `301`
- 裸域与 `www` 并行抓取
### 对应当前日志
这和当前多站点反复出现的:
- `/|301`
- `www` 与裸域并行命中
是高度一致的。
## 发现二:播放页 canonical 指向播放页自身,而不是详情页
严重度:`中高`
### 证据
播放页模板:
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
当前输出:
- `<link rel="canonical" href='https://{$DomainModel->d_domain}{$strPlayCanonicalUrl}'>`
并且:
- `$strPlayCanonicalUrl` 是通过 `VideoService::getVideoPlayUrl()` 生成的当前播放页 URL
- 不是详情页 URL
### 为什么重要
这意味着当前策略是:
- 播放页 `robots = noindex,follow`
- 但 canonical 仍指向播放页自己
这不是绝对错误,但它值得主 Codex 明确确认设计意图:
- 是不是故意让播放页保留自身规范地址
- 还是本来希望回详情页,只是实现现在没有这么做
### 对应当前日志
如果播放页长期保留自己作为 canonical再叠加历史 `video-play / video-show / vodplay` 兼容路径,就更容易形成:
- `play|301`
- 多播放路径并行规范化
这和 `yagyjt.com``junhaolab.com` 当前的播放页 `301/200` 并存现象是对得上的。
## 发现三:历史深页兼容入口数量非常大,且覆盖多组别名
严重度:`高`
### 证据
文件:
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
当前兼容了大量 detail/play 历史入口:
- `voddetail`
- `vodinfo`
- `vod`
- `video-info`
- `video-detail`
- `video`
- `shipin`
- `shipin-xiangqing`
- `shipin-neiron`
- `vodplay`
- `vodbf`
- `vodseed`
- `video-play`
- `video-bofang`
- `video-show`
- `shipin-play`
- `shipin-bofang`
- `shipin-kan`
### 为什么重要
这套兼容入口本身有价值,因为它能避免旧外链直接 404。
但副作用也很明显:
- 会显著扩大“先接住,再跳一次”的路径面
- 如果 canonical、sitemap、站内链接又没有完全统一就容易长期维持高位深页 `301`
### 对应当前日志
这和当前高频异常里的:
- `/voddetail/...|301`
- `/vodplay/...|301`
- `/video-info/...|301`
- `/video-play/...|301`
- `/video-show/...|301`
- `/vodbf/...|301`
完全一致。
## 发现四:分类页 canonical 与 og:url 口径不完全一致
严重度:`中`
### 证据
分类列表页:
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:39)
当前表现为:
- canonical 指向分类基础页,不显式带当前分页
- `og:url` 指向当前分页 URL
### 为什么重要
这不一定是错误,因为分页页面常见策略就是:
- canonical 回第一页
- 当前页保留独立可访问 URL
但如果当前页面内容与第一页差异较大,或者系统没有对深分页做更明确的 noindex/canonical 设计,就可能造成:
- 蜘蛛抓取了分页
- 但规范化信号又全部回第一页
### 当前判断
这条不是现在最优先要改的点,但值得主 Codex 顺手确认是否符合当前分页 SEO 设计。
## 发现五:详情页 canonical、列表页 canonical、首页 canonical 都统一走非 `www` 口径
严重度:`中高`
### 证据
可以从以下模板直接看到:
- [首页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
- [分类页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
- [一级分类 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
- [详情页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
- [播放页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
都统一是:
- `https://{$DomainModel->d_domain}`
### 为什么重要
这说明当前模板层其实已经隐含表达了一种明确立场:
- 规范 host 更像是裸域
如果真是这样,那么 sitemap 仍然统一输出 `https://www.` 就更像一个明确冲突,而不是单纯“不同文件各写各的”。
## 当前最像真实改动入口的 3 个点
### 1. 先统一模板 canonical host 与 sitemap host
这是当前最像“改完后能直接压掉一批 host 级 301”的地方。
### 2. 再明确播放页 canonical 策略
要么确认:
- 播放页 canonical 就该留在播放页
要么确认:
- 播放页 canonical 应该回详情页
现在最怕的是逻辑处于“既 noindex又不完全统一 canonical 目标”的中间态。
### 3. 再评估兼容入口是否还能继续收窄
因为当前日志里已经明确能看见:
- 哪些旧入口还在持续命中
- 哪些别名组仍然在吃 301 预算
## 给主 Codex 的一句话
> 第一轮只读审查看下来,最像真问题的不是某一条单独路由,而是“模板 canonical 统一走裸域、sitemap 统一走 www、同时历史深页兼容入口又很多”这三件事叠在一起持续制造了当前日志里看到的首页和深页 `301` 损耗。

View File

@@ -0,0 +1,258 @@
# 1278-SEONexus 第一批候选修正方案 - 2026-04-17
## 目的
这份文档用于把 `1277` 的只读审查发现,进一步收敛成主 Codex 可以直接评估的第一批候选修正方案。
这里先不进入具体代码实现,只做三件事:
1. 明确候选修正点
2. 说明它可能解决什么问题
3. 说明潜在副作用和验证重点
## 先说结论
当前最像值得优先动手的,不是十几处零散小修,而是下面 3 条主线:
1. 统一模板 canonical host 与 sitemap host
2. 明确播放页 canonical 策略
3. 收缩历史深页兼容入口或跳转链
## 候选方案一:统一 canonical 与 sitemap 的 host 口径
优先级:`P0`
### 当前现状
模板侧 `videoGpt1` canonical 普遍通过模板标签走 `VideoService -> UrlBuilder` 输出:
- [Site.php](/www/wwwroot/VideoSource2/code/extend/template/taglib/Site.php:238)
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:87)
模板里最终拼的是:
- `https://{$DomainModel->d_domain}...`
典型位置:
- [首页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
- [详情页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
- [播放页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
- [分类页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
而 sitemap 生成里大量直接写:
- `https://www.{$DomainModel->d_domain}...`
典型位置:
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
### 候选修正
把 sitemap 输出 host 统一到与模板 canonical 一致的规范 host。
### 预期收益
- 压低首页 `/|301`
- 压低 host 级 `301`
- 降低裸域 / `www` 并行抓取
- 让 sitemap、canonical、站内链接至少先在 host 维度统一
### 潜在副作用
- 如果真实线上规范 host 本来就是 `www`,而模板 canonical 才是错的,那么简单改 sitemap 会把问题转移,而不是解决
### 实施前必须先确认
- 当前业务最终想要的规范 host到底是裸域还是 `www`
- 前置层 / nginx 的最终 host 跳转策略是什么
### 当前更倾向的判断
从现有模板和站内链接输出看,系统更像默认把裸域当规范 host。
如果这个判断成立,那么更像是:
- sitemap 侧应向模板 canonical 对齐
## 候选方案二:明确播放页 canonical 是回详情页,还是保留播放页自身
优先级:`P0`
### 当前现状
播放页模板:
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
当前 canonical 指向:
- 当前播放页自身 URL
同时:
- `robots = noindex,follow`
### 候选修正方向 A
继续保留播放页 canonical 指向播放页自身。
适用前提:
- 业务明确希望每个播放页都拥有自洽的规范地址
- 只是通过 `noindex` 控制搜索引擎是否收录
### 候选修正方向 B
把播放页 canonical 改回详情页。
适用前提:
- 业务希望搜索引擎主要把权重聚合到详情页
- 播放页只作为观看页存在,不作为核心规范承载页
### 预期收益
如果改为回详情页,可能带来:
- 更强的 detail 聚合信号
- 更少的播放页规范化分叉
### 潜在副作用
如果播放页承载了明显不同的信息结构,强行 canonical 回详情页,也可能让页面意图变得不够清晰。
### 当前更值得主 Codex 先做的事
不是立刻改,而是先明确设计目标:
- “播放页保留自身 canonical”是设计决定
还是
- “本来想回详情页,只是现在实现成了播放页自身”
## 候选方案三:收缩历史深页兼容入口
优先级:`P1`
### 当前现状
兼容入口非常宽:
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
包括:
- `voddetail`
- `vodinfo`
- `vod`
- `video-info`
- `video-detail`
- `video`
- `shipin`
- `vodplay`
- `vodbf`
- `vodseed`
- `video-play`
- `video-show`
- `shipin-play`
- `shipin-bofang`
- `shipin-kan`
### 候选修正
不是一次性删兼容,而是分两步:
1. 先按日志命中频率分组
2. 再决定哪些入口必须保留,哪些入口可以逐步收缩
### 预期收益
- 压低深页 `301`
- 减少“多组别名 -> 同一规范页”的长期跳转预算损耗
### 潜在副作用
- 如果删掉仍被百度高频命中的入口,会把 `301 -> 200` 又打回 `404`
### 当前建议
这条线不适合第一刀就重手改。
更适合在统一 host 和 canonical 口径之后,再做第二轮收缩。
## 候选方案四:限制 fallback 的适用范围
优先级:`P1`
### 当前现状
`VideoService` 存在回退链:
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
查不到原始 `v_id` 时,会:
- 读绑定
- 随机采样
- 排序兜底
### 候选修正
不是立即移除 fallback而是评估是否加边界例如
- 只对部分入口生效
- 只对详情页生效,不对播放页生效
- 只在存在某些可信条件时生效
### 预期收益
- 减少“错链也 200”的语义风险
- 保留对 hard 404 的止血能力
### 潜在副作用
- fallback 一旦收紧,可能让部分当前已被兜住的旧 deep link 重新回到 `404`
### 当前建议
这条线适合在主 Codex 完成第一轮 host / canonical / 兼容入口收口后,再决定是否调整。
## 我更建议的落地顺序
### 第一刀
先统一 host 口径:
- 模板 canonical
- sitemap
- RSS
- 站内主要结构化 URL
### 第二刀
再确认播放页 canonical 的产品/SEO 立场:
- 保持播放页自身
- 回详情页
### 第三刀
最后再收缩历史兼容入口与 fallback 边界。
## 不建议的顺序
不建议一上来先动:
- 大规模删兼容路由
- 大规模关闭 fallback
原因:
- 这两条线会直接把一批目前还能 `301 -> 200` 的深链重新打回 `404`
## 给主 Codex 的一句话
> 第一批真正值得评估的修正方案,不是“怎么把所有问题都一起修掉”,而是先把 host 规范统一,再明确播放页 canonical 立场,最后才去收深页兼容入口和 fallback 边界。

View File

@@ -0,0 +1,204 @@
# 1279-SEONexus 第一批候选修正方案评审建议 - 2026-04-17
## 目的
这份文档用于在 `1278` 的候选修正方案基础上,再往前走一步:
- 不只是列方案
- 而是给出当前更推荐的顺序和取舍建议
它的目标受众就是主 Codex。
## 先说结论
当前最值得主 Codex 优先推进的方案,不是“收兼容入口”,而是:
1. 先统一 host 规范口径
2. 再确认播放页 canonical 立场
3. 最后才动兼容入口和 fallback 边界
## 一、为什么 host 统一应该排第一
### 1. 模板与 sitemap 目前存在直接冲突
模板 canonical 普遍走:
- `https://{$DomainModel->d_domain}...`
而 sitemap 生成普遍走:
- `https://www.{$DomainModel->d_domain}...`
这不是抽象风险,而是当前代码中已经明确存在的双口径输出。
### 2. 日志已经证实多站存在 `www` / 裸域混合抓取
最近 24 小时百度抓取里,至少以下 base domain 已经同时出现裸域和 `www`
- `ningxiaowei.com`
- `www.ningxiaowei.com = 78`
- `ningxiaowei.com = 9`
- `haotianhaiyuan.com`
- `www.haotianhaiyuan.com = 18`
- `haotianhaiyuan.com = 14`
- `yagyjt.com`
- `yagyjt.com = 162`
- `www.yagyjt.com = 17`
- `ctshuhua.com`
- `www.ctshuhua.com = 78`
- `ctshuhua.com = 72`
- `sctyjz.com`
- `sctyjz.com = 11`
- `www.sctyjz.com = 9`
- `junhaolab.com`
- `www.junhaolab.com = 9`
- `junhaolab.com = 4`
### 3. 这说明 host 级规范化损耗是真实存在的
因此:
- host 统一不是“理论上更好”
- 而是当前最像正在真实消耗抓取预算的一条主线
## 二、为什么播放页 canonical 应该排第二
### 1. 它影响深页 `301` 的理解方式
当前播放页模板:
- `robots = noindex,follow`
- `canonical = 当前播放页自身`
这会直接影响主 Codex 如何判断当前 `play|301`
- 如果播放页本来就该保留自身规范 URL那么当前主要问题是兼容入口过多
- 如果播放页本来应 canonical 回详情页,那么当前实现就更像未收口
### 2. 这条线虽然重要,但收益更依赖设计取舍
和 host 统一不同,这条线不是单纯的工程不一致。
它更像是:
- SEO 策略选择
所以它应排在第二位:
- 先统一明显冲突的 host
- 再确认播放页 canonical 立场
## 三、为什么兼容入口收缩不应排第一
### 1. 当前兼容入口仍在真实命中
日志里当前仍高频出现:
- `voddetail`
- `vodplay`
- `video-info`
- `video-play`
- `video-show`
- `vodbf`
这说明兼容入口不是“死代码”。
### 2. 现在先删,风险很高
如果主 Codex 第一刀就去删或大幅收缩兼容入口,很容易把当前一批还能:
- `301 -> 200`
的旧 deep link重新打回
- `404`
### 3. 更稳的顺序
更合理的是:
1. 先把 host 统一
2. 再把 canonical 立场统一
3. 观察日志
4. 再决定兼容入口是否还能继续收
## 四、为什么 fallback 边界也不应排第一
### 1. fallback 很可能正在帮助压低 `404`
当前 `404` 的明显下降,不排除有一部分就是 fallback 机制在止血。
### 2. 现在先收 fallback会让数据倒退
如果主 Codex 在 host / canonical 还没统一之前,就先把 fallback 收紧,那么很可能会出现:
- `404` 重新回升
这样会把问题重新搅混,不利于判断主线修正是否有效。
## 五、当前更推荐的执行顺序
### 第一阶段
先统一以下几类输出的 host
- 首页 canonical
- 分类 canonical
- 详情页 canonical
- 播放页 canonical
- sitemap
- RSS
- 结构化数据里的 URL
目标:
- 先让模板、站内主输出、sitemap 至少在 host 维度统一
### 第二阶段
再确认播放页 canonical 策略:
- 保留播放页自身
- 回详情页
目标:
-`play` 页的规范信号有明确立场
### 第三阶段
最后再做:
- 兼容入口分组收缩
- fallback 适用范围收缩
目标:
- 在不把旧 deep link 直接打回 `404` 的前提下,继续压深页 `301`
## 六、当前最不建议的操作
### 1. 不建议先删大量历史兼容入口
原因:
- 风险最大
- 最容易直接把数据打坏
### 2. 不建议先动 fallback
原因:
- 当前还没搞清楚它对 `404` 下降贡献有多大
### 3. 不建议只改单个模板 canonical
原因:
- 当前问题是系统性 host 双口径
- 只改单页模板,很容易头痛医头
## 给主 Codex 的一句话
> 当前最值得优先批准推进的,不是“收旧路由”,而是“统一 host 输出口径”;因为这条线同时有代码证据和日志证据,而且副作用最可控、验证也最直接。

View File

@@ -0,0 +1,309 @@
# 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 维度不再互相打架,再用日志看收益。

View File

@@ -0,0 +1,249 @@
# 1281-SEONexus 第一批修正实施方案 - 2026-04-17
## 目的
这份文档用于把 `1280` 的“可落地修正设计”继续推进成可以直接进入实施评审的方案。
它回答的是:
1. 第一批具体怎么改
2. 先改哪些文件
3. 每一步改完怎么验证
4. 哪些线这一批绝对不要碰
## 本批次实施目标
只做一件事:
> 统一 `videoGpt1` 主线上模板、sitemap、RSS 的 host 输出口径,尽量先消除系统内部自带的 host 双口径冲突。
不把本批次目标扩散到:
- 深页兼容路由重构
- fallback 策略收紧
- 播放页 canonical 政策改向
## 预期收益
如果这一批实施正确,最可能看到的收益是:
1. 首页 `/|301` 继续下降
2. host 级 `301` 下降
3. 同一 base domain 下 `www` / 裸域混合抓取下降
4. `yagyjt.com``ningxiaowei.com``haotianhaiyuan.com` 这类站的 host 分裂减轻
## 本批次改动批次
### 批次 A统一模板与站内公开输出的 host 口径
建议优先级:`最高`
### 目标
确认 `videoGpt1` 主线上以下输出全部使用同一 host 口径:
- 首页 canonical
- 分类页 canonical
- 详情页 canonical
- 播放页 canonical
- `og:url`
- JSON-LD `url`
### 建议检查文件
- [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)
### 实施建议
这一步如果发现这些文件已经统一,则不做逻辑变更,只做复核确认。
当前从只读审查来看,它们大方向已经都偏向:
- `https://{$DomainModel->d_domain}`
所以这一步更像:
- 明确模板层口径
- 作为后续 sitemap / RSS 对齐基线
## 批次 B把 sitemap 输出 host 对齐到模板口径
建议优先级:`最高`
### 目标
去掉 sitemap 生成里与模板层相冲突的 `https://www.` 硬编码。
### 建议改动文件
- [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}`
### 建议改动方式
第一批不建议做复杂抽象。
只做最小改动:
-`https://www.{$DomainModel->d_domain}` 统一替换为与当前模板主输出一致的 host 口径
也就是优先对齐:
- `https://{$DomainModel->d_domain}`
### 这样做的原因
因为当前真正造成系统自冲突的,是:
- 模板一套
- sitemap 一套
先消掉这层内部打架,比引入新配置中心更稳。
## 批次 C把 RSS 输出 host 对齐到模板口径
建议优先级:`高`
### 建议改动文件
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
### 当前问题
这两个文件内部 host 口径并不完全一致:
- `baidu.xml``<link>` 已偏向非 `www`
- `baidu.xml` 的频道级 `<link>` / `<generator>` 仍有 `www`
- `so.xml` 仍在输出 `https://www.{$DomainModel->d_domain}...`
### 建议改动方式
第一批同样只做最小统一:
- 与模板 canonical 口径对齐
## 本批次不改的内容
### 1. 不改播放页 canonical 策略
原因:
- 它是策略问题,不是第一批最确定的问题
### 2. 不删历史兼容入口
原因:
- 当前高频旧入口仍真实存在
- 先删风险太高
### 3. 不收 fallback
原因:
- 当前 `404` 下降可能部分依赖 fallback
### 4. 不引入新的全局 host 配置中心
原因:
- 第一批目标是低副作用止损
- 不是立刻做体系重构
## 推荐实施顺序
### 第一步
模板层 host 输出复核:
- 首页
- 分类页
- 详情页
- 播放页
### 第二步
改 sitemap host 输出:
- `VideoSiteMapLogic`
- `SiteMapLogic`
### 第三步
改 RSS host 输出:
- `baidu.xml`
- `so.xml`
### 第四步
做页面级回归:
- 首页
- 分类页
- 详情页
- 播放页
- `sitemap_index.xml`
- `sitemap-videos-1.xml`
- RSS
## 建议的验证顺序
### 一、页面静态验证
确认:
- canonical host 一致
- `og:url` host 一致
- JSON-LD `url` 一致
- sitemap URL host 一致
- RSS URL host 一致
### 二、外网行为验证
抽查几个代表域名:
- `yagyjt.com`
- `www.ningxiaowei.com`
- `www.haotianhaiyuan.com`
- `ctshuhua.com`
- `sctyjz.com`
重点看:
- 首页是否仍多跳
- sitemap 返回内容里的 host 是否统一
### 三、日志验证
回看下一轮蜘蛛日志时,优先比较:
- `/|301`
- `home|301`
- `detail|301`
- `play|301`
- 同一 base domain 的 `www` / 裸域双命中是否下降
## 止损边界
如果本批次改动后出现以下任一情况,应暂停继续扩大:
1. `404` 明显回升
2. sitemap / RSS 出现不可访问
3. 首页或详情页 canonical 异常
4. `detail|301` / `play|301` 不降反升且幅度明显
## 给主 Codex 的一句话
> 第一批实施最适合做的,是一次“小范围 host 输出统一手术”先把模板、sitemap、RSS 的 host 口径对齐,先消除系统内部自带的冲突,再用日志看 `/|301` 和 host 分裂是否下降。

View File

@@ -0,0 +1,173 @@
# 1282-SEONexus 主 Codex 接手摘要 - 2026-04-17
## 这份文档是干什么的
给主 Codex 一个最短路径摘要。
如果没有时间从 `1271` 一直读到 `1281`,先看这份,就能知道:
- 现在日志阶段走到哪里了
- 当前最像真问题的点是什么
- 第一批建议先改哪里
## 当前阶段结论
截至 `2026-04-17`,老模板蜘蛛日志已经不是“百度没来”的问题。
当前更准确的判断是:
1. 首页抓取已经成立
2. 部分站点已经有真实深抓
3. `404` 已较前一轮明显下降
4.`301` 仍在持续消耗预算
5. 主要损耗已更集中在:
- host 规范化
- 深页历史兼容入口
- 部分 `444` 探测型噪音
## 这轮最像真问题的 3 个点
### 1. 模板 canonical 与 sitemap / RSS 的 host 口径冲突
当前 `videoGpt1` 模板主线大量输出:
- `https://{$DomainModel->d_domain}...`
但 sitemap / RSS 中仍有多处输出:
- `https://www.{$DomainModel->d_domain}...`
这和日志里持续存在的:
- `/|301`
- 同一 base domain 下 `www` / 裸域并行抓取
是高度一致的。
### 2. 深页兼容入口很多,仍在真实命中
`router.php` 中存在大批旧深页兼容入口:
- `voddetail`
- `video-info`
- `video-play`
- `video-show`
- `vodbf`
- `shipin-*`
它们当前不是死代码。
所以不能第一刀就删,但它们很可能确实在维持一部分深页 `301`
### 3. 播放页 canonical 当前指向播放页自身
这不是明确 bug但它是一个必须由主 Codex 明确拍板的策略点:
- 保持播放页自身 canonical
还是
- 回详情页
## 当前最建议优先推进的事情
### 第一优先级
先统一 host 输出口径。
优先统一:
- 模板 canonical
- `og:url`
- JSON-LD URL
- sitemap
- RSS
目标:
- 先减少系统内部自己制造的 host 级 `301`
### 第二优先级
再确认播放页 canonical 立场。
目标:
- 明确 `play` 页在当前 SEO 策略里,到底算不算规范对象
### 第三优先级
最后才评估:
- 历史兼容入口收缩
- fallback 边界收缩
## 当前不建议先做的事
### 1. 不建议先删大批兼容路由
原因:
- 当前很多旧入口还在真实命中
- 很容易把 `301 -> 200` 打回 `404`
### 2. 不建议先动 fallback
原因:
- 这条线可能正在帮助压低 `404`
### 3. 不建议同时改 Nginx + PHP + 模板三层 host 策略
原因:
- 第一批应该做低副作用、可验证的统一动作
## 第一批实施建议
如果主 Codex 要开做,建议第一批只碰这些文件:
- [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/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
- 再顺手复核 `videoGpt1` 模板里的 canonical / `og:url` / JSON-LD URL 输出
## 第一批验证重点
改完后优先看:
- `/|301` 是否下降
- `home|301` 是否下降
- 同一 base domain 的 `www` / 裸域双命中是否下降
建议继续盯的域名:
- `yagyjt.com`
- `www.ningxiaowei.com`
- `www.haotianhaiyuan.com`
- `ctshuhua.com`
- `sctyjz.com`
## 文档导航
如果主 Codex 需要往下展开看:
- 日志首轮总结:
[1271](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
- 日志到代码映射:
[1272](/www/wwwroot/VideoSource2/docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md)
- `2026-04-17` 日志更新:
[1273](/www/wwwroot/VideoSource2/docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md)
- `404 -> 444` 代码判断:
[1274](/www/wwwroot/VideoSource2/docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md)
- 可执行检查清单:
[1275](/www/wwwroot/VideoSource2/docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md)
- 第一轮只读代码审查发现:
[1277](/www/wwwroot/VideoSource2/docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md)
- 第一批候选修正方案:
[1278](/www/wwwroot/VideoSource2/docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md)
- 第一批修正实施方案:
[1281](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
## 一句话交接
> 主线现在最值得先动的,不是删旧路由,而是统一 host 输出口径先把模板、sitemap、RSS 不再互相打架,再看日志里的 `/|301` 和 `www/裸域` 分裂是否继续下降。

View File

@@ -0,0 +1,195 @@
# 1283-SEONexus 蜘蛛分析交接索引 - 2026-04-17
## 目的
这份文档是 `2026-04-16``2026-04-17` 这轮老模板蜘蛛日志分析的总索引。
作用只有一个:
- 帮主 Codex 或下一轮会话,最快找到该看的文档
它不是新的分析结论文档,而是阅读顺序与用途说明。
## 纠偏提醒
`2026-04-17` 晚些时候已经补了一份老模板范围纠偏文档:
- [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
如果你现在接手的是老模板第一阶段 SEO 分析,请先看 `1286`,因为它已经明确:
- 当前主线是 `1001-1005`
- 也就是 `videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
- `videoGpt1` 不属于这条老模板实施主线
## 最短阅读路径
如果时间很少,只看下面 3 份:
1. [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
2. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
3. [02-老模板蜘蛛日志观察交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
这 3 份分别解决:
- 老模板第一阶段的边界是什么
- 哪些代码结论需要重新锚定到老模板 5 套
- 当前日志现状是什么
## 完整阅读顺序
### 阶段文档
#### 1. 阶段目标
- [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
用途:
- 定义第一阶段想看什么
- 明确首页、robots、sitemap、canonical、分类、详情、播放这些观察目标
#### 2. 协作边界
- [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md)
用途:
- 定义多 Codex 协作边界
- 明确这轮旧版本主要做观察与交接,而不是自由发明实现
## 第一层:日志观察
#### 3. 首轮正式日志结论
- [02-老模板蜘蛛日志观察交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
用途:
- 给出 `2026-04-16` 的 24 小时总览
- 定义第一轮站点分型
#### 4. 第二轮日志更新
- [04-老模板蜘蛛日志观察更新-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md)
用途:
- 比较 `2026-04-17` 相比上一轮的变化
- 明确 `404` 下降、`444` 上升的结构变化
## 第二层:日志到代码
#### 5. 日志现象与代码位置映射
- [03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md)
用途:
- 把日志里的 `301/404/444`、深页兼容、canonical、sitemap 现象映射到代码入口
#### 6. `404 -> 444` 的代码判断
- [05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md)
用途:
- 解释为什么 `404` 下降
- 解释为什么 `444` 上升
- 明确 `444` 目前更像前置层噪音,而不是应用层直接返回
## 第三层:主 Codex 可执行清单
#### 7. 可执行检查清单
- [06-主Codex可执行检查清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md)
用途:
- 告诉主 Codex 先看哪些文件
- 每个文件要回答什么问题
#### 8. 检查清单修正
- [07-主Codex检查清单补充修正-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/07-主Codex检查清单补充修正-2026-04-17.md)
用途:
- 修正对 `SiteStyle` 与模板 canonical 主输出关系的判断
## 第四层:只读代码审查发现
#### 9. 第一轮只读代码审查发现
- [08-第一轮只读代码审查发现-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md)
用途:
- 固化最像真实问题的发现
- 包括 host 双口径、播放页 canonical、自带兼容入口过宽等
## 第五层:方案与评审
#### 10. 第一批候选修正方案
- [09-第一批候选修正方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md)
用途:
- 从发现走到候选修正方向
#### 11. 第一批候选修正方案评审建议
- [10-第一批候选修正方案评审建议-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/10-第一批候选修正方案评审建议-2026-04-17.md)
用途:
- 说明当前更推荐的先后顺序
- 明确为什么先统一 host再谈其它
## 第六层:准备实施
#### 12. 第一批可落地修正设计
- [11-第一批可落地修正设计-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/11-第一批可落地修正设计-2026-04-17.md)
用途:
- 收敛成低副作用、可验证的设计边界
#### 13. 第一批修正实施方案
- [12-第一批修正实施方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
用途:
- 明确第一批建议改哪些文件
- 明确每一步之后怎么验证
#### 14. 主 Codex 接手摘要
- [13-主Codex接手摘要-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md)
用途:
- 一页看完当前阶段
- 快速接手
## 本轮本地分析材料
如果需要看更细的原始观察,可回到 `_analysis`
- [baiduspider.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider.md)
- [baiduspider-priority-2026-04-16.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider-priority-2026-04-16.md)
- [baiduspider-action-checklist-2026-04-16.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider-action-checklist-2026-04-16.md)
- [yagyjt.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/yagyjt.com.md)
- [qf123.net.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/qf123.net.md)
- [ningxiaowei-hosts.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/ningxiaowei-hosts.md)
- [sctyjz.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/sctyjz.com.md)
- [ap-hulan.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/ap-hulan.com.md)
- [haotianhaiyuan-hymdrz-hosts.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/haotianhaiyuan-hymdrz-hosts.md)
- [home-stable-cluster.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/home-stable-cluster.md)
## 一句话结论
> 这轮辅助分析已经从“看日志”推进到“准备实施”,主 Codex 现在最值得先接手的,不是继续补观察,而是按 `1281` 和 `1282` 进入第一批 host 输出口径统一的实现评估。

View File

@@ -0,0 +1,64 @@
# 1284-SEONexus 主 Codex 启动提示 - 2026-04-17
## 用途
这份文档用于在主 Codex 新开会话或切回主线时,直接作为启动提示使用。
目标是减少重复解释成本,让主 Codex 迅速进入正确上下文。
## 建议直接复制给主 Codex 的话术
你现在接手的是 `SEONexus` 老模板蜘蛛日志这一轮的主线判断与第一批修正评估。
先不要从零分析,也不要先大范围改路由。
请按下面顺序进入:
1. 先看 [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md)
2. 再看 [13-主Codex接手摘要-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md)
3. 然后看 [12-第一批修正实施方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
4. 如需完整背景,再按 [14-蜘蛛分析交接索引-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/14-蜘蛛分析交接索引-2026-04-17.md) 的顺序回看
当前阶段最重要的判断不是“百度没来”,而是:
- 首页抓取已经成立
- 部分站点已有真实深抓
- `404` 已较上一轮明显下降
- 但系统内部存在 host 输出双口径,仍在持续制造 `301`
当前最值得优先推进的第一批动作不是删兼容路由,而是统一 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/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
- `videoGpt1` 主线模板中的 canonical / `og:url` / JSON-LD URL 输出
当前不建议第一批先做:
- 大规模删历史兼容路由
- 收紧 fallback
- 同时改 Nginx + PHP + 模板三层 host 策略
- 先拍板播放页 canonical 回详情页
第一批实施后的验证重点是:
- `/|301` 是否下降
- `home|301` 是否下降
- 同一 base domain 下 `www` / 裸域双命中是否下降
重点观察域名:
- `yagyjt.com`
- `www.ningxiaowei.com`
- `www.haotianhaiyuan.com`
- `ctshuhua.com`
- `sctyjz.com`
## 更短的一句话版本
如果只给主 Codex 一句话,就发这句:
> 老模板蜘蛛这轮先别删旧路由,先按 `1281/1282` 统一模板、sitemap、RSS 的 host 输出口径,先压 host 级 `301`,再回看日志决定下一刀。

View File

@@ -0,0 +1,193 @@
# 1285-SEONexus 第一批修正验收清单 - 2026-04-17
## 目的
这份文档用于配合 `1281` 的第一批修正实施方案,给主 Codex 提供一份可以直接照着执行的验收清单。
它适用于:
- 第一批 host 输出口径统一前的基线记录
- 第一批改动后的回归验证
## 本批次验收范围
本清单只针对第一批动作:
- 模板 canonical / `og:url` / JSON-LD URL host 口径
- sitemap host 口径
- RSS host 口径
不用于验收:
- 历史兼容路由收缩
- fallback 策略调整
- 播放页 canonical 政策改变
## 一、改动前先记录
### 1. 页面级记录
每个站至少记录以下页面:
1. 首页
2. 一级分类页
3. 二级分类页
4. 详情页
5. 播放页
6. `robots.txt`
7. `sitemap_index.xml`
8. 一份视频 sitemap
9. RSS
### 2. 记录字段
每个页面至少记录:
- 最终访问 URL
- 返回状态码
- 是否发生跳转
- canonical
- `og:url`
- JSON-LD 中的主要 `url`
- 页面源码中是否出现 `https://www.`
- 页面源码中是否出现 `https://裸域`
## 二、改动后必须检查的页面
### A. 模板页面
优先抽查:
- 首页
- 分类页
- 详情页
- 播放页
### B. 数据输出页面
优先抽查:
- `sitemap_index.xml`
- `sitemap-videos-1.xml`
- RSS `baidu.xml`
- RSS `so.xml`
## 三、页面级通过标准
### 1. 首页
通过标准:
- canonical host 与设计目标一致
- `og:url` host 与 canonical 一致
- 不应再出现与 sitemap 完全相反的 host 口径
### 2. 分类页
通过标准:
- canonical host 一致
- `og:url` host 一致
- 若存在 JSON-LDURL host 一致
### 3. 详情页
通过标准:
- canonical host 一致
- `og:url` host 一致
- JSON-LD `url` host 一致
### 4. 播放页
通过标准:
- `robots = noindex,follow` 维持不变
- canonical host 一致
- 不在本批次里要求改变 canonical 指向对象
### 5. sitemap
通过标准:
- 列出的 URL host 与模板 canonical 设计口径一致
- 不应继续一部分用 `www`、一部分用裸域
### 6. RSS
通过标准:
- 频道级 `<link>``generator`、正文 `<link>` host 一致
- 不应继续出现频道级 `www`、正文级裸域的混搭
## 四、日志级验收指标
### 1. 第一优先级指标
重点比较改动前后 24 小时:
- `/|301`
- `home|301`
- 同一 base domain 的 `www` / 裸域双命中
### 2. 第二优先级指标
继续观察:
- `detail|301`
- `play|301`
说明:
- 这两项不一定会在第一批立即大幅下降
- 但如果 host 统一生效,通常应先看到部分改善
### 3. 暂不作为第一批成败判断的指标
- `444`
- `fallback` 命中情况
- `category` 扩散
这些指标可以观察,但不作为第一批的主判定。
## 五、重点观察域名
第一批建议固定盯这些域名:
- `yagyjt.com`
- `www.ningxiaowei.com`
- `www.haotianhaiyuan.com`
- `ctshuhua.com`
- `sctyjz.com`
原因:
- 这些域名最能体现 host 分裂、首页 `301`、深页样本差异
## 六、风险提示
如果出现以下情况,说明第一批改动需要立即复盘:
1. `404` 明显上升
2. `sitemap` 或 RSS 无法访问
3. canonical 丢失
4. 首页和详情页 canonical host 不一致
5. `/|301` 不降反升
## 七、建议记录格式
每次验收至少留一份简表,字段建议如下:
- 域名
- 页面类型
- 访问 URL
- 状态码
- 跳转后 URL
- canonical
- `og:url`
- JSON-LD URL
- 备注
## 一句话说明
> 第一批修正的验收重点不是“所有 SEO 指标都立刻变好”而是先确认模板、sitemap、RSS 在 host 维度不再互相冲突,然后观察 `/|301` 和 `www/裸域` 双命中是否下降。

View File

@@ -0,0 +1,341 @@
# 1286-SEONexus 老模板 5 套蜘蛛日志纠偏与 SEO 提示 - 2026-04-17
## 目的
这份文档只做一件事:
-`2026-04-16``2026-04-17` 这轮蜘蛛日志分析,重新锚定回 `1269` 定义的老模板 5 套主线
它是对前面一串分析文档的纠偏补充,不是否定全部历史结论。
保留有效的部分:
- `baiduspider` 日志观察
- `301 / 404 / 444` 的结构判断
- host 规范化、深页规范化、错误入口消耗预算这些大方向
需要重新解释的部分:
- 任何把 `videoGpt1` 当成当前实施主线的代码映射
- 任何默认以 GPT 新模板结构作为老模板修正入口的判断
## 一、先把范围钉死
`1269` 已经写得很明确:
- 老模板共 5 套
- 域名会随机绑定其中一套模板
- 当前不准备把 `videoGpt1` 的整套结构层直接迁过去
代码里真实映射已经确认:
- `1001 = videoDadi`
- `1002 = videoDingZhu`
- `1003 = videoBoKu`
- `1004 = videoLaoNiu`
- `1005 = videoNuNu`
来源:
- [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
- [viewTemplate.php](/www/wwwroot/VideoSource2/code/public/initdata/video/viewTemplate.php:6)
- [TemplateSeeder.php](/www/wwwroot/VideoSource2/code/database/seeders/TemplateSeeder.php:58)
同时确认:
- `1007 = videoGpt1`
所以这轮老模板蜘蛛日志分析,后续都应只围绕:
- `videoDadi`
- `videoDingZhu`
- `videoBoKu`
- `videoLaoNiu`
- `videoNuNu`
## 二、哪些历史结论仍然有效
下面这些日志判断,即使不绑定 `videoGpt1`,仍然成立:
### 1. `404` 已明显下降
从现有观察链看,`2026-04-17` 相比 `2026-04-16`
- `404` 明显下降
- 一部分历史错误入口不再持续高频命中
这说明第一阶段回灌后的老模板链路,至少已经在“硬 404 止血”上开始起作用。
### 2. `444` 上升更像前置层噪音
当前仓库内没有明显应用层主动返回 `444` 的主线证据。
所以现阶段更稳的解释仍然是:
- `444` 更像 nginx / WAF / 安全规则对探测型路径的拦截
- 还不能直接解释成“老模板 SEO 主路径坏了”
### 3. `301` 仍是当前最值得盯的主损耗
无论从总览还是单站样本看,最像持续消耗抓取预算的,仍然是:
- 首页 `/|301`
- `home|301`
- 深页 `detail|301`
- 深页 `play|301`
- 以及 host 分裂带来的 `www / 裸域` 规范化跳转
### 4. `yagyjt.com` 仍是最重要的深抓样本
这类站的意义仍然没变:
- 不是“有没有深抓”
- 而是“已经深抓了,但深页 `301` 接近 `200`,预算被跳转吃掉了”
这条判断仍然适合作为老模板第一优先级样本。
## 三、老模板 5 套的真实代码共性
这 5 套老模板不是“没有 SEO 基础”,而是“基础已存在,但口径没完全统一”。
当前已确认的共性如下。
### 1. 都有 `robots / sitemap / detail / play` 现成模板
5 套模板目录都包含:
- `sitemap/robots.txt`
- `sitemap/sitemap_index.xml`
- `sitemap/sitemap-main.xml`
- `video/getVideoInfo.html`
- `video/getVideoPlayUrl.html`
- `video/getCategory.html`
- `video/getCategoryType.html`
这说明:
- 第一阶段确实应该直接改模板公共代码
- 不需要先走后台逐站编辑
### 2. `robots.txt` 统一指向裸域 `sitemap_index.xml`
例如:
- [videoDadi/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
- [videoDingZhu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
- [videoBoKu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
- [videoLaoNiu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
- [videoNuNu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
当前写法统一是:
- `Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml`
### 3. footer 也统一暴露了 `rss/baidu.xml` 和 `sitemap_index.xml`
例如:
- [videoDadi/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/public/footer.html:19)
- [videoDingZhu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/public/footer.html:36)
- [videoBoKu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/public/footer.html:41)
- [videoLaoNiu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/public/footer.html:16)
- [videoNuNu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/public/footer.html:14)
这部分说明:
- 老模板并不是完全缺少抓取入口
- 当前更像“入口已暴露,但规范口径不够统一”
### 4. 详情页 canonical 基本是正常的
例如:
- [videoDadi/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoInfo.html:79)
- [videoDingZhu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoInfo.html:79)
- [videoBoKu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoInfo.html:80)
- [videoLaoNiu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoInfo.html:79)
- [videoNuNu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoInfo.html:79)
共同特征:
- canonical 指向详情页自身
- `og:url` 也基本跟详情页 URL 走
### 5. 播放页 canonical 已指向播放页,但 `og:url / JSON-LD url` 仍常指详情页
例如:
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:46)
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:59)
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:46)
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:59)
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:46)
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:59)
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:46)
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:59)
这说明老模板播放页存在一个很典型的“半收口”现象:
- canonical 试图指向播放页
-`og:url` 和 JSON-LD `url` 仍可能输出详情页地址
这很容易继续制造:
- 播放页规范信号分裂
- `play|301`
- 播放页收录不稳定
### 6. 分类页 `getCategoryType` 的 `og:url / CollectionPage.url` 明显偏向首页
例如:
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:46)
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
当前共同特征是:
- `og:url = https://{$DomainModel->d_domain}`
- `CollectionPage.url = https://{$DomainModel->d_domain}`
- `BreadcrumbList` 才带分类真实地址
这说明分类首页页型存在明显规范化信号不一致:
- 页面实际是分类页
- 但社交与结构化主 URL 却更像首页
这会影响:
- `category` 页型独立识别
- 分类页聚合页规范信号
- 首页与分类页之间的抓取优先级判断
### 7. sitemap 与页面主输出存在 `www / 裸域` 双口径风险
当前已确认至少有一条老模板共性:
- `robots.txt` 输出的是裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
- 但某些 sitemap 页面内部却在吐 `https://www.{$DomainModel->d_domain}/...`
例如:
- [videoDadi/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
这一类双口径如果在 5 套里普遍存在,就会直接对应日志里的:
- `/|301`
- `home|301`
- 深页命中后再规范化一次
## 四、给主 Codex 的老模板专用 SEO 提示
下面这组提示,应替代“去看 GPT 模板链路”的旧方向。
### 1. 第一优先级不是换骨架,而是统一规范口径
老模板第一阶段最值得做的不是大改页面结构,而是统一三种口径:
- 页面 head 口径
- sitemap / rss 口径
- 站内主要链接口径
只要这三条不统一,百度即使已经深抓,也会继续把预算消耗在 `301` 上。
### 2. 先统一 host再统一页型 URL
优先顺序建议固定成:
1. 先统一 `www / 裸域`
2. 再统一分类页规范 URL
3. 再统一播放页 `canonical / og:url / JSON-LD url`
原因很简单:
- host 级 `301` 影响首页、分类、详情、播放全链路
- 分类页是“从首页到深页”的中间层
- 播放页规范化是深抓之后的放量优化
### 3. 分类页是当前最容易被忽略、但很值得补的一刀
现在最容易跑偏的地方是:
- 看见详情页 canonical 基本正常
- 就误以为老模板规范化已经差不多了
但实际从代码看,分类页 `getCategoryType` 仍然把自己往首页信号上靠。
这会导致:
- 百度更难把分类页当成独立聚合入口
- `category` 命中量放不起来
- 首页承担过多入口压力
所以对老模板来说,分类页规范化不是附属项,而是主项。
### 4. 播放页要看“三件套”,不要只看 canonical
老模板播放页判断是否真正收口,必须一起看:
- canonical
- `og:url`
- JSON-LD `url`
只看 canonical 不够,因为:
- canonical 对了
-`og:url` / 结构化还指详情页
这仍会继续制造播放页信号分裂。
### 5. `404` 已降,不要急着删旧兼容入口
根据目前观察:
- 旧入口兼容链路很可能还在帮我们把一部分历史深链从 `404` 兜成 `301 -> 200`
因此老模板第一阶段更稳的做法仍然是:
- 先统一规范输出
- 先压非必要 `301`
- 暂不激进删除旧 deep link 兼容
否则很容易把当前已止血的部分重新打回 `404`
## 五、对前面文档链的使用说明
`1271``1274`
- 日志观察部分仍然可继续用
- 但代码映射要以本文件为准重新理解
`1275``1285`
- 凡是明显把 `videoGpt1` 当成老模板主入口的段落
- 都不应继续作为老模板第一实施主线
更稳的接手方式是:
1. 先看 [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
2. 再看本文件
3. 再回头使用 `1271 / 1273 / 1274` 的日志现象结论
4. 主 Codex 后续如果要继续写实施方案,应只围绕 `1001-1005` 的 5 套模板
## 六、下一步最推荐的检查顺序
如果主 Codex 现在继续老模板 SEO 分析,建议只按下面顺序:
1. 检查 5 套模板里 `robots.txt / sitemap_index.xml / sitemap-main.xml / rss/baidu.xml` 的 host 输出是否一致
2. 检查 5 套模板里 `getCategoryType.html``og:url / CollectionPage.url` 是否都该改成分类真实 URL
3. 检查 5 套模板里 `getVideoPlayUrl.html``og:url / JSON-LD url` 是否都应改成播放页真实 URL
4. 再结合下一轮 `baiduspider` 日志看:
- `/|301` 是否继续下降
- `home|301` 是否继续下降
- `detail|301 / play|301` 是否开始分离下降
- `category` 命中是否开始上来
## 一句话交接
> 老模板这条线当前真正要优化的不是 `videoGpt1`,而是 `1001-1005` 这 5 套老模板自身的规范化输出一致性;现阶段最值得盯的是 host 口径、分类页 URL 信号、播放页三件套,以及它们对 `301` 损耗的影响。

View File

@@ -0,0 +1,344 @@
# 1287-SEONexus 老模板站群 7 天 SEO 冲量执行方案 - 2026-04-17
## 目标
这份文档面向当前这一批老模板站群域名。
目标不是空泛地说“做 SEO”而是把目标明确成
- 每天都能看到日志层进步
- 7 天内让这批域名的百度抓取质量明显提升
- 让部分核心词、站名词、内容词开始更稳定地上首页或靠近首页
先说结论:
> 可以把这批老模板域名往“7 天明显进步”方向推进,但不能把“全部域名 7 天稳定上首页”当成可承诺结果。
更现实也更专业的目标是:
1. 7 天内让抓取预算浪费显著下降
2. 7 天内让首页、分类页、详情页、播放页的规范化明显收口
3. 7 天内让深抓样本域名出现更稳定的 `detail|200 / play|200`
4. 7 天内争取让一批品牌词、长尾词、影片词出现首页曝光
## 一、当前真实阶段判断
结合现有日志,这批老模板站群不是“百度还没来”。
当前更像是:
- 百度已经进首页
- 部分站已经能碰到详情页和播放页
- 但预算仍被大量 `301 / 404 / 444 / 错误入口` 消耗
所以这批域名要上量,不是先去幻想“大改版马上起飞”,而是先做这 3 件事:
1. 把百度已经来的流量先接稳
2. 把百度已经抓到的入口变得更直达
3. 把错误入口和重复规范化损耗压下去
## 二、先把最终目标拆成 3 类
### 1. 基础目标
这是所有域名都必须追的:
- 首页尽量直达 `200`
- `robots / sitemap / rss / canonical` 统一
- `www / 裸域` 只留一个规范口径
### 2. 放量目标
这是已有深抓信号的域名优先追的:
- `detail|301`
- `play|301`
- `detail|200`
- `play|200`
### 3. 排名目标
这是结果层,不是第一天就能硬造出来的:
- 站名词更稳定进入首页
- 长尾片名词开始拿到首页曝光
- 分类聚合词开始从无到有
## 三、当前域名应分 3 组推进
### A 组:深抓已成立,优先保放量
当前代表:
- `yagyjt.com`
补充候选:
-`detail|200`
-`play|200`
- 同时又有明显 `detail|301 / play|301` 的域名
这一组的核心目标不是“让百度来”,而是:
- 让已经来的百度少跳转
- 让详情页、播放页变成更直接的收录入口
### B 组:首页已起,但规范化没收口
当前代表:
- `www.ningxiaowei.com`
- `www.ap-hulan.com`
- `haotianhaiyuan.com / www.haotianhaiyuan.com`
- `hymdrz.com / www.hymdrz.com`
- `sctyjz.com / www.sctyjz.com`
这一组的目标是:
- 首页更直达
- 分类页更独立
- host 更统一
### C 组:错误入口吞预算,先止损
当前代表:
- `qf123.net`
这一组先不谈“上首页来量”,而是先谈:
- 停止错误入口吞预算
- 让百度重新把注意力放回真实内容页
## 四、每天要看的不是“感觉”,而是这 8 个指标
后续每天复盘都建议固定只看下面 8 项:
1. `home|200`
2. `home|301`
3. `category|200`
4. `detail|200`
5. `detail|301`
6. `play|200`
7. `play|301`
8. `other|404`
外加两个附加观察:
- `/|301`
- `www / 裸域` 是否双命中
## 五、7 天节奏建议
### Day 1先统一目标域名和样本域名
当天必须做完:
- 从当前几十个域名里,先挑出 10 个重点域名
- 其中至少:
- 2 个 A 组
- 5 个 B 组
- 3 个 C 组
当天验收:
- 每个重点域名都要有日志基线
- 每个重点域名都要标记所属模板
- 每个重点域名都要明确当前规范 host
如果 Day 1 连这些都没有定死,后面 6 天只会越做越乱。
### Day 2先压首页层损耗
核心目标:
- 首页 `301` 明显下降
- `/|301` 明显下降
重点检查:
- `www / 非 www`
- `http / https`
- 模板 head 输出
- sitemap、rss、footer 暴露入口是否统一到同一 host
当天验收:
- 重点域名首页规范地址统一
- 非规范首页跳转链减少
### Day 3修分类页规范化
当前老模板很值得优先补的一刀,就是分类页。
核心目标:
- `category|200` 开始增加
- 分类页不再把自己输出成首页信号
重点检查:
- `getCategoryType.html`
- `og:url`
- `CollectionPage.url`
- Breadcrumb 与页面主 URL 是否一致
当天验收:
- 分类页 URL 信号收口
- 分类页开始具备独立聚合页身份
### Day 4修详情页和播放页规范信号
核心目标:
- `detail|301`
- `play|301`
重点检查:
- `getVideoInfo.html`
- `getVideoPlayUrl.html`
- canonical
- `og:url`
- JSON-LD `url`
当天验收:
- 播放页不再只靠 canonical 单点收口
- 播放页三件套开始一致
### Day 5清错误入口和历史噪音
核心目标:
- `other|404`
- 百度不再把预算花在垃圾入口上
重点对象:
- `webuploader`
- `upload`
- `fileupload`
- `admin.php`
- `zb_system`
- `showchengshi.asp`
- 各类历史模板残留路径
当天验收:
- 高频错误路径数量收缩
- `qf123.net` 这类域名开始止血
### Day 6做站内放量
这是前 5 天基础收口后,才值得做的放量动作。
核心目标:
- 让百度更容易从首页进入分类页、详情页、播放页
重点动作:
- 首页聚合入口更清晰
- footer 与页面底部的 sitemap 暴露更一致
- 核心分类入口更稳定
- 详情页到播放页的站内链更直接
当天验收:
- `category|200``detail|200``play|200` 至少有部分域名开始上升
### Day 7复盘与冲首页观察
第 7 天不能只看日志,要同时看两层结果:
1. 百度蜘蛛日志结果
2. 百度搜索结果页表现
要重点看:
- 站名词是否更稳定首页
- 片名长尾词是否开始首页曝光
- 分类词是否开始被百度识别
## 六、什么叫“每天有进步”
不是只有“排名上首页”才算进步。
对当前这批老模板域名来说,下面这些都算真实进步:
### 第 1 类:抓取质量进步
- `/|301` 下降
- `home|301` 下降
- `other|404` 下降
### 第 2 类:结构信号进步
- `category|200` 从无到有
- `detail|301` 下降
- `play|301` 下降
### 第 3 类:放量进步
- `detail|200` 增加
- `play|200` 增加
- 同一站点的 `www / 裸域` 分裂减少
### 第 4 类:搜索表现进步
- 品牌词更稳
- 长尾词开始出结果
- 首页与详情页开始分工更清楚
## 七、关于“7 天上首页”的真实预期
这件事必须说实话。
### 可以争取的
7 天内比较有机会看到的是:
- 站名词首页稳定
- 某些长尾片名词首页出现
- 深抓正样本域名的详情页、播放页更容易被看到
### 不该乱承诺的
不应该直接承诺:
- 几十个域名全部首页稳定
- 大量竞争词 7 天全部冲上首页
- 只靠模板修正就立刻爆发
原因不是悲观,而是搜索引擎就不是按“开发日程”线性出结果的。
真正能稳住结果的,是:
- 连续 7 天都在减少损耗
- 连续 7 天都在强化规范化
- 连续 7 天都在提升百度对内容层的识别
## 八、给主 Codex 的执行原则
如果后续主 Codex 要按这条线继续做,建议遵守 5 条:
1. 先做老模板 5 套公共口径统一,不做逐站手工修补
2. 先压 `301 / 404`,再谈“内容放量”
3. 先保 A 组深抓样本,再修 B 组,再止损 C 组
4. 每天都要回看日志,不凭感觉判断 SEO 是否变好
5. 每天最多只推一到两类核心修正,避免同时动太多导致无法归因
## 九、当前最值得先推进的 4 个方向
结合现有代码和日志,后续第一批最值得推进的是:
1. 老模板 5 套统一 `www / 裸域 / http / https` 输出口径
2. 老模板 5 套统一 `robots / sitemap / rss / footer` 暴露口径
3. 老模板 5 套修正分类页 `getCategoryType.html` 的主 URL 信号
4. 老模板 5 套修正播放页 `canonical / og:url / JSON-LD url` 三件套一致性
## 一句话交接
> 这批老模板站群如果想 7 天内见到量不是先赌“全部域名直接上首页”而是先把百度已经来的抓取预算接稳、把规范化跳转压下去、把分类与深页信号做直达只要这条线每天都在进步7 天后就有机会从“有抓取”走到“有首页曝光、有内容来量”。

View File

@@ -0,0 +1,259 @@
# 1288-SEONexus 老模板站群 Day1 重点域名基线板 - 2026-04-17
## 目的
这份文档用于承接老模板站群 7 天冲量方案的 Day 1。
作用只有一个:
- 先把当前真正值得盯的重点域名池定下来
如果这一步不先做,后面每天的“继续”就会变成:
- 一会儿看这个域名
- 一会儿看那个域名
- 最后没有任何一组样本能连续跟踪 7 天
## 一、当前选样原则
这次重点域名不按“拍脑袋喜欢哪个域名”选,而按 4 个标准来定:
1. 最近 run 里确实被蜘蛛命中过
2. 尽量覆盖不同问题类型
3. 优先覆盖已经出现百度信号的域名
4. 同时保留少量明显止损样本
## 二、Day 1 第一版重点域名池
当前先定 12 个,够用但不至于太散。
### A 组:深抓放量样本
1. `yagyjt.com`
2. `www.ningxiaowei.com`
3. `ningxiaowei.com`
这组意义:
- 已有较强百度信号
- 适合观察深抓、host 规范化、内容层 URL 收口
### B 组:首页与规范化样本
4. `sctyjz.com`
5. `www.sctyjz.com`
6. `www.ap-hulan.com`
7. `hymdrz.com`
8. `www.hymdrz.com`
这组意义:
- 首页层有信号
-`www / 裸域`、首页入口、路径规范化仍值得重点盯
### C 组:扩展观察样本
9. `ctshuhua.com`
10. `hygfbw.com`
11. `syzhzs.com`
12. `yahuawang88.com`
这组意义:
- 已在最近 run 中被蜘蛛命中
- 适合观察这批“非头部样本域名”是否也能随着老模板公共修正一起改善
## 三、暂时不放进第一批重点池的域名
下面这些域名当前也在 run 中出现过,但 Day 1 先不作为主战样本:
- `tvwallmountreview.com`
- `www.tvwallmountreview.com`
- `xcgruister.com`
- `www.xcgruister.com`
- `zsxd2020.com`
- `www.zsxd2020.com`
- `qingyejianshe.com`
- `ruantishafa.com`
- `yqshu8.com`
原因不是它们不重要,而是:
- 目前样本量还偏少
- 或者当前日志里更多是 `robots / 444 / 低频 home`
- 先放在第二观察圈更稳
## 四、当前每组域名最主要的问题
### `yagyjt.com`
定位:
- 当前第一优先级深抓样本
主问题:
- 深页 `301` 仍高
- 内容入口预算被跳转吃掉
主目标:
- 保住 `detail|200 / play|200`
-`detail|301 / play|301`
### `ningxiaowei.com / www.ningxiaowei.com`
定位:
- 首页已起量
- host 与内容路径规范化样本
主问题:
- `www / 裸域` 分裂
- `other|301` 明显
主目标:
- 统一规范 host
- 减少非首页入口跳转
### `sctyjz.com / www.sctyjz.com`
定位:
- 首页层和错误入口混合样本
主问题:
- 首页不够直达
- 噪音路径还在抢预算
主目标:
-`/|301`
- 压错误入口
### `www.ap-hulan.com`
定位:
- 首页层可观测样本
主问题:
- 首页仍有规范化损耗
主目标:
- 让首页尽量直达最终 `200`
### `hymdrz.com / www.hymdrz.com`
定位:
- host 规范收敛样本
主问题:
- 双 host 需要明确哪边是规范主域
主目标:
- 收敛 `www / 裸域`
### `ctshuhua.com / hygfbw.com / syzhzs.com / yahuawang88.com`
定位:
- 扩展样本池
主问题:
- 当前量级不高
- 但已经被百度命中,值得观察是否能一起被老模板公共优化带起来
主目标:
- 看公共修正是否能同步抬升首页与分类信号
## 五、Day 1 要固定的 10 个观察指标
从今天开始,这 12 个域名每天都尽量只看下面 10 项:
1. `home|200`
2. `home|301`
3. `robots`
4. `sitemap`
5. `category|200`
6. `detail|200`
7. `detail|301`
8. `play|200`
9. `play|301`
10. `other|404`
附加观察:
- `/|301`
- `www / 裸域` 是否双命中
- 是否开始出现更多真实内容路径
## 六、结合百度搜索引擎的优化方向
这里说的“结合百度搜索引擎”,不是去做空泛口号,而是结合当前百度真实抓取行为来优化:
### 1. 百度已经在试探入口层
从现有日志看:
- 首页
- `robots.txt`
- `sitemap`
- 旧内容路径
这些都已经被实际访问。
这说明当前最重要的是:
- 给百度一个更稳定、更低损耗的最终入口
### 2. 百度对聚合页和深页的判断,强依赖 URL 信号是否一致
所以老模板当前要特别重视:
- canonical
- `og:url`
- JSON-LD `url`
- sitemap 中的 URL
- 站内真实跳转 URL
这些信号只要互相打架,百度就更容易:
- 先抓到
- 再跳转
- 再犹豫是否把这个页当成最终页
### 3. 百度比“页面好不好看”更先看“入口稳不稳”
对这批老模板域名来说,短期内真正影响来量的优先级更像:
1. 能不能稳定抓到
2. 抓到后是不是直达 `200`
3. 分类页和深页是不是能被识别成独立页型
4. 之后才是内容质量和词覆盖继续放大
## 七、Day 1 之后的直接动作
从这份基线板往下走,后面最值得先推进的顺序是:
1. 先修 12 个重点域名对应的老模板公共规范口径
2. 优先盯 `A 组 + B 组`
3. 每天记录一次是否出现:
- `home|301` 下降
- `category|200` 上升
- `detail|301 / play|301` 下降
- `detail|200 / play|200` 上升
## 一句话交接
> 这 12 个域名就是当前老模板站群 7 天冲量的 Day 1 样本池,后面每天的 SEO 推进、日志复盘、效果判断,都应该优先围绕这批域名来做,而不是继续散点式看全站群。

View File

@@ -0,0 +1,262 @@
# 1289-SEONexus 老模板第一批 SEO 高收益修正清单 - 2026-04-17
## 目的
这份文档只回答一个问题:
- 老模板 5 套里,第一批最值得先改、而且最可能在 7 天内看到收益的 SEO 点,到底是什么
这里不再泛泛而谈,而是直接基于代码共性给出优先级。
适用范围只限:
- `1001 = videoDadi`
- `1002 = videoDingZhu`
- `1003 = videoBoKu`
- `1004 = videoLaoNiu`
- `1005 = videoNuNu`
## 总判断
当前老模板站群如果想在短期内更快看到百度放量,第一批最值得动的不是视觉结构,而是下面 3 条公共信号链:
1. 分类页主 URL 信号
2. 播放页主 URL 信号
3. sitemap host 口径
这 3 条之所以优先级最高,是因为它们同时影响:
- 百度是否把页面识别成独立页型
- 百度是否先抓到再跳转
- 百度是否持续把预算浪费在规范化上
## 一、第一优先级:修分类页主 URL 信号
### 当前问题
5 套老模板的 `getCategoryType.html` 当前都存在同样的问题:
- `og:url` 指向首页
- `CollectionPage.url` 指向首页
-`BreadcrumbList` 却带分类真实 URL
这会形成一个非常糟糕的混合信号:
- 页面内容是分类页
- 页面标题和 H1 也是分类页
- 但页面主 URL 信号又像首页
### 直接影响
这会削弱百度对分类页的判断,典型影响包括:
- 分类页不容易被识别成独立聚合页
- `category|200` 起量慢
- 首页承担过多聚合入口角色
- 首页与分类页之间可能互相稀释
### 受影响文件
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
以及对应的结构化数据位置:
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:46)
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:46)
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:46)
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:46)
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:46)
### 建议修正方向
统一原则:
- 分类页的 `og:url` 应指向当前分类页真实 URL
- `CollectionPage.url` 应指向当前分类页真实 URL
- 最好补上分类页 canonical进一步收口
### 预期收益
这条修正最容易带来的短期收益是:
- `category|200` 更容易开始出现
- 分类页独立识别增强
- 首页不再过度承载所有聚合信号
## 二、第二优先级:修播放页三件套一致性
### 当前问题
5 套老模板的 `getVideoPlayUrl.html` 当前共同表现是:
- canonical 指向播放页
-`og:url` 指向详情页
- JSON-LD 里的 `url` 也指向详情页
这是一种非常典型的“半收口”状态。
### 直接影响
这会导致播放页在百度看来信号分裂:
- 页面本身是播放页
- canonical 说“我是播放页”
-`og:url` 和结构化又在说“我是详情页”
这种信号分裂最容易造成:
- `play|301` 长期偏高
- 播放页不容易稳定成为最终页
- 详情页和播放页之间相互争夺规范身份
### 受影响文件
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:41)
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:41)
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:41)
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:41)
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:41)
canonical 位置:
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:54)
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:55)
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:55)
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:55)
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:55)
JSON-LD `url` 位置:
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:68)
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:69)
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:69)
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:70)
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:70)
### 建议修正方向
统一原则:
- 播放页 canonical、`og:url`、JSON-LD `url` 三者全部指向播放页真实 URL
### 预期收益
这条修正最容易带来的短期收益是:
- `play|301` 更容易下降
- 播放页更容易被百度稳定识别
- 深抓样本域名更容易把播放页转成有效入口
## 三、第三优先级:统一 sitemap host 口径
### 当前问题
5 套老模板当前共同特征是:
- `robots.txt` 指向裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
-`sitemap-main.xml` 内部却使用 `https://www.{$DomainModel->d_domain}`
更关键的是,`sitemap-main.xml` 里当前还是一组很不合理的输出:
- 既用了 `www`
- 又用了 `novel:category / site:nflurl`
这说明这份 sitemap 文件至少存在“视频站复用小说逻辑”的强疑点。
### 直接影响
这类问题会造成:
- sitemap 自己就在制造 host 级 `301`
- 首页和聚合页入口口径不统一
- 百度从 sitemap 进入的路径可能不是最终规范页
### 受影响文件
- [videoDadi/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
- [videoDingZhu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:4)
- [videoBoKu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:4)
- [videoLaoNiu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:4)
- [videoNuNu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:4)
同时要对照:
- [videoDadi/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
- [videoDingZhu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
- [videoBoKu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
- [videoLaoNiu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
- [videoNuNu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
### 建议修正方向
统一原则:
- sitemap 中的 host 必须与页面主输出一致
- 如果规范主域是裸域,就不要在 sitemap 里继续吐 `www`
- 同时要复核 `sitemap-main.xml` 是否本身就写错了页型逻辑
### 预期收益
这条修正最容易带来的短期收益是:
- `/|301` 和 host 级 `301` 更容易下降
- sitemap 对百度更有正向价值
- 首页和聚合入口更加统一
## 四、为什么这 3 条比别的更优先
因为它们满足 4 个条件:
1. 5 套老模板都有共性问题
2. 不需要逐站后台编辑
3. 改一处能影响一批域名
4. 更容易在 7 天窗口内看到日志变化
相比之下,像下面这些动作当前都应该后置:
- 首页 UI 大改
- 列表模块大重构
- 逐站重写标题库
- 逐站改内容文本
不是这些不重要,而是它们不适合当前“先把百度抓取效率和规范化收口拉起来”的阶段。
## 五、建议的第一批实施顺序
如果主 Codex 现在开始真正落代码,顺序建议固定成:
1. 先修 `getCategoryType.html`
2. 再修 `getVideoPlayUrl.html`
3. 再修 `sitemap-main.xml`
原因:
- 分类页修正最可能带来 `category` 页型收益
- 播放页修正最可能带来 `play|301` 收敛
- sitemap 修正最可能带来首页与 host 规范化收益
## 六、这批修正完成后要看什么
修完后,最值得连续看 3 天到 7 天的指标是:
1. `/|301` 是否下降
2. `home|301` 是否下降
3. `category|200` 是否从无到有或持续增加
4. `detail|301` 是否下降
5. `play|301` 是否下降
6. `detail|200 / play|200` 是否稳住或上升
重点样本优先看:
- `yagyjt.com`
- `ningxiaowei.com / www.ningxiaowei.com`
- `sctyjz.com / www.sctyjz.com`
- `www.ap-hulan.com`
## 一句话结论
> 老模板第一批最该动的,不是页面大改,而是分类页 URL 信号、播放页三件套、sitemap host 口径;这 3 刀是当前最可能在短期内直接减少抓取损耗、提升百度识别效率、并给排名放量创造条件的高收益修正点。

View File

@@ -0,0 +1,152 @@
# 1290-SEONexus 老模板实施安全边界与 GPT 隔离说明 - 2026-04-17
## 目的
这份文档用于明确两件事:
1. 老模板第一批 SEO 修正,具体应该改哪些文件
2. 为什么这些改动可以与 `videoGpt1` 隔离,不会直接误伤 GPT 模板
## 一、当前边界结论
老模板第一批建议改动范围,只限下面 5 套目录:
- `code/app/home/view/videoDadi`
- `code/app/home/view/videoDingZhu`
- `code/app/home/view/videoBoKu`
- `code/app/home/view/videoLaoNiu`
- `code/app/home/view/videoNuNu`
`videoGpt1` 是单独目录:
- `code/app/home/view/videoGpt1`
因此只要后续改动严格限制在老模板 5 套目录内,物理上就不会直接修改到 `videoGpt1` 模板文件。
## 二、第一批建议改动文件清单
每套老模板当前建议只动 4 个文件:
1. `video/getCategoryType.html`
2. `video/getVideoPlayUrl.html`
3. `sitemap/sitemap-main.xml`
4. `sitemap/robots.txt`
总计:
- 5 套模板 x 4 个文件 = 20 个文件
这就是当前最稳的第一批实施边界。
## 三、为什么这批改动不会直接碰到 GPT 模板
### 1. 文件不共享
老模板和 GPT 模板虽然文件名类似,但文件路径不同。
例如:
- 老模板:
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:1)
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:1)
- GPT 模板:
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:1)
这不是同一个文件的不同分支,而是完全独立的模板文件。
### 2. GPT 模板当前本身已经有更正确的写法
例如 `videoGpt1` 分类页:
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:14)
当前已经是:
- canonical 指向分类页真实 URL
- `og:url` 指向分类页真实 URL
- `CollectionPage.url` 指向分类页真实 URL
这恰好说明:
- 老模板要修的是自己的旧写法
- 不是去改 GPT 模板的现有逻辑
### 3. GPT 模板播放页也有独立实现
例如:
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:1)
GPT 模板播放页已经接了自己的:
- `seoCopy`
- breadcrumb 构造
- `VideoService` 调用链
因此老模板这次第一批修正,没有必要也不应该去碰 GPT 模板播放页。
## 四、目前真正需要注意的风险,不在模板文件本身
虽然模板文件可隔离,但仍有两类风险需要提醒主 Codex
### 1. 如果去改共享底层服务,就可能波及 GPT
例如这类底层:
- `SiteContext`
- `VideoService`
- 通用 taglib / helper
- 路由层
如果后续修正不是停留在模板输出,而是去改这些共享服务,那就有可能影响 `videoGpt1`
所以当前建议是:
- 第一批先只改模板层
- 不先动共享服务层
### 2. sitemap 问题看起来可能是全模板共性
这次复核时还确认了:
- `videoGpt1/sitemap/sitemap-main.xml` 也有与老模板类似的 `www + novel` 可疑写法
例如:
- [videoGpt1/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/sitemap/sitemap-main.xml:4)
但这不代表这次应该顺手一起改 GPT。
更稳的做法是:
- 先把老模板线独立处理
- GPT 那边单独开任务、单独验证
## 五、第一批实施时的安全规则
主 Codex 如果开始动代码,建议固定遵守下面 5 条:
1. 只改 `videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
2. 第一批只改 `getCategoryType / getVideoPlayUrl / sitemap-main / robots.txt`
3. 不碰 `videoGpt1` 目录
4. 不先碰 `VideoService / SiteContext / router` 这类共享底层
5. 每改完一类文件,就先做老模板样本验证,再决定是否继续
## 六、最稳的实施顺序
从安全性和 SEO 收益一起看,最稳顺序是:
1. 先改 5 套 `getCategoryType.html`
2. 再改 5 套 `getVideoPlayUrl.html`
3. 再改 5 套 `sitemap/sitemap-main.xml`
4. 最后复核 5 套 `robots.txt`
这样做的好处是:
- 改动集中
- 影响面可控
- 每一步都容易归因
## 一句话结论
> 当前老模板第一批 SEO 修正可以和 `videoGpt1` 明确隔离,最安全的落地边界就是只动老模板 5 套目录下那 20 个模板文件;只要不下沉去改共享服务层,就不会直接影响 GPT 模板。

View File

@@ -0,0 +1,321 @@
# 1291-SEONexus 老模板第一批实施任务单与验收矩阵 - 2026-04-17
## 目的
这份文档把当前老模板第一批 SEO 修正,从“分析结论”继续推进到“可直接施工”的层级。
它回答 4 个问题:
1. 具体改哪些文件
2. 每个文件改什么
3. 改完先看哪些域名
4. 怎么判断这批改动是有效还是无效
## 一、第一批实施范围
本批次只处理老模板 5 套:
- `videoDadi`
- `videoDingZhu`
- `videoBoKu`
- `videoLaoNiu`
- `videoNuNu`
只改下面 3 类文件:
1. `video/getCategoryType.html`
2. `video/getVideoPlayUrl.html`
3. `sitemap/sitemap-main.xml`
`robots.txt` 这次先只复核,不作为第一刀主改动。
原因:
- 当前 `robots.txt` 已经统一指向裸域 `sitemap_index.xml`
- 真正更急的矛盾出在分类页、播放页、sitemap-main 的输出口径
## 二、任务 1修分类页 `getCategoryType.html`
### 目标
让分类页从“看起来像首页”变成“明确就是分类页”。
### 当前问题
5 套模板都存在:
- `og:url = https://{$DomainModel->d_domain}`
- `CollectionPage.url = https://{$DomainModel->d_domain}`
对应位置:
- `videoDadi`:
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:48)
- `videoDingZhu`:
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:48)
- `videoBoKu`:
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:48)
- `videoLaoNiu`:
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:48)
- `videoNuNu`:
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:48)
### 建议改法
统一增加一个分类页真实 URL 变量,然后三处统一引用:
1. canonical
2. `og:url`
3. `CollectionPage.url`
建议目标写法参考 `videoGpt1`
- [videoGpt1/getCategoryType.html:14](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:14)
- [videoGpt1/getCategoryType.html:18](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:18)
- [videoGpt1/getCategoryType.html:42](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:42)
### 预期效果
最值得观察的不是“页面能打开”,而是:
- `category|200` 是否开始增加
- 首页和分类页的规范信号是否不再打架
### 重点验收域名
- `ningxiaowei.com / www.ningxiaowei.com`
- `sctyjz.com / www.sctyjz.com`
- `www.ap-hulan.com`
## 三、任务 2修播放页 `getVideoPlayUrl.html`
### 目标
让播放页三件套一致:
- canonical
- `og:url`
- JSON-LD `url`
### 当前问题
5 套模板共同表现是:
- canonical 指向播放页
- `og:url` 指向详情页
- JSON-LD `url` 指向详情页
对应位置:
- `videoDadi`:
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:46)
- [getVideoPlayUrl.html:58](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:58)
- [getVideoPlayUrl.html:71](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:71)
- `videoDingZhu`:
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:46)
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:59)
- [getVideoPlayUrl.html:72](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:72)
- `videoBoKu`:
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:46)
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:59)
- [getVideoPlayUrl.html:72](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:72)
- `videoLaoNiu`:
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:46)
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:59)
- [getVideoPlayUrl.html:73](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:73)
- `videoNuNu`:
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:46)
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:59)
- [getVideoPlayUrl.html:73](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:73)
### 建议改法
统一定义播放页真实 URL并让
1. canonical 指向它
2. `og:url` 指向它
3. JSON-LD `url` 指向它
注意:
- 不要只修 canonical
- 只修 canonical 不足以解决百度对播放页的规范判断
### 预期效果
最值得观察的是:
- `play|301` 是否下降
- `play|200` 是否更稳
### 重点验收域名
- `yagyjt.com`
- `ningxiaowei.com / www.ningxiaowei.com`
## 四、任务 3修 `sitemap-main.xml`
### 目标
让 sitemap 自己不再制造 host 混乱和错误页型。
### 当前问题
5 套模板共同存在:
- 使用 `https://www.{$DomainModel->d_domain}`
- 使用 `novel:category`
- 使用 `site:nflurl`
对应位置:
- `videoDadi`:
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:18)
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:24)
- `videoDingZhu`:
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:4)
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:18)
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:24)
- `videoBoKu`:
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:4)
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:18)
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:24)
- `videoLaoNiu`:
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:4)
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:18)
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:24)
- `videoNuNu`:
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:4)
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:18)
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:24)
### 建议改法
第一批不要求把 sitemap 一次做成最终完美版,但至少要先做到:
1. host 口径与当前模板主输出一致
2. 不再继续输出明显像小说站的路径
3. 首页和主要聚合入口不再强制走 `www`
如果主 Codex 发现 `sitemap-main.xml` 当前其实线上没有被主路由使用,也不要直接忽略。
因为只要它还可能被 `sitemap_index.xml` 引用或被蜘蛛命中,它就仍然会制造噪音。
### 预期效果
最值得观察的是:
- `/|301` 是否下降
- `home|301` 是否下降
- host 级分裂是否减轻
### 重点验收域名
- `sctyjz.com / www.sctyjz.com`
- `www.ap-hulan.com`
- `hymdrz.com / www.hymdrz.com`
## 五、本批次先不主改 `robots.txt`
### 当前结论
5 套 `robots.txt` 当前至少有两点是统一的:
- 允许主搜索爬虫
- sitemap 已指向裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
位置:
- [videoDadi/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
- [videoDingZhu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
- [videoBoKu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
- [videoLaoNiu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
- [videoNuNu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
### 当前建议
本批次先不优先修改 `robots.txt`,除非主 Codex 复核时发现:
- `robots.txt` 与真实 sitemap 路由不一致
-`robots.txt` 的 AI 爬虫屏蔽策略影响到了实际搜索引擎主抓取
## 六、推荐实施顺序
最稳顺序:
1. 先改 5 套 `getCategoryType.html`
2. 再改 5 套 `getVideoPlayUrl.html`
3. 最后改 5 套 `sitemap-main.xml`
原因:
- 分类页修正对聚合层收益最大
- 播放页修正对深抓层收益最大
- sitemap 修正对整体 host 规范化收益最大
## 七、实施后验收矩阵
### 第 1 轮:页面级验收
分类页验收:
- 页面能正常打开
- canonical 指向分类页自己
- `og:url` 指向分类页自己
- `CollectionPage.url` 指向分类页自己
播放页验收:
- 页面能正常打开
- canonical 指向播放页自己
- `og:url` 指向播放页自己
- JSON-LD `url` 指向播放页自己
sitemap 验收:
- `sitemap-main.xml` 返回正常
- 输出 host 与页面主输出口径一致
- 不再出现明显小说站路径
### 第 2 轮:日志级验收
实施后连续看 3 天:
1. `/|301` 是否下降
2. `home|301` 是否下降
3. `category|200` 是否增加
4. `play|301` 是否下降
5. `play|200` 是否稳住或增加
### 第 3 轮:搜索表现验收
实施后 3 到 7 天,重点看:
- 站名词是否更稳定
- 分类词是否开始出现首页或前两页曝光
- 片名长尾和播放词是否更容易命中播放页
## 八、失败信号
如果实施后出现下面任一情况,要立刻回看:
1. `404` 突然增加
2. `detail|200 / play|200` 明显掉量
3. `category` 信号没有上升,反而首页抓取下降
4. sitemap 输出开始异常
这通常说明:
- URL 收口写错了
- 页面真实路由和模板输出不一致
- 或者把原本的兼容链路误伤了
## 一句话交接
> 老模板第一批施工,最稳的做法就是先改 15 个文件5 套分类页、5 套播放页、5 套 sitemap-main按“分类页先收口、播放页再收口、sitemap 最后收口”的顺序推进,边改边看重点域名日志,避免一次性大改失去归因。

View File

@@ -0,0 +1,337 @@
# 1292-SEONexus 老模板逐文件改动蓝图 - 2026-04-17
## 目的
这份文档不是再讲“为什么要改”,而是给主 Codex 一个几乎可以直接照着写 patch 的蓝图。
使用方式:
1. 先看 [21-老模板实施安全边界与GPT隔离说明-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md)
2. 再看 [22-老模板第一批实施任务单与验收矩阵-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md)
3. 最后按本文件逐文件落 patch
## 一、分类页 `getCategoryType.html` 改动蓝图
### 适用文件
- `videoDadi/video/getCategoryType.html`
- `videoDingZhu/video/getCategoryType.html`
- `videoBoKu/video/getCategoryType.html`
- `videoLaoNiu/video/getCategoryType.html`
- `videoNuNu/video/getCategoryType.html`
### 当前问题
共同问题:
- `og:url` 指首页
- `CollectionPage.url` 指首页
- 缺 canonical
### 目标状态
分类页 head 里至少统一成:
1. `canonical = 当前分类页真实 URL`
2. `og:url = 当前分类页真实 URL`
3. `CollectionPage.url = 当前分类页真实 URL`
### 最稳参考
直接参考 `videoGpt1` 当前写法:
- [videoGpt1/getCategoryType.html:15](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
- [videoGpt1/getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:19)
- [videoGpt1/getCategoryType.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:46)
### 建议实现结构
`head` block 最前面补一条分类页 canonical
```tpl
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
```
然后把现有:
```tpl
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
```
统一改成:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
```
再把 JSON-LD 里的:
```tpl
"url": "https://{$DomainModel->d_domain}",
```
改成:
```tpl
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
```
### 可顺手补的项
如果改动很顺,也建议补:
```tpl
<meta name="robots" content="index,follow">
```
这不是当前最核心收益点,但与分类页聚合定位是一致的。
### 改后页面级验收
打开任一分类页,确认:
1. 页面源代码出现 canonical
2. canonical 指向分类页自己
3. `og:url` 指向分类页自己
4. JSON-LD `CollectionPage.url` 指向分类页自己
## 二、播放页 `getVideoPlayUrl.html` 改动蓝图
### 适用文件
- `videoDadi/video/getVideoPlayUrl.html`
- `videoDingZhu/video/getVideoPlayUrl.html`
- `videoBoKu/video/getVideoPlayUrl.html`
- `videoLaoNiu/video/getVideoPlayUrl.html`
- `videoNuNu/video/getVideoPlayUrl.html`
### 当前问题
共同问题:
- canonical 指播放页
- `og:url` 指详情页
- JSON-LD `url` 指详情页
### 目标状态
播放页三件套统一:
1. canonical 指播放页自己
2. `og:url` 指播放页自己
3. JSON-LD `url` 指播放页自己
### 最稳参考
参考 `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)
### 建议实现结构
老模板现在已经有 canonical例如
- [videoDadi/getVideoPlayUrl.html:58](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:58)
第一批最稳做法不是大改数据流,而是先把现有 `site:vpurl ...` 结果复用起来。
如果模板表达式可读性允许,直接统一为:
```tpl
{assign name="strPlayCanonicalUrl" value='https://`$DomainModel->d_domain`{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}' /}
```
如果 `assign` 混模板标签不稳,就直接把原地三处替换成同一条 `site:vpurl ...` 写法。
将当前:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl ...}'>
```
改成:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
```
将 JSON-LD 里的:
```tpl
"url": 'https://{$DomainModel->d_domain}{site:vurl ...}',
```
改成:
```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" /}',
```
### 当前第一批的保守策略
这里有一个需要主 Codex 注意的地方:
当前老模板 canonical 写死的是:
- `play_type="default"`
- `play_index="1"`
这并不一定等于当前访问中的真实线路和集数。
所以第一批有两种路线:
#### 路线 A保守收口
目标:
- 先让三件套一致
- 即使先全部收口到默认播放页,也比 detail/play 信号分裂更好
优点:
- 改动小
- 风险低
- 更快看到 `play|301` 收敛
#### 路线 B精确收口
目标:
- canonical / `og:url` / JSON-LD 精确指向当前播放中的真实 `play_type + play_index`
优点:
- 信号最准确
风险:
- 老模板当前 `Request.route` 和数据链未必完全统一
- 更容易把第一批改动做复杂
当前建议:
- 第一批先走路线 A
- 第二批再考虑是否升级到路线 B
### 改后页面级验收
打开任一播放页,确认:
1. canonical 存在
2. `og:url` 与 canonical 一致
3. JSON-LD `url` 与 canonical 一致
## 三、`sitemap-main.xml` 改动蓝图
### 适用文件
- `videoDadi/sitemap/sitemap-main.xml`
- `videoDingZhu/sitemap/sitemap-main.xml`
- `videoBoKu/sitemap/sitemap-main.xml`
- `videoLaoNiu/sitemap/sitemap-main.xml`
- `videoNuNu/sitemap/sitemap-main.xml`
### 当前问题
共同问题:
1. 输出 host 带 `www`
2. 目录明明是视频站,却用了:
- `novel:category`
- `site:nflurl`
### 第一批目标
第一批不追求“一步做出终极 sitemap”先做两件事
1. 不继续输出明显错误的小说站 URL
2. host 口径与当前主模板输出一致
### 建议改法
#### 最保守版本
如果主 Codex 当前对视频站 sitemap 真实结构还没完全确认,第一批可以先把 `sitemap-main.xml` 收缩成最小正确集:
- 首页
- 榜单页
也就是保留:
- [sitemap-main.xml:3-15](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:3)
但把:
- [sitemap-main.xml:17-31](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:17)
这一整段小说站逻辑先移除或注释为待重建。
同时把:
```xml
https://www.{$DomainModel->d_domain}
```
统一改成:
```xml
https://{$DomainModel->d_domain}
```
#### 更积极版本
如果主 Codex 很快确认了视频分类页应走 `site:vciurl` 或其他视频路由,那就直接按视频分类 URL 重建分类 sitemap。
当前我建议第一批先别赌这一步,先走最保守版本更稳。
### 改后页面级验收
访问 `sitemap-main.xml`,确认:
1. 返回正常 XML
2. 没有 `novel`/`nflurl` 这类错误视频站路径
3. host 输出与页面主输出一致
## 四、逐文件施工顺序
建议主 Codex 严格按下面顺序:
1. 五套 `getCategoryType.html`
2. 五套 `getVideoPlayUrl.html`
3. 五套 `sitemap-main.xml`
不要交叉着零散改。
原因:
- 先收聚合页
- 再收播放页
- 最后再收 sitemap
这样每一步的日志变化更容易归因。
## 五、改动后的优先复测域名
### 分类页优先复测
- `ningxiaowei.com`
- `www.ningxiaowei.com`
- `sctyjz.com`
- `www.ap-hulan.com`
### 播放页优先复测
- `yagyjt.com`
- `ningxiaowei.com`
### sitemap 优先复测
- `sctyjz.com`
- `hymdrz.com`
- `www.ap-hulan.com`
## 六、一句话交接
> 主 Codex 如果现在开始动老模板第一批 patch最稳方法就是分类页直接参考 `videoGpt1` 的分类页写法做 URL 收口;播放页先保守统一到同一条 `site:vpurl`sitemap-main 第一批先去掉明显错误的小说逻辑并收口 host。先把信号统一再追求更精细化。

View File

@@ -0,0 +1,190 @@
# 1293-SEONexus 老模板第一批施工索引页 - 2026-04-17
## 目的
这份文档是给主 Codex、后续会话、或人工接手时使用的“一页开工入口”。
它不重复长篇分析,只做三件事:
1. 告诉你先看哪几份文档
2. 告诉你第一批到底改哪 15 个文件
3. 告诉你改完先验哪些域名和哪些指标
## 一、先看这 4 份就够开工
如果现在要正式进入老模板第一批 SEO 实施,只看下面 4 份:
1. [21-老模板实施安全边界与GPT隔离说明-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md)
2. [20-老模板第一批SEO高收益修正清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/20-老模板第一批SEO高收益修正清单-2026-04-17.md)
3. [22-老模板第一批实施任务单与验收矩阵-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md)
4. [23-老模板逐文件改动蓝图-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/23-老模板逐文件改动蓝图-2026-04-17.md)
它们分别解决:
- 改动边界
- 优先级
- 实施顺序与验收方式
- 逐文件改法
## 二、第一批只改这 15 个文件
本批次不扩散,不自由发挥,只改下面 15 个文件。
### 1. 分类页 5 个
- [videoDadi/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:15)
- [videoDingZhu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:15)
- [videoBoKu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:15)
- [videoLaoNiu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:15)
- [videoNuNu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:15)
### 2. 播放页 5 个
- [videoDadi/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:22)
- [videoDingZhu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:22)
- [videoBoKu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:22)
- [videoLaoNiu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:22)
- [videoNuNu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:22)
### 3. sitemap-main 5 个
- [videoDadi/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:1)
- [videoDingZhu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:1)
- [videoBoKu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:1)
- [videoLaoNiu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:1)
- [videoNuNu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:1)
## 三、这 15 个文件分别要做什么
### 分类页 5 个
统一目标:
- 增加 canonical
-`og:url` 从首页改成分类页真实 URL
-`CollectionPage.url` 从首页改成分类页真实 URL
参考模板:
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
### 播放页 5 个
统一目标:
- canonical、`og:url`、JSON-LD `url` 三件套全部统一到播放页 URL
当前策略:
- 第一批先采用保守收口方案
- 不追求一步做到“当前线路当前集数完全精确”
- 先让信号一致,先压 `play|301`
参考模板:
- [videoGpt1/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:113)
### sitemap-main 5 个
统一目标:
- 先把 `www` 口径收掉
- 先把明显错误的 `novel:category / site:nflurl` 逻辑去掉
- 第一批先收缩为最小正确集,不急着一步重建完美视频 sitemap
## 四、推荐施工顺序
施工顺序不要乱,固定按这三段:
1. 先改 5 个分类页
2. 再改 5 个播放页
3. 最后改 5 个 sitemap-main
理由:
- 分类页收益最容易扩散到站群
- 播放页收益最容易体现在深抓
- sitemap 最后改,更方便归因首页与 host 变化
## 五、每一段改完先验什么
### 改完分类页后
先验页面:
- 分类页源代码里有没有 canonical
- canonical 是否是分类页真实 URL
- `og:url` 是否是分类页真实 URL
- `CollectionPage.url` 是否是分类页真实 URL
先验域名:
- `ningxiaowei.com`
- `www.ningxiaowei.com`
- `sctyjz.com`
- `www.ap-hulan.com`
### 改完播放页后
先验页面:
- canonical 是否存在
- `og:url` 是否与 canonical 一致
- JSON-LD `url` 是否与 canonical 一致
先验域名:
- `yagyjt.com`
- `ningxiaowei.com`
### 改完 sitemap-main 后
先验页面:
- XML 是否正常
- host 是否与模板主输出一致
- 是否还残留 `novel`/`nflurl` 逻辑
先验域名:
- `sctyjz.com`
- `hymdrz.com`
- `www.ap-hulan.com`
## 六、日志里优先看这 6 个指标
第一批改完,不要贪多,每天先盯这 6 项:
1. `/|301`
2. `home|301`
3. `category|200`
4. `play|301`
5. `play|200`
6. `other|404`
如果这 6 个指标开始朝对的方向走,说明第一批动作在起作用。
## 七、失败时先查什么
如果改完后日志没改善,或者反而变差,优先回查:
1. 分类页 canonical 是否写错成首页
2. 播放页三件套是否仍然一半详情页一半播放页
3. sitemap-main 是否还在输出错误 host
4. 是否误伤了老模板原本还能承接旧 deep link 的链路
## 八、明确不做的事
第一批不要顺手做下面这些:
- 不改 `videoGpt1`
- 不改共享底层服务
- 不做首页大改版
- 不做逐站后台手工 SEO
- 不做内容文案大规模回灌
不是这些不重要,而是它们不属于当前第一批“高收益、低扩散、易归因”的实施范围。
## 一句话交接
> 如果现在主 Codex 要正式开工,直接从这 15 个文件开始,按“分类页 5 个 -> 播放页 5 个 -> sitemap-main 5 个”的顺序施工,改完立刻按重点域名和 6 个核心日志指标复测,不要扩散到 GPT 模板和共享底层。

View File

@@ -0,0 +1,181 @@
# 1294-SEONexus 老模板分类页 Patch 模板 - 2026-04-17
## 目的
这份文档专门服务第一批 5 个分类页文件。
它不是分析文档,而是一份“主 Codex 可直接照着写 patch”的模板说明。
适用文件:
- `videoDadi/video/getCategoryType.html`
- `videoDingZhu/video/getCategoryType.html`
- `videoBoKu/video/getCategoryType.html`
- `videoLaoNiu/video/getCategoryType.html`
- `videoNuNu/video/getCategoryType.html`
## 一、这 5 个文件当前共同问题
共同点几乎完全一致:
1. 缺少 canonical
2. `og:url` 指向首页
3. `CollectionPage.url` 指向首页
对应当前老模板写法:
```tpl
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
```
以及:
```tpl
"url": "https://{$DomainModel->d_domain}",
```
## 二、目标状态
统一收口成:
1. `meta name="robots" content="index,follow"`
2. canonical 指向当前分类页真实 URL
3. `og:url` 指向当前分类页真实 URL
4. `CollectionPage.url` 指向当前分类页真实 URL
最稳参考来源:
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
## 三、推荐 patch 思路
### 第一步:在 `head` block 顶部补两行
在:
```tpl
{block name="head"}
```
后面直接补:
```tpl
<meta name="robots" content="index,follow">
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
```
### 第二步:替换 `og:url`
把当前:
```tpl
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
```
替换为:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
```
### 第三步:替换 JSON-LD 的 `CollectionPage.url`
把当前:
```tpl
"url": "https://{$DomainModel->d_domain}",
```
替换为:
```tpl
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
```
## 四、推荐的统一替换结果
如果主 Codex 想直接对照最终形态,`head` block 开头应该接近下面这样:
```tpl
{block name="head"}
<meta name="robots" content="index,follow">
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
```
对应 JSON-LD 开头应接近:
```tpl
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
```
## 五、5 个文件的微差异提醒
这 5 个文件里真正需要注意的差异非常少:
### `videoNuNu`
它的 `ranklist` 参数写的是:
```tpl
v_category_en="$Request.route.strParentCategory"
```
不是别的模板常见的:
```tpl
v_parent_category_en="$Request.route.strParentCategory"
```
但这不影响本次 patch因为我们只改
- canonical
- `og:url`
- `CollectionPage.url`
### 其它 4 套
这 4 套在这次 patch 涉及的区域里基本是同构的,可以直接统一处理。
## 六、建议验收方式
每改完 1 个文件就做一次最小验收,不要 5 个全改完才看。
### 页面源代码验收
确认:
1. 有 canonical
2. canonical 指向分类页自己
3. `og:url` 指向分类页自己
4. JSON-LD `CollectionPage.url` 指向分类页自己
### 域名级优先验收
优先看:
- `ningxiaowei.com`
- `www.ningxiaowei.com`
- `sctyjz.com`
- `www.ap-hulan.com`
## 七、验收后的日志观察
改完这 5 个分类页之后,连续看 3 天最值得盯的是:
1. `category|200` 是否开始增加
2. `/|301` 是否继续下降
3. `home|301` 是否继续下降
## 一句话交接
> 老模板第一批最适合先落地的,就是这 5 个分类页 patch它们结构接近、收益集中、风险低而且能最快验证“分类页从首页附属信号变成独立聚合页”这条 SEO 主线是否开始生效。

View File

@@ -0,0 +1,197 @@
# 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}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
{/if}
```
第一批先不要动这段结构。
### 第二步:把 `og:url` 改成和 canonical 一致
把当前:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
```
统一替换为:
```tpl
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
```
### 第三步:把 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}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
{/if}
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
```
### 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 个播放页先统一收口,深页的百度识别成本就会明显下降。

View File

@@ -0,0 +1,214 @@
# 1296-SEONexus 老模板 Sitemap Patch 模板 - 2026-04-17
## 目的
这份文档专门服务第一批 5 个 `sitemap-main.xml` 文件。
适用文件:
- `videoDadi/sitemap/sitemap-main.xml`
- `videoDingZhu/sitemap/sitemap-main.xml`
- `videoBoKu/sitemap/sitemap-main.xml`
- `videoLaoNiu/sitemap/sitemap-main.xml`
- `videoNuNu/sitemap/sitemap-main.xml`
它的目标不是一步做成终极 sitemap而是给主 Codex 一份“先止损、先收口”的 patch 模板。
## 一、这 5 个文件当前共同问题
5 套文件当前完全同构,问题也完全一致:
1. host 使用 `https://www.{$DomainModel->d_domain}`
2. 页面逻辑明显像小说站:
- `novel:category`
- `novel:sort`
- `novel:status`
- `site:nflurl`
这意味着当前 `sitemap-main.xml` 至少存在两层问题:
- host 口径和页面主输出不一致
- 页型逻辑本身很可能就不属于视频站
## 二、为什么第一批不建议“直接重建完整视频 sitemap”
因为第一批当前更重要的是:
- 先停止输出错误信号
- 先停止 sitemap 自己制造 `www` 级跳转
如果现在就直接重建完整视频 sitemap会立刻引入这些风险
- 需要重新确认视频分类页、榜单页、详情页到底要进哪些
- 需要确认对应模板是否都已有稳定最终 URL
- 需要确认分页和去重策略
这会让第一批从“快速止损”变成“大重构”。
## 三、第一批最稳策略
### 策略名:最小正确集
第一批建议把 `sitemap-main.xml` 收缩成只保留:
1. 首页
2. 榜单首页
同时完成两件事:
- 去掉 `www`
- 删除整段明显错误的小说站逻辑
## 四、为什么这个策略是当前最稳的
因为现在 `robots.txt` 已经统一指向:
```txt
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml
```
也就是说:
- `robots.txt` 已经在告诉蜘蛛“请走裸域 sitemap”
`sitemap-main.xml` 还在吐:
```xml
https://www.{$DomainModel->d_domain}
```
这本身就在制造冲突。
所以第一批先做:
- `robots.txt` 继续保持不动
- `sitemap-main.xml` 收口到与它一致
这是最容易立刻减少内部冲突的一刀。
## 五、推荐 patch 思路
### 当前错误版本的典型结构
当前文件大致是:
```xml
<url>
<loc>https://www.{$DomainModel->d_domain}/</loc>
...
</url>
<url>
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
...
</url>
{novel:category ...}
{novel:sort ...}
{novel:status ...}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nflurl ... /}</loc>
...
</url>
{/novel:status}
{/novel:sort}
{/novel:category}
```
### 第一批建议改成
保留首页和榜单页,但去掉 `www`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://{$DomainModel->d_domain}/</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</urlset>
```
## 六、推荐 patch 结果的优点
这个“最小正确集”版本有 4 个优点:
1. 不再输出明显错误的小说站路径
2. 不再继续输出 `www`
3. 不需要先设计视频分类 sitemap 结构
4. 最容易快速验证是否减少 `/|301` 和 host 级冲突
## 七、当前不建议在第一批做的事
下面这些更适合第二批:
- 把视频分类页全部灌进 `sitemap-main.xml`
- 把详情页或播放页直接灌进 `sitemap-main.xml`
-`sitemap-main.xml` 里处理复杂分页
- 重新设计多 sitemap 分片策略
不是这些没价值,而是它们更适合在第一批止损之后做。
## 八、和 `robots.txt` 的关系
当前 5 套 `robots.txt` 的最后一行已经统一是:
```txt
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml
```
因此第一批 patch 的原则是:
-`sitemap-main.xml``robots.txt` 靠齐
- 而不是反过来去改 `robots.txt`
这也是为什么当前建议:
- `robots.txt` 暂不主改
- 主改 `sitemap-main.xml`
## 九、建议验收方式
每改完 1 个 `sitemap-main.xml`,先做最小验收。
### 页面源代码验收
确认:
1. XML 可以正常访问
2. 首页 `<loc>` 是裸域,不是 `www`
3. 榜单页 `<loc>` 是裸域,不是 `www`
4. 文件里不再出现:
- `novel:category`
- `novel:sort`
- `novel:status`
- `site:nflurl`
### 域名级优先验收
优先看:
- `sctyjz.com`
- `www.ap-hulan.com`
- `hymdrz.com`
## 十、验收后的日志观察
改完这 5 个 sitemap 之后,连续看 3 天最值得盯的是:
1. `/|301` 是否下降
2. `home|301` 是否下降
3. host 分裂是否开始减轻
## 十一、一句话交接
> 老模板第一批 sitemap patch 的核心不是“马上做大做全”,而是先让 sitemap 不再输出明显错误的小说站路径,不再自带 `www` 级冲突;只要先把 sitemap-main 收成最小正确集,就已经是在给百度减损。

View File

@@ -0,0 +1,246 @@
# 1297-SEONexus 老模板第一批施工总表 - 2026-04-17
## 目的
这份文档是老模板第一批 SEO 实施的最终总表。
它把前面的:
- [24-老模板第一批施工索引页-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/24-老模板第一批施工索引页-2026-04-17.md)
- [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md)
- [26-老模板播放页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md)
- [27-老模板SitemapPatch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md)
压缩成一张主 Codex 可以直接照着执行的表。
## 一、实施边界
这次只改老模板 5 套:
- `videoDadi`
- `videoDingZhu`
- `videoBoKu`
- `videoLaoNiu`
- `videoNuNu`
不碰:
- `videoGpt1`
- `VideoService`
- `SiteContext`
- 路由层
## 二、第一批总任务
总共 15 个文件,分 3 组:
1. 分类页 5 个
2. 播放页 5 个
3. sitemap-main 5 个
推荐施工顺序固定为:
1. 分类页
2. 播放页
3. sitemap-main
## 三、逐组施工总表
### A 组:分类页 5 个
#### 文件
- [videoDadi/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:15)
- [videoDingZhu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:15)
- [videoBoKu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:15)
- [videoLaoNiu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:15)
- [videoNuNu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:15)
#### 统一改动
- 增加 `meta name="robots" content="index,follow"`
- 增加 canonical
-`og:url` 改成分类页真实 URL
- 把 JSON-LD `CollectionPage.url` 改成分类页真实 URL
#### 参考模板
- [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md)
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
#### 改后先验
- `ningxiaowei.com`
- `www.ningxiaowei.com`
- `sctyjz.com`
- `www.ap-hulan.com`
#### 预期日志信号
- `category|200` 上升
- `/|301` 下降
- `home|301` 下降
### B 组:播放页 5 个
#### 文件
- [videoDadi/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:22)
- [videoDingZhu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:22)
- [videoBoKu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:22)
- [videoLaoNiu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:22)
- [videoNuNu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:22)
#### 统一改动
- 保留现有 canonical 结构
-`og:url` 改成与 canonical 一致
- 把 JSON-LD `url` 改成与 canonical 一致
#### 当前策略
- 第一批采用保守收口
- 统一到当前已有的默认播放页 `site:vpurl`
- 不先做“当前线路当前集数”精确化
#### 参考模板
- [26-老模板播放页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md)
- [videoGpt1/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:113)
#### 改后先验
- `yagyjt.com`
- `ningxiaowei.com`
#### 预期日志信号
- `play|301` 下降
- `play|200` 更稳
### C 组sitemap-main 5 个
#### 文件
- [videoDadi/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:1)
- [videoDingZhu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:1)
- [videoBoKu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:1)
- [videoLaoNiu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:1)
- [videoNuNu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:1)
#### 统一改动
- 去掉 `www`
- 删除明显错误的小说站逻辑:
- `novel:category`
- `novel:sort`
- `novel:status`
- `site:nflurl`
- 第一批先收缩成“最小正确集”:
- 首页
- 榜单首页
#### 为什么先这样做
- `robots.txt` 当前已经统一指向裸域 `sitemap_index.xml`
- 先让 `sitemap-main.xml` 和它一致
- 先停止 sitemap 自己制造错误信号
#### 参考模板
- [27-老模板SitemapPatch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md)
#### 改后先验
- `sctyjz.com`
- `www.ap-hulan.com`
- `hymdrz.com`
#### 预期日志信号
- `/|301` 下降
- `home|301` 下降
- host 分裂减轻
## 四、逐步验收顺序
不要 15 个文件一次全改完再看。
更稳的节奏是:
### 第 1 步:先落分类页 5 个
先验源码:
- canonical 是否存在
- `og:url` 是否等于分类页 URL
- `CollectionPage.url` 是否等于分类页 URL
再看日志:
- `category|200`
- `/|301`
- `home|301`
### 第 2 步:再落播放页 5 个
先验源码:
- canonical 是否存在
- `og:url` 是否和 canonical 一致
- JSON-LD `url` 是否和 canonical 一致
再看日志:
- `play|301`
- `play|200`
### 第 3 步:最后落 sitemap-main 5 个
先验源码:
- XML 是否可正常访问
- 是否还有 `novel`/`nflurl`
- host 是否已经去掉 `www`
再看日志:
- `/|301`
- `home|301`
- host 分裂
## 五、6 个核心日志指标
第一批实施后,每天优先只看这 6 个:
1. `/|301`
2. `home|301`
3. `category|200`
4. `play|301`
5. `play|200`
6. `other|404`
## 六、失败时优先回查
如果改完后没有改善,或者出现倒退,先看:
1. 分类页 canonical 是否写错
2. 播放页三件套是否还没统一
3. sitemap 是否仍在输出错误 host
4. 是否误伤旧 deep link 的承接能力
## 七、建议主 Codex 的最小执行方式
如果主 Codex 现在要正式开工,最小合理动作是:
1. 先提交分类页 5 个 patch
2. 验证
3. 再提交播放页 5 个 patch
4. 验证
5. 再提交 sitemap-main 5 个 patch
不要把 15 个文件混成一笔难以归因的大改。
## 一句话交接
> 老模板第一批 SEO 落地,现在最稳的执行方式就是按这张总表分三段施工:先分类页、再播放页、最后 sitemap-main每一段都先看源码、再看重点域名、再看 6 个核心日志指标,始终保持只改老模板 5 套,不扩散到 GPT 模板和共享底层。

View File

@@ -0,0 +1,224 @@
# 1298-SEONexus 老模板第一批提交节奏建议 - 2026-04-17
## 目的
这份文档只解决一个实际问题:
- 主 Codex 如果要正式开始落老模板第一批 SEO patch应该怎么分提交、怎么分复测才最稳
它不再补新的改动点,而是把现有 15 个目标文件拆成可执行节奏。
## 一、总原则
这批改动最怕的不是“没想法”,而是:
- 一次改太多
- 改完看不出哪一刀起作用
- 如果效果不对,也不知道该回退哪一组
所以第一批一定要遵守:
1. 分 3 次提交
2. 每次提交只改一类文件
3. 每次提交后都先看源码,再看重点域名,再看日志
## 二、推荐提交拆分
### Commit 1分类页 5 个
建议范围:
- `videoDadi/video/getCategoryType.html`
- `videoDingZhu/video/getCategoryType.html`
- `videoBoKu/video/getCategoryType.html`
- `videoLaoNiu/video/getCategoryType.html`
- `videoNuNu/video/getCategoryType.html`
建议提交信息风格:
- `align legacy category page canonical and url signals`
这一笔的目标很单纯:
- 先把分类页从“像首页”改成“就是分类页”
#### 提交后先验
先验页面源代码:
- canonical 是否存在
- `og:url` 是否等于分类页 URL
- `CollectionPage.url` 是否等于分类页 URL
再验重点域名:
- `ningxiaowei.com`
- `www.ningxiaowei.com`
- `sctyjz.com`
- `www.ap-hulan.com`
再看日志:
- `category|200`
- `/|301`
- `home|301`
### Commit 2播放页 5 个
建议范围:
- `videoDadi/video/getVideoPlayUrl.html`
- `videoDingZhu/video/getVideoPlayUrl.html`
- `videoBoKu/video/getVideoPlayUrl.html`
- `videoLaoNiu/video/getVideoPlayUrl.html`
- `videoNuNu/video/getVideoPlayUrl.html`
建议提交信息风格:
- `align legacy play page canonical og and jsonld urls`
这一笔的目标也很单纯:
- 先把播放页三件套说成同一句话
#### 提交后先验
先验页面源代码:
- canonical 是否存在
- `og:url` 是否与 canonical 一致
- JSON-LD `url` 是否与 canonical 一致
再验重点域名:
- `yagyjt.com`
- `ningxiaowei.com`
再看日志:
- `play|301`
- `play|200`
- `detail|301`
### Commit 3sitemap-main 5 个
建议范围:
- `videoDadi/sitemap/sitemap-main.xml`
- `videoDingZhu/sitemap/sitemap-main.xml`
- `videoBoKu/sitemap/sitemap-main.xml`
- `videoLaoNiu/sitemap/sitemap-main.xml`
- `videoNuNu/sitemap/sitemap-main.xml`
建议提交信息风格:
- `shrink legacy sitemap main to minimal valid set`
这一笔目标:
- 先让 sitemap 不再输出错误小说逻辑
- 先让 sitemap host 跟主输出口径一致
#### 提交后先验
先验 sitemap
- XML 是否正常
- 是否还有 `novel` / `nflurl`
- host 是否还是 `www`
再验重点域名:
- `sctyjz.com`
- `www.ap-hulan.com`
- `hymdrz.com`
再看日志:
- `/|301`
- `home|301`
- host 分裂
## 三、每次提交后都要做的 3 层验证
### 1. 源码层
先看页面源代码,不要先看感觉:
- canonical
- `og:url`
- JSON-LD
- sitemap XML
### 2. 页面层
确认页面能正常打开,不报错,不空白,不走异常跳转。
### 3. 日志层
至少连续看 1 到 3 个窗口:
- 是否向目标方向变化
- 有没有明显副作用
## 四、建议的节奏安排
最稳节奏不是一口气三笔全上,而是:
### 节奏 A保守型
1. 先提 Commit 1
2. 看半天到 1 天
3. 确认分类页无回退
4. 再提 Commit 2
5. 再看半天到 1 天
6. 再提 Commit 3
适合:
- 当前正式服对波动敏感
- 希望每一笔都能清楚归因
### 节奏 B中速型
1. 白天提 Commit 1
2. 晚些时候提 Commit 2
3. 第二天再提 Commit 3
适合:
- 想加快节奏
- 但仍然保留基本归因能力
当前建议优先选:
- 节奏 A
## 五、什么情况要暂停继续提交
如果出现下面任一情况,不要继续往下提下一笔:
1. 页面源代码没有按预期输出
2. 页面打开异常
3. `404` 明显增加
4. `detail|200 / play|200` 明显下降
5. `/|301` 反而明显增加
这时应该先停在当前提交点回看,而不是硬着头皮把下一组也推上去。
## 六、当前最值得固定看的 6 个日志指标
三笔提交都共用这 6 个核心指标:
1. `/|301`
2. `home|301`
3. `category|200`
4. `play|301`
5. `play|200`
6. `other|404`
这 6 个指标已经足够判断第一批是否朝正确方向走。
## 七、一句话交接
> 老模板第一批最稳的提交方式,不是把 15 个文件一把推上去,而是按“分类页 5 个 -> 播放页 5 个 -> sitemap-main 5 个”分 3 笔提交,每笔之后都先做源码、页面、日志三层验证,确认无副作用再推进下一笔。

View File

@@ -0,0 +1,542 @@
# 1299-SEONexus 老模板最新蜘蛛日志实战分析 - 2026-04-17
## 目的
这份文档只服务老模板 `1001-1005` 的 SEO 主线。
目标不是泛泛而谈“蜘蛛有波动”,而是把 `2026-04-17` 当前仓库内最新的 spider workbench 聚合数据,直接翻译成主 Codex 可执行的判断。
明确边界:
- 只看老模板:`videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
- 不把 `videoGpt1` 混进本轮结论
- 当前重点是百度主线,同时兼看 `bytespider / sogou`
---
## 一、数据来源
本轮结论不能只看单个 `latest` 文件,而要分两层理解:
1. 最近一次 push 摘要
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.json`
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.html`
2. 工作台 24h 聚合逻辑
- `code/app/common/helper/DomainSpiderCrawlWorkbenchHelper.php`
- 通过 `buildSummary(...)` 聚合最近窗口内多次 run
这里要特别提醒后续主 Codex
- `latest/spider-crawl.summary.json` 会被 `SeoCollector::saveCrawlLogs()` 每次新 push 直接覆盖
- 它代表“最近一次 push 摘要”
- 不天然等于“最近 24h 全局聚合”
`2026-04-17 20:30` 复核时就已经看到这个现象:
- `latest` 文件只剩一小批最近推送数据
- 但 workbench 24h 聚合后,老模板依然有连续深抓记录
所以本页正文以下结论,统一以 `WorkbenchHelper::buildSummary(..., windowHours=24, selectedBots=baiduspider,bytespider,sogou)` 为准。
---
## 二、当前全局结论
当前这批老模板域名,按 `2026-04-17 20:30` 的 24h 聚合视角,蜘蛛数据呈现出 4 个非常明确的信号:
1. 已经有百度深抓样本
- 不是“完全没抓”
- 已经出现 `detail / play` 命中
2. 入口层仍然偏弱
- `robots_requests = 11`
- `sitemap_requests = 2`
- `category_requests = 1`
3. 当前异常主因不是 5xx
- `500 = 0`
- 主要是 `301 / 403 / 444`
4. 当前最该处理的是“入口质量”和“旧路由信号”
- 不是把老模板误判成 GPT 模板结构问题
工作台聚合概览:
- 总请求:`72`
- 域名数:`14`
- 蜘蛛数:`2`
- 首页请求:`33`
- 分类请求:`1`
- 详情请求:`21`
- 播放请求:`4`
- robots 请求:`11`
- sitemap 请求:`2`
- 状态分布:
- `200 = 34`
- `301 = 24`
- `403 = 6`
- `444 = 8`
- `500 = 0`
这说明当前阶段不是服务整体炸了,而是:
- 百度已经开始进部分深页
- 但分类层和 sitemap 层仍然明显偏弱
- 同时入口层的 `403/444` 还在反复拖累蜘蛛体验
---
## 三、已经确认属于老模板的代表域名
本轮已从正式库 `domain` 表确认以下域名及模板归属:
| 域名 | t_id | 模板 |
| --- | ---: | --- |
| `proenerji.com` | `1001` | `videoDadi` |
| `qf123.net` | `1001` | `videoDadi` |
| `qingyejianshe.com` | `1002` | `videoDingZhu` |
| `tvwallmountreview.com` | `1002` | `videoDingZhu` |
| `yagyjt.com` | `1002` | `videoDingZhu` |
| `ctshuhua.com` | `1003` | `videoBoKu` |
| `ningxiaowei.com` | `1003` | `videoBoKu` |
| `yqshu8.com` | `1004` | `videoLaoNiu` |
| `syzhzs.com` | `1005` | `videoNuNu` |
| `yahuawang88.com` | `1005` | `videoNuNu` |
所以当前 spider workbench 里这批代表站点,确实就是老模板主线,不是 GPT 模板误入。
---
## 四、最关键的 3 条判断
### 1. 百度已经给了 `yagyjt.com` 深抓机会
这是本轮最重要的正向样本。
工作台给出的状态:
- host`yagyjt.com`
- 模板:`1002 / videoDingZhu`
- 总请求:`28`
- 深页请求:`16`
- 详情请求:`12`
- 播放请求:`4`
- 首页请求:`6`
- robots 请求:`3`
- sitemap 请求:`2`
- 分类请求:`1`
说明:
- 百度并不是只停留在首页
- 这个站已经被拉进 detail/play 维度
- 同时入口层也已经开始探测 `robots / sitemap / category`
- 它应该被当成老模板第一优先样板站
但它同时也有明显问题:
- `anomaly_count = 18`
- 深页异常主要是 `301`
- 命中的 URL 形态是:
- `/voddetail/...`
- `/vodplay/...`
这说明百度仍然在消费旧路由资产,当前站点靠 `301` 把蜘蛛导向现行规范地址。
结论:
- 这不是致命故障
- 但会拖慢抓取效率和权重沉淀速度
- 未来 7 天内,这个站最值得持续观察
### 2. 老模板群的真正短板仍然是“分类层没起量”
最新聚合里:
- `category_requests = 1`
- `sitemap_requests = 2`
虽然已经不再是绝对 `0`,但这个量级依然远远弱于深页和首页,所以这比单纯的深页 `301` 更值得重视。
因为它意味着:
- 百度当前对老模板站群的抓取入口仍然偏窄
- 主要仍靠首页或历史旧链接进入
- 分类页还没有形成稳定抓取面
- sitemap 也只是开始露头,还没形成可见收益
这也正好验证了本轮已落地的第一批模板修正方向是对的:
1. 分类页 canonical 修正
2. 分类页 `og:url` 修正
3. 分类页 JSON-LD `url` 修正
4. 播放页 canonical / `og:url` / JSON-LD 对齐
5. sitemap 主输出去掉 `www + novel` 旧噪音
### 2.1 这里还要额外防一个“统计口径误判”
虽然最新 `24h` 聚合里显示:
- `category_requests = 1`
但这条数据不能被机械理解成:
- “蜘蛛完全没有碰过分类页”
原因是:
1. spider workbench 本身不会按 URL 自动识别分类页
2. 它依赖上游推送时已经写好的 `page_type`
3. 当前仓库内 `DomainSpiderCrawlLogSchemaHelper` 只做枚举归一,不做 URL 路径识别
也就是:
- 如果前端 spiderlog-agent 把分类 URL 直接标成了 `other`
- 工作台这里就会继续把它统计成 `other`
- 最终看起来会像“分类始终为 0”
本轮已经在真实 payload 里看到过一条直接证据:
- run:
`20260417/201003_crawl_log_push_f72827`
- host:
`sctyjz.com`
- url:
`/videotype-zong-yi/all-1948-nuo-wei-all/yin-du-yu-page1`
- 当前标记:
`page_type = other`
- bot:
`googlebot`
- status:
`444`
这说明:
- 至少在当前采集链里,分类 URL 被误标成 `other` 是真实存在的
- 所以后续主 Codex 看 `category_requests = 0` 时,必须同时保留一个判断分支:
- 可能是真没抓
- 也可能是上游 page_type 归类口径不完整
不过要注意:
- 在我额外抽查的最近数个 `2026-04-17` run 里
- 暂时还没有找到 `baiduspider / bytespider / sogou` 的分类 URL 被误标成 `other` 的直接样本
所以当前更稳的表达是:
> 老模板分类抓取当前仍然偏弱,而且 `category` 指标本身仍存在口径风险,不能单独作为百度触达面的唯一判断依据。
### 3. `bytespider` 当前不是“没来”,而是“来了但 robots 层体验差”
最新异常里,最高优先级几乎都集中在:
- `qf123.net`
- `www.proenerji.com`
- `www.ctshuhua.com`
- `www.qf123.net`
- `www.qingyejianshe.com`
- `www.syzhzs.com`
- `www.yagyjt.com`
- `www.tvwallmountreview.com`
共同特征:
- URL`/robots.txt`
- bot`bytespider`
- 状态:`403 / 444`
这说明:
- 头条蜘蛛不是没探测
- 它已经反复试图读取入口文件
- 但当前入口层对它不友好
同时,现有老模板 `robots.txt` 模板里只明确放行了:
- `Baiduspider`
- `360Spider`
- `Sogou web spider`
- `Sogou inst spider`
- `YisouSpider`
- `Quarkbot`
- `Googlebot`
没有显式放行 `Bytespider`
结论分两层:
1. 从“百度 7 天冲量”主目标看
- `bytespider` 不是第一优先级
- 不应该压过百度分类/深页主线
2. 从“国内蜘蛛入口完整度”看
- 后续可以单独给老模板 robots 增补 `Bytespider`
- 但前提是先确认线上 `403/444` 是否来自模板输出,还是前端防护层
---
## 五、当前不能误判的点
### 1. 不能把 `301` 一律当致命异常
`yagyjt.com` 为例,百度命中的是:
- `/voddetail/...`
- `/vodplay/...`
这更像是历史收录或历史外链还在发挥作用。
如果当前站点已经把它们稳定 `301` 到规范地址,那么它的问题是:
- 抓取成本高
- 信号绕路
而不是:
- 页面完全打不开
- 老模板彻底不可抓
### 2. 当前没有证据说明老模板普遍 5xx
最新 24h 聚合里:
- `500 = 0`
所以本轮不能把精力浪费在“怀疑后端整体炸了”上。
更应该盯的是:
- 分类抓取为什么还没起来
- sitemap 为什么没有形成可见命中
- 已深抓样板站能不能进一步减少旧路由依赖
### 3. `1270` 不能代替老模板 SEO 主线
`1270` 当前仍然主要是 GPT 模板交接总文档。
老模板这一支继续推进时,应优先参考:
- `1269`
- `1286`
- `1287`
- `1289`
- `1290`
- `1291`
- `1292`
- `1293`
- `1294`
- `1295`
- `1296`
- 本文 `1299`
---
## 六、对主 Codex 最有价值的执行建议
### 优先级 A持续观察并放大 `yagyjt.com`
原因:
- 它已经是百度深抓样板
- 模板归属明确:`1002 / videoDingZhu`
- 最适合作为“老模板 7 天冲量”的核心跟踪站
建议动作:
1. 复核 `yagyjt.com` 当前详情页和播放页规范地址是否稳定
2. 观察旧 `/voddetail``/vodplay` 是否始终 301 到唯一规范 URL
3. 看未来 24-72 小时内,百度是否开始从 `detail/play 301` 转向规范深页 200
### 优先级 B盯分类层起量而不是继续沉迷首页
因为最新数据说明:
- 首页已经有命中
- 深页也不是完全没有
- 但分类层和 sitemap 层仍然显著偏弱
这意味着后续最该看的提升信号是:
1. 是否开始出现 `category_requests > 0`
2. 是否开始有分类页 200 被百度命中
3. 是否由分类页继续向详情页扩散
### 优先级 C把 `robots` 的国内蜘蛛兼容性单独列为副线
这条线不能抢主线,但也不能完全忽略。
建议:
1. 先确认 `403/444` 是前端防护层行为,还是应用层输出问题
2. 如果模板输出可控,再评估是否给老模板 `robots.txt` 增补:
- `User-agent: Bytespider`
- `Allow: /`
3. 即便要改,也应单独开小任务,不要和百度主线混着验
---
## 七、一句话总结
当前老模板 SEO 主线的真实状态是:
> 百度已经开始给个别老模板站深抓机会,但站群整体仍然缺少分类层放量;短期最值得做的是围绕 `yagyjt.com` 这种已深抓样板站压旧路由成本、盯分类抓取起量,而不是把精力继续带偏到 GPT 模板或不存在的 5xx 故障上。
---
## 八、2026-04-17 晚间追加:工作台 page_type 口径补强已落地
在继续复核真实 payload 后,本轮又确认了一个会直接影响判断的问题:
- spider workbench 的统计高度依赖上游推送的 `page_type`
- 如果上游把老模板历史路由打成 `other`
- 工作台就会把真实分类 / 详情 / 播放流量低估掉
### 已确认的真实误标样本
1. 分类页误标
- `/videotype-zong-yi/all-1948-nuo-wei-all/yin-du-yu-page1`
- 原始 `page_type = other`
2. 播放页误标
- `/video-play/ni-tian-zhi-zun-26066-fengchao-137`
- 原始 `page_type = other`
3. 详情页漏算线索
- `www.ningxiaowei.com`
- `/video-info/...`
- 在最近 run 中由 `baiduspider` 命中 `200 / 301`
- 但原始 bucket 仍可能落在 `other`
### 已落地的修正
本轮已在抓取摘要 ingest 阶段增加“路径兜底识别”,仅在上游值为空或为 `other` 时生效:
- 文件:
- [DomainSpiderCrawlLogSchemaHelper.php](/www/wwwroot/VideoSource2/code/app/common/helper/DomainSpiderCrawlLogSchemaHelper.php:1)
- [DomainSpiderCrawlLogHelper.php](/www/wwwroot/VideoSource2/code/app/common/helper/DomainSpiderCrawlLogHelper.php:1)
- 兜底识别范围:
- `videotype / vodtype / fenlei` -> `category`
- `video-info / voddetail / neirong-` -> `detail`
- `video-play / vodplay / bf-` -> `play`
- `robots.txt` -> `robots`
- `sitemap*` -> `sitemap`
- `search / get-index` -> `search`
### 本地复核结果
用真实 run
- `20260417/201003_crawl_log_push_f72827`
重新过 ingest 后,结果已经变为:
1. `/videotype-zong-yi/...` -> `category`
2. `/video-play/...` -> `play`
这说明:
- 当前 workbench 的老模板分类/播放统计,后续会比之前更接近真实情况
- `category=0` 这类结论之后必须结合新 ingest 结果再判断
- 这次修正只影响蜘蛛分析口径,不会直接改动老模板页面输出,也不会直接影响 `videoGpt1` 模板渲染
### 已追加重建 latest 摘要
为了避免 admin2 / workbench 继续读取旧的 `latest` 静态摘要,本轮还额外重建了:
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.json`
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.html`
重建时间:
- `2026-04-17T20:20:54+08:00`
重建后,按最近 `24` 个 run 合并统计得到的页面类型分布为:
- `robots = 281`
- `home = 77`
- `detail = 34`
- `play = 11`
- `category = 4`
- `sitemap = 2`
- `other = 17`
这和修正前相比,至少已经明确证明:
1. 分类页不再是绝对 `0`
2.`video-info / video-play / videotype` family 的流量不再全部沉到底部 `other`
3. 后续再看老模板“百度有没有进分类 / 详情 / 播放”,工作台数据可信度会更高
---
## 九、2026-04-17 20:30 再复核补充
在继续用 `DomainSpiderCrawlWorkbenchHelper::buildSummary(...)` 复核后,当前还要再补 3 条交接级结论。
### 1. 当前正式应以 24h 聚合视角为主,不应以 `latest` 覆盖文件为主
`latest/spider-crawl.summary.json``20:30` 时已经被新的前端 push 覆盖成一份很小的最近样本。
但同一时刻按 workbench 24h 聚合得到的真实视角仍然是:
- 总请求:`72`
- 详情:`21`
- 播放:`4`
- 分类:`1`
- sitemap`2`
- robots`11`
因此后续主 Codex 如果看到:
- `latest` 很小
- 甚至只剩少量 `robots/home`
不要直接判断成:
- 老模板蜘蛛量掉空
- 深页信号消失
更稳的做法是始终回到 24h 聚合视角看趋势。
### 2. `yagyjt.com` 目前仍是第一样板站,但问题已明确集中到入口层
截至 `20:30` 的 host detail
- 总请求:`28`
- 深页请求:`16`
- 异常:`18`
- 状态:
- `200 = 10`
- `301 = 10`
- `444 = 7`
- `403 = 1`
当前最高优先级异常已经非常集中:
- `/robots.txt`
- `/sitemap_index.xml`
- `/videotype/1-dian-ying`
- `/`
也就是说,这个站已经不是“有没有深抓”的问题,而是:
- 已经深抓
- 但入口质量还不够稳
所以后续如果要拿一个站做百度 7 天冲量观察,优先还是盯它。
### 3. `www.ningxiaowei.com` 更适合当“深链承接效率”样本
截至 `20:30` 的 host detail
- 总请求:`8`
- 深页请求:`8`
- 全部都是 `detail`
- 状态:
- `200 = 4`
- `301 = 4`
它的特点不是入口层扩张,而是:
- 百度已经明确在消费 `/video-info/...` 这类当前有效 family
- 但还没有看到首页 / 分类 / sitemap 同步扩张
因此它更适合当:
- 详情页 URL family 正确性观察样本
- 深链 `301 -> 200` 承接效率样本
不适合拿来代替 `yagyjt.com` 做入口层样板。

View File

@@ -0,0 +1,259 @@
# 1300-SEONexus 老模板样板站域名级 SEO 任务单 - 2026-04-17
## 目的
这份文档把当前最值得持续盯的两个老模板样板站,直接拆成域名级任务。
适用对象:
- 主 Codex
- 后续接手老模板 SEO 的人工
- 需要从“站群泛分析”切到“样板站逐项修正”的人
---
## 一、样板站 1`yagyjt.com`
### 基本归属
- 域名:`yagyjt.com`
- 模板:`t_id = 1002`
- 视图目录:`videoDingZhu`
- URL family
- `VIDEO_INFO_URL = 模板7 = /shipin/{slug}-{id}`
- `VIDEO_PLAY_URL = 模板7 = /shipin-play/{slug}-{id}-{line}-{episode}`
- `VIDEO_CATEGORY_URL = 模板7 = /shipinfenlei-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
### 当前蜘蛛状态
基于最新 workbench 明细:
- 总请求:`28`
- 深页请求:`16`
- 深抓比例:`57.1%`
- 页面分布:
- `detail = 12`
- `play = 4`
- `home = 6`
- `robots = 3`
- `sitemap = 2`
- `category = 1`
这说明:
- 百度已经真实进入深页
- 这是当前老模板站群里最值得当样板站的域名
### 当前主要问题
#### 1. 入口层异常比深页跳转更急
最近异常里最高优先级是:
- `/robots.txt => 444`
- `/robots.txt => 403``bytespider`
- `/sitemap_index.xml => 444`
- `/videotype/1-dian-ying => 444`
- `/ => 444`
这里的真实含义是:
- 百度虽然已经能命中深页
- 但首页、分类、robots、sitemap 这一整层入口并不稳定
- 深抓是在“入口不够干净”的前提下硬跑出来的
#### 2. 深页仍然大量消费旧 family
当前百度命中的深页异常主要是:
- `/voddetail/... => 301`
- `/vodplay/... => 301`
这说明:
-`yagyjt.com` 来说,当前配置的主 family 并不是:
- `/voddetail/...`
- `/vodplay/...`
- `/videotype/...`
- 当前规范 family 实际是:
- `/shipin/...`
- `/shipin-play/...`
- `/shipinfenlei-...`
- 百度仍然在消费历史旧 family
- 当前站点靠 301 导向现行规范地址
- 这不是致命错误
- 但会持续消耗抓取预算
#### 3. 当前更该盯的是入口层 `444/403` 是否继续下降
当前 host detail 状态分布已经比较清楚:
- `200 = 10`
- `301 = 10`
- `444 = 7`
- `403 = 1`
这意味着:
- `301` 还是老旧 family 被消费的表现
- 真正拖累入口扩张的,是 `robots / sitemap / 分类 / 首页` 上反复出现的 `444/403`
### 对主 Codex 的直接任务
1. 先排查 `yagyjt.com` 的前端入口层
- `robots.txt`
- `sitemap_index.xml`
- 首页 `/`
- 一级分类 `/videotype/1-dian-ying`
2. 优先确认这些 444 是不是前端 Nginx / WAF / 缓存层造成
3. 确认 `voddetail``vodplay` 到当前规范详情/播放地址的 301 链是否始终唯一、稳定
4. 未来 24-72 小时重点观察:
- 入口层 444 是否下降
- 分类页是否由 `1` 继续往上抬
- 深页 301 是否逐渐被规范深页 200 替代
### 当前补充实测
本轮在当前服务器上直接走公网 HTTP 样本验证时,已看到:
- `http://yagyjt.com/voddetail/shuang-qiang-huang-ying-gu-624 => 444`
这说明:
- `yagyjt.com` 的入口层异常不是纯工作台统计错觉
- 至少在当前外部 HTTP 访问链路上,前端层确实存在直接拦截或异常关闭连接的问题
### 一句话判断
> `yagyjt.com` 不是“没抓起来”,而是“已经抓起来,但入口层很脏”;它适合作为老模板 7 天冲量的头号样板站。
---
## 二、样板站 2`www.ningxiaowei.com`
### 基本归属
- 主域:`ningxiaowei.com`
- 当前抓取 host`www.ningxiaowei.com`
- 模板:`t_id = 1003`
- 视图目录:`videoBoKu`
- URL family
- `VIDEO_INFO_URL = 模板4 = /video-info/{slug}-{id}`
- `VIDEO_PLAY_URL = 模板4 = /video-play/{slug}-{id}-{line}-{episode}`
- `VIDEO_CATEGORY_URL = 模板4 = /videotype-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
### 当前蜘蛛状态
基于最新 workbench 明细:
- 总请求:`8`
- 深页请求:`8`
- 深抓比例:`100%`
- 页面分布:
- `detail = 8`
这说明:
- 这个站当前不是“入口页试探”
- 而是百度已经直接命中当前配置的详情 family
### 当前主要问题
#### 1. 百度已经进入当前规范详情 family但跳转链还需看干净
已确认命中的 URL 包括:
- `/video-info/you-li-xi-si-zong-he-zheng-di-yi-ji-78641`
- `/video-info/jing-cha-gu-shi-chao-ji-jing-cha-5933`
- `/video-info/zhang-jiang-tian-di-da-ji-xing-60553`
并且状态是:
- `301`
- `200`
这说明:
-`ningxiaowei.com` 来说,`/video-info/...` 本身就是当前配置的规范详情 family
- 所以这里的 `301 + 200` 不能直接理解成“旧详情 family 残留”
- 更需要优先怀疑的是:
- `www / 裸域` host 归一
- `http / https` 归一
- 或同一路径上的额外跳转
#### 2. 当前问题比 `yagyjt.com` 更纯
`www.ningxiaowei.com` 目前没暴露出那么多首页/分类/robots 异常。
它更像是:
- 入口噪音少
- 当前规范详情 family 已经被百度深抓
- 但 host / 跳转链的规范化还不够干净
- 当前状态分布也符合这个判断:
- `200 = 4`
- `301 = 4`
### 对主 Codex 的直接任务
1. 当前已确认 `www.ningxiaowei.com` 的规范详情 family 就是 `/video-info/...`
2. 检查 `/video-info/...` 的 301 到底跳向哪里
3. 优先排查是否存在:
- `www -> 裸域`
- `http -> https`
- 同一路径被重复跳转
4. 目标应是:
- 详情页规范链尽量压缩成一次可预期跳转
- 最终稳定落到唯一详情 URL
### 当前补充实测
本轮在当前服务器上直接走公网 HTTP 样本验证时,已看到:
- `http://www.ningxiaowei.com/video-info/jing-cha-gu-shi-chao-ji-jing-cha-5933 => 444`
这说明:
- `www.ningxiaowei.com` 当前也不是“只有工作台里才异常”
- 至少在当前 HTTP 外部链路上,详情页入口依然会被前端层直接掐断
- 所以主 Codex 后续排查时,不应只盯应用模板,还要同步看前端站群 / WAF / Nginx 入口规则
### 一句话判断
> `www.ningxiaowei.com` 不是“旧详情 family 残留站”,而是“当前规范详情 family 已被百度深抓,但 host / 跳转链仍需压缩”的样板站。
---
## 三、主线优先级建议
当前最稳顺序:
1. 先做 `yagyjt.com`
- 因为它既有入口问题,又有深页问题
- 修复收益最大
2. 再做 `www.ningxiaowei.com`
- 因为它更像“规范详情 family 跳转链压缩专项”
- 适合做第二个样板站
---
## 四、Day1 直接执行重点
如果主 Codex 现在就要落地第一天动作,建议只做下面 4 件事:
1.`yagyjt.com` 的入口层异常
- 重点确认 `/robots.txt``/sitemap_index.xml``/``/videotype/1-dian-ying`
- 目标不是先改模板,而是先确认 `444/403` 出在前端入口层还是应用层
2.`yagyjt.com` 的旧 family 消耗
- 抽样确认 `/voddetail/...``/vodplay/...` 是否始终单跳或稳定跳到唯一规范 URL
3.`www.ningxiaowei.com` 的详情页跳转链
- 重点看 `/video-info/...` 是否存在 `www / 裸域``http / https` 的重复跳转
4. 盯 24h 聚合,不盯单个 `latest`
- `latest/spider-crawl.summary.json` 会被最近一次 push 覆盖
- 真正判断趋势时,要看 workbench 的 24h 聚合视角
---
## 五、一句话交接
> 老模板下一步不该再停留在“站群泛讨论”,而应该直接围绕 `yagyjt.com` 和 `www.ningxiaowei.com` 两个样板站做域名级推进:前者先清入口层 444 和历史旧 family 消耗,后者先把当前规范详情 family 的 host / 跳转链压缩干净。

View File

@@ -0,0 +1,154 @@
# 1301-SEONexus 老模板样板站 URL Family 对照表 - 2026-04-17
## 目的
这份文档只做一件事:
- 把老模板样板站“当前配置的规范 URL family”
- 和“蜘蛛当前实际命中的 URL family”
- 放到一张表里对照
这样后续主 Codex 在判断 `301`、旧路由、规范化时,不会把“当前规范 family”误判成“历史残留 family”。
---
## 一、`yagyjt.com`
### 站点配置
- 域名:`yagyjt.com`
- 模板:`t_id = 1002`
- 视图:`videoDingZhu`
当前 `t_cfg` 配置:
- `VIDEO_INFO_URL = sfg_id 1052 = 模板7`
- `VIDEO_PLAY_URL = sfg_id 1060 = 模板7`
- `VIDEO_CATEGORY_URL = sfg_id 1044 = 模板7`
### 当前规范 family
1. 详情页
- `/shipin/{slug}-{id}`
2. 播放页
- `/shipin-play/{slug}-{id}-{line}-{episode}`
3. 分类页
- `/shipinfenlei-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
### 当前蜘蛛命中 family
已看到的典型命中:
1. 详情页旧 family
- `/voddetail/...`
2. 播放页旧 family
- `/vodplay/...`
3. 分类页旧 family
- `/videotype/1-dian-ying`
### 结论
`yagyjt.com` 来说:
- `voddetail`
- `vodplay`
- `videotype`
都不是当前配置的主 family。
因此这里的 `301` 更接近:
- 历史收录仍在消费旧路由
- 当前站点在把旧 family 导向现行规范 family
这类问题的目标是:
- 保持 301 稳定
- 减少旧 family 继续消耗百度抓取预算
---
## 二、`ningxiaowei.com`
### 站点配置
- 域名:`ningxiaowei.com`
- 模板:`t_id = 1003`
- 视图:`videoBoKu`
当前 `t_cfg` 配置:
- `VIDEO_INFO_URL = sfg_id 1049 = 模板4`
- `VIDEO_PLAY_URL = sfg_id 1057 = 模板4`
- `VIDEO_CATEGORY_URL = sfg_id 1041 = 模板4`
### 当前规范 family
1. 详情页
- `/video-info/{slug}-{id}`
2. 播放页
- `/video-play/{slug}-{id}-{line}-{episode}`
3. 分类页
- `/videotype-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
### 当前蜘蛛命中 family
已看到的典型命中:
1. 详情页
- `/video-info/...`
并且状态同时出现:
- `301`
- `200`
### 结论
`ningxiaowei.com` 来说:
- `/video-info/...`
本身就是当前配置的规范详情 family。
所以这里不能简单解读成:
- “百度还在抓旧详情页”
更合理的解释应优先是:
1. `www / 裸域` host 归一
2. `http / https` 归一
3. 单路径多跳
这类问题的目标是:
- 压缩跳转链
- 保证规范详情 URL 唯一且稳定
---
## 三、主 Codex 不要混淆的判断
### `yagyjt.com`
可以判断为:
- 旧 family 仍在被百度访问
### `ningxiaowei.com`
不要再判断为:
- `/video-info` 是旧 family
更准确的说法应该是:
- `/video-info` 就是当前规范详情 family
- 现在的问题是 host / scheme / 跳转链层面的规范化
---
## 四、一句话结论
> `yagyjt.com` 的问题是“百度还在消费旧 family”而 `ningxiaowei.com` 的问题是“当前规范 family 已被百度深抓,但跳转链还不够干净”,这两类问题不能混着处理。

View File

@@ -0,0 +1,134 @@
# 1302-SEONexus 老模板样板站 Day1 执行单 - 2026-04-17
## 目的
这份文档只保留主 Codex 当天最该执行的动作。
它不再重复长篇背景,而是把老模板当前最值得推进的两类工作,压缩成 Day1 可直接落地的顺序。
适用范围:
- 只服务老模板 `1001-1005`
- 不涉及 `videoGpt1`
- 只围绕当前两个样板站:
- `yagyjt.com`
- `www.ningxiaowei.com`
---
## 一、Day1 总目标
当天目标不是“7 天内所有排名问题一次解决”,而是先把这两个样板站的当前最大阻力拆清楚:
1. `yagyjt.com`
- 先拆入口层异常
- 再盯旧 family 消耗
2. `www.ningxiaowei.com`
- 先拆规范详情 family 的跳转链
- 不要误判成旧 family 问题
---
## 二、执行顺序
### 1. 先看 `yagyjt.com`
当前已知状态:
- 已有百度深抓
- `detail = 12`
- `play = 4`
- `robots = 3`
- `sitemap = 2`
- `category = 1`
- 但同时存在:
- `444 = 7`
- `403 = 1`
Day1 要做的不是先调页面文案,而是先判断入口层为什么还在掉包。
当天重点检查:
1. `/robots.txt`
2. `/sitemap_index.xml`
3. `/`
4. `/videotype/1-dian-ying`
当天目标:
- 搞清楚这些异常是前端入口层问题,还是应用输出问题
- 不要只因为深页能抓,就忽略入口层异常
### 2. 再看 `yagyjt.com` 的旧 family
当前已知百度仍在命中:
1. `/voddetail/...`
2. `/vodplay/...`
3. `/videotype/...`
但对这个域名来说,当前规范 family 其实是:
1. `/shipin/...`
2. `/shipin-play/...`
3. `/shipinfenlei-...`
所以 Day1 的重点判断是:
- 旧 family 是否始终稳定跳到唯一规范 URL
- 有没有多跳
- 有没有同类 URL 分流到多个终点
目标:
- 保持旧 family 301 稳定
- 减少百度继续在旧 family 上浪费抓取预算
### 3. 最后看 `www.ningxiaowei.com`
当前已知状态:
- 百度已经深抓 `/video-info/...`
- 这是当前规范详情 family
- 状态是:
- `200 = 4`
- `301 = 4`
所以 Day1 不要把它当成“旧详情路由残留站”。
当天重点检查:
1. `/video-info/...` 是否有 `http -> https`
2. `/video-info/...` 是否有 `www -> 裸域` 或反向归一
3. 是否存在同一路径重复跳转
当天目标:
- 把详情页最终落点压缩到唯一规范 URL
- 让百度更少消耗在 host / scheme 归一链上
---
## 三、当天不要做的事
1. 不要把 `videoGpt1` 拉进这轮动作
2. 不要把 `latest/spider-crawl.summary.json` 当成全天全景
3. 不要把 `ningxiaowei.com``/video-info/...` 误判成旧 family
4. 不要一上来就重做老模板页面骨架
---
## 四、当天验收口径
Day1 做完后,只要能回答下面 4 条,就已经是有效推进:
1. `yagyjt.com``444/403` 主因到底在入口层哪一层
2. `yagyjt.com` 的旧 family 是否单跳且唯一
3. `www.ningxiaowei.com``/video-info/...` 最终规范落点是什么
4. 下一轮 24h 聚合里,`category / sitemap / 444` 有没有出现方向性改善
---
## 五、一句话交接
> Day1 不求把老模板站群一次做完,而是先把 `yagyjt.com` 的入口层异常和旧 family 消耗拆干净,再把 `www.ningxiaowei.com` 的详情页规范跳转链压缩清楚。

View File

@@ -0,0 +1,221 @@
# 1303-SEONexus 老模板 7 天 SEO 跟踪板 - 2026-04-17
## 目的
这份文档不是再讲一遍背景,而是把老模板这一轮接下来 `7` 天到底怎么看“有没有进步”固定下来。
它服务的不是 GPT 模板,也不是泛站群讨论,而是:
- 老模板 `1001-1005`
- 当前样板站:
- `yagyjt.com`
- `www.ningxiaowei.com`
- 当前主目标:
- 让百度入口更稳
- 让深页承接更干净
- 让分类层逐步起量
---
## 一、当前 Day0 基线
`2026-04-17 20:30``24h workbench 聚合` 作为基线。
### 站群总基线
- 总请求:`72`
- 域名数:`14`
- 百度相关主量级:
- `baiduspider = 63`
- `bytespider = 9`
- 页面类型:
- `home = 33`
- `detail = 21`
- `play = 4`
- `category = 1`
- `sitemap = 2`
- `robots = 11`
- 状态:
- `200 = 34`
- `301 = 24`
- `444 = 8`
- `403 = 6`
- `500 = 0`
### 样板站基线
#### `yagyjt.com`
- 总请求:`28`
- 深页请求:`16`
- 页面类型:
- `detail = 12`
- `play = 4`
- `home = 6`
- `robots = 3`
- `sitemap = 2`
- `category = 1`
- 状态:
- `200 = 10`
- `301 = 10`
- `444 = 7`
- `403 = 1`
#### `www.ningxiaowei.com`
- 总请求:`8`
- 深页请求:`8`
- 页面类型:
- `detail = 8`
- 状态:
- `200 = 4`
- `301 = 4`
---
## 二、7 天真正该看的指标
这轮不要把“是否上首页”单独理解成一个神秘结果,而要拆成下面 4 组先行指标。
### 1. 入口稳定度
这组指标决定百度愿不愿意继续进来:
1. `robots_requests`
2. `sitemap_requests`
3. 首页 `home_requests`
4. 这些入口 URL 上的:
- `200`
- `403`
- `444`
更好的方向是:
- `robots / sitemap / 首页``200` 占比提高
- `403 / 444` 下降
### 2. 分类层起量
这组指标决定站群有没有从“靠首页和旧深链硬进”变成“开始形成抓取面”。
要看的就是:
1. `category_requests` 是否从 `1` 往上抬
2. 分类页里 `200` 是否出现并稳定
3. `yagyjt.com` 这类样板站是否从入口页扩展到分类页再扩展到详情页
### 3. 深页承接质量
这组指标决定百度抓到深页后,是不是还在绕路。
要看:
1. `detail_requests`
2. `play_requests`
3. 深页里的:
- `200`
- `301`
更好的方向是:
- 深页 `200` 增加
- 深页 `301` 占比下降
- 不是深页请求消失,而是更少绕旧 family
### 4. 样板站单点修正效果
这组指标决定我们改动有没有对准问题。
`yagyjt.com`
-`/robots.txt`
-`/sitemap_index.xml`
-`/`
-`/videotype/1-dian-ying`
-`/voddetail/...`
-`/vodplay/...`
`www.ningxiaowei.com`
-`/video-info/...`
- 看是否还存在额外 `www / 裸域``http / https` 重复跳转
---
## 三、什么才算“每天有进步”
这轮不要求每天都看到“百度首页排名突然爆发”,而是要求每天至少看到一类明确改善。
### 可接受的日进步信号
1. `yagyjt.com``444` 变少
2. `yagyjt.com``robots / sitemap / 首页 / 分类页` 出现更多 `200`
3. `category_requests``1` 往上走
4. 深页 `301` 开始被更多规范深页 `200` 替代
5. `www.ningxiaowei.com``/video-info/...` 跳转链变短
### 不要误判成进步的假信号
1. 单个 `latest` 文件变大或变小
2. 只有首页请求变多,但分类和深页没有改善
3. 深页请求减少,但只是因为蜘蛛没再来
4. 单个域名出现一次 `200`,但后面仍大量 `444/403`
---
## 四、Day1 到 Day7 建议观察节奏
### Day1
重点看:
- `yagyjt.com` 入口层异常主因
- `www.ningxiaowei.com` 详情页跳转链主因
### Day2
重点看:
- `yagyjt.com``robots / sitemap / 首页 / 分类页` 是否出现更多 `200`
- 旧 family 是否仍多跳
### Day3
重点看:
- `category_requests` 是否抬升
- 是否开始出现更多分类页 `200`
### Day4-Day5
重点看:
- 深页 `301 -> 200` 的替代趋势
- 样板站是否从“深页已抓”变成“入口更稳 + 深页更干净”
### Day6-Day7
重点看:
- `yagyjt.com` 是否继续扩大分类层和深页层命中
- `www.ningxiaowei.com` 是否基本压缩到唯一详情落点
- 站群整体 `444/403` 是否明显低于 Day0
---
## 五、主 Codex 每天回报最小模板
后续每天回报时,只要回答这 6 条就够:
1. 今天的 `24h` 聚合总量相较 Day0 是升、平还是降
2. `category_requests` 是多少
3. `robots / sitemap``403/444` 是升还是降
4. `yagyjt.com` 的入口层异常是否减少
5. `yagyjt.com` 的旧 family 是否仍稳定单跳
6. `www.ningxiaowei.com``/video-info/...` 是否已压缩到唯一规范落点
---
## 六、一句话交接
> 老模板这 7 天的核心不是“盲猜排名”,而是持续把入口层稳定度、分类层起量、深页承接质量这 3 个前置信号往上推,只要这 3 条连续改善,样板站向百度首页拿量才会越来越像确定性结果。

View File

@@ -0,0 +1,167 @@
# 1304-SEONexus 老模板每日复盘模板 - 2026-04-17
## 目的
这份模板专门给老模板 `1001-1005` 这条线每日复盘使用。
它和 [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md) 配套:
- `1303` 负责定义 7 天该看什么
- 本文负责把“当天结果怎么回报”固定成统一格式
适用范围:
- 只服务老模板 SEO 主线
- 不涉及 `videoGpt1`
- 适合主 Codex、辅助 Codex、人工交接时直接复用
---
## 一、填写规则
每天复盘时,尽量只写:
1. 当天相对 Day0 有没有变好
2. 哪个样板站在进步
3. 哪个问题仍卡住
4. 明天第一步做什么
不要写成长篇过程回忆,也不要把单个 `latest` 文件变化当成核心结论。
---
## 二、每日复盘模板
### 1. 基础信息
- 复盘日期:
- 复盘口径:
- 默认填:`24h workbench 聚合`
- 当前样板站:
- `yagyjt.com`
- `www.ningxiaowei.com`
### 2. 今日总判断
只写一句话。
示例:
- 今天属于“入口层稍有改善,但分类层还没真正起量”。
- 今天属于“深页承接更干净,但入口层仍然拖后腿”。
填写:
- 今日总判断:
### 3. 站群总量对比 Day0
- 总请求:
- `home_requests`
- `category_requests`
- `detail_requests`
- `play_requests`
- `robots_requests`
- `sitemap_requests`
状态:
- `200`
- `301`
- `403`
- `444`
- `500`
### 4. 样板站 1`yagyjt.com`
当天只回答这 5 条:
1. 总请求是否升高:
2. 入口层 `444/403` 是否减少:
3. `/robots.txt` 是否更稳:
4. `/sitemap_index.xml` / `/` / `/videotype/1-dian-ying` 是否出现更多 `200`
5. `/voddetail` / `/vodplay` 是否仍稳定单跳:
### 5. 样板站 2`www.ningxiaowei.com`
当天只回答这 4 条:
1. `/video-info/...` 是否仍有 `301 + 200`
2. 跳转链有没有变短:
3. 是否已确认唯一规范落点:
4. 当前主要卡点是什么:
### 6. 今日真进步信号
最多写 `3` 条。
1.
2.
3.
### 7. 今日假信号或误判风险
最多写 `3` 条。
1.
2.
3.
### 8. 当前仍卡住的问题
只写最关键的 `1-3` 条。
1.
2.
3.
### 9. 明天第一步
只写一件事。
- 明天第一步:
---
## 三、极简聊天汇报模板
如果后续只是在对话里快速给主 Codex 或人工报进展,直接用下面这个格式:
```md
老模板每日复盘:
日期:
今日总判断:
站群对比 Day0
- category
- robots
- sitemap
- detail
- play
- 403/444
yagyjt.com
1.
2.
www.ningxiaowei.com
1.
2.
今日真进步:
1.
2.
当前卡点:
1.
2.
明天第一步:
```
---
## 四、一句话交接
> 老模板这条线每天复盘时,不求写长报告,只要求按同一模板确认“入口更稳了吗、分类起来了吗、深页更干净了吗、明天先做哪一件事”。

View File

@@ -0,0 +1,207 @@
# 1305-SEONexus 老模板首周验收清单 - 2026-04-17
## 目的
这份文档专门解决一个问题:
- 老模板这条线持续推进 `7` 天后
- 到底怎样算“有结果”
- 怎样算“部分有效”
- 怎样算“还没打到点上”
它和下面几份文档配套使用:
- [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
- [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
- [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
---
## 一、首周验收不要只看“有没有首页词”
这一轮的最终目标当然是:
- 老模板这批域名向百度首页拿量
但首周验收不能只用“首页词有没有立刻爆出来”做唯一标准。
更稳的验收方式应该是分三层:
1. 入口层有没有变稳
2. 分类层有没有起量
3. 深页承接有没有变干净
如果这三层连续改善,即使首页结果还没完全放大,也应判定为:
- 方向正确
- 可以继续加码
---
## 二、首周验收等级
### A 档:达标
满足下面大部分特征,就可以判定首周达标:
1. `robots / sitemap / 首页``403/444` 明显下降
2. `category_requests` 相比 Day0 明显抬升,不再长期贴着 `0/1`
3. `yagyjt.com` 的入口层异常明显减少
4. `yagyjt.com` 的旧 family 仍稳定单跳,且规范深页 `200` 占比更高
5. `www.ningxiaowei.com``/video-info/...` 跳转链明显变短,或已经稳定到唯一规范落点
6. 站群 `500` 仍保持 `0`
这类结果说明:
- 老模板 SEO 主线没有跑偏
- 后续可以继续做第二批放大动作
### B 档:部分达标
满足下面任意几条,但还不够完整时,判定为部分达标:
1. 入口层有所改善,但分类层还没明显抬升
2. 分类层有起色,但 `444/403` 还比较高
3. 深页 `301 -> 200` 有改善,但样板站入口仍不稳定
4. `www.ningxiaowei.com` 已明显变干净,但 `yagyjt.com` 入口层还没压住
这类结果说明:
- 方向大概率是对的
- 但还不能急着判定“已打穿”
- 需要继续围绕样板站做第二轮收口
### C 档:未达标
出现下面这些情况,就应判定首周未达标:
1. `robots / sitemap / 首页``403/444` 没降,甚至更高
2. `category_requests` 基本没有抬升
3. `yagyjt.com` 入口层仍然主要表现为 `444/403`
4. `yagyjt.com` 的旧 family 跳转链仍混乱或存在多跳
5. `www.ningxiaowei.com``/video-info/...` 仍无法确认唯一规范落点
6. 团队复盘时仍然只能靠单个 `latest` 文件做判断
这类结果说明:
- 这轮动作还没真正打到百度抓取主矛盾
- 后续不能只做日报,应回到问题拆解本身
---
## 三、首周重点验收项
### 1. 站群入口层
验收问题:
1. `robots_requests` 是否更稳
2. `sitemap_requests` 是否更稳
3. 入口层 `403/444` 是否下降
达标判断:
- 至少要看到入口层异常占比下降
### 2. 站群分类层
验收问题:
1. `category_requests` 是否高于 Day0
2. 分类页 `200` 是否开始出现并连续存在
达标判断:
- 不能再长期停留在“几乎没有分类抓取”
### 3. 站群深页层
验收问题:
1. `detail_requests` 是否保持或提升
2. `play_requests` 是否保持或提升
3. 深页 `301` 是否被更多 `200` 替代
达标判断:
- 不是深页请求消失
- 而是更少绕路地到达规范深页
### 4. 样板站 `yagyjt.com`
验收问题:
1. `/robots.txt` 是否更稳
2. `/sitemap_index.xml` 是否更稳
3. `/``/videotype/1-dian-ying` 是否更稳
4. `/voddetail/...``/vodplay/...` 是否仍稳定单跳
达标判断:
- 入口层异常下降
- 旧 family 继续稳定收口到规范 family
### 5. 样板站 `www.ningxiaowei.com`
验收问题:
1. `/video-info/...` 是否仍然存在重复跳转
2. 是否已确认唯一规范详情落点
3. `301 + 200` 是否正在向更干净的承接收敛
达标判断:
- 详情页规范链更短、更唯一
---
## 四、首周复盘时只回答这 8 条
7 天后复盘时,不需要再写长文,只要回答下面 8 条:
1. 站群 `403/444` 相比 Day0 是升、平还是降
2. `category_requests` 相比 Day0 是升、平还是降
3. 站群深页 `200` 是否增加
4. `yagyjt.com` 的入口层异常是否明显减少
5. `yagyjt.com` 的旧 family 是否仍稳定单跳
6. `www.ningxiaowei.com``/video-info/...` 是否已接近唯一规范落点
7. 这轮应判定为 `达标 / 部分达标 / 未达标`
8. 下一轮是继续放大,还是先回头修正策略
---
## 五、极简首周结论模板
如果后续只是在聊天里给主 Codex 或人工快速交班,直接按下面格式:
```md
老模板首周验收:
结论等级:
- 达标 / 部分达标 / 未达标
核心判断:
1.
2.
3.
样板站结果:
- yagyjt.com
- www.ningxiaowei.com
首周最大进步:
1.
2.
首周最大卡点:
1.
2.
下一轮建议:
```
---
## 六、一句话交接
> 老模板首周验收的关键,不是急着宣布“有没有首页词”,而是确认入口层是否更稳、分类层是否起量、深页承接是否更干净,只要这三条站住,后续百度首页拿量才值得继续加码。

View File

@@ -0,0 +1,120 @@
# 1306-SEONexus 老模板主 Codex 启动提示词 - 2026-04-17
## 目的
这份文档给“新开一个主 Codex 会话继续老模板 SEO”时直接复制使用。
目标只有一个:
- 不要再让新会话跑偏到 GPT 模板
- 不要再回到泛分析
- 直接沿着老模板 `1001-1005` 主线推进
---
## 一、直接复制版
```md
你这次只负责老模板 SEO 主线,不要混入 GPT 模板。
先固定 5 条边界:
1. 当前只看老模板 `1001-1005`
- `videoDadi`
- `videoDingZhu`
- `videoBoKu`
- `videoLaoNiu`
- `videoNuNu`
2. 不要把 `videoGpt1` 拉进这轮分析、实现、验收
3. 当前样板站只优先看:
- `yagyjt.com`
- `www.ningxiaowei.com`
4. 当前主目标不是空谈排名,而是持续推进:
- 入口层稳定度
- 分类层起量
- 深页承接质量
5. 不要把 `latest/spider-crawl.summary.json` 当成 24h 全景
- 判断趋势时,要以 workbench 24h 聚合视角为准
请先按下面顺序阅读文档:
1. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/README.md`
2. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md`
3. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md`
4. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md`
5. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md`
6. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md`
7. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md`
8. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md`
9. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md`
10. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md`
当前你的工作方式:
1. 先按 `1302` 执行 Day1 重点
2. 每天按 `1304` 复盘
3. 7 天内按 `1303` 跟踪趋势
4. 到首周按 `1305` 给出 `达标 / 部分达标 / 未达标`
当前必须记住的判断:
1. `yagyjt.com`
- 当前规范 family 是:
- `/shipin/...`
- `/shipin-play/...`
- `/shipinfenlei-...`
- 当前百度仍在消费旧 family
- `/voddetail/...`
- `/vodplay/...`
- `/videotype/...`
- 它的核心问题是:
- 入口层 `444/403`
- 旧 family 预算消耗
2. `www.ningxiaowei.com`
- 当前规范详情 family 本身就是:
- `/video-info/...`
- 不要再误判成旧 family
- 它的核心问题是:
- `www / 裸域`
- `http / https`
- 重复跳转链
输出要求:
1. 先给出当前主结论
2. 再给出今天相对 Day0 的变化
3. 再给出两个样板站各自的当前状态
4. 最后只写“明天第一步”
如果要动代码:
1. 只动老模板相关文件
2. 不要影响 `videoGpt1`
3. 优先验证是否真的改善:
- 入口层
- 分类层
- 深页承接
如果只做分析:
1. 不要重复泛泛总结
2. 必须落到样板站
3. 必须落到第二天可执行动作
```
---
## 二、适用场景
适合下面几种接手方式:
1. 新开主 Codex 会话继续老模板 SEO
2. 跨机器继续老模板蜘蛛日志分析
3. 需要把当前主线重新拉回老模板,不再混 GPT 模板
---
## 三、一句话交接
> 这份启动词的核心作用,就是把新会话直接锁进“老模板 5 套 + 两个样板站 + 7 天跟踪与验收”这条主线里,不再让任务边界发散。

View File

@@ -0,0 +1,208 @@
# 1307-SEONexus 老模板 SEO 交班总览 - 2026-04-17
## 目的
这份文档是老模板 SEO 这条线的最终交班入口页。
它不承担长篇分析,而是只做三件事:
1. 用一页把当前主线说清楚
2. 告诉下一位接手者先看哪些文档
3. 告诉主 Codex 现在最该做什么,不该做什么
如果后续只允许交接一份文档,优先交这份。
---
## 一、当前主线一句话
这轮工作的真实主线是:
> 只围绕老模板 `1001-1005` 做 SEO 推进,不混入 `videoGpt1`;当前先拿 `yagyjt.com` 和 `www.ningxiaowei.com` 做样板站,把入口层稳定度、分类层起量、深页承接质量这 3 条主线持续往上推。
---
## 二、先把边界钉死
### 当前只看老模板 5 套
- `1001 = videoDadi`
- `1002 = videoDingZhu`
- `1003 = videoBoKu`
- `1004 = videoLaoNiu`
- `1005 = videoNuNu`
### 当前明确不混入
- `1007 = videoGpt1`
这点已经在前面多轮分析里反复确认过,后续新会话如果再把 GPT 模板拉进来,就属于任务跑偏。
---
## 三、当前阶段结论
截至 `2026-04-17` 晚间,这条老模板主线已经确认了下面几件事:
1. 老模板不是“百度完全没来”
- 当前已经有深抓样本
2. 当前主要矛盾不是 `500`
- 而是 `301 / 403 / 444`
3. 当前最该做的不是泛分析
- 而是盯样板站推进
4. 当前最该盯的两个样板站是:
- `yagyjt.com`
- `www.ningxiaowei.com`
---
## 四、两个样板站怎么理解
### `yagyjt.com`
它的价值在于:
- 已经有百度深抓
- 同时入口层问题还很明显
当前它的核心问题是:
1. `robots / sitemap / 首页 / 分类页` 上存在 `444/403`
2. 百度仍在消费旧 family
- `/voddetail/...`
- `/vodplay/...`
- `/videotype/...`
而它当前真正的规范 family 是:
1. `/shipin/...`
2. `/shipin-play/...`
3. `/shipinfenlei-...`
所以 `yagyjt.com` 的主线目标很明确:
- 压入口层异常
- 让旧 family 继续稳定单跳到规范 family
- 观察分类层是否能继续起量
### `www.ningxiaowei.com`
它的价值在于:
- 当前规范详情 family 已经被百度真实消费
- 但跳转链还不够干净
要特别记住:
- `/video-info/...` 对它来说就是当前规范详情 family
- 不能再误判成旧 family
它的核心问题是:
1. `www / 裸域`
2. `http / https`
3. 重复跳转链
所以 `www.ningxiaowei.com` 的主线目标是:
- 压缩详情页跳转链
- 确认唯一规范落点
---
## 五、当前最重要的数据口径
当前看趋势时,必须记住这个边界:
- `latest/spider-crawl.summary.json` 只代表最近一次 push 摘要
- 不等于最近 `24h` 全局聚合
真正判断趋势时,要以:
- `DomainSpiderCrawlWorkbenchHelper::buildSummary(..., windowHours=24, selectedBots=baiduspider,bytespider,sogou)`
这条 `24h workbench 聚合` 视角为准。
当前 Day0 基线是:
- 总请求:`72`
- `home = 33`
- `detail = 21`
- `play = 4`
- `category = 1`
- `sitemap = 2`
- `robots = 11`
- 状态:
- `200 = 34`
- `301 = 24`
- `444 = 8`
- `403 = 6`
- `500 = 0`
---
## 六、主 Codex 现在最该做什么
按顺序:
1. 先按 Day1 执行单推进
2. 每天按固定模板复盘
3. 用 7 天跟踪板看趋势
4. 到首周按验收清单判定结果
更具体地说:
1. 先盯 `yagyjt.com` 的入口层
2. 再盯 `yagyjt.com` 的旧 family 单跳是否稳定
3. 再盯 `www.ningxiaowei.com``/video-info/...` 跳转链是否变短
4. 每天都要回答:
- 入口更稳了吗
- 分类起来了吗
- 深页更干净了吗
---
## 七、主 Codex 现在不要做什么
1. 不要把 GPT 模板拉回这条线
2. 不要把单个 `latest` 文件当成全天全景
3. 不要把 `www.ningxiaowei.com``/video-info/...` 误判成旧 family
4. 不要只做泛泛结论,不落到样板站
5. 不要只看“有没有首页词”,忽略前置抓取信号
---
## 八、推荐阅读顺序
如果是新的主 Codex 会话,最稳顺序是:
1. [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
2. [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
3. [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
4. [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
5. [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
6. [32-老模板样板站URL-Family对照表-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md)
7. [31-老模板样板站域名级SEO任务单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md)
8. [30-老模板最新蜘蛛日志实战分析-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md)
9. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
10. [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
11. [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/1270-SEONexus-Codex多版本协作交接总文档.md)
---
## 九、最终交班只要说这 6 条
如果后续你要给主 Codex 或人工做最短交班,只要说这 6 条就够:
1. 当前只做老模板 `1001-1005`,不混 GPT 模板
2. 当前样板站是 `yagyjt.com``www.ningxiaowei.com`
3. 当前主要矛盾不是 `500`,而是 `301 / 403 / 444`
4. 当前趋势要看 `24h workbench 聚合`,不要只看 `latest`
5. 每天按 `1304` 复盘7 天按 `1303` 跟踪,首周按 `1305` 验收
6. 新会话直接从 `1306` 启动
---
## 十、一句话交接
> 这轮老模板 SEO 已经不是“要不要继续分析”的问题,而是“已经把边界、样板站、节奏、验收都定好了,主 Codex 只需要沿着这条线持续推进并每天看到小进步”。

View File

@@ -0,0 +1,36 @@
# Old Tmp SEO
这个目录只放老模板 SEO 这条支线的文档。
当前范围已经固定:
- 只看老模板 `1001-1005`
- 不混入 `videoGpt1`
- 当前样板站:
- `yagyjt.com`
- `www.ningxiaowei.com`
如果你是第一次进这个目录,按这个动作顺序看:
1. 第 1 步:先看 [38-老模板SEO交班总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md)
作用:先用一页搞清楚当前主线、边界、样板站和节奏。
2. 第 2 步:再看 [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
作用:如果要新开会话,直接复制这份启动词。
3. 第 3 步:执行 [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
作用:当天先做什么,直接按这里推进。
4. 第 4 步:每天用 [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
作用:统一日报和接手口径。
5. 第 5 步:到首周用 [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
作用:统一判定达标、部分达标还是未达标。
如果你要往下深读,再按下面顺序补:
1. [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
2. [32-老模板样板站URL-Family对照表-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md)
3. [31-老模板样板站域名级SEO任务单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md)
4. [30-老模板最新蜘蛛日志实战分析-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md)
5. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
一句话:
> 这个目录就是老模板 SEO 专属工作区,公共协作请回 `docs/` 根目录,老模板推进请从这里继续。