一、什麼是 Robots.txt?
在網站管理與SEO優化的過程中,Robots.txt 是一個不可忽視的重要文件。這個小小的文字檔案位於網站的根目錄中,主要用來告訴搜尋引擎爬蟲(如 Googlebot)哪些頁面可以被索引,哪些頁面應該被排除。
1. Robots.txt 的基本概念
當搜尋引擎爬蟲造訪一個網站時,第一步通常會檢查 Robots.txt 文件,以確保它們的爬取行為符合網站管理者的規則。這有助於避免搜尋引擎索引不必要或敏感的內容,例如管理頁面、登錄頁面或重複內容。
2. Robots.txt 的作用
Robots.txt 的核心功能包括:
- 限制或允許搜尋引擎爬取特定區域
- 控制搜尋引擎爬取的頻率,以減少伺服器負擔
- 避免重複內容導致SEO問題
- 保護敏感資訊不被索引(但不等於完全隱藏)
3. Robots.txt 的基本語法
Robots.txt 文件的語法相當簡單,主要由 “User-agent” 和 “Disallow” 或 “Allow” 指令組成:
指令 | 用途 | 範例 |
---|---|---|
User-agent |
指定適用的搜尋引擎爬蟲 | User-agent: Googlebot |
Disallow |
禁止爬取特定目錄或頁面 | Disallow: /admin/ |
Allow |
允許爬取特定路徑(一般用於例外規則) | Allow: /public/ |
Sitemap |
指定網站的 Sitemap 位置 | Sitemap: https://example.com/sitemap.xml |
4. Robots.txt 的影響
雖然 Robots.txt 能有效引導搜尋引擎爬取網站內容,但錯誤的設定可能會導致:
- 網站重要內容無法被索引,影響SEO表現
- 搜尋引擎仍然能夠透過外部連結發現被「禁止」的頁面
- 過度限制爬蟲,導致新內容無法即時被搜尋引擎收錄
5. Robots.txt ≠ 網站安全
需特別注意的是,Robots.txt 的指令僅適用於守規則的搜尋引擎爬蟲,它並無法阻擋惡意爬蟲 或禁止使用者直接存取 URL。因此,若網站內含有敏感資訊,應使用適當的身份驗證或伺服器設定來加強安全性。
理解 Robots.txt 的基礎概念後,在後續內容中,我們將進一步探討最佳實踐與常見錯誤,幫助網站管理者正確設定 Robots.txt,確保站點的SEO效果最大化。
二、Robots.txt 的基本語法與設定
Robots.txt 是一個存放於網站根目錄的純文字檔,用來告知搜尋引擎的爬蟲哪些頁面或檔案可以或不可以被爬取。正確設定 Robots.txt 有助於搜尋引擎的索引作業,也能避免某些頁面被不必要地收錄。以下是 Robots.txt 的基本指令及撰寫方式。
什麼是 User-agent?
User-agent 指令用來指定哪些搜尋引擎的爬蟲適用本段設定。例如,Googlebot 是 Google 的爬蟲,而 Bingbot 則是 Bing 的爬蟲。以下是基本語法:
User-agent: *
「*」表示適用於所有爬蟲。若要針對特定搜尋引擎設置,可以這樣寫:
User-agent: Googlebot
這表示以下的設定僅適用於 Googlebot。
Disallow 指令:禁止搜尋引擎爬取特定頁面
Disallow 指令用來防止搜尋引擎爬取特定的資料夾或網頁,如下範例:
User-agent: * Disallow: /admin/ Disallow: /private/
這代表所有搜尋引擎都不得爬取 /admin/
和 /private/
這兩個資料夾。
Allow 指令:允許搜尋引擎爬取特定頁面
Allow 指令用來允許爬取某些特定的網頁,即使它們的上層目錄被 Disallow 限制。例如:
User-agent: * Disallow: /private/ Allow: /private/public-page.html
這代表禁止訪問 /private/
目錄,但允許爬取 /private/public-page.html
這一頁。
Robots.txt 設定範例
下表列出一些常見的 Robots.txt 設定範例及其用途:
設定 | 說明 |
---|---|
User-agent: * |
允許所有搜尋引擎爬取網站的所有內容。 |
User-agent: * |
禁止所有搜尋引擎爬取整個網站。 |
User-agent: Googlebot |
僅限制 Googlebot 無法爬取 /private/ 目錄,其他搜尋引擎仍可存取。 |
User-agent: * |
禁止所有搜尋引擎爬取 /admin/ 目錄,但允許 /admin/public-info.html 被爬取。 |
如何正確撰寫 Robots.txt?
1. 確保 Robots.txt 存放於網站根目錄
Robots.txt 檔案必須位於網站的根目錄,例如 https://www.example.com/robots.txt
,才能讓搜尋引擎找到它。
2. 使用正確的大小寫
Robots.txt 的指令區分大小寫,例如 /Admin/
與 /admin/
是不同的路徑,須特別注意。
3. 測試你的設定
建議使用 Google Search Console 的「機器人測試工具」來檢查你的設置是否正確,避免意外封鎖重要頁面。
三、常見的 Robots.txt 設定範例
不同類型的網站對 Robots.txt 的需求也有所不同。以下將分享幾種常見的 Robots.txt 設定範例,幫助網站管理者根據自己的需求進行調整。
電子商務網站的 Robots.txt 設定
電子商務網站通常有許多產品頁面、分類頁面以及會員專區,因此需要適當地管理爬蟲,以避免索引不必要的頁面。
範例設定:
User-agent: * Disallow: /cart/ Disallow: /checkout/ Disallow: /account/ Disallow: /orders/ Allow: /products/ Allow: /categories/
設定說明:
Disallow: /cart/
、Disallow: /checkout/
:防止爬蟲索引購物車與結帳頁面,避免影響用戶體驗。Disallow: /account/
、Disallow: /orders/
:限制會員帳戶與訂單頁面被索引,以保護個資與隱私。Allow: /products/
、Allow: /categories/
:確保商品與分類頁面順利被索引,有助於提升產品曝光度。
部落格網站的 Robots.txt 設定
部落格網站主要以內容為主,因此希望搜索引擎能夠順利收錄文章,但同時也需要排除重複內容或不必要的頁面。
範例設定:
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /search/ Allow: /wp-admin/admin-ajax.php Allow: /blog/ Allow: /categories/
設定說明:
Disallow: /wp-admin/
、Disallow: /wp-includes/
:限制 WordPress 的管理後台與系統檔案被索引。Disallow: /search/
:防止網站內部的搜尋結果頁面被索引,避免重複內容的問題。Allow: /wp-admin/admin-ajax.php
:允許 Ajax 請求,確保部分功能能夠正常運作。Allow: /blog/
、Allow: /categories/
:確保部落格文章與分類頁面能被索引,提高 SEO 效果。
企業網站的 Robots.txt 設定
企業網站通常是品牌展示與服務介紹的平台,因此希望搜尋引擎能夠收錄主要的服務與資訊頁面,但避免索引內部資料或開發文件。
範例設定:
User-agent: * Disallow: /admin/ Disallow: /internal/ Disallow: /tmp/ Allow: /services/ Allow: /about-us/ Allow: /contact/
設定說明:
Disallow: /admin/
、Disallow: /internal/
:防止搜尋引擎爬取內部管理與公司內部文件資料夾。Disallow: /tmp/
:避免臨時檔案資料夾被索引。Allow: /services/
、Allow: /about-us/
、Allow: /contact/
:確保企業的主要服務頁面與聯絡資訊頁面正常被索引。
新聞網站的 Robots.txt 設定
新聞網站往往更新頻繁,因此希望搜尋引擎能夠快速抓取新文章,同時避免索引無關的內容。
範例設定:
User-agent: * Disallow: /admin/ Disallow: /comments/ Allow: /news/ Allow: /articles/ Allow: /sitemap.xml
設定說明:
Disallow: /admin/
:避免管理後台被索引。Disallow: /comments/
:防止用戶評論頁面被索引,避免重複內容產生。Allow: /news/
、Allow: /articles/
:確保新聞與文章頁面被收錄,提高搜尋排名。Allow: /sitemap.xml
:允許爬蟲存取網站地圖,加速內容索引。
比較不同類型網站的 Robots.txt 設定
以下表格整理了不同類型網站的 Robots.txt 設定重點,供讀者參考:
網站類型 | 主要設定 | 說明 |
---|---|---|
電子商務網站 | Disallow: /cart/、Disallow: /checkout/ | 避免購物車與結帳頁面被索引,保護用戶隱私。 |
部落格網站 | Disallow: /search/ | 防止內部搜尋結果被索引,避免重複內容。 |
企業網站 | Disallow: /admin/、Allow: /services/ | 防止內部管理頁面被索引,但允許主要服務頁面被搜尋。 |
新聞網站 | Allow: /news/、Allow: /sitemap.xml | 確保新聞與文章頁面能夠順利被搜尋引擎收錄。 |
四、Robots.txt 常見錯誤與修正方式
Robots.txt 是站長和開發者用來控制搜尋引擎爬取網站內容的重要工具。然而,設定錯誤可能會導致搜尋引擎無法正確索引網站,進而影響 SEO 表現。以下是幾個常見的錯誤及對應的修正方式。
錯誤 1:錯誤封鎖搜尋引擎
有些網站在開發或測試階段會使用 Disallow: /
來阻擋搜尋引擎,但上線後忘記移除,導致整個網站無法被索引。
錯誤範例:
User-agent: * Disallow: /
修正方式:
確認上線時不應該封鎖整個網站,應刪除該行或確保只有特定目錄被封鎖。
User-agent: * Allow: /
錯誤 2:誤用萬用字元 (wildcards)
Robots.txt 支援部分萬用字元(如 *
和 $
),但誤用可能會導致不預期的結果。例如,有些站長希望封鎖特定類型的 URL,但卻錯誤設置規則。
錯誤範例:
User-agent: * Disallow: /*.php/
此規則試圖封鎖所有 .php 檔案,但實際上無效,因為 /
在 .php 後面。
修正方式:
應該正確使用萬用字元,使其符合實際需求。
User-agent: * Disallow: /*.php$
此設定會正確封鎖所有 .php 結尾的檔案。
錯誤 3:誤以為 Robots.txt 可阻擋所有存取
許多開發者誤以為 Robots.txt 可以完全阻擋不希望被公開的內容,但實際上它只影響搜尋引擎爬蟲,無法防止用戶直接存取 URL。
錯誤範例:
User-agent: * Disallow: /private/
此規則雖然告訴搜尋引擎不要索引 /private/
,但該目錄仍可被直接存取。
修正方式:
應該搭配伺服器端的存取控制,如 HTTP 認證或 .htaccess
限制。
<Files "sensitive-data.html"> Order Allow,Deny Deny from all </Files>
錯誤 4:沒有考慮到搜尋引擎的預設行為
如果沒有 Robots.txt 檔案,搜尋引擎預設會爬取全部內容,但有些站長誤以為沒有 Robots.txt 會讓網站無法被索引。
錯誤觀念:
「沒有 Robots.txt,Google 就不會索引我的網站」— 這是錯誤的認知。
正確作法:
若不希望內容被索引,應使用 meta robots
標籤或 HTTP 標頭,而非僅依賴 Robots.txt。
<meta name="robots" content="noindex, nofollow">
五、最佳實踐與進階技巧
設定 Robots.txt
時,除了基本的允許與拒絕規則之外,還有許多進階技巧能幫助網站提升 SEO 效果。以下將說明幾個最佳做法,並討論與 Sitemap.xml
的搭配使用,以確保搜尋引擎能有效地抓取網站內容。
善用 Sitemap.xml 提升抓取效率
將 Sitemap.xml
路徑明確寫在 Robots.txt
內,可以幫助搜尋引擎更快找到網站的重要頁面。範例如下:
User-agent: * Disallow: /private/ Sitemap: https://www.example.com/sitemap.xml
這樣,搜尋引擎在讀取 Robots.txt
時,就能馬上獲取你的網站地圖,讓網站內容更快被索引。
避免封鎖重要的搜尋引擎機器人
不正確的設定可能會導致搜尋引擎無法抓取頁面,因此應確保沒有封鎖 Googlebot 或其他主要搜尋引擎的機器人。例如,以下是不好的設定:
User-agent: Googlebot Disallow: /
這會讓 Google 無法索引你的網站,導致整個網站從搜尋結果中消失。
精確控制抓取頻率與機器人存取
部分網站可能希望降低搜尋引擎機器人的抓取頻率,以減少伺服器負擔。可以使用 Crawl-delay
來設定,例如:
User-agent: Bingbot Crawl-delay: 10
這表示 Bingbot 每 10 秒才抓取一次,可減少伺服器壓力。(注意:Googlebot 不支援此指令)
避免封鎖必要的 CSS 與 JS
有些網站管理者會不小心封鎖關鍵的 CSS 或 JavaScript,導致搜尋引擎無法正確渲染網站頁面。例如,錯誤的設定如下:
User-agent: * Disallow: /css/ Disallow: /js/
這可能會影響網站在 Google 的排名,尤其是行動版的可讀性分數。因此,應確保必要的資源是允許被搜尋引擎存取的。
利用 Wildcards 進行進階匹配
Robots.txt
支援使用萬用字元(Wildcards)來匹配類似的 URL。例如:
User-agent: * Disallow: /*? Disallow: /*.pdf$
此設定會阻擋所有帶有「?」(如動態參數)的 URL,以及所有 .pdf 檔案,確保搜尋引擎不會索引這些頁面或檔案。
善用 Noindex 標籤作額外控制
雖然 Robots.txt
主要用來告訴搜尋引擎哪些內容可以或不能被抓取,但它不會阻止已經被索引的內容。因此,若要完全控制某些頁面不被出現在搜尋結果中,應該在頁面內加上 meta noindex
標籤:
<meta name="robots" content="noindex">
這樣,可以確保該頁面即使曾被索引,搜尋引擎也會將其移除。
常見錯誤與如何避免
以下是一些網站管理者常犯的錯誤,請確保你的 Robots.txt
沒有這些問題:
錯誤 | 影響 | 解決方案 |
---|---|---|
無意間封鎖整個網站 | 網站從搜尋結果中消失 | 檢查是否有 Disallow: / 並修正 |
未提供 Sitemap.xml |
搜尋引擎抓取速度變慢 | 在 Robots.txt 內加入 Sitemap 連結 |
封鎖必要的 CSS/JS | 網站顯示異常,影響 SEO | 確保 css 與 js 資源未被禁止 |
未測試 Robots.txt |
可能影響 SEO 或功能異常 | 使用 Google Search Console 測試設定 |
使用 Google Search Console 進行測試
在 Google Search Console 的「Robots.txt 測試工具」可用來檢查你的設定是否正確。另外,也可以透過「覆蓋與索引」報告來分析哪些頁面被封鎖,確保搜尋引擎順利抓取應該被索引的內容。
定期檢查與優化
網站內容與架構會隨著時間變更,因此 Robots.txt
也需要定期檢查與優化。建議每隔幾個月重新檢視設定,確保沒有影響 SEO 的錯誤。