电话:010-64681504 010-64684094
传真:010-64673024
邮箱:888@edo2008.com
手 机: 013693193565
内容传送有不同策略。最基本的是不想让搜索引擎看到的内容用无法爬行的格式(例如将文字放在图片、FLASH文件和插件中等)。做隐藏页面时不应该使用这些格式。只有在用户能获得实质好处时才应该使用。在这些情况下,你可能需要以搜索蜘蛛可读的格式显示给搜索引擎同样的内容。如果你要给搜索引擎显示用户不能看到的内容,可以使用CSS样式(最好不用display:none,因为搜索引擎可能有特意监控这个的过滤算法)、JAVASCRIPT、用户代理、Cookie或基于Session的传送,或可能最有效的IP传送。
使用上面描述的隐藏页面时要非常小心谨慎。搜索引擎在它们的指南中明确禁止这种做法。虽然基于意图和用户体验有一些灵活性,但搜索引擎的确严肃看待这些技术,可能因为不恰当的使用或意图操纵而惩罚甚至删除网站。
Robots.txt文件
这个文件位于域名根目录,在控制蜘蛛可能访问网站什么内容时有很多用途。你可以使用rotots.txt文件:
一、防止网站非公开部分被爬行
二、禁止搜索引擎访问脚本、应用和其他类型的代码
三、避免收录网站复制内容,例如HTML页面的打印版本或产品目录的不同排序
四、自动发现XML网站地图
robots.txt文件必须位于根目录,文件名必须全部小写。任何其他名字或位置对搜索引擎都无效。文件也必须完全是文本格式。
当你告诉搜索引擎蜘蛛不要访问一个页面时,这将防止蜘蛛访问这个页面。
基本上,页面不会被爬行,所以页面上的链接不能传递链接权重到其他页面,因为搜索引擎根本看不到这些链接。然而网上有其他页面链接到这个页面时,这个页面可以进入搜索引擎索引。当然,既然不能读取,搜索引擎就没有这个页面的太多信息,将主要依靠锚文字和链接向它的页面上的信息确定这个页面可能是关于什么的。这种页面出现在谷歌搜索结果中时显得相当少见。
在谷歌查询“site:www.ws818.com”。这不是一个用户通常会输入的查询,但你可以看到结果的样子。只有URL被列出来,没有说明。这是因为蜘蛛不被允许读取页面以获得数据。在现在的算法中,这种页面排名不高,因为相对任何普通查询的相关性分数通常都很低。
谷歌、雅虎、以身试法、ASK和几乎所有网上合法蜘蛛都遵循rotots.txt文件中设置的指令。rotots.txt文件中的指令主要用来防止蜘蛛访问网站页面和子目录,虽然也有其他选项。注意,子域名需要它自己的robots.txt文件,https:服务器上的文件也是。
robots.txt文件的语法。robots.txt文件的基本语法相当简单。指定一个蜘蛛名称,例如“goolebot”,然后再指定一个行为。蜘蛛通过用户代理(User-Agent)分辨,指定行为放在紧跟着的下一行。下面是可以指定的主要行为。
一、Disallow:要屏蔽蜘蛛访问的页面
二、Noindex:要屏幕搜索引擎并且不要索引的页面,谷歌非正式支持这个指令,雅虎和以身试法不支持。
还有一些限制:
一、每一组User-Agent/Disallow之间应该用一个空行隔开。然而同一个组之内(User-Agent行与最后一个Disallow之间)不应该有空行。
二、robots.txt文件中可以使用#代表注释。#后面同一行的文字被忽略。即可以用于整行,也可以用于一行的结尾。
三、目录和文件名是区分大小写的:“private”、“Private”和“PRIVATE”对搜索引擎来说都是不同的。
以下是一个robots.txt文件的例子:
User-agent:Googlebot
Disallow:
User-agent:msnbot
Disallow:/
User-agent:*
Disallow:/tmp/
Disallow:/logs
上面例子的效果是:
一、允许Googlebot去任何地方
二、禁止msnbot爬行网站的任何部分
三、屏蔽所有蜘蛛访问/tmp/目录或称为/logs的文件。
注意,Googlebot的行为不受第三组代码中Disallow指令的影响,因为Googlebot在robots.txt文件中有自己的指令,它会忽略被标为所有蜘蛛的指令。
新站长经常出错的是使用SSL时页面可以通过HTTP和HTTPS访问。位于http://www.ws818.com/tobots.txt的文件不能被搜索引擎解读为指导
https:www.ws818.com的爬行。要做到这一点,需要在https://www.yourdomain.com/robots.txt创建一个新的robots.txt文件。所以如果要允许爬行http服务
器的所有页面,禁止爬行https服务器上的所有页面,需要使用:
HTTP服务器:
User-agent:*
Disallow:
HTTPS服务器:
User-agent:*
Disallow:/
这些是robot.txt文件最基本的功能,也有更高级的技术。有些方法只被部分搜索引擎支持,如下面所详细讨论的。
Crawl delay(爬行延迟)
雅虎、必应、ASK支持Crawl delay。它指定蜘蛛爬行页面时要间隔给定的秒数。这个指令的目的是降低发布商服务器负载:
User-agent:msnbot
Crawl-delay:5
模式匹配
Google、雅虎和必应似乎都支持模式匹配。模式匹配相当有用,你可以用星号*通配符做一些基本模式匹配。下面是怎样使用模式匹配屏蔽以private开头
的所有子目录:
User-agent:Googlebot
Disallow:/private*/
可以使用$符号匹配字符串尾部。例如屏蔽以.asp结尾的URL:
User-agent:Googlebot
Disallow:/*.asp$
你可能希望阻止蜘蛛访问任何饮食参数的URL。要屏蔽所有包含一个问题?的URL可以用下面的指令:
User-agent:*
Disallow:/*?*
robots.txt文件的模式匹配能力比Perl等编程语言有限,所以问号没有任何特殊意义,可以像任何其他字符一样处理。
Allow指令
Allow指令貌似只被谷歌、雅虎和Ask支持。与Disallow指令相反,它指定可以被看待的目录或页面。使用时它可以部分覆盖前面的Disallow指令。这对网
站很大一部分被屏蔽,或者整个网站被屏蔽之后的处理有好处。
下面是只允许Googlebot访问google目录的例子:
User-agent:Googlebot
Disallow:/
Allow:/google/
Noindex指令
Noindex指令与meta robots noindex指令相同,明确告诉搜索引擎不要索引一个页面。Disallow指令禁止爬行,但并不禁止索引。这可能是一个非常有用
的功能,能确保页面不会在搜索结果中出现。不过截至2009年10月份,只有谷歌支持robots.txt文件中的这个指令。
网站地图
我们在开始讨论XML网站地图了。你可以通过robots.txt文件提供一个蜘蛛自动发现XML网站地图文件的机制。搜索引擎可以通过robots.txt文件中的一行
指令找到文件:
Sitemap:sitemap_location
sitemap_location应该是网站地图的完整URL,例如http://www.ws818.com/sitemap.xml。你可以把这行代码放到文件的任何地方。
应用robots.txt文件的完整说明,请参考robots.txt.org。Dave Naylor的robots.txt文件生成工具也很有用,可以节省时间,避免麻烦。
修改robots.txt时要很小心,一个简单的拼写错误都可能告诉搜索引擎不再爬行网站的任何部分。更新robots.txt文件后最好通过谷歌管理工具里的
robots.txt文件测试工具检查一下。
上一篇:Nofollow属性
下一篇:内容传送和搜索蜘蛛控制