在上一節我介紹了網站架構,當網站架構出現了之後,搜尋引擎怎麼會知道我們的網站發生變化了呢?就像是你換了新房子,想找好友來暖房,那麼好友怎麼知道你家怎麼走呢?這節就是來告訴你,我們如何幫搜尋引擎畫網站地圖。
當我們提到網站地圖的時候,很多人想到的都是類似下面這張圖:
但事實上,這樣的圖是給訪客看的;而搜尋引擎也需要一張地圖給機器本身看,或者嚴格講是給搜尋引擎的蜘蛛看的。那麼搜尋引擎的地圖怎麼呈現呢?很簡單,用 XML 架構的地圖「展示」給搜尋引擎的蜘蛛們看。我說蜘蛛們是因為搜尋引擎不只是一隻蜘蛛,它可能有多種蜘蛛,這些蜘蛛會對查看過的頁面進行索引,而你的網站內容也不只有文字或圖片,有可能會包含影片、可以下載查看的文件…等等,對不同的內容進行索引。
那麼 XML 網站地圖長什麼樣子,如何幫助站長或管理員有效管理呢?或者這麼說:XML 網站地圖可以為站長或管理員帶來什麼樣的 SEO 好處?首先我先來說一下XML 網站地圖的優點。
- 假使網站架構比較大,網站地圖可以更快幫助搜尋引擎了解網站架構,提升索引的效率
- 需要新增網頁的時候,可以透過 XML 網站地圖快速告知搜尋引擎目前網站上有哪些新網頁
- 如果是現有的網頁,但內容進行更新了,網站地圖也會通知搜尋引擎,讓搜尋引擎更新它的索引資料庫
- 有 XML 網站地圖,也可以避免網站內出現內部連結或是孤兒級別的網頁
- 當網站缺少重量級的外部連結,網站地圖也可以提供搜尋引擎一個很好的輔助。
此外,如果網站中,有些連結加上了 noindex 的標示(也就是不需要索引,通常這一類的網站多半都是完成註冊或購買或連結到外網的連結),這樣也可以幫助搜尋引擎快速移除那些不需要索引的連結資料。只不過這樣的操作要小心一點,因為一旦操作錯誤,原來已經索引的網頁就會從搜尋引擎中消失無蹤了。
因此,我們可以把 XML 網站地圖當成我們跟搜尋引擎溝通的一個管道。換句話說,當我們決定要把網站中比較重要的頁面讓搜尋引擎進行索引的話,把這些網頁放到搜索引擎中是一個挺好的方式。從技術上來說,把網頁連結放到 XML 網站地圖只是增加了被索引的機率,並不能保證的是當你把這些網頁放到 XML 網站地圖中,搜索引擎就一定會進行索引,這點還是要先說明一下。
那麼XML 網站地圖到底長什麼樣子呢?我在這裡分享我之前做的兩個截圖給各位參考一下:
上述兩個截圖當中,第一個是大陸的全時雲運通信公司的XML網站地圖;第二個是台灣的愛播聽書XML網站地圖。第一個截圖就是把連結展示出來;第二個截圖則多了幾個標籤。在第二個截圖當中,加上紅框的標籤部分就是其中一個頁面的網站內容。那麼這個部分的內容代表的是什麼意思呢?跟各位說明如下:
〈loc〉位置標記
這個標記顯示了URL 的位置,而且等於告訴搜尋引擎這一頁是這個網站的標準規範網頁。這裡面會規範的是站點協議(例如:http 或是 https),還有你是否選擇使用 www,如果不使用 www,那麼 www 只是其中一個分支文件夾而已,而你的網站域名就不是 www.abc.com,而是 abc.com 了,www 只是其中一個子域名而已。
〈lastmod〉最後更新時間標記
Google 會使用這個標記來代表這個網頁最後更新的時間,它同時也象徵另外一層意義:就是這個網頁是歸屬我的,因為只有我會進行這個網頁的 XML 網站地圖修改。對搜尋引擎來說,也因為知道了時間,就知道這個網頁是否為更新過的網頁,是否需要重新安排蜘蛛再度查訪一次,看內容是否有什麼新的變化。
〈changefreq〉更新頻次標記
更新頻次標記一般人都會當成多久一次會更新,讓搜尋引擎知道,這樣搜尋引擎可以安排時間更新索引的內容。但事實上,Google 並不那麼在意這個,而比較在意的是時間本身。只是對 Google 是如此,對其他搜尋引擎就不一樣了。
〈priority〉優先級別標記
同樣的,對優先級別標記來說,絕大部分的站長或是網站管理員會標記哪些網頁要優先標記,但事實上搜尋引擎,特別是 Google,並不關注這個標記。
當然在上面的例子當中,並不是所有的標籤都是一定要有的,比如說〈Priority〉優先級以及〈lastmod〉最近更新等元資料標籤。有這些標籤的目的主要是確保內容是正確而且及時的。
網站地圖的種類
首先要先說的是,XML 網站地圖無論是從羅列的 URL 總數或是檔案大小都是有限制的:
- 一個檔案當中,最多只能容納 5萬個連結
- 在每有壓縮檔案的情況下,檔案大小必須小於 50 MB。
從第二點我們就知道 XML 檔案是可以壓縮的,壓縮的格式會類似 xxx.xml.zip,這樣可以節省你的帶寬以及伺服器的讀取壓力。但一旦解除壓縮之後,檔案的限制依然要受到上述的規則限制。其次,一個網站只能有一個網站地圖,但如果你的網站極大,5 萬個連結放不下,那麼是可以區分成多個網站地圖檔案,然後再整合成一個sitemap-index.xml 的格式。,所以如果你有多個網站地圖,你需要先將各個網站地圖展示成下方,然後再將這些不同的網站地圖檔案合併成一個。
其次,如果你完成了XML網站地圖,你需要提交這個網站地圖到搜尋引擎當中,每個搜尋引擎都有自己的網站地圖上傳頁面,以下是幾個常見的搜尋引擎的網站地圖上傳頁面:
- Google:使用 Google Search Console
- Bing 的網站地圖上傳頁面
- 百度的網站地圖上傳頁面
當你完成網站地圖的上傳聲明之後,你還需要在 robots.txt (robots.txt 就是網站管理員用來跟搜尋引擎「溝通」的管道,也是放在網站根目錄當中)告訴搜尋引擎到哪裡去找這些個網站地圖。
robots.txt 當中輸入 sitemap 位置
接著讓我說明一下XML網站地圖的種類:
XML 圖片網站地圖
當你的網站有大量的圖片時,而你希望你的圖片都能通過搜尋引擎完成索引,讓圖片更容易尋找的時候,你需要使用 XML圖片網站地圖做為輔助。在當今的搜尋引擎當中,幾乎所有的搜尋引擎都提供了圖檔,因為圖檔幾乎都會跟網頁中的內容產生關聯性,所以當你查找這些圖的時候,都會連結到對應的網頁中。
Google 的圖片搜尋,在每張圖下方都可以看到圖片來源地
當然最適合展示圖片內容的方式就是利用 schema.org 當中的 imageobject 標記語言,因為它能支持比圖片網站地圖更多的屬性讓搜尋引擎查找。當然這意思就是,如果你的網站圖不多,其實並不需要用 schema.org 完成;但如果你的計畫是靠授權圖片營利,我會建議你想搞懂 schema.org 當中的 imageobject 方式完成圖片的區分。如果你並不是用自己的網站代管,而是交給其他的CDN 內容分發網路進行分發,你也不需要單獨準備一個 schema.org 相容的檔案,因為它已經被囊括進去了喲。
XML 影片網站地圖
就像 XML 圖片網站地圖一樣,XML 影片網站地圖紀錄的是你網站上的影片,無論是短影片或是長影片,它都可以像紀錄圖片一樣,把這些影片內容都紀錄到 XML 檔案中。同樣的,你也可以利用 schema.org 當中的 videoobject 紀錄你的影片。
Google 新聞網站地圖
假使你經營的是一個新聞媒體,有大量的新聞,那麼 Google 的新聞蜘蛛就是你最好的工具來源,這時候你就需要 Google 新聞網站地圖。跟之前的蜘蛛不同的是,Google 新聞蜘蛛每個網站只能容許最多 1000 個連結,會收錄兩天內發布的新聞內容,而且很特別的是這個蜘蛛(新聞網站地圖)本身並不容納圖片 URL。
HTML 網站地圖
就像我前面說的,XML 網站地圖是給搜尋引擎看的,而人們會看到的則是這個 HTML 網站地圖。也許有人會問:如果我的網站設計的很棒,我還需要有網站地圖嗎?嗯,這是一個有趣的問題。如果你的 HTML 網站地圖在速度上與正常的網頁相同速度,而且你的網站從分析報告中展現的量也很好,那麼的確不需要有這麼一個 HTML 網頁,你可以善用 XML 網站地圖。因為 XML 網站地圖管理的好,你網站上重要的網頁應該都會收錄進去,這樣就不需要有 HTML 網頁了。
動態網頁網站地圖
一般網站使用的是靜態網頁,這時候當我們對靜態網頁做了內容的更新或是刪除,可能你會遺漏掉你的 HTML 網站地圖,這樣反而會造成內容未更新或是內容失效的問題。因此我並不建議你放上一般的 HTML 網站地圖。如果可以的話,動態網頁網站地圖因為是自動隨著網站內容更新的,反而更能動態變化,展現最新的變動結果。
那麼要怎麼建立動態網站地圖呢?有三個方式:
- 有勞公司內的程式設計師寫一個自訂的腳本,記錄網站的網頁內容。
- 使用動態網頁網站地圖生成工具
- 在現有的網站內容管理系統中安裝一個 plug in,完成相關的內容
行動設備網站地圖
對於行動設備網站來說,其實並不需要一個網站地圖。為什麼呢?因為行動設備網站地圖是給非智慧型手機使用的,智慧型手機其實就沒有這個需要。問題是現在應該沒什麼人會用非智慧型手機上網了...所以自然也就不需要為這個部分準備一個獨立的網站地圖了。
如何做好 XML 網站地圖優化
當你想要為 XML 網站地圖進行優化的時候,請記得一個很重要的觀點:XML 網站地圖紀錄的網頁是你希望搜尋引擎進行索引的頁面,而不是所有的頁面。所以你並沒有必要把所有的頁面都放到 XML 網站地圖當中。搜索引擎蜘蛛在掃描網頁的時候,會根據你給予的權限決定哪些網頁需要進行索引,並納入資料庫當中。
至於那些沒有被納入 XML 網站地圖的網頁,你也不需要擔心,因為只要內容、位置正確,它們還是有機會被納入索引範圍中的。只是對搜尋引擎來說,那些被納入 XML 網站地圖的網頁重要性要比沒有被納入 XML 網站地圖的網頁要重要的多。因此對搜尋引擎來說,你提供了 XML 網站地圖其意義在於:「我提供了這些頁面的 URL 在這個網站地圖中,請你優先考慮對這些網頁進行索引,感謝。」也因此,搜尋引擎就不需要單獨查找網站中哪些網頁是重要的,哪些不重要,節省搜尋引擎的工作負荷。
那麼哪些網頁不建議放到 XML 網站地圖當中呢?我想應該包括以下這些:
- 重複的頁面
- 未規範的頁面
- 用於代理的頁面
- 以參數或是 session 數為基礎的頁面
- 回覆評論的頁面
- 被納入存檔的頁面
- 會產生重定向的頁面(3xx)、丟失的頁面(4xx)、以及產生伺服器錯誤(5xx)的頁面
- 已經被標註 noindex 的頁面
- 被 robots.txt 阻擋索引的頁面
- 那些做為產生銷售線索的資源頁面(例如:網站管理員讓訪客填寫表單然後進行下載PDF 這一類的檔案)
- 那些用來做為聯絡我們、隱私權、個人帳號的頁面
XML 網站地圖最佳實踐檢查清單
在檢查網站地圖的時候,我建議要投入時間確認你已經完成下面的檢查清單:
- 用 gzip 壓縮網站地圖檔案(gzip 是一種壓縮檔案格式並且也是一個在類 Unix (包含 Linux)上的一種檔案解壓縮的軟體,此處的gzip代表GNU zip。)
- 請記得使用網站地圖索引檔案
- 只有在索引量與你的KPI有莫大的關係時,你才需要對圖片、影片、Google 新聞執行網站地圖。如果不是的話,建議你維持一般網頁的網站地圖就夠了。
- 最好採用動態生成 XML 網站地圖的方式
- 確保只在一個網站地圖中收錄網站 URL
- 你需要在robots.txt中添加參考站點地圖索引網址
- 建議在多個搜尋引擎當中都添加 XML 網站地圖
- 在 XML 網站地圖中,只收錄 SEO 相關的頁面
- 修補所有的錯誤跟警告訊息
- 建議你不定期的檢查網頁是否存在以及這些網頁的內容類型
- 要定期紀錄你的網站網頁編入索引比例
- 對那些已經提交申請的網頁所產生的例外情形要記得記錄下來
下一期要進入網頁本身的優化了。請各位期待!