博客搭建方法:怎样核对抓取限制

📍 WDQWDWQD987AAAAA:216.73.216.209
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /16514674f036.html
📄

博客搭建方法:怎样核对抓取限制

核对抓取限制,核心是让搜索引擎爬虫在访问你的博客时,能够拿到页面内容而不是被拒绝。最直接的做法是依次检查 robots.txt、页面 meta 标签、HTTP 响应头、服务器防火墙与 CDN 规则,再用抓取测试工具或日志确认爬虫实际得到的状态码。判断标准是:目标页面返回 200,正文可读,robots 规则没有误封,且日志中爬虫请求不是 403、429 或 5xx。

先分清抓取限制来自哪一层

抓取限制不是单一开关,可能来自几个位置,排查时要逐层排除:

这几层的后果不同:robots.txt 禁止抓取,爬虫可能完全不请求;返回 403,爬虫请求了但被拒绝;返回 200 但正文由 JavaScript 渲染,爬虫可能拿到空壳。先定位是哪一种,再决定改哪里。

用可执行步骤收集证据

下面这套步骤适合博客已经上线、但怀疑某些文章不被抓取的情况。按顺序做,每一步都记录结果:

  1. 在浏览器打开 你的域名/robots.txt,确认没有 Disallow: / 这类整站规则,也没有误封文章目录。若使用子目录博客,检查规则是否只针对该目录。
  2. 查看目标文章页面的 HTML 源码,搜索 noindex 和 nofollow,确认没有意外的 meta 限制。同时看响应头里是否出现 X-Robots-Tag。
  3. 用命令行或在线工具请求该 URL,观察状态码和响应头。例如:curl -I https://你的域名/文章路径。重点看是否返回 200,是否出现 403、429、503。
  4. 查看服务器访问日志,筛选爬虫 User-Agent,确认爬虫是否来过、拿到什么状态码、是否被重定向到登录页或验证页。
  5. 如果页面依赖 JavaScript 渲染,用抓取测试工具查看渲染后的 HTML,确认正文是否出现在其中。

假设某篇博客文章在日志里只有 403,没有 200,而 robots.txt 和 meta 都正常,那么限制更可能来自防火墙或 CDN 的机器人规则,而不是 robots 协议。这就是“可能原因”和“已经定位的原因”的区别:日志证据把范围缩小到了服务器层。

不同限制的代价与处理选择

核对清楚后,处理方式取决于限制类型和你的实际需求:

选择时问自己两个问题:这个页面是否希望被搜索用户看到?限制是否误伤了正常访问?如果答案分别是“是”和“是”,就应优先解除限制,而不是继续加规则。

改动前后比较要注意的干扰因素

解除抓取限制后,不要只看一两天的数据就下结论。搜索需求会随季节和热点变化,数据采集本身也有延迟和抽样差异。比较时尽量固定同一批 URL、同一时间段长度,并记录改动日期。可以观察抓取次数、状态码分布和索引数量的趋势,而不是单日绝对值。若改动后状态码从 403 变为 200,但抓取量没有立刻上升,这不一定代表失败,可能只是爬虫调度尚未跟上。

下一步,选一篇你怀疑被抓取限制影响的博客文章,按上面的顺序检查 robots.txt、meta、响应头和日志,把每一层的结果写成一行记录,再决定改哪一层。

图1 图2

nginx