Google周期性地公布已设计好的新服务,帮助Web站点管理员处理对站点访问的数据过剩问题或帮助他们捕获更多网络堵塞。其中Google近期支持的一个服务是,通过努力使网虫们能够在站点发现新内容并且通过Google搜索很快得到它们。
在文章中,我将给出Google站点当前处理的具体细节,并且提供示例演示如何获得站点图以及如何运行。我使用http://www.allinvites.com作为示例站点,这个站点是我妻子的(我已事先征得她的同意)。正常情况下,我使用假设的站点,但是由于本文的目的,我使用到一个小而生动的站点。
具体细节
我已经提到过Google站点图在高层的目标,但是确实还是有很多的服务和警告。首先,Google指出站点图不会危害或帮助站点在Google的队列。实际上,Google已经在站点图FAQ中明确指出:“使用站点图不会影响PageRank(搜索引擎使用的一种网页重要性评估方式,它的值决定了网页在搜索结果中的排名)值,这对于如何计算网页的Ranking值毫无改变。”但是,网页的Ranking值由于以前没有被编入索引而现在被编入Google索引而升高。我的感受是:如果仅仅为了提升网页的Ranking值,则不需要使用站点图。如果最终Google正式指出站点图可以用于此目的或者你想从站点图获取些别的利益,你可以尝试采用这个方法。
Google没有必要为你所提交的所有网页都制作索引。例如,如果在自己的站点提交URL,而此URL在robots.txt文件中是受保护的,则Google的网虫们将尊重在robots.txt文件中的设置而忽略提交给站点图服务器的任务。第二,Google不保证所有提交的网页都得到处理,但是提交的站点图仍会被Google的网虫们所使用以了解站点更多信息。正如Google所说的,向站点图提交信息只会帮助你而不会危害你。
与其不显眼的潜在下降相比,站点图是一个很好的服务。首先,它甚至对于商业用途都是免费的。尤其对于那些身无分文的流浪者来说,这从来就不是件坏事。第二,站点图的一个要点就是高效的帮助人们更快的获得站点的索引。通过站点图比通过手工提交可以更快发现和处理你的网站、新的内容和内容的变动。
最后也是最重要的,Google提供了站点图相关的报表工具可以收集到如下的很多方面的信息:
查询统计:提供Google搜索用到的和返回关于你的网站的有关查询信息。
处理统计:提供关于处理成功或失败的信息和PageRank信息。
网页分析:提供站点的页面类信息例如何种类型网页和网页编码等总结信息。
索引统计:告知站点是如何被索引的,例如,可以获得一个关于站点的索引列表,一个站点的链接列表,并且可以查看 Google关于你的站点存储信息和其它更多的信息。
使用Google站点图
现在你对于Google站点图能帮你解决那些问题有了更好的理解了,那么,就让我们进入到如何使用这种服务中来吧。
充分利用站点图有3个步骤:
为你的站点创建站点图。
将创建好的站点图添加到Google帐户。
使用Google的报表和统计工具。
创建站点图
Google的站点图服务用到的站点图创建是采用Google自定义的开源的使用XML语言的“站点图协议”来给服务器提供你的站点关于设计方面的信息。Google甚至给你提供Google站点图产生器,它可以很有趣的为你创建现成的Google站点图。
如果要满足下面几项要求,则使用Google站点图产生器是你最好的选择:
可以在网络服务器上运行Python2.2+脚本。
通过某些方式可以向网络服务器上传文件。
如果要使用access日志产生站点图,必须知道这些日志的编码方法。
开始时,需要有Google站点图产生器。因为我的示例站点建立在Linux服务器上,所以下载了产生器的“tar.gz”版本。我的主机支持运行Python脚本程序并且我使用的是Python 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基本_url(必须):你的站点的顶层URL,在我的例子中是http://www.allinvites.com。
store_into存储信息(必需):路径和文件名将被写入到站点图中,在我的例子中是“/home/alowe/www/sitemap.xml.gz”,你不需要预先创建这个文件
default_encoding默认编码(可选):默认值是UTF-8,如果你的系统上的URL和文件路径需要不同的编码方式,则改变这个值。
verbose详细信息(可选):默认值是“1”,可以设置成0到3之间的任何数。0提供无诊断的输出,3提供重要的输出。
url or urllist(url或urll列表)(可选):用这两个指令之一告诉站点图产生器那个URL应该包含到站点图中。可以在config文件中通过url指令单个列出每一个URL,或者可以使用urllist指令和指向一单独的包含所有需要的URL文本文件来列出所有的URL。在示例中我使用url指令来列出URL,在下文可以看到。如果你采用irllist指令,那么你需要在单独的文本文件中使用url指令。
url指令包含有一个必需的参数:href.Href参数,正如你所希望的,是一个全路径,包含有你的域,你想要包括的URL。也可以使用可选的属性:changefreq, lastmod, 和 priority.
Changefreq (从不、每年、每月、每周、每天、每时或一直)用于指示站点图中URL的内容间隔多久刷新一次。
Use lastmod (ISO8601 datestamp format) to identify when content last changed.
使用lostmod来标记最近一次更新的时间。
使用priority来告诉站点图那些与其它站点图内容相关的特殊URL的相对重要性。例如,值0.5表示站点图中URL的重要性质有值为1的URL的一半的重要性。这个优先权值可以影响搜索引擎对站点搜索的次序,但是不要认为将每个URL设置成最大值是最有帮助的。这仅仅是告诉搜索引擎你的站点上所有单个的URL具有相同的重要性。它不是被用来比较你的内容与其它站点内容重要性的。
directory目录(可选):使用这个标记来详细说明在特定的目录中将要包含的URL列表。这个指令有3个参数:path(路径), url, 和 default_file(默认文件)。当url指令用于提供目录的网络路径时,path路径是目录的全路径名(例如:/home/alowe/www)。使用 default_file指令是告诉站点图产生器你的服务器的默认文件的名字(例如:index.php或 index.html)
accesslog:使用两个参数:路径和编码,允许站点图产生器为URL解析日志(log)文件
Filter:使用此指令来包含或派出指定的文件。我将在www.allinvites.com配置文件示例中给出说明。
示例
如上所述,这是我为www.allinvites.com向Google站点图提交的示例配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!--?SITE INFORMATION -->
<site base_url="http://www.allinvites.com/" store_into="/home/alowe/www/sitemap.xml.gz" verbose="1">
?<!--?INPUTS -->
?<directory path="/home/alowe/www/images" url="http://www.allinvites.com/images/" />
?<directory path="/home/alowe/www" url="http://www.allinvites.com/" default_file="index.php" />
?<!--?FILTERS -->
?<!--?Exclude URLs that end with a '~' -->
?<filter action="drop" type="wildcard" pattern="*~" />
?<!--?Exclude URLs within UNIX hidden files or directories -->
?<filter action="drop" type="regexp" pattern="/\.[^/]*" />
</site>
在继续执行之前检查配置文件,使用如下命令:
pythonsitemap_gen.py --config=config.xml --testing
当冗余集设置成1的时候,仅仅可以得到脚本程序运行中发生事情的一些概况,如果需要更多的信息,则需要增加冗余水平,下面是例子的输出:
-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”指令是在程序运行之前测试脚本的错误。
正如你所看到的,这里没有任何错误和警告。如果接收到错误信息,先更正配置文件然后再测试脚本,当测试到没有错误的时候,则可以删除“testing”指令,运行脚本程序了。
在Google站点图帐户中添加新的站点图
在向站点图帐户中添加新的站点图之前,必须用Google注册一个帐户。一旦注册成功则可以访问站点图的登录主页进行登录。图A是个漂亮而柔和的但是已经完成的页面。我想在你登录成功后演示这个页面。单击“Get started with Google Sitemaps”下面的“continue”按钮,开始运行Google站点图程序。
图A:成功登陆到站点图服务器。
在“Site Overview”屏幕中,选择“Add”按钮。
图B:选择“Add”按钮
在“Add a Sitemap”页面允许添加一个一般的或移动站点(我在本文中没有涉及移动站点),甚至提供位置使用站点图的特征而不需要创建完全的站点。在我的示例中,对于大多数的网络站点,都选择“General Web Sitemap”然后点击下一步“next”按钮。
图 C:确定需要添加的站点图
在配置文件中,使用“store_into”指令来告诉站点图产生器在什么位置放置创建好的站点图文件。在站点图的“Add a general Web Sitemap”页面中,输入一个完整的URL,然后点击“Add Web Sitemap”按钮进行处理。
图D:告知站点图所创建到站点文件的位置
如果为站点文件输入了一个正确的URL,Google站点图将在“Site Overview”页面返回成功的消息。
图 E:成功添加站点
站点验证
你可能很想知道Google在个人恶意使用可选方法对一个不属于他的站点提交站点图时是如何保护你的站点的(可选方法在下文中将会解释)。为了防止这种欺骗行为,Google要求在显示任何新站点的统计信息之前验证站点。在图E中,注意到“Verify(验证)”链接到一个新添加的站点。点击此在你站点图帐户上链接开始验证过程。
Google的假设是:如果你能通过并且能在网络站点的根上创建文件,你就是此站点的所有者。Google给你提供了一个长长的唯一的文件名并且询问你是否要在网络服务器的根文件上创建一个同名的空文件。
图 F:Google需要创建一个验证文件确保所提交的站点的所有权
用文本编辑器创建一个被请求的文件(对于Linux,我喜欢用Nano,而对于 Windows 我喜欢用Notepad++)。当一切就绪,点击页面右下角的“Verify”按钮。如果创建的文件正确,将返回如图G所示的页面。
Figure G.:验证成功
不要从网站上删除此文件。Google将会周期性的检查以确保这些文件依然存在。如果被删除,Google将要求重新验证站点的所有权。
提交站点图的其他途径
在文章中我仅仅讲述了站点图协议提交的方法,正如你可能希望的,Google推荐使用它们的自定义创建站点图协议。但是,作为Google,它们也知道用户的需求是多种多样的,所以它也提供了一些其他的方法建立站点图并且提交给站点图服务器。这些方法包括:
RSS 2.0 & Atom 0.3:如果你的站点具有企业联合组织兼容性,为什么不用它来保持对站点设计的改变的Google通知呢?这里需要采取些在可选项里的特殊步骤,而且需要参考Google文档里的更多的信息。
文本文件:如果有一个比较短小的不会经常改变的站点,则没有任何理由做一整套的工作为站点的自动更新建立一个机制。相反,则只需要让文本文件处于网络站点的最高层,并且列出所有的URL。然后让Google站点图知道在那里可以找到这些文件。
OAI-PMH (元数据收集开放档案初级协议): OAI-PMH是为在完全不同的服务器之间实现元数据的共享而设计的开放协议。点击这里可以获得关于OAI 和OAI-PMH的更多信息。