
robots.txt 與 sitemap.xml 該怎麼設定?
兩個檔案,作用完全不同
| robots.txt | sitemap.xml | |
|---|---|---|
| 作用 | 告訴爬蟲哪些路徑不要讀取 | 提供你希望被收錄的頁面清單 |
| 性質 | 限制 | 建議 |
| 位置 | 網站根目錄 | 通常也在根目錄 |
| 必要性 | 建議有 | 內容量大時很有價值 |
兩者都不是排名因素,但都影響能不能被完整發現與收錄。
robots.txt 該怎麼設定
它是放在網站根目錄的純文字檔,任何人都能瀏覽——所以不要用它來隱藏機密路徑,那反而是在公告位置。
通常該阻擋的
- 後台管理路徑
- 購物車、結帳、會員專區這類個人化頁面
- 站內搜尋的結果頁
- 大量無意義的參數組合
- 系統暫存或程式檔案目錄
絕對不要阻擋的
- CSS 與 JavaScript 檔案——爬蟲需要它們才能正確理解頁面的呈現,阻擋會影響判斷
- 圖片目錄——除非確實不希望圖片被搜尋到
- 整個網站——這是最嚴重的失誤,見下方
最嚴重的失誤
測試期間設定的「阻擋全站」被帶到正式環境。
網站一切正常,但搜尋引擎完全不會收錄。而且這件事不會有任何錯誤訊息,可能兩三個月後才被發現,那時流量已經歸零。
上線後第一件事就是打開自己的 robots.txt 看一眼。 這是驗收必查項目。
robots.txt 不能保證不被收錄
被阻擋的頁面,爬蟲不會讀取內容,但如果有其他網站連過來,網址仍可能被收錄——只是沒有描述。
真的不希望被收錄,要用 noindex 標記,而且該頁不能同時被 robots.txt 阻擋(否則爬蟲讀不到那個標記)。詳見搜尋引擎怎麼抓取與收錄網站。
sitemap.xml 該包含什麼
它是一份 XML 格式的頁面清單,讓搜尋引擎知道你有哪些頁面、最後更新是什麼時候。
應該包含
- 所有希望被收錄的正式頁面
- 正規版本的網址——不要放會被轉向或非正規的網址
- 最後修改時間,且要真實反映實際更新
不該包含
- 設了 noindex 的頁面
- 會被轉向的網址
- 錯誤頁面
- 被 robots.txt 阻擋的路徑
- 帶追蹤參數的網址
清單中若混雜大量無效網址,會降低這份檔案的參考價值。
最後修改時間要誠實
常見的錯誤是把所有頁面的更新時間都設為當天,希望促使重新抓取。這不會有幫助,反而讓這個欄位失去意義。
什麼情況特別需要 sitemap
- 網站頁面數量多——數百頁以上
- 新網站——外部連結還很少,爬蟲不易發現
- 內部連結結構不完整——有較深或較難到達的頁面
- 內容更新頻繁
相對地,一個只有十幾頁、結構清楚的小型網站,sitemap 的效益不大——把內部連結做好比較實際。
大型網站的分割
單一檔案有筆數與大小上限。超過時要分割成多個檔案,再用一個索引檔統整。
另一個好處是可以依類型分開——商品一份、文章一份、分類頁一份。這樣在 Search Console 中就能分別看到各類型的收錄狀況,問題比較容易定位。
提交與檢查
- 在 robots.txt 中註明 sitemap 的位置
- 在 Search Console 中提交
- 定期查看提交後的狀態——已提交幾筆、已收錄幾筆、有無錯誤
第三項最有價值。如果提交了 500 筆但只收錄 200 筆,那個差距就是要調查的線索——可能是內容太少、重複、或被正規標記指向了別處。
應該自動產生
手動維護的 sitemap 一定會過期。這份檔案應該由系統依實際的頁面狀態自動產生:
- 新增內容時自動加入
- 下架或刪除時自動移除
- 更新時間依實際修改日期
- 排除草稿與未發布的內容
發包時可以直接把這一項列入需求。網站架設完成後也要確認它確實在運作。
還有一種給人看的網站地圖
除了 XML 檔案,也可以做一個 HTML 的網站地圖頁面,把整站結構列出來給訪客看。
它的價值是:提供大量內部連結,也讓爬蟲多一條發現頁面的路徑,對結構複雜的網站有幫助。但對小型網站不是必要的。