TECHNICAL CHECKLIST · UPDATED 2026-08-01

如何确认爬虫真的读到了页面

不要从“AI 有没有推荐我”倒推抓取状态。正确顺序是先看原始服务器日志,再看响应和 HTML,最后才单独测试索引与引用。

1. 查原始服务器日志

Nginx 常见访问日志位于 /var/log/nginx/access.log,Apache 常见位于 /var/log/apache2/access.log。应至少保留请求时间、来源 IP、方法、URL、状态码、响应字节、Referer 和 User-Agent。

rg -i "spider|bot|crawler" /var/log/nginx/access.log

# 不要只看 UA,还要核对 URL、时间和状态码

User-Agent 是线索,不是身份学证明。它可以被伪造,也可能随平台更新;未公开稳定 UA 的平台不应被自动归因。

2. 核对状态码

200本次响应成功,仍需检查 Content-Type 和正文。
301/308永久跳转;检查最终地址和循环。
302/307临时跳转;查明是否被登录、地区或风控页截获。
403/429被权限、WAF 或限速拒绝;需检查规则和频率。
404/410资源不存在或已移除;不应用首页 HTML 伪装 200。
5xx服务器或上游错误;查日志并确认重试后是否恢复。

3. 检查 robots.txt 与响应类型

先确认 /robots.txt 真正返回 text/plain 和 robots 规则,不是 SPA 回退首页。通用 User-agent: * 允许公开页即可覆盖未单独列出的爬虫;不必为每个未经官方确认的 UA 堆叠规则。

curl -I https://example.com/robots.txt
curl -sS https://example.com/robots.txt

4. 检查服务端 HTML 是否有正文

很多网站在浏览器执行 JavaScript 后完整,但原始 HTML 只有一个空容器。爬虫即使获得 200,也可能没有拿到标题、产品定义、价格或链接。

curl -sS -A "ExampleCrawler" https://example.com/ \
  | rg -n "<h1|canonical|application/ld\\+json|产品名称"

对 CSR 页面,优先将公开核心信息改为 SSR/预渲染,而不是假设所有爬虫都会完整执行 JavaScript。

5. 再分别验证索引与 AI 引用

日志中的 200 只是抓取证据。搜索索引应通过官方站长平台、搜索结果和索引报告单独检查;AI 可见度应使用固定问题池、固定平台、时间戳和完整回答快照单独记录。不要将模型 API 的非联网回答冒充为真实搜索产品结果。

最小验收记录

保留检查时间、URL、UA、最终状态码、Content-Type、正文摘要哈希、robots 判定与屏幕或原始 HTML 证据。这才能在修改前后做可重复对比。