創建Google Sitemap

原來看到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)。 

發佈了175 篇原創文章 · 獲贊 3 · 訪問量 87萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章