feat: sync latest GPT SEO routing and docs

This commit is contained in:
root
2026-04-18 01:31:44 +08:00
parent c8fb6956ef
commit 5cb11b4476
48 changed files with 6000 additions and 172 deletions

View File

@@ -0,0 +1,118 @@
# 2026-04-17 GPT 站群 sitemap 入口修复记录
## 背景
为完成 7 日收录目标,对 GPT 站群做入口体检时发现:
- 首页普遍正常
- `robots.txt` 普遍正常
-`sitemap.xml` / `sitemap_index.xml` / `sitemap-main.xml` / `sitemap-videos-1.xml` 普遍 404
这会直接导致:
- 蜘蛛拿不到 XML 抓取清单
- 模板页脚和 robots 主动指向失效入口
## 根因拆解
### 1. 标准 XML 入口兼容不完整
虽然站内存在 sitemap 生成逻辑,但 GPT 路由侧没有把常见标准入口完全接顺。
### 2. 真正的 sitemap 文件根本没落盘
`SiteContext::getSiteMapByCode()` 会直接读取:
- `storage/SiteMap/<domain>/sitemap_index.xml`
- `storage/SiteMap/<domain>/sitemap-main.xml`
- `storage/SiteMap/<domain>/sitemap-videos-*.xml`
但现场排查时:
- `storage/SiteMap/` 目录不存在
- 生成器首次执行时会因 `mkdir()` 不是递归模式而直接报错
## 已做修复
### 代码
- `router.php`
- 补齐标准 sitemap XML 入口
- `VideoSiteMapLogic.php`
- 目录创建改为递归
- `SiteMapLogic.php`
- 目录创建改为递归
### 运行
- 已对 `liangzuan.net` 做定点 sitemap 生成验证
- 已启动 GPT 站群全量 VideoSiteMap 生成
## 已验证结果
### liangzuan.net
- `sitemap_index.xml` => 200
- `sitemap-main.xml` => 200
- `sitemap-videos-1.xml` => 200
### chuanjiafeng.net
- `sitemap_index.xml` => 200
## 二次修正:详情 URL 空 slug
恢复 sitemap 后继续抽检发现:
- 部分 `sitemap-videos-*.xml` 里的详情 URL 还带空 slug
- 例如 `/film//210``/detail/-210`
根因是视频数据里的 `v_name_en` 并不总是完整。
已修复:
- 生成器改为优先使用 `v_name_en`
- 如果为空,则回退 `v_name`
- 统一归一化成可用 slug
抽样验证:
- `liangzuan.net` 新 sitemap 详情 URL => GET 200 / HEAD 200
- `cnzhenbang.com` 新 sitemap 详情 URL => GET 200 / HEAD 200
## 轨迹验收补充
继续对 5 个 GPT 站做首页→搜索→详情→播放链路探针:
- `liangzuan.net`
- `cnzhenbang.com`
- `codohealth.com`
- `jingxifa.com`
- `gz-yxsw.com`
结果全部通过:
- home 200
- search 200
- detail 200
- play 200
说明当前修复已经不止停留在 XML 层,而是确实把蜘蛛抓取和用户点击后的主要承接链路打通了。
## 扩样到 15 站后的结果
进一步扩样到 15 个 GPT 站后:
- 自动样本发现全部成功
- 首页 / 搜索 / 详情 / 播放 4 段链路全部 `200`
- `all_passed=1`
这说明:
- 当前不是单站偶然成功
- 多种不同 URL family 都已具备稳定的收录与点击承接能力
## 当前价值
- 抓取入口从“普遍缺失”变成“可恢复、可继续批量生成”
- 这一步直接服务于站群收录,不是表面优化

View File

@@ -0,0 +1,72 @@
# 2026-04-17 liangzuan.net 域名恢复与深链 404 修复记录
## 背景
用户反馈:
- `https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban`
- 这类不带 id 的详情 URL 不允许再 404
- 如果没有 id需要有可展示的兜底绑定逻辑
同时线上排查发现:
- `liangzuan.net` 整站一度出现大量 404
- 浏览器 `GET` 能打开的详情深链,`HEAD` 仍返回 404
## 排查结论
### 1. 域名表记录丢失
- `domain` 表内 `liangzuan.net` 记录已不存在
- 这是整站级 404 的直接原因
### 2. 旧域名解析链不够稳
- `SiteContext` 仍有部分逻辑依赖旧缓存解析
- 对运行时 host 的兼容不够完整
### 3. 深链路由只支持 GET
- GPT 模板下很多关键路由通过 `Route::get(...)` 注册
- 导致 `HEAD` 探测直接 404
## 已执行动作
### 域名恢复
- 使用历史 bootstrap bundle 重新注册 `liangzuan.net`
- 重新绑定模板 `videoGpt1`
- 重新应用域名级 SEO bootstrap 配置
### 代码修复
- `SiteContext.php`
- 改为优先使用 `resolveDomainContextByHost(...)`
- `VideoService.php`
- 新增 slug 归一化
- 新增无 id 详情兜底绑定
- `router.php`
- 详情无 id 兼容路由已补
- GPT 模板关键路由统一改为支持 `GET|HEAD`
## 当前结果
### 已验证恢复
- 首页 `GET`200
- 无 id 详情页 `GET`200
- 常规详情页 `GET`200
- 无 id 详情页 `HEAD`200
- 常规详情页 `HEAD`200
## 对后续 SEO 的意义
- 这是 7 日收录目标里的底座修复
- 先消灭入口级 404后续 sitemap 推送、内链抓取、深链收录才有意义
- 当前 `liangzuan.net` 已从“整站不可抓”恢复到“可正常抓取深页”
## 后续跟进建议
1. 把其它站点也按同样方式抽样做 `GET/HEAD` 双探测。
2. 批量排查是否还有“域名记录丢失”或“旧 deep link 只通 GET”的站点。
3. 继续扩充 GPT 模板的历史兼容入口,优先消灭详情、播放、分类的老链接 404。