2008年11月3日

Sitemaps XML 格式

Sitemaps XML 格式

跳至:
XML 標記定義
實體逸出
使用 Sitemap 索引檔
Sitemap 檔案位置
驗證 Sitemap
擴充 Sitemap 通訊協定
通知搜尋引擎檢索器

本文件說明 Sitemap 通訊協定的 XML 配置。

Sitemap 通訊協定格式是由 XML 標記所組成。Sitemap 中的所有資料值都必須是實體逸出。檔案本身必須使用 UTF-8 編碼。

Sitemap 必須:

* 以起始 標記做為開頭,並以結束 標記做為結尾。
* 指定 內的名稱領域 (通訊協定標準)。
* 讓每個 URL 中包含一個 項目做為母層 XML 標記。
* 在每個 母層標記包含一個 子層項目。

其他所有標記均為選用的。是否支援這些選用的標記須視搜尋引擎而定。詳細資訊請參閱各搜尋引擎的說明文件。

另外,Sitemap 中所有的 URL 必須來自單一主機,例如 www.example.com 或 store.example.com。如需更多資訊,請參考 Sitemap 檔案位置。
XML Sitemap 範例

下列範例顯示僅包含一個 URL 並使用所有選用標記的 Sitemap。選用標記以斜體表示。



使用 Sitemap 索引檔案 (來群組多個 Sitemap 檔案)

您可以提供多個 Sitemap 檔案,但每個 Sitemap 檔案不得超過 50,000 個 URL,且不得大於 10MB (10,485,760 位元組)。您可以視需要使用 gzip 壓縮 Sitemap 檔案以減少頻寬需求,但是解壓縮之後的 Sitemap 檔案不可超過 10MB。如果您想列出 50,000 個以上的 URL,您必須建立多個 Sitemap 檔案。

如果您提供多個 Sitemap,請將每一個 Sitemap 檔案列於 Sitemap 索引檔中。Sitemap 索引檔所列出的 Sitemap 不可超過 1,000 個,且不可大於 10MB (10,485,760 位元組),但可以被壓縮。您可以擁有一個以上的 Sitemap 索引檔。Sitemap 索引檔的 XML 格式與 Sitemap 檔案的 XML 格式類似。

Sitemap 索引檔必須:

* 以起始 標記做為開頭,並以結束 標記做為結尾。
* 讓每個 Sitemap 中包含一個 項目做為母層 XML 標記。
* 在每個 母層標記包含一個 子層項目。

Sitemap 索引檔也可使用選用的 標記。

注意:Sitemap 索引檔只可用來指定它本身所在網站中的 Sitemap。例如,http://www.yoursite.com/sitemap_index.xml 可以包含 http://www.yoursite.com 中的 Sitemap,但不能包含 http://www.example.com 或 http://yourhost.yoursite.com 中的 Sitemap。如同 Sitemaps 一般,您的 Sitemap 索引檔必須以 UTF-8 進行編碼。


其他 Sitemap 格式

Sitemap 通訊協定可讓您將您網頁的相關詳細資料提供給搜尋引擎,而且我們也鼓勵您使用這種方法,因為除了 URL 以外,您還可以提供更多網頁相關資訊。 不過,除了 XML 通訊協定外,我們也支援 RSS 資訊提供和文字檔,這兩種方式所能提供的資訊較有限。
聯合供稿資訊提供

您可以提供 RSS (聯合供稿資訊提供) 2.0,也可以提供 Atom 0.3 或 1.0 資訊提供。一般而言,只有當您的網站已使用聯合供稿資訊提供時,才會使用此格式。 請注意,這種方式不會讓搜尋引擎找到您網站中所有的 URL,因為資訊提供只會提供最新 URL的相關資訊,不過搜尋引擎仍能在一般的檢索程序中依照資訊提供裡的網頁連結,使用前述的 URL 資訊找出您網站的其他網頁。 請確認資訊提供是位在您想要搜尋引擎進行搜尋的最高層目錄。 搜尋引擎會從資訊提供擷取資訊,如下所示:

* > 欄位:代表 URL
* 修改日期 (RSS 資訊提供的 欄位和 Atom 資訊提供的 [modified] 日期):代表上一次修改各 URL 的時間。 [修改日期] 欄位是選擇性的。

文字檔

您可以提供純文字檔,其中每行包含一個 URL。 文字檔必須遵循下列指南:

* 文字檔每行必須有一個 URL。 URL 不能包含嵌入的新行。
* 您必須指定完整的 URL,包括 http。
* 每個文字檔最多可以包含 50,000 個 URL,且不可大於 10MB (10,485,760 位元組)。 如果您的網站有 50,000 個以上的 URL,您可以將清單分成多個文字檔,然後分別新增每個檔案。
* 文字檔必須使用 UTF-8 編碼。 您可以在儲存檔案時指定這個設定 (例如,在「記事本」中,此設定是列在 [另存新檔] 對話方塊的 [編碼] 功能表中)。
* 文字檔的內容應該僅包含 URL 清單。
* 文字檔不應該包含頁首或頁尾的資訊。
* 您可以視情況使用 gzip 壓縮 Sitemap 文字檔以減少頻寬需求。
* 您可以將文字檔命名為任何您希望的名稱。請檢查並確認 URL 遵循 RFC-3986 URI 標準及 RFC-3987 IRI 標準
* 您應該將文字檔上載至您想要搜尋引擎檢索的最高層目錄,並確認文字檔中所列出的 URL 都不是位於較高層目錄。

