Google Sitemap文件格式

昨天作的sitemap樣版是依照我自己的想法下去弄的,我想或許有人會有不同的想法,所以乾脆來說明一下Google Sitemap的文件格式,也是因為他實在很簡單啦(比RSS還簡單),如果有能力的人就可以自己修改樣版了,另外,昨天的樣版有更新過了^^。

以我的網站為例,最簡單的Google Sitemap長的像下面這樣:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
	<url>
		<loc>http://blog.othree.net</loc>
	</url>
</urlset>

可以看到東西非常的少,一個<url />標籤代表一個頁面(注意:頁面而已,並沒有連結或是網站結構的資訊,所以理論上有多少網頁就要幾個<url />標籤),可以發現,除了<loc />標籤外,其他的幾個<priority />、<lastmod />、<changefreq />都是可以不用的。

  • <priority />是優先度,值從0.0到1.0,1.0代表最高。
  • <lastmod />是最後更新時間,格式是用ISO 8601的標準,有兩種支援的格式,分別是只有日期(ex:1997-07-16)和日期加上完整時間(ex:1997-07-16T19:20:30+01:00,包含時區),我之前的樣版是只有日期的,如果想用完整加上時間的,可以改成format="%Y-%m-%dT%H:%M:%SZ",參考自Niall Kennedy's Weblog:Google Sitemaps using Movable Type
  • <changefreq />則是代表更新頻率,可以用的值有很多:always、hourly、daily、weekly、monthly、yearly、never,都是字面上的意思,我的樣版除了首頁是always外,單篇彙整都是用never,因為我認為blog的特性是過去的文章很少會再更新了,所以我都用never,如果覺得不適當的人也可以改掉。另外這個標籤有一個要注意的是,他不具命令效力,搜尋引擎並不會真的照上面的設定的頻率來作資料更新。

可以調整的三個元素敘述如上,沒講到的<loc />當然就是網頁的URL,一個<url />標籤裡面就包含一個網頁的資訊,網站有多少網頁就應該有多少個<url />標籤,不過有些網頁是不需要被瀏覽器搜尋的,像是blog裡的彙整頁面,所以我就只有放上單篇彙整的資訊而已。<urlset />則是root element,基本上就是不會變的,至於裡面的屬性直和我昨天用的不太一樣,這就不用太在意,只是差在有沒有給這個sitemap指定XML Schema而已。

另外還有就是一個sitemap文件可以有多個站台的資訊,這部分我就不解說了,blog應該是用不上的,有興趣的可以去參考Sitemap Protocol : Provide Multiple Sitemap Files。最後需要注意的是,一個sitemap文件最多只能有50000個<url />標籤,而且檔案大小需小於10MB,我想都很難碰到吧。