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了。