如何編寫及提交 robots.txt 檔案

您可以透過網站的 robots.txt 檔案控管檢索器可存取的檔案

robots.txt 檔案位於網站的根目錄。也就是說,www.example.com 網站的 robots.txt 檔案就位於 www.example.com/robots.txt。robots.txt 是遵循漫遊器排除標準的純文字檔案, 其中包含一或多項規則。這些規則的作用是禁止 (或開放) 所有或某個特定檢索器存取代管 robots.txt 檔案的網域或子網域上的特定檔案路徑。除非您在 robots.txt 檔案中另行指定,否則系統將允許檢索所有檔案。

以下是一個包含兩項規則的簡單 robots.txt 檔案:

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

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

該 robots.txt 檔案代表以下含義:

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

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

建立 robots.txt 檔案的基本原則

如要建立 robots.txt 檔案,並允許該檔案可公開存取,可採取以下四個步驟:

  1. 建立名為 robots.txt 的檔案
  2. 在 robots.txt 檔案中新增規則
  3. 將 robots.txt 檔案上傳到您網站的根目錄
  4. 測試 robots.txt 檔案

建立 robots.txt 檔案

幾乎所有文字編輯器都能用來建立 robots.txt 檔案,例如 Notepad、TextEdit、vi 和 emacs 都可以建立有效的 robots.txt 檔案。但請不要使用文書處理軟體,因為這類軟體通常會將檔案儲存為某種專有格式,有可能因此加上彎引號等不相容字元,或許會使檢索器發生問題。「儲存檔案」對話方塊出現提示時,請務必以 UTF-8 編碼儲存檔案。

