如何引导搜索引擎的蜘蛛来访和控制蜘蛛行为。
一、向搜索引擎提交网站地图
如何让搜索引擎知道我们的网站而派出爬虫前来抓取?方法当然有很多样,比如我们可以与其他网站主进行链接交换,搜索引擎爬虫通过遍历对方网站上的链接,从而爬行到我们网站。也可以直接向搜索引擎入口提交网址,或者向搜索引擎提交网站地图等。新网站与其他站点交换链接不容易,因此提交网站地图给搜索引擎不失为一个好的方法。
提交网站地图可以很简单地让搜索引擎识别你的网站内部结构。以方便搜索引擎抓取,加快索引。
1.向Google提交网站地图Sitemap:http://www.google.com/addurl/?continue=/addurl 通过网址管理提交;
各大搜索引擎都提供相应的网站管理工具给站长们使用。例如Google的网站管理工具可以设定抓取频率,提交网站地图,删除失效链接。
2.向Yahoo!提交网站地图Sitemap:
通过网址http://siteexplorer.search.yahoo.com管理提交;
3.向MSN提交网站地图Sitemap: 用URL直接提交:
http://api.moreover.com/ping?u=http://your.domainname/sitemap.xml
4.百度现在不支持Sitemap。但可通过http://www.baidu.com/search/url_submit.html来提交你的网址,百度会自行索引。
二、通过编辑robots.txt文件来控制各大搜索引擎的搜索
搜索引擎派出来的蜘蛛如果不抓取我们的网站,那么我们的网站就无法得到有效索引,网友也就没有办法在搜索引擎搜索到我们的网站,但是如果对网站抓取频度过高,也会导致服务器速度产生问题,大规模的抓取甚至会产生类似于病毒攻击的效果,使网站的访问速度变得极端缓慢。
因此,SEO要懂得控制各家搜索引擎的蜘蛛抓取频率,其中尤其雅虎搜索的蜘蛛最难于控制。
怎样才能让雅虎的蜘蛛(Yahoo! Slurp)降低抓取频度呢?
雅虎的产品经理车东的建议是在网站的robots.txt中增加Crawl-delay: 设置,这个设置是目前Slurp独有的,用来告诉Slurp蜘蛛2次访问之间的间隔,单位是秒。
剩下的问题就是Crawl-delay的值该设置多大,这个要看网站自身可以承受的负载,假设你希望Slurp每10秒来访问一次,这个设置就是:
User-agent: *
Crawl-delay: 10
但是事实上雅虎美国和雅虎中国有2套蜘蛛在运行,因此实际的访问可能成倍交叉进行。幸好每个蜘蛛都是遵循Crawl-delay间隔的,因此为了进一步降低Slurp压力,希望达到10秒一次请求的频道,实际的Crawl-delay配置就要*2。
并且雅虎的蜘蛛是分布在很多台服务器上的,而多个服务器集群之间也是不相互协调同一网站的抓取频度的。车东在文章中说到Slurp来源于40多个IP网段,同网段内的蜘蛛协调抓取频度。
因此:实际的Slurp设置,需要设置为10*40 = 400秒,才能达到期望的Slurp每10秒访问一次频度。
robots.txt其他具体的设置方法,大家可以参看SEO两百个秘密:robots.txt文件的秘密,里面有很详细的介绍。
上周末豆瓣的阿北给我电话:最近你们雅虎的蜘蛛(Yahoo! Slurp)对豆瓣网的抓取频度非常高,导致服务器的速度有些慢,如何才能让Slurp降低抓取频度呢?
我首先想到的建议是在网站的robots.txt中增加Crawl-delay: 设置,这个设置是目前Slurp独有的,用来告诉Slurp蜘蛛2次访问之间的间隔,单位是秒。
剩下的问题就是Crawl-delay的值该设置多大,这个要看网站自身可以承受的负载,假设你希望Slurp每10秒来访问一次,这个设置就是:
User-agent: *
Crawl-delay: 10
我推荐使用 User-agent: * 万一有其他引擎逐步也支持这个配置呢,而不支持这个配置的引擎也会跳过这句。
可实际上我从自己网站的日志中看到:Slurp的压力却不止10秒一次,原因是这样:雅虎美国和雅虎中国有2套蜘蛛在运行,因此实际的访问可能是这样:
1.1.1.1 30/Jun/2006:00:00:03 Yahoo! Slurp China
2.2.2.2 30/Jun/2006:00:00:04 Yahoo! Slurp
1.1.1.1 30/Jun/2006:00:00:13 Yahoo! Slurp China
每个蜘蛛都是遵循Crawl-delay间隔的,因此为了进一步降低Slurp压力,希望达到10秒一次请求的频道 实际的Crawl-delay配置就要*2。
但是实际上我看到的雅虎的蜘蛛是分布在很多台服务器上的:而多个服务器集群之间也是不相互协调同一网站的抓取频度的
1.1.1.1 30/Jun/2006:00:00:03 Yahoo! Slurp China
2.2.2.2 30/Jun/2006:00:00:04 Yahoo! Slurp
1.1.1.1 30/Jun/2006:00:00:13 Yahoo! Slurp China
1.1.1.2 30/Jun/2006:00:00:13 Yahoo! Slurp China
1.1.1.1 30/Jun/2006:00:00:23 Yahoo! Slurp China
1.1.1.2 30/Jun/2006:00:00:27 Yahoo! Slurp China
我统计了一下:Slurp来源于40多个IP网段,同网段内的蜘蛛协调抓取频度。因此:实际的Slurp设置,需要设置为10*40 = 400秒,才能达到期望的Slurp每10秒访问一次频度。
给豆瓣推荐的Crawl-delay: 100 平均2.5秒访问一次,应该没有问题了。
另外,雅虎搜索的帮助中心刚刚改版,专门增加了站长专区,可以去看看。
有话要说