建立 robots.txt 檔案

開始使用

robots.txt 檔案位於網站的根目錄。也就是說,www.example.com 網站的 robots.txt 檔案就位於 www.example.com/robots.txt。robots.txt 是遵循漫遊器排除標準的純文字檔案, 其中包含一或多項規則。這些規則的作用是禁止 (或開放) 特定檢索器存取位於網站中指定路徑的檔案。

以下是一個包含兩項規則的簡單 robots.txt 檔案,這種配置會產生的作用,詳見說明:

# Group 1
User-agent: Googlebot
Disallow: /nogooglebot/

# Group 2
User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

說明:

  1. 名為「Googlebot」的使用者代理程式無法檢索 http://example.com/nogooglebot/ 目錄或其中的任何子目錄。
  2. 不是 Googlebot 的使用者代理程式則可以檢索整個網站。即使不指定這項規則,結果也會一樣;系統會預設您允許使用者代理程式檢索整個網站。
  3. 網站的 Sitemap 檔案位於 http://www.example.com/sitemap.xml

如需更多範例,請參閱語法一節。

robots.txt 基本規定

以下是一些關於 robots.txt 檔案的基本規定。建議您先詳閱 robots.txt 檔案的完整語法,因為 robots.txt 語法有一些您需要瞭解的複雜行為。

格式和位置

幾乎所有文字編輯器都能用來建立 robots.txt 檔案,因為文字編輯器本身就能建立標準的 UTF-8 文字檔案。請勿使用文書處理軟體,因為這類軟體通常會將檔案儲存為某種專有格式,有可能因此加上彎引號等不相容字元,或許會使檢索器發生問題。

