Robots.txt 是什么意思?应该怎么写?
简单来说,robots.txt 是网站用来与搜索引擎爬虫沟通的一份抓取规则说明书,用来告诉爬虫网站中的哪些页面可以抓取,哪些页面不希望被抓取。正确配置 robots.txt 规则,可以帮助搜索引擎更合理地抓取网站内容,避免爬虫频繁抓取没有价值的页面。
robots.txt 必须使用 UTF-8 编码的纯文本格式,通常存放于网站的根目录下,例如:https://www.example.com/robots.txt。
ROBOTS.TXT 只是君子协定
需要注意的是,robots.txt 更像是一份君子协定,并非强制性规则。Google、Bing、百度等主流搜索引擎的官方爬虫通常会遵守这一规则,但一些恶意爬虫可能不会遵守。
网站一定要添加 robots.txt 吗
推荐添加。网站存在 robots.txt 文件时,搜索引擎爬虫通常会按照文件中的规则抓取网站内容。如果网站没有 robots.txt,爬虫通常会默认网站没有抓取限制,可以抓取网站中的公开页面。
如果网站设置了 robots.txt,一定要仔细检查其中的规则是否正确,否则可能会因为配置错误,导致搜索引擎无法正常抓取重要页面。
ROBOTS.TXT 通常需要屏蔽哪些页面
网站中通常有一些不需要被搜索引擎抓取的页面,如果这些页面被抓取并出现在搜索结果中,可能会被恶意利用。对于这些页面,可以通过 robots.txt 禁止爬虫抓取。需要屏蔽的页面主要包括:
- 网站后台页面:如
/admin/、/login/等。 - 用户隐私与账户页面:如个人中心、订单、购物车、结算页面等。
- 网站内部搜索页面:如
/search/以及搜索结果页面。 - 筛选、排序等动态页面:电商网站中通过筛选、排序等功能生成大量带参数的
URL。 - 测试、开发等临时页面:如
/test/、/dev/、/preview/等。
ROBOTS.TXT 不能屏蔽哪些页面
- 图片与视频等有效的多媒体文件,否则可能导致搜索引擎无法正常理解页面内容。
JS和CSS文件,搜索引擎需要加载CSS和JS来渲染页面。- 重要的收费内容或会员内容,这些页面不适合通过
robots.txt保护,推荐使用密码保护或设置服务器权限。
ROBOTS.TXT 常用规则介绍
| 场景应用 | 代码示例 | 解释说明 |
| 允许全部爬虫抓取 | User-agent: * | 表示允许所有爬虫抓取网站内容。也可以创建一个空白的 robots.txt,或者不设置 robots.txt,效果是一样的。 |
| 禁止全部爬虫抓取 | User-agent: * | 表示禁止所有爬虫抓取网站内容,使用时需要谨慎。 |
| 禁止抓取特定目录 | User-agent: * | 表示禁止所有爬虫抓取 /admin/ 目录下的内容。 |
| 禁止抓取特定文件类型 | User-agent: * | 表示禁止爬虫抓取以 .pdf 结尾的 URL,其中 $ 表示只匹配 URL 末尾的 .pdf。 |
| 只允许特定爬虫访问 | User-agent: Googlebot | 表示允许 Googlebot 抓取网站,同时禁止其他爬虫抓取。 |
| 告知爬虫网站地图的位置 | Sitemap: https://www.example.com/sitemap.xml | 告诉搜索引擎网站地图的位置,方便爬虫发现网站页面。 |
| 屏蔽生成式引擎蜘蛛 | User-agent: GPTBot | 表示禁止 GPTBot 抓取整个网站。 |
| 屏蔽多个生成式引擎蜘蛛 | User-agent: GPTBot | 表示禁止 GPTBot 和 DeepSeekBot 抓取整个网站。 |
WORDPRESS 通用 robots.txt 模板示例
以下为 WordPress 通用 robots.txt 文件模板。每个网站的实际情况不同,请根据自身需求进行调整。
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /admin/
Disallow: /search/
Disallow: /*?s=
Disallow: /*?utm_
Disallow: /?r=*
Disallow: /?s=*
Disallow: /page/
Disallow: /*/*/feed/
User-agent: GPTBot
Disallow: /
Sitemap: https://www.yourdomain.com/sitemap.xml
完成 robots.txt 设置后,可以通过搜索引擎站长平台进行验证,例如 Bing Webmaster Tools、Google Search Console 和百度搜索资源平台,以确保规则设置正确。