搜尋引擎最佳化(SEO)已成為提升網站能見度和吸引目標受眾的關鍵策略之一。在這篇文章中,我們將深入探討有效的robots.txt文件建立和管理如何確保網站不僅能被搜尋引擎發現,同時還能吸引和留住訪客。

一、robots.txt的基本概念與運作原理

在深入探討如何有效利用SEO技巧提升網站能見度之前,了解搜尋引擎爬蟲的工作流程以及robots.txt文件的核心角色與功能是不可或缺的一環。首先,我們必須認識到搜尋引擎爬蟲(Web Crawler),也被稱為網路蜘蛛(Spiders)或機器人,是一種自動化的網路程式。它們的主要任務是不斷地瀏覽網際網路,對網站進行掃描和索引,從而幫助搜尋引擎更新其資料庫,提供給用戶更為準確和相關的搜尋結果。在爬蟲執行其任務時,robots.txt文件發揮了關鍵的作用。

位於網站根目錄下的robots.txt是一個純文字文件,它告訴爬蟲哪些部分的網站是可以被抓取的,哪些是不允許的。這能夠幫助網站擁有者控制爬蟲抓取網站的哪些資料,從而避免重要資源的浪費在不必要的頁面上,或是防止某些敏感資訊被索引。透過有效配置robots.txt文件,可以在不影響用戶體驗的前提下,優化網站的搜尋引擎排名。

 

二、robots.txt文件的相關指令

文件的結構包括幾種主要指令:

  • User-agent指令:可以針對特定或所有搜尋引擎爬蟲定義規則,搭配*的使用(User-agent: *)是其中一個指令,它告訴所有的網路爬蟲,無論是誰,都要遵守以下的規則。

  • Disallow指令:明確指出哪些目錄或頁面是禁止爬蟲檢索的,以下為例:

Disallow: /private/:將阻止爬蟲抓取任何位於/private/目錄下的內容。

  • Allow指令:可以指定即便在Disallow規則下,仍然允許檢索的特定內容。

  • Crawl-delay指令: 非必要項目,用於指定爬蟲檢索網站的延遲時間(以秒為單位)。

  • Sitemap指令: 非必要項目,用於指定網站的 XML 網站地圖檔案的位置。

更多關於Sitemap的相關資訊 >>Sitemap是什麼?網站地圖DIY教學與SEO應用

 

三、robots.txt的常見規則範例

在深入了解robots.txt文件如何幫助提升網站SEO表現之前,讓我們先從三個主要應用場景來探討其靈活性與重要性。

  1. 對於那些希望完全阻止搜尋引擎爬蟲抓取其網站的網站擁有者,可以通過添加如下簡單的規則到robots.txt文件來達成這一目的:

User-agent: *

Disallow: /

此規則對所有搜尋引擎爬蟲(User-agent: *表示這條規則適用於所有爬蟲)發出指令,不允許它們抓取網站上的任何頁面(Disallow: /表示根目錄及以下的所有內容都不應被抓取)。

  1. 如果網站擁有者僅希望特定的爬蟲能夠抓取其網站,可以通過如下方式指定:

User-agent: Googlebot-news

Disallow:

User-agent: *

Disallow: /

在這個例子中,我們首先允許Googlebot-news(Google新聞的爬蟲)抓取網站的所有內容(第一條規則中的Disallow後未指定路徑,表示沒有禁止抓取的內容),然後通過第二條規則禁止所有其他爬蟲抓取網站。

  1. 當網站擁有者想要阻止特定爬蟲抓取網站上的某些特定目錄或頁面時,可以設置如下規則:

User-agent: Baiduspider

Disallow: /private-directory/

這條規則明確禁止名為Baiduspider的爬蟲抓取/private-directory/目錄下的所有內容,從而保護網站上的敏感或私人內容不被不受歡迎的爬蟲抓取。

通過這些範例,我們可以看出robots.txt文件為網站擁有者提供了一種靈活而強大的工具,以精確控制搜尋引擎爬蟲對其網站的抓取。這不僅有助於保護網站的私密內容,還能確保網站的關鍵資訊能夠被適當索引,進而提升網站在搜尋引擎中的能見度。

四、robots.txt進階應用情境

