對許多網站編輯或是產品經理來說,我們經常會注意要 SEO 的點是內容、連結、meda 原資料描述、圖片名稱優化、網站架構優化這些細節,但是很少人會關注 robots.txt、robots 標記元資料、XML 網站地圖以及 X-Robots 標記這些更細微的內容,而這很可能會讓你的網站怎麼樣也上不到成為 SERP 第一名的關鍵。為什麼呢?恐怕問題來自於 robots.txt 這一類的內容。想多了解嗎?來吧!
什麼是 robots.txt?
robots.txt 如同我之前說的,非常像是站長或網站管理員與搜尋引擎的溝通管道,你可以把 robots.txt 視為一個 walkie talkie,你告訴搜尋引擎要查找哪些網頁,哪些網頁不要找,都透過 robots.txt 告訴搜尋引擎,而且這個檔案涉及到所有的搜尋引擎,讓搜尋引擎乖乖聽話,完成站長或網站管理員的要求。
理論上,robots.txt 是一個文本格式的檔案,robots.txt 放在網站的根目錄,搜尋引擎可以在根目錄找到這個檔案,然後根據站長或網站管理員的要求執行索引。
robots.txt 為何那麼重要?
就像前面說的,robots.txt 會告訴搜尋引擎哪些文件夾或網頁要索引,哪些不需要進行索引,所以每個網站都需要有 robots.txt 做為指引搜尋引擎的重要方向。因此在 Google Search Console 這個提供給站長或者網站管理員管理網站的工具當中,就有 robots.txt 的確認內容。當你輸入了 robots.txt,並且經過搜尋引擎確認無誤之後,搜尋引擎就會加速網站的索引過程。
robots.txt 並不是一個難以查找的檔案,事實上,所有網站都可以找到 robots.txt 這個檔案,也就是說你無法隱藏或是為這個檔案加密,它是眾所週知的一個文本檔案;而且無論網站做的好不好,只要有這個 robots.txt,搜尋引擎就可以根據你的指示查找網站上最有價值的網頁。所以如果你想找到某個網站的 robots.txt,只要直接輸入 www.example-website.com/robots.txt 就可以找到了。
如果你的網站上還沒有 robots.txt,並不代表搜尋引擎不會對你的網站進行索引,它依然會進行索引,只是在網站上有些你不想讓搜尋引擎找到的內容(如:電子商務網站上的內部測試頁、或是還沒有完成的網頁、或是不想給外部用戶看到的網頁),就很可能一覽無遺。
robots.txt 的入門檔案包括哪些?
首先,當你要準備一個 robots.txt 的時候,可以打開記事本,然後儲存為 UTF-8 格式的文字檔。並且請記得完成後,要請營運人員放在網站的根部,然後在瀏覽器當中輸入 www.example-website.com/robots.txt,確認看到這個檔案的內容,安裝的動作就算完成了。
就像 XML 網站地圖一樣,robots.txt 也有限制,它的限制包括:
- 只有 txt 文本格式,而且必須以 UTF-8 的格式儲存
- 設定的規則不能超過 1024 個規則
- 整個檔案必須小於 500KB
- robots.txt 只能有一個,不能有多個版本或是多份內容
如果你在 robots.txt 放le UTF-8 以外的格式,那會怎麼樣呢?嗯,首先搜尋引擎會忽略這些非 UTF-8格式的內容,只執行屬於 UTF-8 的內容,而且搜尋引擎也不會告訴你哪裡是寫錯的。(但是搜尋引擎的工具如 Google Search Console 會)
整個 robots.txt 內容可以指定給單一或多個搜尋引擎,透過下指令的方式讓搜尋引擎根據你的要求執行工作。下指令的時候,你可以指定目錄名稱、操作要求、以及下指令的值做為一個指令。這些指令包含:disallow(不允許)哪個搜尋引擎執行哪些操作;或是 allow(允許)哪個或哪些搜尋引擎針對特定的目錄進行操作。比如:允許哪一個搜尋引擎對哪些內容進行索引,哪些內容不准進行索引、執行 XML 網站地圖等作業。在檔案中,你可以添加一些說明,在說明文字前方,要記得加上 # 做為說明使用。
那麼哪些網頁或目錄是我們不希望搜尋引擎找到的呢?我儘量把相關的內容寫在下方,供你們參考:
- 內容重複的網頁
- 搜尋結果頁
- 動態產品與服務頁面
- 購物車聊天頁面
- 謝謝頁面
OK。講了那麼多,還沒有看到 robots.txt 的真面目,現在就揭示給各位看看一個 robots.txt 真正的樣貌長什麼樣子:
上方是台灣 104 人力銀行的 robots.txt 檔案內容。從這裡我們就可以看到網站管理員不允許搜尋引擎對特定的目錄進行索引。
如何使用 robots.txt
我們拿上面提及的 104 人力銀行網站當中的 robots.txt 來做例子好了。在這個網站中,它禁止了所有搜尋引擎(user-agent: *)訪問下方的這些目錄。
那可不可以只對特定的搜尋引擎設定條件呢?當然是可以的。robots.txt 的彈性很大,幾乎適用於各類搜尋引擎,所以你可以批次指定,也可以只針對特定的搜尋引擎指定條件。當你希望不要讓搜尋引擎對某個目錄進行索引的時候,只需要輸入 disallow: /xxx (xxx 指的是目錄名稱)然後上傳到伺服器更新就可以了。這裡再舉一個例子:好市多網站的 robots.txt 如下:
發現了嗎?好市多的 robots.txt 裡面提供的規則就比較多了,它不允許 gigabot 索引所有的網頁;但它允許所有搜尋引擎查看它的網站地圖,但不允許搜尋引擎對checkout 等這些頁面進行索引。
robots.txt 會出現的錯誤
robots.txt 看起來很簡單,但是寫起來還是會有機會發生錯誤的。以下就是經常會出現的錯誤,提供給你參考:
檔名顯示為大寫文字
在輸入檔名的時候,只能用 robots.txt,而不能用 ROBOTS.txt 或是 Robots.txt 的檔案名稱。
存檔時輸入錯誤的檔名
儲存檔名的時候,要注意檔案名稱,不要用 robot.txt,而要使用 robots.txt
格式指引的寫法不正確
舉例來說:如果要設定 Googlebot 不允許索引所有的頁面,那麼這樣的寫法應該是
User-agent: Googlebot
Disallow:/
而不應該是
Disallow: Googlebot
在一個命令之下輸入多個目錄
如果你想在一個命令下指定多個目錄,那麼應該是一個命令,指定到一個目錄之下,而不應該寫成 Disallow: /css /images /cgi-bin
忘了輸入 user-agent 之後的名稱
以下這種寫法是錯誤的:
User-agent:
Disallow:
正確的寫法應該是:
User-agent:*
Disallow:
在檔案內使用了大寫字
除了不能用大寫字寫檔案名稱之外,在檔案內的文字描述也請改成用小寫文字替代。例如這樣的寫法是錯誤的:
USER-AGENT: GOOGLE
DISALLOW:
在主站目錄使用鏡像網站
雖然對絕大部分的用戶來說,使用 https://www.site.com、https://site.com、http://site.com 這幾種展現方式都是一樣的,但對搜尋引擎來說就不一樣。所以如果我們指定了主站目錄,但用了鏡像網站的頁面,就需要注意輸入的內容是否正確。
在目錄當中列舉一個目錄當中的多個頁面
robots.txt 指定的都是目錄,而不是單一的網頁,單一網頁的方式我會在下一階段單獨說明。
404重定向錯誤
在我寫這篇稿子的時候,我找了很多網站,但許多網站都沒有添加 robots.txt,因此這個情況下,搜尋引擎可能還是會場時訪問 robots.txt 檔案。因此建議各位創建一個空的 robots.txt,這樣就可以避免出現“404 未找到”頁面的問題發生。
User-agent 指定內容與 host 網站不同
比如說,你設定的 user-agent 是所有搜尋引擎(事實上應該是搜尋蜘蛛機器人),那麼如果你這樣設定,就會發生錯誤。
這一期先寫到這裡,我們在下一期說明,如果要阻擋索引單獨的頁面,我們該怎麼做才好。請等待下一期咯!