robots.txt 完整指南:如何正確設定以管理搜尋引擎爬取

robots.txt 完整指南:如何正確設定以管理搜尋引擎爬取

一、什麼是 robots.txt?

在網站的搜尋引擎優化(SEO)中,robots.txt 檔案扮演著控制搜尋引擎爬蟲(crawler)存取網站的角色。簡單來說,它是一個位於網站根目錄的純文字檔案,指導搜尋引擎哪些內容可以被索引,哪些內容應該被忽略。

1. robots.txt 的基本概念

robots.txt 是一種「爬取限制協議」(Robots Exclusion Protocol, REP),主要用來管理搜尋引擎機器人對網站內不同頁面的存取權限。這個檔案告訴像 Googlebot、Bingbot 這樣的搜尋引擎爬蟲,哪些頁面可以被抓取,哪些應該被排除。

robots.txt 的作用:

  • 限制搜尋引擎存取特定的檔案或目錄
  • 減少伺服器負擔,避免過度爬取影響網站效能
  • 防止搜尋引擎索引重複或敏感內容
  • 指定 XML Sitemap 位置,幫助搜尋引擎更有效率地索引網站

2. robots.txt 的用途

網站管理者使用 robots.txt 來引導搜尋引擎爬蟲爬取內容,以下是不同的使用情境:

用途 說明
避免索引特定頁面 隱私政策、管理後台、私密資料夾等內容不應該被搜尋引擎索引。
優化網站資源 防止搜尋引擎爬取大量無關緊要的檔案(CDN、CSS、JS),以節省爬取資源。
管理網站爬取頻率 限制爬取速度,減輕伺服器負擔,確保網站運行順暢。
引導搜尋引擎 透過 Sitemap 告知搜尋引擎正確的索引路徑。

3. robots.txt 如何影響搜尋引擎的爬取行為?

當搜尋引擎爬蟲來訪網站時,會先檢查 robots.txt 檔案,決定哪些內容可以抓取。若未正確設定,可能會有以下影響:

可能的影響:

  • 不當限制導致搜尋引擎無法收錄重要頁面。
  • 允許搜尋引擎爬取大量不必要的頁面,影響網站排名與效能。
  • 阻擋 CSS 或 JavaScript 可能影響搜尋引擎對網站的理解和排名。

由此可見,正確配置 robots.txt 是影響網站 SEO 表現的重要因素,接下來我們將深入探討如何撰寫並最佳化 robots.txt 設定。

二、robots.txt 的基本語法與規則

在設定 robots.txt 檔案時,理解其基本語法與規則是非常重要的。robots.txt 主要是由一組指令組成,每個指令的作用不同,用來告訴搜尋引擎爬蟲(bot)哪些頁面可以或不可以被爬取。

robots.txt 的基本指令

robots.txt 的語法十分簡單,每一組規則通常包含以下幾個主要指令:

指令 作用 示例
User-agent 指定搜尋引擎爬蟲的名稱 User-agent: Googlebot
Disallow 禁止某些頁面或目錄被爬取 Disallow: /private/
Allow 允許某些頁面被爬取(即便上一行已禁止) Allow: /public/page.html
Sitemap 提供 XML 網站地圖的 URL,幫助搜尋引擎索引網站 Sitemap: https://www.example.com/sitemap.xml

User-agent 指令

User-agent 用於指定哪些搜尋引擎的爬蟲會受到以下規則的影響。你可以使用 * 來匹配所有爬蟲,或者針對特定搜尋引擎設定,例如:

User-agent: Googlebot  Disallow: /admin/  

上述設定會讓 Googlebot 無法訪問 /admin/ 資料夾。

Disallow 指令

Disallow 指令用來禁止搜尋引擎爬取特定的頁面或目錄。範例如下:

User-agent: *  Disallow: /private/  Disallow: /temp/file.html  

這意味著所有爬蟲都不能訪問 /private/ 資料夾及 /temp/file.html

Allow 指令

Allow 指令主要用於允許特定頁面,即便它的上層目錄已被 Disallow。例如:

User-agent: *  Disallow: /private/  Allow: /private/public.html  

這表示搜尋引擎可以爬取 /private/public.html,但不能訪問 /private/ 目錄內的其他內容。

Sitemap 指令

透過 Sitemap 指令,你可以告訴搜尋引擎網站地圖的位置,以幫助它們更好地索引網站。例如:

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

這將讓搜尋引擎知道 sitemap.xml 的位置,從而更有效地爬取網站內容。

如何正確設定 robots.txt?

三、如何正確設定 robots.txt?

正確設定 robots.txt 能確保搜尋引擎按您的意圖爬取或忽略特定頁面,避免不必要的資源消耗與隱私洩漏。在本節,我們將詳解如何正確撰寫與配置 robots.txt

1. robots.txt 基本語法

robots.txt 由簡單的指令組成,以下是其基本語法:

指令 說明 範例
User-agent 指定適用的搜尋引擎爬蟲 User-agent: Googlebot
Disallow 阻止爬取特定頁面或目錄 Disallow: /private/
Allow 允許指定頁面被爬取(適用於更精確規則) Allow: /public/page.html
Sitemap 指定網站地圖位置,幫助搜尋引擎更好地索引網站 Sitemap: https://www.example.com/sitemap.xml

2. 如何撰寫正確的 robots.txt?

(1)允許所有搜尋引擎爬取整個網站

這是最開放的設定,允許所有搜尋引擎爬取網站的所有內容:

User-agent: *  Disallow:

(2)禁止所有搜尋引擎爬取整個網站

如果您想要暫時阻止搜尋引擎爬取網站,可以使用以下設定:

User-agent: *  Disallow: /

