# 2026-04-17 Spider / Nginx 运维摘要 ## 接手前必读 5 条 任何新的 Codex / 运维 / 人工接手这一段工作前,先遵守这 5 条: 1. 先看当前线上复测,再看历史日志 2. 先确认真实路由,再判断是否还存在问题 3. 前端排障先看 `X-Cache-Status / X-Cache-Mode / X-Managed-Spider` 4. 不要把旧路径残留误判成前端蜘蛛拦截 5. 如果需要完整证据链,再去看: [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/diff-maccms/SEONexus/docs/1270-SEONexus-Codex多版本协作交接总文档.md) ## 1. 当前结论 截至 `2026-04-17` 晚间,这轮前端 nginx 优化已经从“问题排查期”进入“效果验证期”。 当前更准确的整体判断: 1. `baiduspider` - 恢复最好 - 首页、详情、播放均已有稳定 `200` 样本 2. `sogou` - 正在恢复初期 - 历史累计仍有较多 `403` - 但最新窗口已出现多个真实 `200` 深页样本 3. `bytespider` - 目前仍主要停留在 `robots` 层 - 当前实测 `robots.txt` 已基本可通 - 但暂未进入 `managed spider` 标签链 ## 2. 当前长期标准方案 前端 nginx 当前建议统一采用: - [站点伪静态-受管蜘蛛放行版-动态页安全缓存.txt](/www/wwwroot/diff-maccms/前端站群服务器nginx配置/站点伪静态-受管蜘蛛放行版-动态页安全缓存.txt) 核心规则: 1. 搜索页 `/get-index`、`/get/index` 或对应搜索入口 - cache key 带 `$args` 2. 详情页 / 播放页 / 分类页 / 榜单页 - cache key 不带 `$args` 3. 所有动态页支持: - `?__nocache=1` 4. 排障优先顺序: - 先看 `X-Cache-Status` - 再看 `X-Cache-Mode` - 最后再决定是否需要清前端缓存 ## 2.1 2026-04-17 晚间抽测补充 新增线上抽测结果: 1. `www.jpjdxs.com` 详情页、播放页 - `200` - `X-Cache-Status: STALE` - `X-Cache-Mode: path-only` - `X-Managed-Spider: managed` 2. `www.lgyz.net` 详情页 - `200` - `X-Cache-Status: STALE` - `X-Cache-Mode: path-only` - `X-Managed-Spider: managed` 3. `www.glae.cc` 首页(Baiduspider) - `200` - `X-Cache-Status: STALE` - `X-Managed-Spider: managed` 4. `www.hyjssb.com` 搜索页 `/get/index?wd=test` - `200` - `X-Cache-Status: MISS` - `X-Cache-Mode: path-only` - `X-Managed-Spider: managed` 5. `www.hyjssb.com` 搜索页 `/get/index?wd=cachetest&__nocache=1` - `200` - `X-Cache-Status: BYPASS` - `X-Cache-Mode: bypass` - `X-Cache-Bypass: 1` 这一轮最重要的新结论: 1. 当前“受管蜘蛛放行 + 动态页缓存安全版”总体仍然生效 2. 但搜索页规则不能只匹配 `/get-index` 3. 至少部分站点真实搜索入口是 `/get/index` 4. 如果 nginx 只写 `/get-index`,这类站点搜索页仍会误走 `path-only` ### 2.2 搜索入口批量识别补充 补充做了一轮站点级搜索入口识别,当前得到的结论如下: #### 已明确识别到真实入口 1. `www.jpjdxs.com` - 首页直接识别到:`/get-index` 2. `www.jingxifa.com` - 首页直接识别到:`/get-index` 3. `www.hyjssb.com` - 首页直接识别到:`/get/index` #### 首页未直接露出入口,但规则探测结果明确 下列站点对两个候选路径做了头部探测: 1. `www.lgyz.net` 2. `www.glae.cc` 3. `www.lcdchq.com` 4. `www.oronorent.com` 5. `www.cnzhenbang.com` 6. `www.vikau.com` 共同现象: 1. 访问 `/get-index?wd=test` - 返回 `404` - 但 `X-Cache-Mode: with-args` 2. 访问 `/get/index?wd=test` - 返回 `404` - 且 `X-Cache-Mode: path-only` 这个结果说明: 1. 当前前端模板已经把 `/get-index` 识别成“搜索页规则” 2. 没补兼容时,`/get/index` 仍会落回普通动态页规则 3. 所以正式模板同时兼容 `/get-index` 和 `/get/index` 是必要项,不是冗余项 ### 2.3 最新日志窗口读取口径补充 `domain-spider-crawl` 这批 summary 文件当前已经出现结构切换: 1. 旧口径常看 `by_bot` 2. 新口径改成: - `bot_buckets` - `summary_status_buckets` - `summary_records` 因此后续如果直接按旧脚本读取 `by_bot`,很容易误判成: 1. `latest` 没数据 2. `baiduspider / sogou / bytespider` 当天都是 0 这不一定是真的“没有样本”,而可能只是读取字段错了。 #### 当前已确认的最近窗口 1. `2026-04-17T17:30:02+08:00` - `googlebot: 34` - `sogou: 10` - `bytespider: 6` - `bingbot: 4` - `baiduspider: 1` - 状态桶: - `444: 38` - `200: 14` - `301: 1` - `403: 1` - `404: 1` 2. `2026-04-17T17:50:02+08:00` - 这波窗口又明显偏向: - `googlebot: 33` - `bingbot: 1` - `bytespider: 1` - `baiduspider: 1` - 状态桶: - `444: 35` - `200: 1` #### 当前结论 1. `latest` 仍然不能机械地当成“国内蜘蛛当前总貌” 2. 需要结合最近几个 run 一起看 3. 读取 summary 时,优先按新结构字段解析,不要再只认 `by_bot` ### 2.4 `17:30` 窗口国内蜘蛛明细补充 对 `2026-04-17T17:30:02+08:00` 这个窗口继续下钻后,国内蜘蛛样本可以直接拆成下面这样: #### `sogou` 1. 总请求数:`10` 2. 状态分布: - `200: 9` - `404: 1` 3. 页面类型: - `home: 4` - `category: 2` - `detail: 2` - `play: 1` - `other: 1` 命中的代表样本: 1. `www.jingxifa.com /video-detail/cheng-shi-jian-ke-190614 => 200` 2. `www.vikau.com /vodplay/xiu-zhen-zhe-zhi-fu-qin-de-cai-fu-110943-maotai-36 => 200` 3. `www.cnzhenbang.com /category/dong-man => 200` 4. `www.hyjssb.com /movie/yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong/154180 => 200` 5. `www.hyjssb.com /genres/dian-ying/home => 200` 唯一的 `404`: 1. `www.hyjssb.com /shipinfenlei-dian-ying/shao-shi-dian-ying-2012-all-all/all-page1` 这个 `404` 与前面结论一致: 1. 它是旧路径残留 2. 不代表当前真实分类路由仍被前端拦截 #### `bytespider` 1. 总请求数:`6` 2. 状态分布: - `200: 4` - `301: 1` - `403: 1` 3. 主要页面类型: - `robots: 5` - `home: 1` 代表样本: 1. `www.lgyz.net /robots.txt => 200` 2. `www.jpjdxs.com /robots.txt => 200` 3. `www.oronorent.com /robots.txt => 200` 4. `www.lgyz.net / => 200` 当前更像: 1. 字节系开始有可通样本 2. 但整体仍主要集中在 `robots` 3. 还没到像 `sogou` 那样明显进入深页恢复阶段 #### `baiduspider` 1. 当前窗口样本数:`1` 2. `www.sdxtwnc.com / => 200` 说明: 1. 这个窗口里百度样本偏少 2. 不能单独用这一窗否定百度恢复 3. 百度恢复判断仍应结合前面更长时间段和线上复测一起看 ### 2.5 `17:40` 窗口补充:`sogou` 恢复不是单窗偶发 继续下钻 `2026-04-17T17:40:03+08:00` 这个紧邻窗口后,可以看到: #### `sogou` 1. 总请求数:`5` 2. 状态分布: - `200: 5` 3. 命中样本: - `www.jpjdxs.com /neirong-154229-xiang-feng-bu-shi-jiu-shi-ren => 200` - `www.jpjdxs.com /bf-154229-xiang-feng-bu-shi-jiu-shi-ren/default-1 => 200` - `www.lgyz.net /movie/154223-wo-zai-nv-zong-dang-nan-xiu => 200` - `www.hyjssb.com /get/index?wd=test => 200` - `www.hyjssb.com /get/index?wd=cachetest&__nocache=1 => 200` 对应缓存信号也符合当前前端规则: 1. `www.jpjdxs.com` 详情 / 播放页: - `cache_status = STALE` 2. `www.lgyz.net` 详情页: - `cache_status = STALE` 3. `www.hyjssb.com /get/index?wd=test` - `cache_status = MISS` 4. `www.hyjssb.com /get/index?wd=cachetest&__nocache=1` - `cache_status = BYPASS` #### 当前更强的阶段性判断 现在不只是单个 `17:30` 窗口成立,而是: 1. `17:30` 窗口里,`sogou` 已出现首页 / 分类 / 详情 / 播放 `200` 2. `17:40` 紧邻窗口里,`sogou` 继续出现详情 / 播放 / 搜索排障路径 `200` 因此当前更稳妥的说法是: 1. `sogou` 恢复已不是单窗偶发 2. 而是已经出现连续窗口的真实 `200` 样本 ### 2.6 `bytespider` 当前阶段补充 继续下钻最近几个窗口并结合线上实时请求头后,`bytespider` 当前更准确的阶段判断如下: #### 日志侧 当天聚合样本目前大致表现为: 1. 总请求:`78` 2. 状态分布: - `444: 25` - `403: 35` - `301: 10` - `200: 8` 3. 页面类型: - `robots: 73` - `home: 4` - `other: 1` 最近窗口的可通样本主要是: 1. `2026-04-17T17:30:02+08:00` - `www.lgyz.net /robots.txt => 200` - `www.jpjdxs.com /robots.txt => 200` - `www.oronorent.com /robots.txt => 200` - `www.lgyz.net / => 200` 2. `2026-04-17T17:40:03+08:00` - `www.codohealth.com /robots.txt => 200` - `www.vikau.com /robots.txt => 200` - `www.lmjcg.com /robots.txt => 200` - `www.gz-yxsw.com /robots.txt => 200` #### 线上实时请求头 补测结果: 1. `https://www.lgyz.net/` - `200` - `X-Cache-Status: STALE` - `X-Managed-Spider: normal` 2. `https://www.lgyz.net/robots.txt` - `200` - `X-Cache-Status: HIT` - `X-Managed-Spider: normal` 3. `https://www.jpjdxs.com/robots.txt` - `200` - `X-Cache-Status: HIT` - `X-Managed-Spider: normal` 4. `https://www.oronorent.com/robots.txt` - `200` - `X-Cache-Status: HIT` - `X-Managed-Spider: normal` #### 当前判断 1. `bytespider` 不是完全不可通 2. 最近窗口里已经开始出现 `robots.txt` 与个别首页 `200` 3. 但当前仍明显以 `robots` 层为主 4. 且实时响应头里仍是 `X-Managed-Spider: normal` 5. 所以更像“部分可通、尚未进入受管蜘蛛深页恢复阶段” ## 3. 已验证通过的站点 当前已人工复测通过的代表站点: 1. `www.jpjdxs.com` 2. `www.lgyz.net` 3. `www.lcdchq.com` 4. `www.oronorent.com` 5. `www.glae.cc` 6. `www.cnzhenbang.com` 7. `www.jingxifa.com` 8. `www.vikau.com` 9. `www.hyjssb.com` 这些站点已验证到以下至少一项或多项: 1. 首页 `200` 2. `Sogou` 首页 `200` 3. 真实详情页 / 播放页 / 分类页 `200` 4. `?__nocache=1` 绕缓存正常 5. `X-Managed-Spider` / `X-Cache-Mode` / `X-Cache-Status` 头部符合预期 ## 4. 需要特别记住的误判点 ### 4.1 不要把旧日志直接当成当前状态 历史 run 中的大量: 1. `sogou 403` 2. `bytespider 403/444` 3. 某些 `301` 很多已经被当前线上复测推翻。 因此规则是: 1. 先看历史日志趋势 2. 再用真实 URL + 真实 UA 做当前线上复测 3. 以“当前线上复测”作为最终判断依据 ### 4.2 不要把旧路径残留误判为前端拦截 典型案例: 1. `hyjssb` - 历史日志里的旧路径: - `/shipinfenlei-...` - 当前真实路由已经变成: - `/genres/...` - `/movie/...` - 因此旧路径 `404` 不代表当前蜘蛛拦截 ## 5. 当前最有价值的阶段性判断 ### 5.1 `sogou` 历史大盘仍难看,但最新窗口已出现真实恢复样本: 1. `www.jpjdxs.com` - `/robots.txt => 200` - `/ => 200` - 真实详情页 `200` - 真实播放页 `200` 2. `www.lgyz.net` - 真实详情页 `200` 3. `www.lcdchq.com` - 真实详情页 `200` 4. `www.oronorent.com` - 真实详情页 `200` 结论: 1. `sogou` 正在从旧的 `403` 状态切换到新规则生效后的 `200` 2. 当前处于恢复初期,旧日志权重仍然偏高 ### 5.2 `bytespider` 当前判断: 1. 尚未明显进入 `managed spider` 映射链 2. 但当前复测的 `robots.txt` 已基本可通 3. 不是当前主矛盾 如果后续要主动加强字节系抓取,再考虑把 `bytespider` 纳入 managed spider 映射。 ## 6. 后续执行建议 ### 优先级 A 继续观察下一轮蜘蛛日志,重点看: 1. `sogou 200` 是否继续增加 2. `sogou 403` 是否自然下降 3. 是否开始出现更多 `detail / play / category` 的正向样本 ### 优先级 B 如果某个站又在日志里报异常,排障顺序统一为: 1. 先确认是不是旧路径残留 2. 再确认当前真实路由 3. 再用真实 UA 线上复测 4. 最后才判断是否需要改 nginx 或后端 ### 优先级 C 只有在明确要做字节系 SEO 时,才考虑: 1. 把 `bytespider` 纳入 managed spider 映射 2. 再观察其 `robots/home` 命中变化 ## 7. 常用复测命令 后续人工或新的 Codex 接手时,优先直接用下面这些命令做快速验证。 ### 7.1 看普通访问是否仍被前端缓存命中 ```bash curl -I -s 'https://你的域名/真实详情或播放页' ``` 重点看: 1. `X-Cache-Status` 2. `X-Cache-Mode` 3. `X-Managed-Spider` ### 7.2 强制绕过前端缓存看最新真实输出 ```bash curl -I -s 'https://你的域名/真实详情或播放页?__nocache=1' ``` 期望看到: 1. `X-Cache-Status: BYPASS` 2. `X-Cache-Mode: bypass` 3. `X-Cache-Bypass: 1` ### 7.3 测 `Sogou` 是否已进入放行链 ```bash curl -I -s \ -A 'Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)' \ 'https://你的域名/真实首页或深页' ``` 重点看: 1. HTTP 状态是否为 `200` 2. `X-Managed-Spider` 是否为 `managed` ### 7.4 测 `Baiduspider` 是否已正常命中 ```bash curl -I -s \ -A 'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)' \ 'https://你的域名/真实首页或深页' ``` ### 7.5 测 `Bytespider` ```bash curl -I -s \ -A 'Mozilla/5.0 (compatible; Bytespider; +http://spider.bytedance.com/)' \ 'https://你的域名/robots.txt' ``` 当前预期: 1. 多数站 `robots.txt` 已能拿到 `200` 2. 但 `X-Managed-Spider` 可能仍为 `normal` ### 7.6 看首页里当前真实路由模式 ```bash curl -s 'https://你的域名/' | rg -o 'href=["'\"'\"']/[^"'\"'\"']+' | head -n 80 ``` 用途: 1. 快速确认当前站是真实使用 `/movie/...`、`/neirong-...`、`/shipin/...` 还是别的路由族 2. 避免把旧日志路径当成当前真实路径 ## 8. 长文档入口 完整细节、样本、时间线、实测证据统一在: - [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/diff-maccms/SEONexus/docs/1270-SEONexus-Codex多版本协作交接总文档.md) 建议后续接手顺序: 1. 先读本摘要 2. 再按需要跳转 `1270` 查看详细证据