除了基本的禁止與允許規則,robots.txt 還能處理更複雜的網站結構與爬取需求。以下是一些進階的應用情境,幫助您更精確地控制搜尋引擎爬蟲的行為:

1. 阻止特定檔案類型或目錄被爬取

有時您不希望搜尋引擎索引網站上的特定檔案類型(如圖片、PDF)或某些包含敏感資源的目錄(如後台腳本、測試檔案),這可以透過以下方式實現:

User-agent: *

Disallow: /*.jpg$

Disallow: /*.png$

Disallow: /*.pdf$

Disallow: /wp-admin/

Disallow: /wp-includes/

  • Disallow: /*.jpg$:禁止所有以 .jpg 結尾的圖片檔案被爬取。

  • Disallow: /wp-admin/:禁止爬取 WordPress 後台管理目錄。

  • Disallow: /wp-includes/:禁止爬取 WordPress 核心檔案目錄,這些通常不需被索引。

2. 處理多個 User-agent 的衝突規則

當您為不同的搜尋引擎爬蟲設定了不同的規則時,需要了解其優先級。通常,更具體的 User-agent 規則會覆蓋較不具體的(例如 User-agent: *)規則

User-agent: *

Disallow: /private/ # 禁止所有爬蟲抓取 /private/ 目錄

User-agent: Googlebot

Allow: /private/public-data/ # 允許 Googlebot 抓取 /private/public-data/

Disallow: /temp/ # 額外禁止 Googlebot 抓取 /temp/

在這個範例中,所有爬蟲都被禁止抓取 /private/,但 Googlebot 卻被特別允許抓取 /private/public-data/ 子目錄。同時,Googlebot 也被額外禁止抓取 /temp/ 目錄。

3. 允許特定子目錄但禁止其父目錄

這是一個常見的「Allow within Disallow」情境,當您想禁止整個父目錄,但又希望其中某些子目錄能被索引時,可以使用 Allow 指令來實現:

User-agent: *

Disallow: /products/ # 禁止所有爬蟲抓取 /products/ 目錄下的所有內容

Allow: /products/featured-items/ # 但允許抓取 /products/featured-items/

這表示 /products/ 目錄下的所有內容(例如 /products/old-items//products/drafts/)都將被禁止,但 /products/featured-items/ 目錄下的內容則會被允許爬取。

4. 禁止帶有特定查詢參數的頁面

網站上常會產生帶有不同查詢參數的重複頁面(例如排序、篩選、Session ID),這些重複內容可能會影響 SEO。您可以透過 robots.txt 禁止爬取這些帶有特定參數的 URL:

User-agent: *

Disallow: /*?*sort= # 禁止所有帶有 ?sort= 參數的 URL

Disallow: /*?sessionid= # 禁止所有帶有 ?sessionid= 參數的 URL

  • Disallow: /*?sort=:禁止所有 URL 中包含 ?sort= 參數的頁面被爬取,例如 example.com/products?sort=price

  • Disallow: /*?sessionid=:禁止所有 URL 中包含 ?sessionid= 參數的頁面被爬取,這有助於避免索引重複內容。

這些進階範例展示了 robots.txt 在網站管理中的強大功能,讓您能更精確地引導搜尋引擎爬蟲,確保網站的關鍵內容被有效索引,同時保護不必要的或敏感的資訊。

 

四、如何建立與測試robots.txt檔案

五、robots.txt 疑難雜症與排查

即使精心建立了 robots.txt 檔案,在實際運作中仍可能遇到各種問題。了解如何排查這些常見的疑難雜症,對於確保網站的爬取與索引至關重要。

  1. 常見的語法錯誤
    • 拼寫錯誤:例如將 Disallow 誤寫為 Disalow
    • 缺少冒號或斜線:指令後缺少冒號(User-agent *)或路徑前缺少斜線(Disallow private/)。
    • 指令順序不當:特定 User-agent 的規則應在其 DisallowAllow 規則之前。
    • 使用不支援的指令:例如在 robots.txt 中使用 Noindex 指令,這應透過 meta 標籤或 X-Robots-Tag 實現。
  2. 檔案未上傳至根目錄

    robots.txt 檔案必須放置在網站的根目錄下(例如 https://yourdomain.com/robots.txt)。如果檔案被錯誤地放置在子目錄中,搜尋引擎爬蟲將無法找到它,導致其被忽略。請務必確認檔案路徑正確無誤。

  3. 快取問題

    即使您已更新 robots.txt 檔案,網站的伺服器快取、CDN 快取或瀏覽器快取可能仍在提供舊版本。這會導致搜尋引擎爬蟲讀取到過時的指令。在更新 robots.txt 後,建議清除相關快取,並使用 Google Search Console 的 robots.txt 測試工具來強制重新檢查,以確保 Google 讀取到最新版本。

  4. Google Search Console 報表解讀與修正建議

    Google Search Console 的 robots.txt 報表是排查問題的利器。

    • 「問題數」欄位:若狀態顯示「已擷取」但「問題數」不為零,表示檔案存在語法或邏輯錯誤。
    • 錯誤類型:報表會指出具體的錯誤行號和類型,例如「無效的指令」或「缺少冒號」。
    • 修正建議:利用 Search Console 的測試工具,直接在介面中修改並測試 robots.txt,直到所有錯誤都排除。特別注意 Disallow 規則是否意外阻擋了重要頁面,必要時可使用 Allow 指令進行例外處理。同時,確認 Sitemap 路徑是否正確且可訪問。

使用文字編輯器建立

建立與測試robots.txt文件的過程中,首先需要使用文字編輯器創建這個文件。選擇偏好的文字編輯器,如Notepad或Sublime Text,然後根據網站的需求撰寫適當的指令,包括User-agent、Disallow、Allow等。完成後,將文件儲存為robots.txt並上傳至網站根目錄。當搜尋引擎爬蟲抓取網站時,將會首先檢查這個文件並按照其指令進行內容爬取。在設定robots.txt文件時,也必須謹慎以避免誤封鎖對SEO友好的重要內容。

利用robots.txt測試工具檢查

在robots.txt文件創建完畢後,進行測試以確保其能正確引導搜尋引擎爬蟲是關鍵一步。你可以使用Google Search Console檢查 robots.txt 檔案是否存在,也可以檢查文件並修正任何潛在的問題。點擊「開啟robot.txt報表」即可開始使用:

使用Google Search Console檢查 robots.txt 檔案是否存在

圖片來源:截自Google Search Console說明中心

  • 已擷取:若上次嘗試檢索時有成功傳回 robots.txt 檔案,狀態會顯示「已擷取」,而剖析檔案時發現的問題全都會列在「問題數」欄中。

嘗試檢索時有成功傳回 robots.txt 檔案,狀態會顯示「已擷取」圖片來源:截自Google Search Console

如要修正剖析問題,則可以利用第三方測試工具如robots.txt Validator and Testing Tool | TechnicalSEO.com。這確保了文件在正式運作前不會阻擋到重要內容的索引。

  • 未擷取:若上次嘗試檢索時robots.txt 檔案不存在,狀態會顯示「未擷取」,可以嘗試檢查網址看看是否有任何問題。

其他相關使用說明可參考:robots.txt 報表 - Search Console說明

 

五、robots.txt的SEO最佳作法

六、robots.txt 常見問題

以下是關於 robots.txt 的一些常見問題與解答:

1. robots.txt 檔案更新後多久生效?

robots.txt 檔案的更新生效時間並非即時。搜尋引擎爬蟲會定期重新訪問網站並抓取 robots.txt 檔案。這個週期可能需要一段時間,具體取決於網站的抓取頻率和搜尋引擎的排程。如果需要緊急生效,可以透過 Google Search Console 提交更新後的 robots.txt 檔案,加速其被重新抓取。

2. robots.txt 錯誤會導致什麼後果?

robots.txt 檔案中的錯誤可能會導致嚴重的 SEO 問題。最常見的錯誤是意外地阻止搜尋引擎抓取重要的頁面或整個網站,這會導致這些內容無法被索引,進而影響網站在搜尋結果中的可見性。此外,語法錯誤也可能導致部分或全部指令失效,使得爬蟲行為不如預期。因此,在部署任何更改之前,務必使用 robots.txt 測試工具進行驗證。

3. robots.txt 可以用來隱藏敏感資料嗎?

不可以。 robots.txt 的主要目的是引導搜尋引擎爬蟲,告訴它們哪些頁面可以抓取,哪些不應該抓取。它並非一個安全機制,不能保證敏感資料不被公開。惡意使用者仍然可以直接訪問被 robots.txt 阻止的 URL。對於真正的敏感資料,應使用更安全的保護措施,例如密碼保護、伺服器端權限設定或將其從網站上完全移除。

4. robots.txt 和 noindex 有什麼區別?

robots.txt 是用來阻止爬蟲抓取頁面,而 noindex 標籤(通常放在 <head> 區塊或作為 HTTP 響應頭)是用來阻止搜尋引擎索引頁面。即使 robots.txt 允許爬蟲抓取某頁面,如果該頁面包含 noindex 標籤,搜尋引擎也不會將其顯示在搜尋結果中。反之,如果 robots.txt 阻止了爬蟲抓取某頁面,爬蟲就無法讀取該頁面上的 noindex 標籤,因此該頁面仍有可能被索引(例如透過外部連結)。通常,建議使用 noindex 來確保頁面不被索引,並使用 robots.txt 來管理爬蟲資源。

5. 網站沒有 robots.txt 檔案會怎樣?

如果網站沒有 robots.txt 檔案,搜尋引擎爬蟲通常會假設網站的所有內容都可以被抓取和索引。這在大多數情況下並不會造成問題,但可能會導致爬蟲抓取一些你不想被索引的頁面(例如後台登入頁、測試頁面等),或者浪費爬蟲資源在低價值的頁面上。因此,即使你希望所有內容都被索引,建立一個空的或只包含 Sitemap 指令的 robots.txt 檔案也是一個良好的實踐。

在探討robots.txt對SEO的影響時,有幾項值得注意的事:

  1. 確保不會不小心阻擋到重要頁面的爬取:robots.txt文件使網站管理者能夠指示搜尋引擎哪些頁面或文件應被抓取,哪些則不應該,錯誤地設定禁止爬取重要頁面可能會導致這些頁面無法出現在搜尋結果中,進而影響網站的可見度和流量。

  1. 了解noindex meta標籤和robots.txt之間的區別:noindex meta標籤位於HTML頁面內部,用於告知搜尋引擎不要將該頁面納入索引,而robots.txt則控制爬蟲對網站的抓取。簡而言之,noindex是防止頁面被索引(index),robots.txt是防止頁面被爬取(crawl)。

更多關於noindex meta標籤的相關資訊 >>精通SEO:如何運用Robots Meta標籤與X-Robots-Tag提升網站排名

  1. 定期更新和提交robots.txt文件:隨著網站內容的更新和擴充,可能需要調整robots.txt文件,以確保新的或更新的內容能被搜尋引擎正確爬取和索引。當robots.txt有重要更改時,應通過Google Search Console等工具提交更新,以加速搜尋引擎對這些變更的識別。透過定期檢查和更新robots.txt文件,可以確保SEO策略與網站發展保持一致,從而有效提升網站在搜尋引擎中的表現,增加網站的可見度和訪客流量。

 

還想了解更多各類數位行銷資訊的話,歡迎訂閱電子報、加入奇寶Line好友,第一時間接收最新資訊!後續我們台北移動學苑還會陸續舉辦各類型的行銷課程,也歡迎有興趣的行銷人可以加入我們臉書粉絲團,在粉絲專頁上與我們討論喔!

Facebook粉絲專頁:

奇寶網路
台北移動學苑

歡迎轉載KPN奇寶部落格相關文章,在轉載前請先詳閱著作權聲明轉載原則

KPN 編輯部
AUTHOR

KPN 編輯部

奇寶網路自 2006 年成立,深耕搜尋行銷產業 — 服務超過 上千家企業客戶,自主研發站內廣告系統「客樂寶」,是 Google Partners 官方認證機構。

SHARE Facebook LINE
STAY CONNECTED · 訂閱與社群

還想了解更多各類數位行銷資訊的話,歡迎訂閱電子報加入奇寶 Line 好友,第一時間接收最新資訊!

Facebook 粉絲專頁:

歡迎轉載 KPN 奇寶部落格相關文章,在轉載前請先詳閱著作權聲明及轉載原則