所有文章Portuguêsไทย

robots.txt 是什麼?用途、常見寫法,和 3 分鐘自我檢查

先說結論

robots.txt 是放在網站最上層的純文字檔,用來告訴搜尋引擎和 AI 的爬蟲哪些網址可以抓、哪些不要抓。它主要用來管理爬蟲的流量,不是把網頁藏起來的方法。最重要的檢查只有一個:「User-agent: *」底下有沒有「Disallow: /」,這會請所有爬蟲不要抓整個網站。

robots.txt 是什麼、放在哪裡

robots.txt 是一個純文字檔,固定放在網站的最上層,例如 https://www.example.com/robots.txt。在瀏覽器網址列的網域後面加上 /robots.txt,就能打開自己的檔案,不需要登入任何後台。

Google 的規範說明,規則只對檔案所在的主機、通訊協定和連接埠有效。所以如果你的線上商店在 shop.example.com 這種子網域,它有自己的 robots.txt,要另外打開來看。

如果打開後顯示找不到(404),Google 會當作網站沒有 robots.txt,也就是沒有任何抓取限制。對多數小網站來說,這不是問題。

它能做的事,和做不到的事

Google 說明 robots.txt 主要用來管理爬蟲對網站的流量,避免請求太多造成負擔。但有幾件事它做不到。

  • 不能把網頁從 Google 搜尋中移除:Google 建議改用 noindex 或密碼保護
  • 不是每個爬蟲都會遵守:守規矩的爬蟲會照做,其他的不一定
  • Google 只支援四個欄位:user-agent、allow、disallow、sitemap,像 crawl-delay 這類欄位 Google 不支援

看懂 4 種常見寫法

「User-agent」指這組規則是給哪個爬蟲的,「Disallow」指不要去哪裡。以下的讀法依照 Google 的規範。

  • 「User-agent: *」加「Disallow: /」:請所有爬蟲不要抓整個網站。正式上線的網站出現這行,要先問清楚原因
  • 「User-agent: *」加「Disallow: /wp-admin/」:只擋 WordPress 的管理後台,公開的頁面不受影響
  • 「Disallow:」後面什麼都沒寫:Google 會忽略沒有路徑的規則,等於什麼都沒擋
  • 同時有「User-agent: *」和指定名稱的群組:Google 的爬蟲只會照最符合自己名稱的那一組,其他組不看

舉個虛構的例子:新竹的「阿明水電行」請人做網站,開發期間加了「Disallow: /」,上線後忘了拿掉。網站看起來一切正常,但搜尋引擎被請求不要抓。這種情況從網站外觀看不出來,只能打開 robots.txt 才知道。

AI 的爬蟲也會讀 robots.txt

除了 Google 的 Googlebot,AI 服務也有自己的爬蟲。以 OpenAI 為例,它的文件說明 OAI-SearchBot 用於 ChatGPT 的搜尋功能,擋掉它的網站不會出現在 ChatGPT 的搜尋回答中(但仍可能以導覽連結出現);GPTBot 則是收集可能用於訓練模型的內容,擋掉它不影響搜尋。

所以「要不要讓 AI 讀我的網站」可以分開決定:搜尋用的爬蟲和訓練用的爬蟲是兩回事。要擋哪一個,是你自己的經營判斷。

今天就能做的檢查

順序是我們的建議,做第一項就夠了。

  • 打開「你的網域/robots.txt」,找「User-agent: *」底下有沒有「Disallow: /」
  • 找有沒有 Googlebot、OAI-SearchBot 等名稱,看它們底下寫了什麼
  • 有用 Search Console 的話,打開「robots.txt 報表」,看 Google 最後一次抓到檔案的時間和有沒有錯誤

如果發現被擋,先別急著刪掉,先問管理網站的人為什麼這樣寫。改完之後,Google 通常會把 robots.txt 快取最多 24 小時,可以在 robots.txt 報表選擇「要求重新檢索」。

我們正在為台灣準備一項服務,會做類似的檢查,每天早上寄給你 1 到 3 個具體的修改建議。它看不到主機或防火牆的設定,也無法承諾排名或出現在 AI 回答中。想在開放時收到通知,請在下方留下你的電子郵件。

資料來源