Google定期会发布一些新的服务,这些服务中很多用来帮助网站管理员,管理那些来自访问者的大量数据,或帮助他们获得更多的访问量。其中之一就是Google Sitemaps,通过努力改善Google的网页搜索器(Web crawlers)来搜索网站更新内容的方式,可使网站更新迅速的出现在搜索结果页里,从而提升访问量。
本文中,将解析Google Sitemaps的细节,并通过一个例子,告诉你如何让Sitemaps企业服务。作为一个示范用的网站,我将使用http://www.allinvites.com来进行讲解。一般情况下,我会使用一个虚假的网站来做例子,但是考虑到本文的目的,一个小型的真实网站显然更为有效。
具体细节
我已经在一个上面的综述里提到了Google Sitemaps的用途,但是对于该服务,你还需要理解很多。第一点,Google指出Sitemaps不会降低也不会提升网站在Google中的排名。实际上,Google在Sitemaps的常见问答已经明确的指出了这一点:“使用Google Sitemaps将不会影响网站排名PageRank;计算网页的排名不会因此有任何改变”。不过,如果网站以前并未被索引过,而现在被Google收录了,那么网页排名还是会提升的。我对这一点的看法是:如果你唯一的目的是希望获得更好的排名,那么不要指望Sitemaps。除非Google最终官方宣布Sitemaps会用于这一点,或者你的确想从Sitemaps上获得一些其他好处。
Google并不总会索引你提交的所有网页。比如,如果你提交了一个网址,但是在网站的Robots.txt文件对其进行了保护,那么比起在Sitemaps中的设置,Google的网页搜索器会更尊重Robots.txt中的设定。
第二点,Google也并不担保所有你提交的网页都将被抓取,但是Sitemaps还是会让Google的网页搜索器对网站更加了解。正如Google指出的那样,设置你的Sitemaps通常只会帮助你,而不是伤害你。
即使存在负面影响,Google Sitemaps还是一项非常好的服务。第一点,即便被用于商业应用,它也是完全免费的。对身无分文的blog作者而言,起码这不是坏事。第二点,Sitemaps最强的一点是它帮助网站被索引的速度更快更有效。发现你的网站,提交最新更新的内容,这些都比手工去提交要快很多。
最后,可能也是最重要的,Google提供Sitemaps相关报表工具,以便你在一定范围内收集信息,包括:
咨询状况:为你提供关于通过Googele搜索你的网站、以及返回结果的相关信息。
抓取状况:关于抓取网站资料时成功和失败的信息,就像PageRank信息一样。
页面分析:关于你网站页面的类型、编码类型等统计信息。
索引状态:关于网站如何被索引的信息。举例来说,你会得到一个网站被索引的页面列表,一个连到你网站的页面列表,Google的网页快照中保存你网站的信息,以及许多其他信息。
使用Google Sitemaps
现在你可能对Google Sitemaps能帮你解决难题有了一个更好的想法,让我们来看看如何使用这项服务。
要想让Sitemaps发挥全部作用,需要3个高级步骤:
为网站建立一个Sitemap。
将该Sitemap加入你的Google账户。
使用Google的报表与状态工具。
建立一个Sitemap
Google的Sitemap服务使用Sitemaps来建立,使用Google自行定义的、开放源代码“Sitemap协议”,该协议使用XML提供关于你的网站输出信息。Google甚至还提供给你Google Sitemap生成器,使用这个专用于Google的Sitemap工具非常有趣。
如果你符合下述要求,Google的Sitemap生成器是你的最好选择:
你可以在Web服务器上运行Python 2.2+脚本程序(检查主机是否提供此服务)
你可以向你的WEB服务器上传文件
如果你打算使用access Log文件来建立一个Sitemap,你必须知道这些log文件的编码模式。
开始之前,先得拿到Sitemap生成器。我已经下载了一个"tar.gz"版本的生成器,因为下面实例网站的主机是linux服务器。我的主机支持Python scripts,版本是2.2.3。
把下载下来的文件放到你的网页服务器上,随便取个名字,比如"sitemap_gen-x.x.tar.gz"。我把文件放在实例网站的根目录下。下一步,使用gunzip命令来解压缩文件包:
gunzip -dc sitemap_gen-x.x.tar.gz | tar xvf
现在文件内容将被解压到一个同名的目录下,这个目录名后加了.tar.gz的后缀。
在这个文件夹里,可以找到范例文件example_config.xml,并把它拷贝成 config.xml。编辑这个文件,添加必要的注释参数。
base_url (必要): 你网站的最顶级域名地址。比如我的网站,这里就写http://www.allinvites.com。
store_into(必要): sitemap应当被写入的路径和文件名,对我来说,就是"/home/alowe/www/sitemap.xml.gz". 这个文件你不用事先建立。
default_encoding (可选): 默认编码为UTF-8。如果你的路径或者文件需要一个不同的解码方式,在这里改变它。
verbose(可选): 默认为1,你可以从0到3的改变它,0是不提供诊断输出,3只提供重要输出。
url or urllist (可选):使用这两个指令,告知Sitemap生成器哪些网址将被收录进sitemap。你可以使用url指令一条一条加,或者使用urllist指令指向一个单独的文本文件(文件中写上要收录的所有网址)。我的例子中使用的是url指令,后文你就会看到。如果你选择urllist指令,你依旧还要在文本文件中使用url指令。
url指令只有一个参数:href。就像你可能期望的那样,href参数是完整的路径,包括你的域名,以及你的连接地址。另外,你还可以使用一些可选的属性,比如changefreq, lastmod, 以及priority。
○Changefreq (never,yearly,monthly,weekly,daily,hourly,or always) 用于告知sitemaps多久网址内容会更新一次。
○使用lastmod (ISO8601 datestamp format) 告知上次更新内容的时间。
○并且,使用priority (0到1)告知sitemaps一个特别的网址与整个站点内容之间的相对重要性。比如,使用0.5表示该网址的重要性只是使用1.0网址的一半。Priority的数值可以影响搜索引擎搜索整个网站的顺序。不要认为每个网址后面都写上最大的数字会有什么特别的效果,那只是告诉搜索引擎你的每一个网址都是同样重要而已,因为搜索引擎不会拿这个数字同其他网站作比较。
directory (可选):使用这个标记来定义指定的目录中所有文件都将被包含进网址列表里。这个指令接受3个参数:path, url, default_file。path就是该目录的完整路径(比如,/home/alowe/www)。URl用于给定该目录的web地址(比如,http://www.allinvites.com)。使用default_file指令告知sitemap你服务器的默认访问文件(比如index.php或者index.html)。
accesslog: 有两个参数,path和encoding。它允许sitemap生成器为sitemap中包含的地址列表分析相关log文件。
filter: 使用此指令来包含或者删除指定文件。我会在为www.allinvites.com站点编写的样板配置文件中使用它。
实例
给出上述列表后,这是我为www.allinvites.com定制,打算提交给Google Sitemasp的示范配置文件:
?
? ? ?
?
? ?
?
pythonsitemap_gen.py --config=config.xml --testing
把Verbosity设置为1,你将得到一个脚本执行的较高级概况。如果你需要更多信息,提高Verbosity,这是我的小站点的输出范例:
-bash-2.05b$ python sitemap_gen.py --config=config.xml --testing
Reading configuration file: config.xml
Walking DIRECTORY "/home/alowe/www/images/"
Walking DIRECTORY "/home/alowe/www/"
Sorting and normalizing collected URLs.
Writing Sitemap file "/home/alowe/www/sitemap.xml.gz" with 77 URLs
Search engine notification is suppressed.
Count of file extensions on URLs:
5 (no extension)
1 .css
8 .gif
1 .gz
27 .jpg
1 .old
22 .php
3 .py
2 .txt
2 .xml
5 /
Number of errors: 0
Number of warnings: 0
顺便说一下,Python脚本除了"config", "testing",和"help",不接受任何其他参数。使用"config"指令将告知脚本你的配置文件名,使用"testing"指令测试你的脚本,在真实使用前看看它是否还有错。
正如你能看到的,没有错误和警告。如果你收到错误提示,改正你配置文件中的错误,而后再进行测试。当你看到“no errors”的提示后,去掉“--testing”指令,再运行一次该脚本。
添加新的sitemap到你的Google Sitemaps账户 在能为你的Sitemaps账户添加文件之前,你应当在Google先注册一个账户。得到了账户后,去sitemaps的登录页面,登录进入该服务。图A看起来很空,但是基于完成过程中的趣味,我将展示当你登录成功后的页面。点击"Get started with Google Sitemaps"下面的“Continue”按钮,OK,我们开始进入Google Sitemaps了。