# Winsmo 公网文章 URL 可抓取性诊断

日期：2026-06-30

本诊断只做公网只读请求，没有改后台、DNS、缓存、服务器配置或数据库。

## 直接结论

Winsmo 官网可以作为 GEO 旧文改造的内容来源和发布渠道，但当前不应立刻把“PbootCMS 发文成功”视为“AI 可以稳定抓取”。

本轮只读检查显示：

- 官网首页 `https://winsmo.com/` 可以返回 HTTP 200 HTML，但响应约 10 秒，偏慢；
- 首页明确链接到 `/453.html`、`/452.html`、`/451.html`；
- 453 号文章是本轮准备改写的样板，但 `https://winsmo.com/453.html` 多次出现超时、0 字节或空响应；
- 452/451 号相邻文章曾返回 200，但也有后续 20 秒超时，说明文章详情页整体稳定性不足；
- `https://www.winsmo.com/453.html` 会 301 到 `http://winsmo.com/453.html`，文章页 canonical 路径应避免从 HTTPS www 跳到 HTTP。

结构化记录见：`data/winsmo-public-url-diagnostics.json`。

进一步后台只读对比见：`data/winsmo-article-detail-readonly-diagnosis.json`。

## 2026-06-30 公网复测补充

本轮用 5 秒预算复测首页、新闻详情页、产品详情页和案例页：

```text
检查 URL：/、/453.html、/452.html、/451.html、/18.html、/12.html、/11.html、/10.html、/323.html
UA：浏览器 UA + 爬虫 UA
总检查：18 次
通过：0 次
失败：18 次
结果：全部 5 秒 0 字节超时
```

原始结果见：`data/winsmo-public-url-latest-check-20260630.json`。

随后用 DNS-over-HTTPS 交叉检查，`winsmo.com` 当前 A 记录为 `8.163.36.152`，与已登录宝塔面板地址一致；`doctorlucheng.com` 在同次检查中未观察到 A 记录。本机 `dig` 返回 `198.18.*`，判断为本地代理/fake-IP 环境结果，不作为真实解析依据。

再用 `curl --resolve winsmo.com:443:8.163.36.152 --noproxy '*'` 直连源站计时：

| URL | 结果 | 首字节 | 总耗时 | 下载 |
| --- | --- | ---: | ---: | ---: |
| `https://winsmo.com/` | HTTP 200 | 约 10.09 秒 | 约 10.09 秒 | 20.7 KB |
| `https://winsmo.com/453.html` | 20 秒超时 | 无首字节 | 20.00 秒 | 0 字节 |

这个结果很关键：DNS、TCP、TLS 都很快，慢在首字节之前，说明瓶颈更像 nginx 后面的 PHP/PbootCMS/模板/数据库/缓存，而不是域名解析或 HTTPS 握手。

## 后台只读对比后的补充判断

我只读对比了 PbootCMS 后台 451、452、453 三篇文章，结论是：453 的公网失败不太像“未发布”或“文章过大”导致。

三篇文章共同特征：

- 状态字段均为 `1`，即后台表单显示为已发布/启用；
- 栏目均为“封阳台”；
- `filename`、`tags`、`keywords`、`description` 均为空；
- 都有 2 张图片；
- 都含有 XML 风格注释；
- 都含有未经来源证明的数据或效果主张，例如 `40%`、`45dB`、`30%`、`杜绝`、`大幅提升` 等。

差异上，453 的正文长度约 1808 字符，反而短于 451 和 452。因此当前更像：

```text
文章详情页公共渲染 / 缓存 / 伪静态路由 / 源站性能问题
```

而不是单纯的内容长度问题。

2026-06-30 的 5 秒预算复测中，`/453.html`、`/452.html`、`/451.html` 在浏览器 UA 和爬虫 UA 下全部超时、0 字节。进一步抽样首页链接到的 `/10.html`、`/11.html`、`/12.html`、`/18.html`、`/323.html`，也全部在 5 秒预算下失败。

