robots.txt是搜索引擎爬虫进入网站后第一个读取的文件,它像一份给爬虫的通行规则说明书。这份文件放在网站根目录下,例如 https://www.ipipp.com/robots.txt 就能直接访问到。爬虫抓取网页前会先请求这个地址,如果文件不存在,爬虫会默认所有页面都可以抓取;如果文件存在但语法有问题,爬虫的行为可能变得不可预测。因此,花几分钟把robots.txt写明白,比事后反复检查收录情况要省事得多。

编写robots.txt并不需要你会编程,它只是一组简单的文本指令。最核心的两个字段是 User-agent 和 Disallow。User-agent 用来指定规则适用于哪个爬虫,星号 * 代表所有爬虫;Disallow 用来指定不允许抓取的路径。比如下面这个最常见的写法:
User-agent: * Disallow: /wp-admin/
上面两行表示所有搜索引擎爬虫都不应该抓取 /wp-admin/ 这个目录下的内容。注意 Disallow 后面的路径是以网站根目录为基准的,也就是说 /wp-admin/ 对应的是 https://你的域名/wp-admin/。如果你只想屏蔽百度爬虫,可以写成 User-agent: Baiduspider。不同搜索引擎的爬虫名称不一样,谷歌的叫 Googlebot,必应的叫 bingbot,百度的主要爬虫叫 Baiduspider。写错爬虫名称会导致规则完全不生效,这是新手最容易忽略的细节。
Allow与Disallow的优先级和通配符用法
很多新手以为 Disallow 权限最高,写了 Disallow 就一定能拦住爬虫。实际上在同一个规则组里,Allow 的优先级高于 Disallow。也就是说,如果你写了一个宽泛的 Disallow 规则,但又用 Allow 明确放行了某个子路径,爬虫会优先遵循 Allow。这种机制非常适合整体屏蔽某个目录,但单独开放其中几个重要文件或子目录。
举一个实际例子,假设你不想让爬虫抓取 /private/ 目录,但希望其中 /private/public-info.html 这个页面能被正常收录,可以这样写:
User-agent: * Disallow: /private/ Allow: /private/public-info.html
这种写法下,爬虫依然会抓取 public-info.html,但 /private/ 下的其他文件都会被跳过。注意这里有一个前提:Allow 和 Disallow 写在同一个 User-agent 组内才适用这个优先级规则。如果是两个不同的 User-agent 组,各组的规则互不干扰,爬虫只会看自己对应的那一组。
robots.txt 还支持两个通配符。星号 * 代表任意长度的任意字符串,美元符号 $ 代表路径结束。比如 Disallow: /search?q=* 可以屏蔽所有带搜索参数的页面,Disallow: /*.pdf$ 可以屏蔽所有以 .pdf 结尾的文件。通配符用好了能让规则非常灵活,但用错位置也会误伤正常页面。比如 Disallow: /*.pdf$ 这个写法是安全的,但如果你写成 Disallow: /pdf,那只会屏蔽根目录下名为 pdf 的文件,而不是所有 PDF 文件。
robots.txt常见误区与正确写法示范
有一个流传很广的误解是:只要在robots.txt里写了Disallow,这个页面就绝对不会出现在搜索结果里。事实并非如此。robots.txt只是告诉爬虫不要抓取页面内容,但如果这个页面被其他已经收录的页面用链接指向,搜索引擎依然可能根据链接、锚文本等信息将其展示在搜索结果里,只是不会显示页面摘要。要彻底阻止页面被收录,需要配合页面级别的 noindex 元标签,或者在服务器响应头里加上 X-Robots-Tag: noindex。
另一个常见错误是把整个网站都屏蔽了。有些新手在调试网站时写下 Disallow: /,意思是禁止抓取根目录下的所有内容,等网站上线后却忘了删掉这一行。结果搜索引擎完全无法抓取网站,收录量长期为零。检查robots.txt时,看到 Disallow: / 这一行一定要格外注意,如果这不是你的本意,请立即移除。
大小写问题也必须重视。robots.txt 中的路径是区分大小写的,/Admin/ 和 /admin/ 是两个完全不同的路径。如果你服务器上实际目录是大写的,规则里却写成了小写,屏蔽效果就不会生效。建议统一使用小写路径,并在服务器上保持目录名称一致,减少出错概率。
下面是一个比较完整的robots.txt示范,适用于常见的WordPress网站,既屏蔽了后台和无关文件,又保留了必要的抓取通道:
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /wp-content/cache/ Disallow: /trackback/ Disallow: /comments/feed/ Disallow: /*?s= Allow: /wp-content/uploads/ Sitemap: https://www.ipipp.com/sitemap.xml
最后一行 Sitemap 不是必须的,但强烈建议加上。它告诉搜索引擎你的站点地图在哪里,能加快页面被发现的速度。Sitemap 后面的网址要写绝对路径,不要只写 /sitemap.xml。另外要注意,Sitemap 指令可以放在文件的任意位置,但为了清晰通常放在最后。
如何验证robots.txt是否生效
写完robots.txt之后,不要直接扔到服务器上就不管了。搜索引擎都提供了官方的robots测试工具,百度搜索资源平台有robots校验工具,谷歌Search Console也有robots.txt测试器。你可以把文件内容粘贴进去,输入想测试的URL,工具会告诉你这个页面是否被允许抓取。这是最直观的排查方式,比人工一行行看规则可靠得多。
如果手头暂时没有这些工具,也可以直接通过修改文件内容来做基本判断。比如屏蔽一个测试目录,然后观察搜索引擎爬虫是否在后续几天内不再抓取该目录下的页面。但这种方法比较慢,不如官方工具即时反馈来得高效。无论用哪种方式,修改robots.txt后都需要给搜索引擎一些时间重新抓取该文件,通常是几小时到几天不等,不会立即生效。
还有一点需要提醒:robots.txt 本身是公开可访问的,任何人都可以在浏览器里输入你的域名加上 /robots.txt 来查看。所以不要在里面写任何敏感信息,比如后台的实际目录名称如果不想被外人知道,就不要在Disallow里写得太具体。虽然屏蔽规则本身不会直接暴露服务器结构,但过于详细的路径确实会给不怀好意的人提供线索。保持规则简洁、必要、准确,才是robots.txt最理想的状态。
robots.txt搜索引擎爬虫网站收录修改时间:2026-09-26 19:34:55