目錄
以下內容將以 robots.txt 的完整設定與如何提升 SEO 為主軸,帶領你從基礎概念到進階應用,一步步了解 robots.txt 的使用方式與最佳實踐。本文使用繁體中文進行說明,並保持內容專業且易於理解。
一、什麼是 robots.txt?
robots.txt 是一個放在網站根目錄(通常為 https://www.example.com/robots.txt)的純文字檔案,用來告訴搜尋引擎(如 Google、Bing、Yahoo 等)或其他爬蟲(crawlers、robots)哪些頁面或資源可以被抓取(crawl),哪些需要被排除。它是搜尋引擎第一個會去尋找的檔案之一,用於指引爬蟲行為。
為什麼需要 robots.txt?
- 控制爬蟲行為
不希望所有內容都被索引時,可以使用 robots.txt 來限制特定的路徑、檔案或資源(例如後台管理頁面)。 - 節省伺服器資源
大型網站或有大量頁面時,不必要的抓取會耗費伺服器頻寬與資源,robots.txt 能協助排除重複或無關頁面。 - 避免不必要的曝光
一些敏感或私密性較高的檔案(如測試環境、系統檔案)可以透過 robots.txt 避免被搜尋引擎抓取與索引。
重要提醒:robots.txt 只是一種協議,並不具備權威或法律約束力。惡意爬蟲可能依然會忽略它。若真的需要保護檔案安全,應考慮伺服器端的驗證機制或防火牆,而不僅僅依賴 robots.txt。
二、基本語法與範例
1. 基本語法結構
- User-agent: 指定要對哪個爬蟲(User-agent)套用規則。
- Allow: 允許抓取特定路徑。
- Disallow: 禁止抓取特定路徑。
- Sitemap: 提示搜尋引擎站點地圖(通常放在網站根目錄或其他指定位置)。
範例 (robots.txt 範本)
User-agent: *
Disallow: /admin/
Allow: /admin/help-docs/
Sitemap: https://www.example.com/sitemap.xml
解釋:
User-agent: *
:代表此規則適用於所有爬蟲。Disallow: /admin/
:禁止爬蟲抓取/admin/
路徑底下所有內容。Allow: /admin/help-docs/
:即使在/admin/
之下,也允許爬蟲抓取help-docs/
這個資料夾。Sitemap: ...
:指定網站的站點地圖位置,協助搜尋引擎更有效率地抓取網站。
2. 多組 User-agent 的示範
User-agent: Googlebot
Disallow: /private/
User-agent: Bingbot
Disallow: /test/
User-agent: *
Disallow: /tmp/
解釋:
- 若是來自 Googlebot 的爬蟲(Google 搜尋引擎),禁止其抓取
/private/
。 - 若是來自 Bingbot 的爬蟲(Bing 搜尋引擎),禁止其抓取
/test/
。 - 其他所有爬蟲禁止抓取
/tmp/
。
3. 通配符(Wildcard)語法
在某些情況下,你會遇到想要擋住或開放某些具有相同字串模式的 URL。這時可用 *
做為通配符。
Disallow: /*.pdf
:禁止抓取所有.pdf
檔案。Disallow: /folder/*?sessionid=
:禁止抓取帶有sessionid=
參數的網址。
注意:並非所有搜尋引擎都支援複雜的通配符寫法,但 Googlebot 與大部分主流搜尋引擎基本的 *
仍是可行的。
三、如何正確設定 robots.txt?
1. 放置位置
確保 robots.txt
檔案放在網站的根目錄,例如:
https://www.example.com/robots.txt
若你的網站有分不同子網域(subdomain),則每個子網域可擁有自己的 robots.txt
,例如:
https://shop.example.com/robots.txt
https://blog.example.com/robots.txt
這些檔案不會互相影響。
2. 注意大小寫
檔案名稱必須全部小寫:robots.txt
(而不是 Robots.txt
或 Robots.TXT
)。
URL 路徑的大小寫,也要保持一致,因為多數伺服器對大小寫敏感。
3. 檔案編碼
最好使用 UTF-8 編碼存檔,確保搜尋引擎可以正確解析。
4. 測試與驗證
- Google Search Console(以前稱為「網站管理員工具」)提供了「robots.txt 測試工具」,能即時驗證檔案設定是否正確。
- 也可以直接在瀏覽器中開啟
robots.txt
的網址,檢視設定內容是否為最新版本。
四、常見錯誤與避免方式
- 直接禁止所有爬蟲抓整站
User-agent: * Disallow: /
- 錯誤放置路徑
有些站長希望禁止/admin
,卻誤寫成/admin
(少了斜線),或將Disallow
與Allow
的位置寫混。
正確:Disallow: /admin/
錯誤:Disallow: admin
- 只用 robots.txt 想保護敏感檔案
例如:User-agent: * Disallow: /config.php
五、SEO 提升技巧與建議
- 善用 Allow 配合 Disallow
大多數情況,只要設定Disallow
即可。但若在被禁止的路徑下,有部分資料夾或檔案是值得搜尋引擎抓取的,可搭配Allow
明確開放。User-agent: * Disallow: /admin/ Allow: /admin/help-docs/
- 盡量避免阻擋需要被索引的檔案
若檔案或資料夾中包含重要內容(例如可引導使用者或有關鍵字優勢的頁面),不應該透過Disallow
全部禁止。
若不確定哪些內容該擋,建議先觀察網站流量與搜尋流量(可利用 Google Analytics、Search Console 等工具),再行調整。 - 使用 Sitemap 指引爬蟲
在 robots.txt 中指定你的網站地圖位置,有助於搜尋引擎更快速發現所有重要頁面。尤其大規模網站或多層級結構時,更能提升抓取效率。Sitemap: https://www.example.com/sitemap.xml
- 定期檢視抓取狀態與錯誤
- 在 Google Search Console「抓取狀況」或「索引涵蓋範圍」中,了解哪些頁面被擋下、哪些被成功抓取,是否有出現預期外的阻擋。
- 若網站架構改版,調整目錄時,一定要同步更新 robots.txt。
- 考量 Crawl Budget(爬蟲預算)
大型網站或經常更新的網站,Googlebot 會分配一定的抓取頻率(Crawl Budget)。若爬蟲花大量時間抓取不需要的頁面,真正有價值的頁面抓取次數可能相對減少。- 使用 robots.txt 阻擋如範例:
/login/
、/cart/
或動態參數過多的 URL,讓爬蟲把重心放在更重要的內容上。
- 使用 robots.txt 阻擋如範例:
- 不要使用 robots.txt 來隱藏重複內容
若有大量的重複內容 (Duplicate Content),可以使用canonical
標籤、或在後端設定 301/302 轉址等方式來處理。若只用Disallow
,可能造成搜尋引擎無法抓到主要版本的內容,對 SEO 反而不利。
六、綜合範例:最佳實踐 robots.txt
以下是一個較為「最佳實踐」的例子,可依照自己網站需求稍作調整:
# 允許所有爬蟲
User-agent: *
# 禁止抓取後端管理及相關系統檔案
Disallow: /admin/
Disallow: /login/
Disallow: /register/
Disallow: /cgi-bin/
# 禁止抓取動態參數頁面
Disallow: /*?sid=
Disallow: /*?session=
# 若確定某些目錄為測試區域,可完全禁止
Disallow: /beta-test/
# 指定網站地圖 (可放一個或多個)
Sitemap: https://www.example.com/sitemap.xml
Sitemap: https://www.example.com/sitemap-posts.xml
七、總結
- robots.txt 是網站與搜尋引擎互動的第一道規則設定,可用來優化爬蟲行為與保護部分頁面。
- 對於 SEO 來說,善用
Disallow
與Allow
、搭配站點地圖能有效提升抓取效率並集中權重。 - 不要 依賴 robots.txt 來保護真正機密或敏感資訊;應採取更安全的伺服器防護與驗證機制。
- 設定完成後,定期利用 Google Search Console 的工具檢查爬取狀態,確保不會無意間阻擋了應該被收錄的頁面。
若你能依照以上步驟與建議進行設定,對搜尋引擎和訪客皆能有更良好的體驗,同時也能減少伺服器資源的浪費,進一步提升整體網站的 SEO 表現。祝網站排名節節高升,流量源源不絕!