所以当前判断升级为：

```text
不是 453 单篇文章问题，而是 Winsmo 公开详情页层整体不适合作为第一阶段 GEO 主承接面。
```

除非先解决详情页性能、缓存或伪静态/源站问题，否则旧文改造发布到 Winsmo 后台，AI 也未必能稳定读取。

## 为什么这是 GEO 的关键问题

GEO 内容不是“后台保存了就结束”。对豆包、元宝、DeepSeek 以及搜索引擎来说，最低条件是：

```text
公网 URL 可访问
→ HTML 能稳定返回
→ 标题/摘要/正文/来源能在原始 HTML 中被读取
→ URL 能被站内链接、sitemap 或外部分发发现
→ 内容在后续监测周期中持续存在
```

如果文章详情页 10-20 秒才返回，甚至 0 字节超时，爬虫可能直接放弃；即使文章内容写得再 GEO 友好，也很难进入后续检索、摘要、引用或模型侧答案生成链路。

## 453 号文章的当前判断

453 号文章适合做旧文 GEO 改造样板，因为它满足几个条件：

- 已在首页出现；
- 主题是“封阳台供应商怎么选”，符合推荐型 AI 问法；
- 原文有明确倾向和行业痛点表达；
- SEO 字段、tags、URL 名称为空，改造空间大。

但它现在也有一个发布前阻断项：

```text
https://winsmo.com/453.html
```

当前不能稳定返回 200 HTML。正式更新这篇文章前，应先排查其文章详情页为什么卡住。

## 建议排查顺序

1. 只读打开 PbootCMS 453 号编辑页，确认状态是否为已发布、栏目是否正常、正文是否包含异常 HTML 或外链资源。
2. 在前台浏览器打开 `/453.html`，同时观察是否是 404、白屏、超时、跳转循环还是服务器断开。
3. 检查 PbootCMS 缓存/生成静态页设置，确认文章详情页是否需要重新生成或清理缓存。
4. 检查 nginx/宝塔伪静态规则是否符合 PbootCMS 当前版本要求。
5. 检查 PHP-FPM、nginx、PbootCMS 运行日志，在请求 `/453.html` 的同一时间点寻找报错。
6. 检查 `www`、HTTP、HTTPS 是否有不一致跳转，文章 canonical 应统一到一个 HTTPS 主机。
7. 修复后用 `npm run check:winsmo` 重测，再决定是否把改写稿发布到官网。

## 合格标准

一篇用于 GEO 的官网文章至少要满足：

- GET 返回 HTTP 200；
- 不需要登录；
- 原始 HTML 中能看到标题、meta description、正文、品牌名、证据边界；
- HTML 首字节尽量小于 2 秒，总耗时尽量小于 3 秒；
- sitemap、栏目列表或首页能发现该 URL；
- HTTPS canonical 稳定，不从 HTTPS 跳 HTTP；
- 对浏览器 UA 和常见爬虫 UA 返回基本一致的正文。

HEAD 请求失败本身不是绝对阻断，因为部分站点不支持 HEAD；但 GET 不稳定是阻断。

## 对下一步的影响

当前建议：

```text
先排查 winsmo.com 源站/PHP/PbootCMS 详情页首字节问题
→ 同时确认新闻、产品、案例等详情页模板或缓存机制是否整体慢
→ 只在修复后新建文章/新 URL，不覆盖官网已有文章
→ 发布后立即跑 URL 诊断
→ 通过后才把该 URL 纳入 GEO 监测台账
→ 再按 `docs/POST_PUBLISH_AI_INDEXING_VERIFICATION_PROTOCOL.md` 验证搜索发现和 AI 回答采用/引用
```

在修复前，不建议把 Winsmo 旧文或新文章发布作为主分发渠道的唯一验证依据。应继续把 `doctorlucheng.com` 静态知识库作为更可控的机器可读承接站。
