博客robots.txt怎么写?别让百度蜘蛛迷路了
有个兄弟跑来问我,说他的博客都上线一个月了,百度一篇都没收录,是不是被"关小黑屋"了。
我让他把robots.txt发我看看。
打开一看我差点笑出来——他把Disallow设成了 / ,直接告诉所有搜索引擎"别来抓我"。这不是自己把门关上了吗...
robots.txt这东西看起来不起眼,但写错了真的会让你博客半年都收不录。今天专门聊聊这个。
robots.txt到底是干嘛的?
简单说,robots.txt就是放在你网站根目录的一个文本文件,告诉搜索引擎爬虫"哪些页面可以抓,哪些不能抓"。
它不是强制性的,属于一种"君子协定"。大部分搜索引擎会遵守,但个别不老实的爬虫可能会无视它。不过百度、Google这些正规搜索引擎都会遵守的。
文件位置:https://你的域名/robots.txt
你可以在浏览器里直接访问这个地址,看看你的博客有没有这个文件,以及内容写对了没有。
一个标准的robots.txt长什么样
先看一个正确的例子:
```
User-agent: *
Disallow: /zb_system/
Disallow: /zb_users/
Disallow: /admin/
Disallow: /?page=
Allow: /
Sitemap: https://www.wushuangbk.com/sitemap.xml
```
逐行解释一下:
- User-agent: * —— 这是对所有搜索引擎爬虫说的。如果你想单独针对百度,就写 User-agent: Baiduspider
- Disallow: /zb_system/ —— 不要抓Z-Blog的系统目录,后台文件不用让搜索引擎看到
- Disallow: /zb_users/ —— 用户数据目录也屏蔽掉,包含登录信息
- Disallow: /?page= —— 分页URL,避免重复内容被抓
- Allow: / —— 除了上面列的,其他都允许抓取
- Sitemap —— 告诉搜索引擎sitemap在哪里,方便它发现你的所有页面
常见的robots.txt写法错误
我见过太多博客把robots.txt搞炸了,列几个最常见的坑:
| 错误写法 | 问题 | 正确做法 |
|---|---|---|
| Disallow: / | 全站禁止抓取 | Disallow: 具体目录 |
| 空白文件或不存在 | 搜索引擎随便抓 | 写一个规范文件 |
| 不加Sitemap | 蜘蛛找不到所有页面 | 必须加上Sitemap地址 |
| Allow和Disallow顺序反 | 规则优先级混乱 | 先写Disallow再写Allow |
最致命的就是第一种,把Disallow写成 /,等于告诉百度"这个网站所有内容都不准抓"。我那个朋友就是犯了这种低级错误,改完之后三天就收录了首页。
不同程序的robots.txt模板
Z-Blog PHP:
```
User-agent: *
Disallow: /zb_system/
Disallow: /zb_users/
Disallow: /api/
Disallow: /?page=
Allow: /zb_users/upload/
Sitemap: https://你的域名/sitemap.xml
```
注意那个Allow /zb_users/upload/,因为你的文章图片可能存在upload目录里,这个要让蜘蛛抓到,不然百度搜图就搜不到你博客的图片了。
WordPress:
```
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /trackback/
Disallow: /?s=
Disallow: /?p=
Allow: /wp-content/uploads/
Sitemap: https://你的域名/sitemap.xml
```
通用型(适合任何博客):
```
User-agent: *
Disallow: /admin/
Disallow: /login/
Disallow: /temp/
Disallow: /*?*
Allow: /
Sitemap: https://你的域名/sitemap.xml
```
这个 /*?* 的意思是屏蔽所有带参数的URL,可以避免大量重复页面被抓取。
robots.txt高级用法
禁止特定搜索引擎抓取:
```
User-agent: Baiduspider
Disallow: /private/
User-agent: Googlebot
Disallow:
```
这段的意思是:百度不能抓/private/目录,Google可以全站抓取。不过一般人用不到这个。
禁止抓取特定文件类型:
```
Disallow: /*.php$
Disallow: /*.json$
```
这行告诉爬虫不要抓后缀为.php和.json的文件。对于博客来说一般不需要,但某些特殊场景有用。
Crawl-delay指令:
```
Crawl-delay: 5
```
让爬虫每次抓取后等待5秒再抓下一个。对于小博客服务器来说可以减轻压力,但要注意百度不一定遵守这个指令,Google也不承认这个参数。
写完之后怎么验证?
第一步: 浏览器直接访问 https://你的域名/robots.txt,看能不能正常打开。
第二步: 用百度搜索"robots.txt检测工具",把你的网址输进去,看看百度蜘蛛能访问到哪些页面。
第三步: 用Google Search Console的"robots.txt测试工具"(虽然你的博客主要面向百度,但Google也做一下吧,反正又不亏)。
第四步: 过几天看百度站长平台的抓取诊断,看看robots.txt有没有被正确识别。
改完robots.txt之后一般不需要做什么额外操作,搜索引擎下次来抓取时会自动读取最新的robots.txt。如果你急着让它生效,可以在百度站长平台手动提交一下更新。
常见问题
Q1:robots.txt写错了会怎样?
轻的嘛就是某些页面不被收录,严重的就像我那朋友一样,全站不收录。但别太慌,改过来之后一般1-2周就能恢复。
Q2:robots.txt和meta robots标签有什么区别?
robots.txt控制的是爬虫能不能"看到"这个URL,meta robots(在网页head里写)控制的是搜索引擎能不能"收录和展示"这个页面。两者配合使用效果最好。
Q3:改完robots.txt多久生效?
百度的话一般1-3天就会重新读取。你可以在百度站长平台的抓取诊断里看到它最近一次读取robots.txt的时间。
Q4:要不要屏蔽CSS和JS文件?
不建议。百度官方明确说过,他们需要读取CSS和JS来正确理解页面内容。如果你屏蔽了,可能会影响页面的索引质量。
Q5:sitemap在robots.txt里必须写吗?
虽然百度站长平台可以单独提交sitemap,但在robots.txt里也声明一下是好的习惯,相当于双重保险。
推荐阅读
需要了解更多使用技巧?扫码加我微信,我来给你详细解答!
微信号:15207283116
标签: robots.txt SEO优化 百度收录 博客搭建 搜索引擎
还木有评论哦,快来抢沙发吧~