如何編寫及提交 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 檔案代表以下含義:
-
名為 Googlebot 的使用者代理程式無法檢索任何以
https://example.com/nogooglebot/
開頭的網址。 - 不是 Googlebot 的使用者代理程式則可以檢索整個網站。即使不指定這項規則,結果也會一樣;系統會預設允許使用者代理程式檢索整個網站。
-
網站的 Sitemap 檔案位於
https://www.example.com/sitemap.xml
。
如需更多範例,請參閱語法一節。
建立 robots.txt 檔案的基本原則
如要建立 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:
[每項規則至少要有一個disallow
或allow
項目] 禁止使用者代理程式在根網域下檢索的目錄或網頁。如果規則指向網頁,則必須提供瀏覽器中顯示的完整網頁名稱。規則必須以/
字元開頭,如果指向目錄,則必須以/
標記結尾。 -
allow:
[每項規則至少要有一個disallow
或allow
項目] 允許前述使用者代理程式在根網域下檢索的目錄或網頁。這個指令可用於覆寫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 標記的方式:
- Search Console 中的 robots.txt 測試工具。您只能針對網站已開放存取的 robots.txt 檔案使用這項工具。
- 如果您是開發人員,請參閱 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/ |
允許單一檢索器存取網站內容 |
只有 User-agent: Googlebot-news Allow: / User-agent: * Disallow: / |
允許所有檢索器存取網站內容,但某一個檢索器除外 |
User-agent: Unnecessarybot Disallow: / User-agent: * Allow: / |
禁止檢索單一網頁 |
例如,禁止檢索位於 User-agent: * Disallow: /useless_file.html Disallow: /junk/other_useless_file.html |
禁止檢索整個網站,但子目錄除外 |
檢索器只能存取 User-agent: * Disallow: / Allow: /public/ |
禁止 Google 圖片檢索特定圖片 |
例如,禁止 User-agent: Googlebot-Image Disallow: /images/dogs.jpg |
禁止 Google 圖片檢索您網站上的所有圖片 |
Google 不得為未經檢索的圖片和影片建立索引。 User-agent: Googlebot-Image Disallow: / |
禁止檢索特定類型的檔案 |
例如,禁止檢索所有的 User-agent: Googlebot Disallow: /*.gif$ |
禁止檢索整個網站,但允許 |
這麼做會讓您的網頁無法顯示在搜尋結果中,但 User-agent: * Disallow: / User-agent: Mediapartners-Google Allow: / |
使用 * 和 $ 萬用字元來比對結尾為特定字串的網址 |
例如,封鎖所有 User-agent: Googlebot Disallow: /*.xls$ |