使用 robots.txt 封鎖網址

建立 robots.txt 檔案

如果您使用網站代管服務 (例如 Wix 或 Blogger),則可能不需要建立或編輯 robots.txt 檔案

踏出第一步

robots.txt 檔案位於您網站的根目錄。因此,對於網站 www.example.com 來說,robots.txt 檔案就位於 www.example.com/robots.txt。robots.txt 是遵循機器人排除標準的純文字檔案,這個檔案包含一或多項規則,每項規則會分別禁止 (或允許) 特定檢索器存取網站中的某個檔案路徑。

以下是一個包含兩項規則的簡單 robots.txt 檔案,實際效果請見範例下方說明:

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

# Rule 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 檔案。文字編輯器應能建立標準 ASCII 或 UTF-8 文字檔;請勿使用文書處理軟體,因為這類軟體通常會將檔案儲存為某種專利格式,並且加上不相容的字元,例如會導致檢索器發生問題的全形引號。

請使用 robots.txt 測試工具為您的網站寫入或編輯 robots.txt 檔案。這項工具可以用來測試網站的語法和行為。

格式和位置規則:

  • 檔案名稱必須是 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 必須是 ASCII 或 UTF-8 文字檔案,不得包含任何其他字元。
  • 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 使用者代理程式清單。可與 * 萬用字元搭配使用,表示路徑前置字元、後置字元或整個字串。如果您使用星號 * (如以下範例所示),比對範圍會是各種 AdsBot 檢索器以外的所有檢索器;如要比對 AdsBot 檢索器,必須特別指明 (查看 Google 檢索器名稱清單)。範例:
    # 範例 1: 僅封鎖 Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # 範例 2: 封鎖 Googlebot 和 Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
     
    # 範例 3: 封鎖除 AdsBot 檢索器外的所有檢索器
    User-agent: * 
    Disallow: /
  • Disallow:[每項規則須指定至少一個 Disallow 或 Allow 項目] 禁止使用者代理程式在根網域下檢索的目錄或網頁。如果是網頁,請提供在瀏覽器中顯示的完整網頁名稱;如果是目錄,請以 / 結尾。可與 * 萬用字元搭配使用,表示路徑前置字元、後置字元或整個字串。
  • Allow:[每項規則須指定至少一個 Disallow 或 Allow 項目] 允許前述使用者代理程式在根網域下檢索的目錄或網頁。如有允許檢索的子目錄或網頁位於禁止檢索的目錄之下,可使用 Allow 覆寫 Disallow。如果是網頁,請提供在瀏覽器中顯示的完整網頁名稱;如果是目錄,請以 / 結尾。可與 * 萬用字元搭配使用,表示路徑前置字元、後置字元或整個字串。
  • 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

系統會忽略不明關鍵字。

其他範例檔案

robots.txt 檔案包含一或多個規則區塊,每個區塊的開頭都是 User-agent 這一行,直接指定該項規則所適用的檢索器。以下是一個包含兩項規則的檔案;個別規則附有詳細說明:

# 禁止 Googlebot 檢索 example.com/directory1/... 和 example.com/directory2/...
# 但允許存取 directory2/subdirectory1/...
# 預設可以存取網站上的其餘目錄。
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# 禁止 anothercrawler 檢索整個網站。
User-agent: anothercrawler
Disallow: /

robots.txt 完整語法

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

實用 robots.txt 規則

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

規則 範例
禁止檢索整個網站。 提醒您,在某些情況下,即使網站上的網址並未經過檢索,也會被編入索引。注意:使用這項規則時,比對範圍不含各種 AdsBot 檢索器;如要比對 AdsBot 檢索器,必須特別指明。
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: /

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

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$
這篇文章實用嗎?
我們應如何改進呢?