偏好设置

我们非常重视您的隐私,因此您可以选择禁用某些对网站基本功能并非必要的存储类型。屏蔽某些类别可能会影响您的网站使用体验。更多信息 (Cookie 政策)

接受所有 Cookie

Robots.txt:掌控Googlebot的抓取方式

Robots.txt:控制Googlebot的抓取、屏蔽目录、抓取速率指令,以及SEO最佳实践。

Sorank 用户照片Sorank 用户照片Sorank 用户照片Celio FabianoSorank 用户照片客户 Xavier Breull 的头像
+ 9,000 位订阅者
一个在文本编辑器中打开的robots.txt文件,显示User-agent、Disallow和Sitemap指令。
上传界面元素

工具

Sorank 创始人 Thibault Besson-Magdelain

关于作者

Thibault Besson-Magdelain

Sorank 创始人,拥有 7 年以上 SEO 经验,GEO 爱好者。
本页内容
用 AI 总结本文:
分享至

摘要

Robots.txt是放在您站点根目录下的一个文本文件,它告诉搜索引擎该抓取您站点的哪些部分、该跳过哪些部分,帮助管理抓取预算,并防止私密页面被收录。

想深入了解?请询问

Robots.txt是一个简单却强大的文件,它控制搜索引擎如何抓取您的网站。它位于`https://example.com/robots.txt`,其中包含规定Google、Bing和其他机器人可以抓取哪些页面和目录的规则。Robots.txt帮助您管理抓取预算(Google每天抓取的页面数量),避免把抓取浪费在不重要的页面上,并让私密内容不出现在搜索结果中。

大多数网站都有robots.txt文件,但很多都配置有误。配置错误的robots.txt可能会意外屏蔽重要页面,白白浪费排名潜力。配置得当的robots.txt能提升抓取效率,并保护您站点的隐私。本指南涵盖robots.txt的语法、最佳实践和实际案例。

什么是Robots.txt,搜索引擎如何使用它

Robots.txt是一个标准化的文本文件,用来向搜索引擎机器人传达抓取指令。当一个机器人首次访问您的站点时,它会在抓取任何其他内容之前先请求`/robots.txt`。机器人读取这些规则并遵守它们(前提是这个机器人守规矩)。

Google的robots.txt文档是这一标准的权威参考。robots.txt格式诞生于1994年,此后被广泛采用。所有主流搜索引擎(Google、Bing、百度)都遵守robots.txt。

重要提示:Robots.txt是一份指引,而不是一道防火墙。守规矩的机器人(Google、Bing)会遵守robots.txt的规则。恶意机器人和采集程序则无视robots.txt。请把robots.txt用来管理搜索引擎的抓取,而不是用来拦截黑客或采集程序。安全方面请使用服务器层面的工具。

Robots.txt的语法与基本规则

Robots.txt使用简单的文本语法。每条规则由两部分组成:一个User-agent(这条规则适用于哪个机器人)和若干Disallow路径(要屏蔽哪些页面)。

基本示例:

User-agent: *
Disallow: /admin/
Disallow: /staging/
Sitemap: https://example.com/sitemap.xml

这告诉所有机器人(`*`表示全部)不要抓取`/admin/`和`/staging/`目录。Sitemap那一行告诉机器人您的站点地图位于何处。

User-agent: \*表示所有机器人。您也可以指定单个机器人:

`User-agent: Googlebot`只适用于Google的机器人。`User-agent: Bingbot`只适用于Bing的机器人。您可以设置多个User-agent区块,各自带不同的规则。

Disallow: /path/告诉机器人不要抓取那个路径。Disallow: /会屏蔽整个站点。Disallow: 留空则允许一切。每个User-agent下可以列出多条Disallow规则。

Allow: /path/允许抓取某个特定路径,即便它的上级目录被禁止了。例如:Disallow: /temp/ 加上 Allow: /temp/important/,就只允许抓取 /important/ 这个子目录。

常见的Robots.txt写法

写法1:屏蔽后台管理页面

User-agent: *
Disallow: /admin/
Disallow: /user/
Disallow: /account/

这会阻止管理页、用户页和账户页被抓取。这些页面通常并不是给搜索引擎看的。

写法2:屏蔽预发布环境

User-agent: *
Disallow: /staging/
Disallow: /test/

阻止机器人抓取您站点的测试版或预发布版。

写法3:屏蔽特定文件类型

