快速掌握 robots.txt 用途
前言
robots.txt 究竟有什麼用,而這個對於 SEO 是否會有影響,所以這一篇就記錄一下。
robots.txt
robots.txt 與它的副檔名一樣,它是一個單純的文字檔案,主要位於網站的根目錄。所謂的根目錄是什麼意思呢?舉例來講我的網站網址是:https://israynotarray.com/
,那麼它就會位於 https://israynotarray.com/robots.txt
。
這邊也要注意件事情 robots.txt 檔案名稱是 全小寫。
而它主要的用途是告知網路爬蟲(網路蜘蛛)哪些頁面可以爬取,哪些不能被列入到搜尋器中。
但是這邊有一間滿有趣的事情,robots.txt 這個檔案的存在,並不是一個規範,而是一個約定俗成,所以實際上要不要遵守還是要看爬蟲商為主,如果有比較敏感的資訊使用 robots.txt 去忽略不可以加入瀏覽器這個行為是沒有效的。
以下截取至維基百科:
robots.txt協定並不是一個規範,而只是約定俗成的,所以並不能保證網站的隱私。
但是如果你有翻閱 Google 文件的話,會有一句話:
2019 年 7 月 1 日,Google 宣布正在推動 robots.txt 通訊協定成為網際網路標準,相關異動現在已反映在本文件中。
當然也有另一個做法,就是在 HTML 中加入注入一個 meta 告知網路爬蟲不要收錄這個頁面與這個頁面的連結:
1 | <meta name="robots" content="noindex, nofollow" /> |
但是這個方式也是屬於約定俗成的方式,也並不是一個規範,因此如果有不想要被網路給收錄的頁面,還是會建議不要上網到網路上較好。
robots.txt 怎麼寫?
接下來聊一下該怎麼寫 robots.txt,首先先了解一下 robots.txt 的常用的指令
User-agent
Disallow
Allow
Sitemap
User-agent
User-agent 簡單來講就是允許哪些網路爬蟲可以爬你的網站,通常來講都會設置為 *
,代表全部都可以。
如果你只希望給 Google 的爬蟲的話,則是 User-agent: Googlebot
。
這邊也列一下常見的爬蟲檢索器名稱:
- Google
User-agent: Googlebot
- Yahoo
User-agent: Slurp
- Bing
User-agent: bingbot
- Baidu
User-agent: Baiduspider
User-agent
也可以把它想像成群組的意思,通常會搭配 Disallow
or Allow
,而且它在 robots.txt 是必要的指令,但是比較常見都是設置成 User-agent: *
Disallow
Disallow
指令上,可以告訴網路爬蟲哪些頁面不能爬,主要是以根網域為主,如果以 Wordpress 當作舉例的話,比較常見就是後台頁面不希望爬蟲收錄,以下是全部爬蟲都套用以下規則:
1 | User-agent: * |
當然你也可以使用 Disallow
來去避免一些會重複的網頁,例如:分類文章頁面、標籤頁面等等,又或者是你不希望爬蟲進去爬的網站根目錄:
1 | User-agent: * |
因此套用規則之後,以下網址就不會被爬蟲收錄:
1 | https://israynotarray.com/archives/ |
如果你希望全部機器人都不能收錄所有頁面的話則是以下:
1 | User-agent: * |
阻擋爬特定檔案
Disallow
還有一個功用,它可以阻止所有機器人爬特定的檔案:
1 | User-agent: * |
這邊額外提醒一下,會建議不要忽略 js、css 與 fonts 相關的檔案與資料夾,否則可能在 Google Console Search 會收到一些問題提示
Allow
Allow
簡單來講就是允許爬蟲可以爬哪些頁面,大部分的設置上都是全部:
1 | Allow: / |
但是我的部落格設置上就會在額外補上告知爬蟲還有哪些頁面可以爬:
1 | Allow: / |
Sitemap
Sitemap 也是非標準協定的東西,是網站的整體地圖,主要是告訴爬蟲你的 Sitemap
檔案在哪裡,而 Sitemap
只要是知名搜尋引擎都是支援的。
設置的方式也非常簡單,只需要相對應 Url 即可:
1 | Sitemap: <http://www.example.com/sitemap.xml> |
舉例我的部落格的設置就是以下:
1 | Sitemap: https://israynotarray.com/sitemap.xml |
最後還是要提醒一下,robots.txt 並不是萬能的,主要還是必須看爬蟲商願不願意參考。