Sitemap对我们大家来说并不陌生,稍懂SEO的人就知其作用!我们最常用的WordPress也有相应的插件来实现,但我个人觉得我们最常用的Baidu Sitemap Generator、Google XML Sitemaps等等插件生成机制并不是很是很完善!
原因为何?请看下文分解:
因为搜索引擎对sitemap其中的网址数目抓取有一定的限制,记得最早的时候,google对于一个sitemap只可以抓取1000个网址,后来才大幅增加!不管一个sitemap可抓取数量现在具体增加到了多少,但肯定数目的多少对搜索引擎的抓取肯定有影响,既然有影响我们为何不做得更完美一些呢!
并且如果sitemap如果是单个文件的话,量级太大,再加服务器速度太慢,估计没有几分钟是显示不出来的!现在google也将速度指标加入PR里,单个页面不宜过大!
Baidu Sitemap Generator、Google XML Sitemaps等插件全部是采用单文件形式,并且生成机制也有待完善,如果你WP网站文章很少没问题,但当用WP建大型网站时文章数很多,各种问题就随之而来了!!
所以多sitemap机制更有利于搜索引擎快速、顺利的抓取!
何为多sitemap机制? 首先我们生成一个主sitemap(我们用main-sitemap来称呼吧)文件,此文件为sitemapindex类型,其中存放子sitemap文件(我们称之为child-sitemap吧,下同)!child-sitemap文件只用来存放具体文章item. 这里我们假定每个child-sitemap存放网址数为5000个!
我画了一个流程图,我的思路是这样的:
这样我们只需提交一个main-sitemap就可以了,搜索引擎就会通过main-sitemap找到其他所有的child-sitemap文件,并索引之!另外还写了一个方法,就是初始化全站sitemap生成,还一个是删除文章时item条目删除! 这一起加起来就构成了一个完整的sitemap更新机制!
嗯,这就是今天的工作,从流程到实现,搞定!
如果大家还有更好的方法,欢迎拍砖!
PS. 之前有朋友说每次不必那么麻烦,查找 插入删除item,何不直接删除文件重建??这样逻辑更简单! 简单是简单,但是对于大型网站来说,文章数至少是几万级别以上的,如果每更新一篇文章,如果重建一次,服务器肯定承受不住!所以采取逻辑复杂一些,服务器消耗更少!
像网易新闻那种sitemap每日更新时用程序实现的吗?
[Reply]
久酷
Reply:
October 10th, 2010 at 11:19
@电子商务博客, 嗯,肯定是用程序实现的^_^
[Reply]