實用工具
輸入
結果
結果會顯示在這裡。靜態網站、匯出的文件站,或用爬蟲工具抓下來的一份網址清單,常常少了一個 sitemap。把網址每行一個貼進來,這裡會嚴格依照 sitemaps.org 協定產生 sitemap.xml:網址為絕對位址,並完成百分比編碼與實體跳脫,每行可選填 lastmod、changefreq、priority,多語系網站還能加上 hreflang 替代連結。超過 50,000 筆網址或未壓縮大小超過 50 MB 時,會自動分割成編號的多個 sitemap,並產生指向它們的索引檔。若要在 Node.js 伺服器上於每次部署時重新產生 sitemap,可以使用實作了相同規則的 sitemap.js(ekalinin/sitemap.js,MIT)。
它是怎麼運作的
- 每行一個網址,後面可以用 | 分隔附加欄位:W3C 日期作為 lastmod,weekly 之類的單字作為 changefreq,0.0 到 1.0 的數字作為 priority,「語言=網址」作為替代連結。
- 網址中的 & 和引號會跳脫為 & 與 ',非 ASCII 路徑會做百分比編碼,國際化網域名稱會轉成 punycode,這些都是協定的要求。
- 重複的網址會自動移除,不是絕對 http(s) 位址的行會被略過並計數;如果網址分屬多個主機也會提示,因為一個 sitemap 只能列出與自身相同主機的網址。
- 分割後,每個程式碼區塊都是完整的檔案,檔名寫在 XML 宣告後方的註解中;索引會列出每個檔案,並附上該檔案中最新的 lastmod。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- changefreq 和 priority 有用嗎?
- 對 Google 沒有用,它的文件明確表示會忽略這兩項。lastmod 會被採用,但前提是始終準確,所以要嘛依實際修改時間填寫,要嘛乾脆不填。Bing 等其他爬蟲可能仍會參考 changefreq 和 priority,因此工具將它們保留為選填。
- hreflang 替代連結要怎麼寫才正確?
- 每個語言版本都要有自己的一行,而且每一行都要列出完整的替代連結組合,包括它自己——單向標註會被 Google 忽略。再加上 x-default,指向語言都不相符時要顯示的版本。範例輸入中就有一組中英文頁面的寫法。
- 要怎麼讓搜尋引擎找到 sitemap?
- 在 Google Search Console 和 Bing Webmaster Tools 提交,並在 robots.txt 中加一行附完整網址的 Sitemap:,讓其他爬蟲也能找到。分割後只需提交索引檔,搜尋引擎會順著它找到其餘檔案。
- 分割出來的檔案要放在哪裡?
- 和索引檔放在一起,也就是「sitemap 位置」選項中填寫的位址;未填寫時預設使用第一個網址的網域根目錄。sitemap 只能列出與自身所在主機相同的網址,所以請把檔案放在該主機上,或先在 Search Console 中驗證兩個主機再提交索引。
背後的開源專案
本工具是獨立實作,並未打包第三方函式庫。ekalinin/sitemap.js(MIT)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。
ekalinin/sitemap.js也常被稱作
- sitemap 產生器
- 網站地圖產生
- sitemap.xml 產生
- xml 網站地圖線上產生
- sitemap 索引檔
- hreflang sitemap