格式和位置規則:

  • 檔案名稱必須是 robots.txt。
  • 您的網站只能有一個 robots.txt 檔案。
  • robots.txt 檔案必須位於目標網站主機的根目錄。舉例來說,如要控制 http://www.example.com/ 下所有網址的檢索作業,robots.txt 檔案就必須位於 http://www.example.com/robots.txt不能在子目錄 (例如 http://example.com/pages/robots.txt)。如果不知道該如何存取網站的根目錄,或是需要相關權限,請與網站代管服務供應商聯絡。如果您無法存取網站的根目錄,請改用其他封鎖方法,例如中繼標記
  • robots.txt 檔案適用於子網域 (例如 http://website.example.com/robots.txt) 或非標準通訊埠 (例如 http://example.com:8181/robots.txt)。

語法

  • robots.txt 檔案必須是 UTF-8 編碼的文字檔案 (包括 ASCII),不得使用其他字元集。
  • robots.txt 檔案包含一或多個群組
  • 每個群組都是由多項規則指令 (指示) 組成,一項指令占一行。
  • 群組包含以下資訊:
    • 群組的適用對象 (使用者代理程式)
    • 這個代理程式「可以」存取的目錄或檔案
    • 這個代理程式「無法」存取的目錄或檔案
  • 系統會依上到下的順序處理群組,每個使用者代理程式只能對應一組規則,也就是與其相應的第一組條件最詳盡的規則。
  • 根據預設,系統會假設使用者代理程式可以檢索未受 Disallow: 規則封鎖的網頁或目錄。
  • 規則須區分大小寫。舉例來說,Disallow: /file.asp 適用於 http://www.example.com/file.asp,但不適用於 http://www.example.com/FILE.asp
  • # 標記開頭的內容一律為註解。

以下是 robots.txt 檔案中使用的指令:

  • User-agent: [必要,每個群組可指定一或多個 User-agent 項目] 這項指令會指定規則適用的自動化用戶端 (就是所謂的搜尋引擎檢索器) 名稱,也是每個規則群組的第一行內容。Google 使用者代理程式清單列出了各種 Google 使用者代理程式的名稱。以下方範例為例,使用星號 (*) 表示要比對各種 AdsBot 檢索器以外的所有檢索器;如要比對 AdsBot 檢索器,必須特別指明。 例如:
    # Example 1: Block only Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Example 2: Block Googlebot and Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
    
    # Example 3: Block all but AdsBot crawlers
    User-agent: *
    Disallow: /
  • Disallow: [每項規則至少要有一個 DisallowAllow 項目] 禁止使用者代理程式在根網域下檢索的目錄或網頁。如果規則指向網頁,請提供瀏覽器中顯示的完整網頁名稱;如果指向目錄,請以 / 標記結尾。
  • Allow::[每項規則至少要有一個 DisallowAllow 項目] 允許前述使用者代理程式在根網域下檢索的目錄或網頁。這個指令可用於覆寫 Disallow 指令,允許使用者代理程式檢索位於禁止檢索目錄下的子目錄或網頁。如果是單一網頁,請指定瀏覽器中顯示的完整網頁名稱;如果是目錄,請以 / 標記做為規則結尾。
  • Sitemap: [選用;每個檔案可包含零或多個 Sitemap] 該網站的 Sitemap 所在位置。Sitemap 網址必須為完整網址;Google 不會假設或檢查是否有 http/https/www/非 www 等替代網址。Allow 和 Disallow 的用途是指出 Google「可以」或「不可」檢索哪些內容,Sitemap 則適合用於指出 Google「應該」檢索哪些內容。進一步瞭解 Sitemap。 範例:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml

除了 sitemap 以外,其餘指令都支援以 * 萬用字元代表路徑前置字元、後置字元或整個字串。

對於不符合以上任何指令的行,系統會加以忽略。

其他範例檔案

robots.txt 檔案會包含一或多個群組,每個群組的開頭都會以 User-agent 這一行指定該群組適用的檢索器。以下範例檔案包含兩個群組,內嵌註解分別說明了兩個群組的作用:

# Block googlebot from example.com/directory1/... and example.com/directory2/...
# but allow access to directory2/subdirectory1/...
# All other directories on the site are allowed by default.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# Block the entire site from anothercrawler.
User-agent: anothercrawler
Disallow: /

robots.txt 完整語法

如要瞭解 robots.txt 完整語法,請按這裡。 由於 robots.txt 語法有一些較為複雜的須知事項,因此請詳閱整份文件。

robots.txt 實用規則

以下是 robots.txt 一些常見的實用規則:

規則 範例
禁止檢索整個網站。提醒您,在某些情況下,未經檢索的網站網址仍可能會建立索引。

User-agent: *
Disallow: /
禁止檢索特定目錄及其中內容 (請在目錄名稱後加上正斜線)。提醒您,如果想禁止存取私人內容,則不應使用 robots.txt,而是要改用適當的驗證機制。即使是 robots.txt 檔案所禁止的網址,仍有可能在未經檢索的情況下建立索引;此外,由於任何人都能查看 robots.txt 檔案,所以私人內容的位置也可能因此曝光。

User-agent: *
Disallow: /calendar/
Disallow: /junk/
允許單一檢索器存取網站內容

User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
允許所有檢索器存取網站內容,但某一個檢索器除外

User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

禁止檢索某個網頁 (請在正斜線後面列出該網頁):


User-agent: *
Disallow: /private_file.html

禁止特定圖片出現在 Google 圖片的搜尋結果:


User-agent: Googlebot-Image
Disallow: /images/dogs.jpg

禁止您網站上的所有圖片出現在 Google 圖片的搜尋結果:


User-agent: Googlebot-Image
Disallow: /

禁止檢索特定檔案類型,例如 .gif


User-agent: Googlebot
Disallow: /*.gif$

禁止檢索整個網站,但仍在網頁上顯示 AdSense 廣告。這項規則能禁止 Mediapartners-Google 以外的所有網路檢索器,讓您的網頁無法顯示在搜尋結果中,但 Mediapartners-Google 網路檢索器仍會分析網頁,以決定要對您網站上的訪客顯示哪些廣告。


User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
使用 $ 比對以特定字串結尾的網址。例如,這個程式碼範例封鎖的是任何以 .xls 結尾的網址:

User-agent: Googlebot
Disallow: /*.xls$