0
浏览
动态网址也就是指URL中包括 ?,& 等字符类的网址,如:news.php?lang=cn&class=1&id=2,当我们在开启了网站的伪静态之后,为了网站的SEO,就很有必要避免搜索引擎抓取我们网站的动态网址。
为什么要这么做?因为搜索引擎在对相同的页面抓取两次之后但最后判定为同一个页面的时候会而对网站做些触发的,具体是怎么处罚的,这个不太清楚,总之是不利于整个网站的SEO的。那么该如何禁止搜索引擎抓取我们网站的动态网址呢?
利用robots.txt文件即可解决这个问题,请看下面的详细操作。
我们知道动态页面都有一个共同的特征,就是在链接里会带有"?"这个问号的符号,因此我们可以在robots.txt文件里写入如下这样的规则:
User-agent: *
Disallow: /*?*
这样即可禁止搜索引擎抓取整个网站的动态链接了。
另外如果我们只想让搜索引擎抓取指定类型文件,如html格式的静态页面,可在robots.txt里面加入如下这样的规则:
User-agent: *
Allow: .html$
Disallow: /
另外记得一定要将写好的robots.txt文件放在你网站的根目录中哦,不然是不起作用的
User-agent:
该项的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件中,"User-agent:*"这样的记录只能有一条。
Disallow:
该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被robot访问到。例如"Disallow:/help"对/help.html 和/help/index.html都不允许搜索引擎访问,而"Disallow:/help/"则允许robot访问/help.html,而不能访问/help/index.html。任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。
Allow:
该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL是允许robot访问的。例如"Allow:/hibaidu"允许robot访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。
需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。
使用"*"和"$":
robots支持使用通配符"*"和"$"来模糊匹配url:
"$" 匹配行结束符。
"*" 匹配0或多个任意字符。
robots.txt语法教程
1. 允许所有SE收录本站:robots.txt为空就可以,什么都不要写。
2. 禁止所有SE收录网站的某些目录:
User-agent: *
Disallow: /目录名1/
Disallow: /目录名2/
Disallow: /目录名3/
3. 禁止某个SE收录本站,例如禁止百度:
User-agent: Baiduspider
Disallow: /
4. 禁止所有SE收录本站:
User-agent: *
Disallow: /
5. 加入sitemap.xml路径,例如:
使用 * 号匹配字符序列:
您可使用星号 (*) 来匹配字符序列。例如,要拦截对所有以 private 开头的子目录的访问,可使用下列条目:
User-Agent:Googlebot
Disallow:/private*/
要拦截对所有包含问号 (?) 的网址的访问,可使用下列条目:
User-agent:*
Disallow:/*?*
使用 $ 匹配网址的结束字符
您可使用 $ 字符指定与网址的结束字符进行匹配。
例如,要拦截以 .asp 结尾的网址,可使用下列条目:
User-Agent:Googlebot
Disallow:/*.asp$
1. 什么是robots.txt?
robots.txt 是网站和搜索引擎的协议的纯文本文件。当一个搜索引擎蜘蛛来访问站点时,它首先爬行来检查该站点根目录下是否存在robots.txt,
如果存在,根据文件内容来确定访问范围,如果没有,蜘蛛就沿着链接抓取。robots.txt 放在项目的根目录下。
2. robots.txt语法
1) 允许所有搜索引擎访问网站的所有部分
robots.txt写法如下:
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
注意: 1. 第一个英文要大写,冒号是英文状态下,冒号后面有一个空格,这几点一定不能写错。
2) 禁止所有搜索引擎访问网站的所有部分
robots.txt写法如下:
User-agent: *
Disallow: /
3) 只需要禁止蜘蛛访问某个目录,比如禁止admin、css、images等目录被索引
robots.txt写法如下:
User-agent: *
Disallow: /css/
Disallow: /admin/
Disallow: /images/
注意:路径后面有斜杠和没有斜杠的区别:比如Disallow: /images/ 有斜杠是禁止抓取images整个文件夹,Disallow: /images 没有斜杠意思是凡是路径里面有/images关键词的都会被屏蔽
4)屏蔽一个文件夹/templets,但是又能抓取其中一个文件的写法:/templets/main
robots.txt写法如下:
User-agent: *
Disallow: /templets
Allow: /main
5) 禁止访问html/目录下的所有以”.php”为后缀的URL(包含子目录)
robots.txt写法如下:
User-agent: *
Disallow: html/*.php
6) 仅允许访问某目录下某个后缀的文件,则使用“$”
robots.txt写法如下:
User-agent: *
Allow: .html$
Disallow: /
7)禁止索引网站中所有的动态页面
比如这里限制的是有“?”的域名,例如index.php?id=1
robots.txt写法如下:
User-agent: *
Disallow: /*?*
8) 禁止搜索引擎抓取我们网站上的所有图片(如果你的网站使用其他后缀的图片名称,在这里也可以直接添加)
有些时候,我们为了节省服务器资源,需要禁止各类搜索引擎来索引我们网站上的图片,这里的办法除了使用“Disallow: /images/”这样的直接屏蔽文件夹的方式之外,还 可以采取直接屏蔽图片后缀名的方式。
robots.txt写法如下:
User-agent: *
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
写robots.txt要注意的地方
1. 第一个英文要大写,冒号是英文状态下,冒号后面有一个空格,这几点一定不能写错。
2. 斜杠:/ 代表整个网站
3.如果“/”后面多了一个空格,则屏蔽整个网站
4.不要禁止正常的内容
5.生效时间是几天到两个月