Files
SEONexus/docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md
2026-04-17 21:09:06 +08:00

253 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 一致性。