一、什麼是 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
。
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: /
上述設定會阻擋所有搜尋引擎爬取整個網站。不當禁止爬取可能導致網站無法出現在搜尋結果中。
最佳實踐
- 確保關鍵頁面未被錯誤封鎖。
- 使用 Google Search Console 的 robots.txt 測試工具,確認搜尋引擎可正常存取。
- 如需阻擋特定目錄,請精準設定,例如:
User-agent: * Disallow: /private-folder/
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(禁止存取)。