(3)僅允許 Googlebot 爬取

如果想要只允許 Google 爬取,而阻止其他搜尋引擎,可以這樣設定:

User-agent: Googlebot  Disallow:  User-agent: *  Disallow: /

(4)封鎖特定類型的檔案

若不希望搜尋引擎索引某些檔案(如 PDF, ZIP 等),可以這樣設定:

User-agent: *  Disallow: /*.pdf$  Disallow: /*.zip$

3. 如何測試 robots.txt 設定是否正確?

(1)使用 Google Search Console

您可以透過「Google Search Console」的 robots.txt 測試工具 來檢查設定是否正確。

(2)直接訪問 robots.txt

您也可以直接在瀏覽器輸入 https://www.yoursite.com/robots.txt 來檢查設定內容是否符合您的需求。

(3)使用線上工具

市面上有多款線上工具可以檢測 robots.txt 的設定是否合理,例如:

4. robots.txt 設定常見錯誤

錯誤 原因 解決方法
意外封鎖重要頁面 不小心使用 Disallow: / 或錯誤路徑 檢查並修改 robots.txt,確保不封鎖重要內容
搜尋引擎仍然索引被封鎖的頁面 robots.txt 只會阻止爬取,但不會影響已索引的內容 使用 noindex 標籤或移除已索引頁面
未指定特定 User-agent 預設封鎖所有搜尋引擎,而非特定爬蟲 根據需求添加正確的 User-agent 設定

四、robots.txt 常見錯誤與最佳實踐

robots.txt 是網站與搜尋引擎之間的重要溝通工具,但若設定錯誤,可能導致搜尋引擎無法正確索引網站內容,甚至影響網站的搜尋排名。以下列出一些常見錯誤及最佳實踐,幫助你避免陷阱並優化網站的索引與爬取效率。

1. 錯誤封鎖搜尋引擎

有時網站管理員誤將整個網站或重要頁面封鎖,導致搜尋引擎無法正常索引內容。例如:

  User-agent: *  Disallow: /  

上述設定會阻擋所有搜尋引擎爬取整個網站。不當禁止爬取可能導致網站無法出現在搜尋結果中。

最佳實踐

2. 未考慮大小寫差異

robots.txt 為區分大小寫的檔案,因此 /Images//images/ 會被視為不同目錄。如果忽略此差異,可能會導致部分內容仍被爬取。

最佳實踐

  • 確認網站的實際 URL 大小寫,避免錯誤封鎖。
  • 若網站有不同大小寫的目錄,請明確定義每個規則,例如:
      User-agent: *  Disallow: /Images/  Disallow: /images/  

3. 未指定 sitemap.xml

robots.txt 可以幫助搜尋引擎找到 sitemap.xml,以加快索引速度,但許多網站未包含此設定。

最佳實踐

  • 在 robots.txt 底部加上 sitemap 位置:
      Sitemap: https://www.example.com/sitemap.xml  

4. 使用 Noindex 指令

robots.txt 不支援 Noindex 指令,但許多人仍誤以為可以在 robots.txt 檔案中禁止索引頁面。例如:

  User-agent: *  Noindex: /private-folder/  

這樣的設定是不被搜尋引擎支援的,應改用 meta robots 標籤或 HTTP 標頭來禁止索引。

最佳實踐

  • 使用 meta 標籤禁止索引:
      <meta name="robots" content="noindex, nofollow">  
  • 或設定 HTTP Header:
      X-Robots-Tag: noindex, nofollow  

5. 未測試 robots.txt 設定

部分網站管理員修改 robots.txt 後,未確認搜索引擎是否能正常爬取網站,可能會因誤設定影響索引。

最佳實踐

  • 使用 Google Search Console 的 robots.txt 測試工具確認規則是否生效。
  • 透過「site:yourdomain.com」搜尋指令檢查已被索引的頁面。

五、如何測試與驗證你的 robots.txt?

設定 robots.txt 後,務必要確保其規則正確無誤,否則可能會影響搜尋引擎的正常抓取。為此,我們可以使用 Google Search Console、第三方工具和直接透過瀏覽器進行測試與驗證。

使用 Google Search Console 測試 robots.txt

Google 提供了 robots.txt 測試工具,可以幫助你確認文件設定是否有效。使用方法如下:

步驟 1:登入 Google Search Console

前往 Google Search Console,並選擇你的網站。

步驟 2:進入 robots.txt 測試工具

這個工具目前已經移除,但你仍然可以透過 網址檢查工具來測試特定網址是否可被 Google 抓取。

步驟 3:輸入要測試的 URL

在「網址檢查工具」中輸入你的網頁網址,點擊「測試」,Google 會告訴你該網址是否受到 robots.txt 限制。

使用第三方工具驗證 robots.txt

除了 Google Search Console,你還可以使用一些第三方工具來測試 robots.txt 設定:

工具名稱 網址 功能
Robots.txt Checker Robots.txt Checker 模擬搜尋引擎測試 robots.txt 規則
SEO Book Robots.txt Tester SEO Book Robots.txt Tester 輸入 URL 和 User-agent 測試規則

透過瀏覽器直接檢查你的 robots.txt

最簡單的方法是直接在瀏覽器輸入你的 robots.txt 檔案網址。例如:

https://www.yourwebsite.com/robots.txt

如果可以順利開啟,則代表文件已經上傳成功,你可以檢查內容是否符合預期。

使用「Inspect Element」檢查 HTTP 狀態

你還可以按下 F12 或右鍵選擇「檢視原始碼」,確保 robots.txt 回傳的 HTTP 狀態碼為 200(成功),而不是 404(找不到)或 403(禁止存取)。