了解 robots.txt 语法
最简单的robots.txt文件会用到两个关键字:User-agent和Disallow。User-agent(用户代理)是指搜索引擎漫游器(即网页抓取工具软件);Web Robots Database 中列出了大多数用户代理。Disallow 是针对用户代理的命令,指示它不要访问某个特定网址。反之,如果要允许 Google 访问某个特定网址,而该网址是已禁止访问的父级目录中的子目录,则可以使用第三个关键字 Allow。
Google 使用多个用户代理,例如针对 Google 搜索使用 Googlebot、针对 Google 图片搜索使用 Googlebot-Image。大多数 Google 用户代理都将遵循您为 Googlebot 设置的规则,但您也可以改写此选项,仅针对某些 Google 用户代理设置特定的规则。
使用上述关键字时应遵循以下语法:
User-agent: [the name of the robot the following rule applies to]
Disallow: [the URL path you want to block]
Allow: [the URL path in of a subdirectory, within a blocked parent directory, that you want to unblock]
这两行加起来被视为文件中的一个条目,其中的disallow规则仅适用于其上方指定的用户代理。您可以根据需要添加任意数量的条目,并且可以在一个条目中添加多个Disallow行,这些Disallow行可以应用到同一个条目中的多个用户代理。您可以将User-agent命令设置为应用到所有网页抓取工具(以星号(*)列出),如下所示:
User-agent: *
可在 robots.txt 文件中使用的网址拦截命令
禁止访问… 示例
禁止访问整个网站(使用正斜线(/)表示): Disallow: /
禁止访问某一目录以及其中的所有内容(在目录名后添加正斜线): Disallow: /sample-directory/
禁止访问某个网页(在正斜线后列出网页): Disallow: /private_file.html
禁止Google图片访问特定图片: User-agent: Googlebot-Image
Disallow: /images/dogs.jpg
禁止Google图片访问您网站上的所有图片: User-agent: Googlebot-Image
Disallow: /
禁止访问特定类型的文件(例如.gif): User-agent: Googlebot
Disallow: /*.gif$
禁止访问您网站上的网页,但允许在这些网页上显示AdSense广告(禁止使用Mediapartners-Google以外的所有网页抓取工具)。这种方法会阻止您的网页显示在搜索结果中,但Mediapartners-Google网页抓取工具仍然可以分析这些网页,以确定向您网站的访问者显示哪些广告。
User-agent: *
Disallow: /
User-agent: Mediapartners-Google
Allow: /
请注意,指令区分大小写。例如,Disallow: /file.asp会禁止访问http://www.example.com/file.asp,但允许访问http://www.example.com/File.asp。Googlebot还会忽略 robots.txt中的空格和未知指令。
用于简化robots.txt代码的格式匹配规则
格式匹配规则 示例
要禁止访问任意字符序列,请使用星号(*)。例如,示例代码会禁止访问所有以“private”开头的子目录:
User-agent: Googlebot
Disallow: /private*/
要禁止访问所有包含问号(?)的网址。例如,示例代码会禁止访问以您的域名开头、后接任意字符串、然后接问号、而后又接任意字符串的网址:
User-agent: Googlebot
Disallow: /*?
要禁止访问以某种特定方式结尾的所有网址,请使用$。例如,示例代码会禁止访问以.xls结尾的所有网址:
User-agent: Googlebot
Disallow: /*.xls$
要组合使用Allow和Disallow指令禁止访问某些格式的网址,请查看右侧的示例。在此示例中,? 表示会话 ID。您通常需要阻止 Google 访问包含这些 ID 的网址,以防止网页抓取工具抓取重复的网页。不过,如果某些以?结尾的网址 是您想要抓取的网页的不同版本,那么您可以使用下面这种组合Allow和Disallow指令的方法:
User-agent: *
Allow: /*?$
Disallow: /*?
Allow: /*?$指令将允许访问以?结尾的所有网址(更确切地说,该指令将允许访问以您的域名开头、后接任意字符串、然后接?、而后不再接任何字符的网址)。
Disallow: / *? 指令将禁止访问包含?的所有网址 (更确切地说,该指令将禁止访问以您的域名开头、后接任意字符串、然后接问号、而后又接任意字符串的网址)。
保存 robots.txt 文件
请务必遵循以下保存规范,以便Googlebot和其他网页抓取工具发现并识别您的robots.txt文件:
您必须将robots.txt代码保存为文本文件,
您必须将该文件保存到网站的顶级目录下(或网域的根目录下),
robots.txt 文件必须命名为 robots.txt。
举例来说,保存在example.com的根目录下且网址为http://www.example.com/robots.txt的robots.txt文件可被网页抓取工具发现,但位于http://www.example.com/not_root/robots.txt的robots.txt文件却无法被任何网页抓取工具发现。
分享至微信