Robots.txt 终极指南:从入门到精通(附完整示例)
内容
## 什么是 Robots.txt?
`robots.txt` 是一个位于您网站根目录下的纯文本文件,它遵循“机器人排除协议”(Robots Exclusion Protocol),用于告知搜索引擎爬虫(如 Googlebot)哪些页面或文件可以或不应该被抓取。正确配置 `robots.txt` 是技术 SEO 的基础,有助于引导爬虫高效地索引您网站的重要内容,同时保护敏感或不必要的页面不被收录。
---
## 关键要点:存放位置
`robots.txt` 文件的位置至关重要,它**必须**放在网站的根目录下。如果放错位置,搜索引擎将无法找到并遵循其规则。
- **正确位置**: `https://wiki.lib00.com/robots.txt`
- **错误位置**: `https://wiki.lib00.com/blog/robots.txt`
**核心规则**:
- 文件名必须是全小写的 `robots.txt`。
- 每个域名(或子域名)都需要一个独立的 `robots.txt` 文件。
- 必须使用 UTF-8 编码。
---
## 核心语法解析
`robots.txt` 的语法非常简单,主要由几条指令构成:
| 指令 | 说明 | 示例 |
|---|---|---|
| `User-agent:` | 指定该规则适用于哪个爬虫。`*` 代表所有爬虫。 | `User-agent: Googlebot` |
| `Disallow:` | 禁止爬虫访问指定的路径。 | `Disallow: /admin-lib00/` |
| `Allow:` | 允许爬虫访问指定的路径,其优先级高于 `Disallow`。 | `Allow: /public/` |
| `Sitemap:` | 告知爬虫站点地图的位置,帮助其发现网站上的所有重要页面。 | `Sitemap: https://wiki.lib00.com/sitemap.xml` |
| `Crawl-delay:` | (非标准,但部分爬虫支持)设置两次抓取之间的最小时间间隔(秒)。 | `Crawl-delay: 5` |
### 通配符的使用
- `*`:匹配任意字符序列。
- `$`:匹配 URL 的结尾。
例如,`Disallow: /*.pdf$` 会禁止爬虫抓取所有以 `.pdf` 结尾的文件。
---
## 完整配置示例(推荐)
这是一个由 DP@lib00 整理的综合性 `robots.txt` 示例,您可以根据自身需求进行修改。
```txt
# robots.txt for wiki.lib00.com
# 默认允许所有爬虫访问
User-agent: *
Allow: /
# 1. 禁止访问后台、私有和临时目录
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
Disallow: /api/
# 2. 禁止抓取特定的文件类型
Disallow: /*.zip$
Disallow: /*.log$
# 3. 禁止索引搜索结果和用户操作页面
Disallow: /search
Disallow: /login
Disallow: /cart
Disallow: /checkout
# 4. 禁止带有特定参数的动态 URL
Disallow: /*?sessionid=
Disallow: /*?sort=
# 5. 为特定爬虫设置特殊规则 (可选)
User-agent: BadBot
Disallow: /
User-agent: Googlebot
# 允许 Google 访问所有内容,但禁止一个特定目录
Disallow: /nogoogle/
# 6. 指定站点地图 (Sitemap) 位置
Sitemap: https://wiki.lib00.com/sitemap.xml
Sitemap: https://wiki.lib00.com/sitemap-images.xml
```
---
## 常见陷阱:Sitemap 必须使用绝对 URL
一个非常常见的错误是在 `Sitemap` 指令中使用相对路径。根据官方规范,**Sitemap 必须使用包含协议和完整域名的绝对 URL**。
- **✅ 正确写法**: `Sitemap: https://wiki.lib00.com/sitemap.xml`
- **❌ 错误写法**: `Sitemap: /sitemap.xml`
**原因**:
1. **协议要求**:搜索引擎需要明确知道 Sitemap 的确切位置。
2. **跨域支持**:允许您将 Sitemap 文件托管在 CDN 或其他域名上。
您可以为一个网站指定多个 Sitemap,每个占一行即可。
---
## 实用模板
### 模板 1:完全开放
适用于所有内容都希望被索引的简单网站。
```txt
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
```
### 模板 2:完全禁止
适用于开发中或不希望被任何搜索引擎收录的网站。
```txt
User-agent: *
Disallow: /
```
---
## 如何验证?
配置完成后,务必使用工具进行验证,以确保没有语法错误。
- **Google Search Console**: 内置了强大的 robots.txt 测试工具。
- **Bing Webmaster Tools**: 同样提供相关功能。
通过遵循本指南,您可以自信地为您的网站(例如 wiki.lib00)创建一个强大而有效的 `robots.txt` 文件,从而提升网站的 SEO 表现。
关联内容
SEO疑云:`page=1`参数是否会引发重复内容灾难?
时长: 00:00 | DP | 2025-11-26 06:44:42Sitemap URL中的中文需要编码吗?终极指南
时长: 00:00 | DP | 2025-11-27 08:19:23分页SEO终极指南:`noindex` 和 `canonical` 的正确用法
时长: 00:00 | DP | 2025-11-27 16:50:57Vue SPA 终极 SEO 指南:Nginx + 静态化打造完美收录
时长: 00:00 | DP | 2025-11-28 18:25:38robots.txt 能挡住恶意爬虫吗?别天真了,这才是终极防护秘籍!
时长: 00:00 | DP | 2025-11-09 08:15:00多语言网站SEO终极对决:URL参数、子域名、子目录,哪个才是最优解?
时长: 00:00 | DP | 2025-11-12 11:51:00相关推荐
一行代码搞定PHP数组安全过滤:`array_intersect_key` 与 `array_flip` 的妙用
00:00 | 0次深入解析PHP中 `array_intersect_key` 与 `array_flip` 函数的组...
从数据库设计到容错脚本:构建企业级PHP网站统计系统的完整实践
00:00 | 23次本文详细探讨了构建一个精确且强大的网站统计系统的全过程。从解决常见的全站UV重复计算问题入手,我们设...
MySQL 数据迁移终极指南:从 A 表到 B 表的 5 种高效方法
00:00 | 13次在数据库管理中,将数据从一个表复制到另一个表是一项常见操作。本文详细介绍了在 MySQL 中使用 `...
十六进制随机字符串的魔力:从UUID到API密钥,它为何无处不在?
00:00 | 6次您是否曾对 `2228719544cd9425f10a8d94eaf45a76` 这样的神秘字符串感...