以下顯示文字檔的範例項目。

http://www.example.com/catalog?item=1

http://www.example.com/catalog?item=11

Sitemap 檔案位置

Sitemap 檔案的位置會決定可納入該 Sitemap 中的一組 URL。位於 http://example.com/catalog/sitemap.xml 的 Sitemap 檔案可以包含任何以 http://example.com/catalog/ 開頭的 URL,但不可包含以 http://example.com/images/ 開頭的 URL。

如果您有權限變更 http://example.org/path/sitemap.xml,您也應該有權限提供前置網址為 http://example.org/path/ 之 URL 的資訊。在 http://example.com/catalog/sitemap.xml 中被歸類為有效的 URL 包括以下範例:
http://example.com/catalog/show?item=23 http://example.com/catalog/show?item=233&user=3453

http://example.com/catalog/sitemap.xml 中歸類為無效的 URL 包括:
http://example.com/image/show?item=23 http://example.com/image/show?item=233&user=3453 https://example.com/catalog/page1.html

請注意,這表示列於 Sitemap 中的所有 URL 必須使用相同的通訊協定 (範例中使用的是 http),且須和 Sitemap 位於同一個主機上。例如,如果 Sitemap 位於 http://www.example.com/sitemap.xml,就不可包含來自 http://subdomain.example.com 的 URL。

已歸類為無效的 URL 會在之後的程序中被捨棄。我們強烈建議您將 Sitemap 放在您網頁伺服器的根目錄中。例如,如果您的網頁伺服器位於 example.com,那麼您的 Sitemap 索引檔將位於 http://example.com/sitemap.xml。在某些情況下,您需要不同的路徑產生不同的 Sitemap (例如當您組織的安全性權限會針對不同目錄劃分不同的使用權限時)。

如果您使用具有通訊埠號碼的路徑來提交 Sitemap,則必須將該通訊埠號碼做為路徑的一部分,包含在 Sitemap 檔案所列的各個 URL 中。例如,如果您的 Sitemap 位於 http://www.example.com:100/sitemap.xml,則 Sitemap 中所列的各個 URL 都必須以 http://www.example.com:100 為開頭。
Sitemap 與交叉提交

若要從單一主機提交多個主機的 Sitemap,您必須證明您擁有該主機的所有權,才能在 Sitemap 中提交其 URL。這裡提供一個範例。假設您要提交 3 部主機的 Sitemap:
www.host1.com with Sitemap file sitemap-host1.xml www.host2.com with Sitemap file sitemap-host2.xml www.host3.com with Sitemap file sitemap-host3.xml

另外,您想要將這三個 Sitemap 全部放置在單一主機上:www.sitemaphost.com。所以 Sitemap URL 將會變成:
http://www.sitemaphost.com/sitemap-host1.xml http://www.sitemaphost.com/sitemap-host2.xml http://www.sitemaphost.com/sitemap-host3.xml

依照預設,這樣會導致「交叉提交」錯誤,因為您正嘗試透過 www.sitemaphost.com 主控的 Sitemap 提交 www.host1.com 的 URL (其他兩部主機的情況也是如此)。避免發生此錯誤的辦法就是證明您擁有 (也就是擁有修改檔案的權限) www.host1.com。您可以藉由修改 www.host1.com 上的 robots.txt 檔案,使其指向 www.sitemaphost.com 上的 Sitemap。

此範例中,位於 http://www.host1.com/robots.txt 的 robots.txt 檔案會包含 "Sitemap: http://www.sitemaphost.com/sitemap-host1.xml"。透過修改 www.host1.com 上的 robots.txt 檔案,並將其指向 www.sitemaphost.com 上的 Sitemap,您就可以間接證明您擁有 www.host1.com。換句話說,不論是誰控制 www.host1.com 上的 robots.txt 檔案皆會信任 http://www.sitemaphost.com/sitemap-host1.xml 上的 Sitemap,納入 www.host1.com 的 URL。以上相同程序適用於其他兩部主機。

現在您可以提交 www.sitemaphost.com 上的 Sitemap。

當其中一部特定主機的 robots.txt,假設是 http://www.host1.com/robots.txt,指向其他主機上的 Sitemap 或 Sitemap 索引時,robots.txt 預期每一個目標 Sitemap,例如 http://www.sitemaphost.com/sitemap-host1.xml,屬於該主機的所有 URL 會指向它。如同先前所述,這是因為 Sitemap 只會預期擁有來自單一主機的 URL。
驗證 Sitemap

下列 XML 配置定義可出現在您的 Sitemap 檔之元素和屬性。您可以在以下連結下載這個配置:

關於 Sitemap:http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
關於 Sitemap 索引檔:http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd

有許多工具可以協助您根據此配置,來驗證您 Sitemap 的結構。在以下每個位置您都可以找到 XML 相關工具的清單:

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html