User-agent: *
Disallow: /*.pdf
Disallow: /*.zip

阻止机器人抓取PDF和ZIP文件。如果您有很多不该被收录的PDF,这会很有用。

写法4:给猛冲服务器的机器人降速

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Crawl-delay: 10

完全屏蔽Ahrefs的机器人(如果您不希望自己的站点被SEO工具抓取)。通过在请求之间加入10秒延迟,给Semrush的机器人降速。对于那些把您服务器压垮的激进机器人,Crawl-delay很有用。

写法5:允许全部(默认)

User-agent: *
Disallow:

这是默认状态。Disallow留空意味着全部允许。如果您希望所有内容都可被抓取,也可以干脆不放robots.txt。

Robots.txt与meta robots noindex的对比

Robots.txt阻止抓取。meta robots noindex阻止收录。两者用途不同。

在以下情况使用robots.txt:您想节省抓取预算。您有不该被抓取的重复内容。您有不该被机器人碰到的后台管理页面。您想给激进的机器人降速。

在以下情况使用meta robots noindex:您希望某个页面被抓取但不被收录(以便看到错误和问题)。您想阻止收录,但仍允许内部链接和抓取。您想最终把某个页面从搜索中移除,但保持它在线。

举例:`/products?page=2`这类分页页面可以在robots.txt中屏蔽,以节省抓取预算(因为Google通常会把分页合并处理)。但您也可能希望它们被抓取,以便识别规范化关系。那种情况下,请使用规范标签,而不是robots.txt。

用Robots.txt管理抓取预算

抓取预算是Google每天在您站点上抓取的网址数量。拥有数百万页面的大型站点,不可能每天把所有页面都抓一遍。Google会根据您站点的权威度和更新频率来分配抓取预算。抓取预算是有限的。把它浪费在不重要的页面上,就意味着重要页面被抓取的频率变低。

通过屏蔽那些不该被抓取的页面来优化抓取预算:重复内容、分页的搜索结果、用户账户页、测试页。您每屏蔽一个页面,就等于给Google留出更多预算去抓取您的重要内容。

常见的抓取预算浪费源:无限分页(商品筛选会生成无穷无尽的网址)、带不同参数的重复内容、附加在每个网址上的会话标识、不断生成新网址的日历与活动页面。请用robots.txt屏蔽这些模式。

Google Search Console会显示您站点的抓取统计数据。请每天关注抓取请求。如果Google反复抓取同样的页面却没有发现新内容,请检查您的robots.txt和屏蔽策略。

Robots.txt中的Sitemap

请把您的站点地图网址写进robots.txt。在robots.txt文件末尾加上`Sitemap: https://example.com/sitemap.xml`。这会告诉Google在哪里找到您的XML站点地图。如果您有多个文件,可以列出多个站点地图。

示例:

User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml

在robots.txt中列出站点地图是可选的(您也可以通过Google Search Console提交站点地图),但这是一项最佳实践。

测试与验证Robots.txt

Google Search Console提供了robots.txt测试工具。前往 Settings > Crawling > Test robots.txt。输入一个网址,看看robots.txt是否屏蔽了它。在部署之前验证规则时,这一步价值极高。

在部署robots.txt改动之前,请务必先测试。一个失误(比如用`Disallow: /`屏蔽了您的整个站点)就可能让排名崩塌。请用测试工具确认:

重要页面没有被屏蔽。后台管理页面已被屏蔽。重复内容的模式已被屏蔽。没有关键路径被误禁。

部署robots.txt之后,请关注Google Search Console抓取报告的变化。如果抓取速率意外下降,您可能误屏蔽了重要内容。

常见的Robots.txt错误

错误1:屏蔽CSS和JavaScript。如果您在robots.txt中屏蔽了`/css/`或`/js/`,Google就无法抓取您的CSS和JavaScript。没有CSS,Google就无法正确渲染您的页面。不要屏蔽CSS或JavaScript。

错误2:屏蔽了重要内容。部署前请务必测试。一个笔误,比如把`Disallow: /staging/`写成了`Disallow: /p`,就可能无意中屏蔽掉`/products/`。

错误3:把robots.txt当作安全手段。不要指望robots.txt来保护敏感数据。涉及安全的页面应当要求身份验证,而不是只靠robots.txt。Robots.txt是公开的,很容易被绕过。

错误4:各域名之间的robots.txt不一致。如果您有多个域名,请保持robots.txt策略一致。不经意的规则差异会造成抓取效率问题。

错误5:把站点地图本身屏蔽了。绝不要在robots.txt中屏蔽`/sitemap.xml`。Google需要抓取站点地图才能发现页面。

Robots.txt的进阶功能

Crawl-delay与Request-rate:这些指令用来给机器人降速。`Crawl-delay: 10`会在请求之间加入10秒间隔。`Request-rate: 1/10`表示每10秒允许1次请求。请把它们用在那些把您服务器压垮的机器人上。Google建议改用Search Console的设置,而不是这些指令。

Allow指令:即便上级路径被禁止,也允许抓取某个特定路径。适合用来开个例外口子。例如:`Disallow: /temp/`加上`Allow: /temp/keep/`,就只允许抓取keep这个子目录。

Google的robots.txt规范记录了所有受支持的指令。大多数功能都很少用得上。对绝大多数站点来说,用好基本的User-agent、Disallow和Sitemap就够了。

Robots.txt的进阶指令

针对特定User-agent的规则,让不同机器人适用不同的抓取规则。您可以分别为Googlebot、Bingbot和其他User-agent指定规则。如果您希望Google抓取整个站点,同时限制Bing访问某些板块,这就很有用。请在每个规则块的开头指定User-agent:

`User-agent: Googlebot`只把规则应用于Google的爬虫。`User-agent: *`把规则应用于所有机器人。规则一直对该User-agent生效,直到出现下一条User-agent指令为止。您可以为不同的机器人创建多个规则块。

Crawl-delay和Request-rate指令告诉机器人该以多高的频率抓取。`Crawl-delay: 5`告诉机器人在两次请求之间等待5秒。这能减轻服务器负载。`Request-rate: 1/10`告诉机器人每10秒最多发起1次请求。Google的robots.txt文档详细说明了所有受支持的指令。

Sitemap位置指令告诉机器人在哪里找到您的站点地图。`Sitemap: https://example.com/sitemap.xml`把机器人指向您的XML站点地图。您可以指定多个站点地图。推荐这么做,因为它能帮机器人高效地发现您的全部页面。

Clean-param指令会在抓取前去掉网址参数。`Clean-param: utm_source&utm_medium https://example.com`告诉Google忽略example.com上的UTM参数。这可以避免Google把带跟踪参数的链接当成重复内容。如今这条指令用得较少,因为Google已经能自动处理大多数跟踪参数。

请在Google Search Console的robots.txt测试工具中测试您的robots.txt文件。该工具会显示对Googlebot而言,您的robots.txt会屏蔽哪些网址。这能避免误屏蔽重要页面。

结论

Robots.txt是一个简单却关键的文件,用于管理搜索引擎的抓取并保护您站点的隐私。配置得当的robots.txt会屏蔽不重要的页面、节省抓取预算,并避免重复内容被反复抓取。配置错误的robots.txt则可能误屏蔽重要内容,让您的排名崩塌。

部署前请务必测试robots.txt的改动。用Google Search Console的测试工具验证规则。每月关注您的抓取统计数据。屏蔽不重要的内容,把抓取预算管好。请使用我们的GEO SEO审计工具,来审查您的robots.txt配置,并找出整个站点在可抓取性和收录方面的潜在问题。

来源

常见问题

在robots.txt中屏蔽一个页面能改善SEO吗?

不能。在robots.txt中屏蔽一个页面会阻止Google抓取它,但对SEO没有帮助。如果您不希望某个页面被收录,请改用noindex标签。robots.txt的用途是节省抓取预算。

应该屏蔽CSS和JavaScript文件吗?

不应该。绝不要在robots.txt中屏蔽CSS或JavaScript。Google需要访问这些资源,才能完整理解您的页面。屏蔽它们会让Google无法正确渲染您的内容。

应该设置什么样的抓取速率?

一般来说,除非Google发起的请求太多,否则您不需要设置抓取速率。如果Google正在耗尽您的带宽,请使用Crawl-delay指令。大多数站点都能承受Google的默认抓取速率。

我们为雄心勃勃的企业打造的博客

他们已先于您体验了 SORANK

来自雄心勃勃的创始人的评价

自然增长电子商务

5个月内从0增至10000访客

Celio Fabianomonrobotlavevitre.fr
自然增长软件

8个月内客户从0增至5000

Thibault BMsorank.com
自然增长休闲与航空

4个月从0增至1104次点击

Dominiqueflight-sensations-idf.com
自然增长音乐软件

4个月点击增长至30倍

Valentin Cordiertiger-sounds.com
自然增长健康养生

4个月点击增长至30倍

Rodrigue Bretonalthevia.com