格式和位置規則:

  • 檔案名稱必須是 robots.txt。
  • 您的網站只能有一個 robots.txt 檔案。
  • robots.txt 檔案必須位於目標網站主機的根目錄。舉例來說,如要控制 https://www.example.com/ 下所有網址的檢索作業,robots.txt 檔案就必須位於 https://www.example.com/robots.txt不能在子目錄 (例如 https://example.com/pages/robots.txt)。如果不知道該如何存取網站的根目錄,或是需要相關權限,請與網站代管服務供應商聯絡。如果您無法存取網站的根目錄,請改用其他封鎖方法,例如 meta 標記
  • robots.txt 檔案可發布在子網域 (例如 https://website.example.com/robots.txt) 或非標準通訊埠 (例如 https://example.com:8181/robots.txt)。
  • robots.txt 檔案僅適用於發布位置的通訊埠、主機和通訊協定中的路徑。也就是說,https://example.com/robots.txt 中的規則僅適用於 https://example.com/ 中的檔案,而非子網域 (例如 https://m.example.com/),或是替代通訊協定 (例如 http://example.com/)。
  • robots.txt 檔案必須是 UTF-8 編碼的文字檔案 (包括 ASCII),Google 會忽略不屬於 UTF-8 範圍的字元,進而導致 robots.txt 規則可能無法轉譯。

如何編寫 robots.txt 規則

規則是用來規範檢索器可檢索網站的哪些部分。在 robots.txt 檔案中新增規則時,請遵循下列準則:

  • robots.txt 檔案包含一或多個群組 (規則組)。
  • 每個群組都是由多項規則 (又稱指令) 組成,一項規則占一行。每個群組的開頭都會以 User-agent 這一行指定群組適用的檢索器。
  • 群組包含以下資訊:
    • 群組的適用對象 (使用者代理程式)。
    • 這個代理程式「可以」存取的目錄或檔案。
    • 這個代理程式「無法」存取的目錄或檔案。
  • 檢索器會依上到下的順序處理群組。每個使用者代理程式只能對應一組規則,也就是與其相應的第一組條件最明確的規則。如果同一個使用者代理程式有多個群組,系統會在處理前將這些群組合併為單一群組。
  • 根據預設,系統會假設使用者代理程式可以檢索未受 disallow 規則封鎖的網頁或目錄。
  • 規則須區分大小寫。舉例來說,disallow: /file.asp 適用於 https://www.example.com/file.asp,但不適用於 https://www.example.com/FILE.asp
  • # 字元用來標示註解的起始處。在處理過程中,系統會忽略註解。

Google 檢索器支援以下 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 crawlers except AdsBot (AdsBot crawlers must be named explicitly)
    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: https://www.example.com/sitemap.xml

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

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

如需各個規則的完整說明,請參閱「Google 如何解讀 robots.txt 規格」頁面。

上傳 robots.txt 檔案

將 robots.txt 檔案儲存在電腦中後,您就可以開放讓搜尋引擎檢索器進行檢索。目前沒有工具可協助您進行這項工作,因為將 robots.txt 檔案上傳至網站的方式取決於您的網站和伺服器架構。您可以與您的代管公司聯絡,或搜尋代管公司的說明文件 (例如,搜尋「上傳檔案 Infomaniak」)。

上傳 robots.txt 檔案後,請測試該檔案是否可公開存取,以及 Google 是否能加以剖析。

測試 robots.txt 標記

如要測試新上傳的 robots.txt 檔案是否可公開存取,請在瀏覽器中開啟私密瀏覽視窗 (或同等功能),然後前往 robots.txt 檔案位置,例如 https://example.com/robots.txt。如果畫面顯示 robots.txt 檔案內容,表示您可以開始測試標記。

Google 提供兩種測試 robots.txt 標記的方式:

  1. Search Console 中的 robots.txt 測試工具。您只能針對網站已開放存取的 robots.txt 檔案使用這項工具。
  2. 如果您是開發人員,請參閱 Google 的開放原始碼 robots.txt 程式庫 (這也是 Google 搜尋使用的程式庫),並按照說明建立自己的程式庫。您可以使用這項工具在本機電腦上測試 robots.txt 檔案。

將 robots.txt 檔案提交給 Google

在您上傳並測試 robots.txt 檔案後,Google 檢索器會自動尋找並開始使用 robots.txt 檔案,因此您不必採取任何動作。如果您更新了 robots.txt 檔案,而且需要盡快重新整理 Google 的快取副本,請參閱如何提交更新的 robots.txt 檔案

robots.txt 實用規則

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

實用規則
禁止檢索整個網站

提醒您,在某些情況下,未經檢索的網站網址仍可能會編入索引。


User-agent: *
Disallow: /
禁止檢索特定目錄及其中內容

在目錄名稱後方附加正斜線,即可禁止檢索整個目錄。


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

只有 googlebot-news 可檢索整個網站。


User-agent: Googlebot-news
Allow: /

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

Unnecessarybot 不得檢索網站,但其他漫遊器可以。


User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

禁止檢索單一網頁

例如,禁止檢索位於 https://example.com/useless_file.htmluseless_file.html 頁面,以及 junk 目錄中的 other_useless_file.html 頁面。


User-agent: *
Disallow: /useless_file.html
Disallow: /junk/other_useless_file.html

禁止檢索整個網站,但子目錄除外

檢索器只能存取 public 子目錄。


User-agent: *
Disallow: /
Allow: /public/

禁止 Google 圖片檢索特定圖片

例如,禁止 dogs.jpg 圖片。


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

禁止 Google 圖片檢索您網站上的所有圖片

Google 不得為未經檢索的圖片和影片建立索引。


User-agent: Googlebot-Image
Disallow: /

禁止檢索特定類型的檔案

例如,禁止檢索所有的 .gif 檔案。


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

禁止檢索整個網站,但允許 Mediapartners-Google 進行檢索

這麼做會讓您的網頁無法顯示在搜尋結果中,但 Mediapartners-Google 網路檢索器仍可分析網頁,以決定要在網站上對訪客顯示哪些廣告。


User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
使用 *$ 萬用字元來比對結尾為特定字串的網址

例如,封鎖所有 .xls 檔案。


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