快速掌握 robots.txt 用途

前言

robots.txt 究竟有什麼用,而這個對於 SEO 是否會有影響,所以這一篇就記錄一下。

robots.txt

robots.txt 與它的副檔名一樣,它是一個單純的文字檔案,主要位於網站的根目錄。所謂的根目錄是什麼意思呢?舉例來講我的網站網址是:https://hsiangfeng.github.io/,那麼它就會位於 https://hsiangfeng.github.io/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
2
3
4
User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content

當然你也可以使用 Disallow 來去避免一些會重複的網頁,例如:分類文章頁面、標籤頁面等等,又或者是你不希望爬蟲進去爬的網站根目錄:

1
2
User-agent: *
Disallow: /archives/

因此套用規則之後,以下網址就不會被爬蟲收錄:

1
https://hsiangfeng.github.io/archives/

如果你希望全部機器人都不能收錄所有頁面的話則是以下:

1
2
User-agent: *
Disallow: /

阻擋爬特定檔案

Disallow 還有一個功用,它可以阻止所有機器人爬特定的檔案:

1
2
3
4
5
User-agent: *
Disallow: /*.gif$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$

這邊額外提醒一下,會建議不要忽略 js、css 與 fonts 相關的檔案與資料夾,否則可能在 Google Console Search 會收到一些問題提示

Allow

Allow 簡單來講就是允許爬蟲可以爬哪些頁面,大部分的設置上都是全部:

1
Allow: /

但是我的部落格設置上就會在額外補上告知爬蟲還有哪些頁面可以爬:

1
2
3
4
5
Allow: /
Allow: /archives/
Allow: /categories/
Allow: /tags/
Allow: /links/

Sitemap

Sitemap 也是非標準協定的東西,是網站的整體地圖,主要是告訴爬蟲你的 Sitemap 檔案在哪裡,而 Sitemap 只要是知名搜尋引擎都是支援的。

設置的方式也非常簡單,只需要相對應 Url 即可:

1
Sitemap: <http://www.example.com/sitemap.xml>

舉例我的部落格的設置就是以下:

1
Sitemap: https://hsiangfeng.github.io/sitemap.xml

最後還是要提醒一下,robots.txt 並不是萬能的,主要還是必須看爬蟲商願不願意參考。

參考文獻

Liker 讚賞 (拍手)

如果這一篇筆記文章對你有幫助,希望可以求點支持或 牡蠣 鼓勵 (ノД`)・゜・。

Liker 是一個按讚(拍手)的讚賞機制,每一篇文章最多可以按五下拍手,過程你只需要登入,如果你願意按個讚,對於創作者來講是一個莫大的鼓勵與支持。

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