核对抓取限制的核心方法,是让搜索引擎蜘蛛在抓取你的博客时,能顺利拿到页面内容,而不是被robots.txt、页面meta标签或服务器响应挡住。判断顺序是:先看robots.txt是否误封目录,再看页面是否被noindex标记,最后看服务器是否返回正常状态码。只有这三步都通过,抓取限制才算基本排除。
robots.txt是放在网站根目录的纯文本文件,蜘蛛抓取前会先读它。很多博客在测试阶段写了Disallow: /,上线后忘了删,结果整站不被抓取。
核对方法:在浏览器地址栏输入你的域名加/robots.txt,查看是否出现类似下面的内容:
User-agent: *<br>Disallow: /
如果看到Disallow: /或Disallow: /blog/,而你的博客正好在这个路径下,就说明存在抓取限制。把误封的规则删掉或改成Allow,再重新检查。
适用条件:这种方法适用于你有权修改网站根目录文件的博客,比如自建WordPress、Hexo、Hugo等。如果博客托管在第三方平台,你无法直接改robots.txt,就要去平台后台找“抓取设置”或“搜索引擎可见性”选项核对。
robots.txt管的是“能不能抓”,页面meta标签管的是“抓了之后能不能收录”。两者是不同层面的限制。
核对方法:打开一篇你希望被收录的博客文章,右键查看网页源代码,搜索noindex。如果看到:
<meta name="robots" content="noindex">
说明这个页面明确告诉搜索引擎不要收录。常见原因是主题模板默认给分类页、标签页或作者页加了noindex,而你误以为文章页也会被收录。
检查项:
<head>里统一输出了noindex判断结果:如果文章页源代码里没有noindex,且robots.txt也放行,那么抓取限制大概率不在这一层。
蜘蛛抓取时,服务器返回的状态码直接决定它能不能拿到内容。常见情况如下:
200:正常,页面可被抓取301或302:跳转,蜘蛛会跟随,但多次跳转可能降低抓取效率403:禁止访问,可能是防火墙或安全插件拦截了蜘蛛404:页面不存在,无法被抓取503:服务不可用,通常是服务器过载或维护中核对方法:用浏览器开发者工具的Network面板,或使用curl命令查看响应头。例如:
curl -I https://你的域名/文章路径
如果返回403,需要检查服务器防火墙、CDN或安全插件是否把搜索引擎蜘蛛的IP段屏蔽了。如果返回503,先确认服务器是否稳定,再考虑抓取问题。
适用条件:这一步适合已经能访问页面、但怀疑蜘蛛被特殊对待的情况。如果普通用户访问都正常,而蜘蛛返回403,说明限制来自服务器层面的反爬策略,而不是robots.txt或meta标签。
改完限制后,不要只看“应该好了”,要看实际信号。可执行的验收步骤:
site:你的域名/文章路径查询,看是否出现该页面。注意:收录本身需要时间,且受搜索需求、页面质量等因素影响,不能仅凭一次查询就断定失败。比较改动前后时,要考虑季节、搜索需求变化和数据采集差异。比如你改完限制后正好赶上行业淡季,流量没涨不代表改动无效。更可靠的做法是对比“抓取测试是否通过”和“服务器日志里蜘蛛是否来访”,而不是只看排名或流量数字。
有些现象看起来像抓取限制,实际原因不同:
不要把所有“不收录”都归因于抓取限制。先确认蜘蛛是否来过,再判断限制在哪一层。
下一步:打开你博客的robots.txt和一篇目标文章的源代码,分别搜索Disallow和noindex,把结果记下来,再决定改哪里。