docs sync collaboration guides into repository docs
This commit is contained in:
562
docs/1269-SEONexus-老模板第一阶段回灌执行文档.md
Normal file
562
docs/1269-SEONexus-老模板第一阶段回灌执行文档.md
Normal 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 模板”,而是:
|
||||
|
||||
- 先统一抓取入口
|
||||
- 先统一输出规范
|
||||
- 先统一观测能力
|
||||
- 先统一静态资源发布能力
|
||||
|
||||
先把底座拉齐,再看第二阶段内容增强。
|
||||
Reference in New Issue
Block a user