原来看到Google的Sitemap,不是很在意。虽然觉得这确实是搜索引擎偷懒的好办法,不用bot辛苦地去每个页面搜索了。但是要让用户主动提交内容,要有很大的号召力才行,否则很难成为标准。另外,创建Sitemap还挺麻烦的,一般的小站长估计不太容易学会。 事实上,Google的Sitemap也还不是很流行,特别在国内。
不过最近Google、微软与Yahoo最近达成协议,将使用统一的Sitemaps标准,所以原来使用范围仅局限Google网站管理员工具的sitemaps,也将被其他两家搜索引擎接受,而且未来或许会有更多搜索引擎采纳这个协议。看来站长们还是要会使用Sitemap,尽管目前在国内百度一家独大,其它三家合起来也是不可忽视的,该做的工作我们都得做呵呵。
目前Google用的Sitemap协议是0.84 ,而三家公司共同采用的将会是0.9版本,应该变化不大,暂时不用去理会它。
创建Sitemap小结:
1。创建Sitemap文件:
http://www.google.com/support/webmasters/bin/answer.py?answer=34654&hl=zh_CN
Sitemap就是个XML文件,很简单,你完全可以自己编辑完成,只要保证语法正确。但是如果站点内容比较多,不可能手动写这些内容,所以我们要用到Sitemap的自动生成器。这个是Google提供的:
http://www.google.com/webmasters/sitemaps/sitemap_generator
也有很多第三方提供的生成器,甚至有在线版的,听起来很诱人,但是我懒得一一去试用了,还是用官方版本的东西比较放心。
首先要写一个配置文件:mysite_config.xml
里面:
<site
base_url="http://www.mysite.com/"
store_into="/www/site1/root/sitemap.xml.gz"
verbose="1"
>
然后使用生成器脚本,这是个python写的软件,在命令行下运行命令很简单:python sitemap_gen.py --config=mysite_config.xml
呵呵,就会在/www/site1/root/目录下生成sitemap.xml.gz,用
gzip -d sitemap.xml.gz
解压缩,会在站点根目录生成sitemap.xml。生成器执行生成文件后,还会告诉Google,你的SiteMap更新了。
现在你可以试用http://www.mysite.com/sitemap.xml访问,如果正常说明创建成功。创建成功后,提交给Google(https://www.google.com/webmasters/tools/),或者在首页放个链接即可。
二。在写配置文件时有几个要注意的地方
首先静态网站很简单,指定一下目录路径,生成器就会很聪明地去遍历相应的目录了:
<directory
path="/var/www/docroot"
url="http://www.example.com/"
default_file="index.html"
>
如果你的站点是动态网页,生成器没法得到每个地址(比如http://yoursite.com?articleid=234这种地址)因为这个工具是在命令行下运行,本地遍历目录而已,没有通过http连接来访问服务器。 所以你要在cofig.xml中利用apache的用户访问日志来得到动态url地址(有个问题,如果站点里有些动态网页没人访问,岂不是就不能加在sitemap里了? 我也不清楚呵呵)
找到以下部分:
<!-- ** MODIFY or DELETE **
"accesslog" nodes tell the script to scan webserver log files to
extract URLs on your site. Both Common Logfile Format (Apache's default
logfile) and Extended Logfile Format (IIS's default logfile) can be read.
Required attributes:
path - path to the file
Optional attributes:
encoding - encoding of the file if not US-ASCII
-->
<accesslog path="/etc/httpd/logs/mysite-access.log" encoding="UTF-8" />
还有,有些网页你不想被Google搜索到,可以使用过滤器:
<filter action="drop" type="wildcard" pattern="*private*" />
<filter action="drop" type="regexp" pattern="//.[^/]*" />
drop表示不列入Sitemap,第一条规则用的是通配符,表示所有包含private字符串的url都不列入Sitemap。第二条用的是正则表达式,表示不列出*nix系统下的隐藏文件或目录(文件/目录名为.abc)。