robots.txt是什么?
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件(其实UTF-8也没任何问题),它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
为什么一定要写好robots.txt?
有一条蜘蛛抓取网站的基本规律,或许绝大多数的SEO同仁们并不了解,小星SEO分享于此,希望可以帮助到更多同行:作为一个文本爬虫协议,搜索引擎每次发起对网站的抓取,它首先会试图抓取robots.txt,如果robots文件存在,它会试图理解遵循相应规则。对于绝大多数网站优化案例来讲,一个优秀的robots.txt至少可以在三个方面帮助你的网站:
1. 过滤无效蜘蛛程序。比如:对一个中文网站SEO而言,YAHOO并不能带给你什么流量。但是,雅虎蜘蛛却是较为活跃,站长可以在robots.txt里将其过滤禁止其抓取网站。这样可以节省你的带宽支出,并提升服务器性能。
2. 禁止某个或某类蜘蛛的无效抓取。蜘蛛程序总是能通过你网页的链接、HTML代码的文件引用抓取到大量对搜索引擎排名没有任何价值的页面,那么SEO站长们可以将这些URL规则加入到Disallo清单里。这样做会带来两个好处:其一,如同上一条,减少蜘蛛程序的无效抓取,可以节省带宽和提升服务器性能;其二,绝大多数搜索引擎在抓取一个网站时,会有一个按天计划的“抓取预算”,比如百度站长资源平台将其称为“抓取频次”。我们减少搜索引擎的无效抓取,更充分的利用有限的抓取预算,让蜘蛛抓取到更多更有价值的页面。
3. 通过robots.txt申明SITEMAPS地址。虽然有专职团队或者人员进行SEO操作的网站,我们通常会通过各搜索引擎站长平台手动提交SITEMAP。但是,将SITEMAP地址申明在robots.txt中,它同时对所有搜索引擎生效,而且多一个提升网站地图的渠道,只可能更有益处。
读到这里,相信大多数读者已经知道了robots.txt的重要性。转入重点,祥子来举几个例子,详细说明robots怎么写才规范吧。
举例说明robots正确写法:
1、robots.txt文件必须小写。注意:搜索引擎是对大小写敏感的。和其他网址一样,robots.txt 文件的网址也区分大小写。
2、robots.txt 文件位置:robots.txt文件必须位于主机的顶级目录中,可通过适当的协议和端口号进行访问。如潮涌老师博客的robots文件访问路径为:chaoyongseo.com/robots.。
3、用user-agent指定为某个爬虫限定规则。如:“user-agent: *”表示针对所有爬虫,“user-agent: GoogleBot”表示该行以下的爬虫抓取规则针对GoogleBot。
4、用allow与disallow来指定某个URL规则是否充许抓取。如:“Disallow: /guestbook.html”表示禁止抓取以 “/guestbook.html”开头的所有网页,“Allow: /guestboot.html?first”表示允许抓取“/guestboot.html?first”。
关于SEO写得最多的allow与disallow,小编在这里想强调几点,因为你可能很难在其它资源上找到这些详细的说明:
1:disallow与allow后,必须以斜杠“/”开头。如:“allow: /seo/”。
2:disallow或allow后所附带了某串字符串,并不是精确匹配,而且覆盖匹配模式。如:“disallow: /seo/”或“sallow: /seo”,它会匹配所有以“/seo/”或“/seo”开头的所有网页。
3:allow的优先级,永远高于disallow。无论它的在robots.txt文件里写在什么位置,谁在前或在哪行写在后面,均遵循“允许”优先于“禁止”的原则。比如:你在robots.txt里有两行分别是:“allow: /seo”与“disallow: /seo”,无论两行的位置如何,抓取引擎会抓取以“chaoyongseo.com/robots.”开头的网页。
4:更精确的URL规则,永远高于更广泛的URL规则,而且优先级高于以上“allow”与“disallow”的优先级。再以上例稍加修改:你在robots.txt里有两行分别是:“allow: /seo/*.html”与“disallow: /seo/”,无论两行的位置如何,抓取引擎会抓取符合“/seo/*.html”规则的网页。举例:根据前述robots规则,“https://www.chaoyongseo.com/seo/”为禁止,“chaoyongseo.com/seo/153”为允许。
5:allow、disallow、user-agent均可使用通配符。如上条,星号“*”表示通配表示任何有效字符的 0 个或多个,这也是我们SEO在写robots.txt时最常用的,使用时请注意星号可以匹配0个字符。事实上,如果robots文件里通配网页规则时,如果星号“*”放在字符串尾,它跟没有放星号的效果是一样的,原因见以上第“2)”条。
同时我们常用的robots.txt协议通配符还有:美金符号“$”表示以上面字符串结尾。
关于通配符使用的几个写法实例:
“allow: /*”等同于 “/”。结尾的通配符会被忽略。
“disallow: /seo*”等同于 “/seo”。匹配所有以“/seo”开头的网页。
“disallow: /*yiyelaoshi”。匹配所有包含“yiyelaoshi”的网页。详解:首先,“seoxiangzi”前使用了通配符星号,而星号可以代替0个或N个字符,表示seoxiangzi前可以是任何字符串;其实,robots.txt是含有匹配模式,那么它后面也可以是0个或N个任意字符。所以可以理解为它匹配了所有包含“seoxiangzi”的网页。
“disallow: /*yiyelaoshi$”。注意,这一条与上条的唯一区别在于尾部加了个美元符号“$”。表示匹配所有以“yiyelaoshi”结尾的网页。
“disallow: /yiyelaoshi$”。这种写法SEO用得较少。表示精准匹配一条网址。
“user-agent: Google*”。匹配所有谷歌蜘蛛。
6:关于robots.txt文件里的大小写:命令不区分大小写,匹配项区分。意思是:“user-agent”“allow”“disallow”“sitemap”这些命令是不区分大小写的;这些命令后的字符串内容,是区分大小写的。举个例子:“allow: /SEO/153.html”与“allow: /seo/153.html”它匹配到的网页是不一样的。
最后,非常慎重的提醒各位SEO:如果你对robots.txt的写法没有十足把握,一定要在上线前使用百度Robots工具或谷歌robots工具先行验证。
完
你在看吗?