robots.txt
檔案會告訴搜尋引擎可以檢索網站上的哪些網頁。無效的 robots.txt
設定可能會導致以下兩種問題:
- 這麼做可防止搜尋引擎檢索公開網頁,降低您的內容在搜尋結果中的顯示頻率。
- 這可能會導致搜尋引擎檢索您不想顯示在搜尋結果中的網頁。
Lighthouse robots.txt
稽核失敗
Lighthouse 標記無效的 robots.txt
檔案:
展開報表中的 robots.txt
無效稽核項目,瞭解 robots.txt
的問題。
常見錯誤包括:
No user-agent specified
Pattern should either be empty, start with "/" or "*"
Unknown directive
Invalid sitemap URL
$ should only be used at the end of the pattern
Lighthouse 不會檢查 robots.txt
檔案是否位於正確位置。檔案必須位於網域或子網域的根目錄,才能正常運作。
如何修正 robots.txt
相關問題
確認 robots.txt
不會傳回 HTTP 5XX 狀態碼
如果您的伺服器針對 robots.txt
傳回伺服器錯誤 (500 秒中的 HTTP 狀態碼),搜尋引擎就無法知道要檢索哪些網頁。也可能停止檢索整個網站,導致系統無法為新內容建立索引。
如要檢查 HTTP 狀態碼,請在 Chrome 中開啟 robots.txt
,然後在 Chrome 開發人員工具中查看要求。
讓 robots.txt
小於 500 KiB
如果檔案大於 500 KiB,搜尋引擎可能會在中途停止處理 robots.txt
。這會造成搜尋引擎混淆,導致檢索網站的錯誤。
如要讓 robots.txt
保持精簡,請盡量減少關注個別排除的網頁,並著重在較廣泛的模式。舉例來說,如果您需要禁止 Google 檢索 PDF 檔案,請勿使用個別檔案。請改用 disallow: /*.pdf
來禁止所有包含 .pdf
的網址。
修正所有格式錯誤
robots.txt
僅允許使用符合「name: value」格式的空白行、註解和指令。- 確認
allow
和disallow
值為空白,或是以/
或*
開頭。 - 請勿在值的中間部分使用
$
,例如allow: /file$html
。
確認「user-agent
」已設有值
使用者代理程式名稱來告訴搜尋引擎檢索器應遵循哪些指令。您必須為 user-agent
的每個例項提供值,讓搜尋引擎知道是否要遵循相關的指令組合。
如要指定特定搜尋引擎檢索器,請使用該搜尋引擎發布清單中的使用者代理程式名稱。(例如,Google 的檢索用使用者代理程式清單)。
使用 *
比對所有其他不相符的檢索器。
user-agent: disallow: /downloads/
未定義任何使用者代理程式。
user-agent: * disallow: /downloads/ user-agent: magicsearchbot disallow: /uploads/
定義了一般使用者代理程式和 magicsearchbot
使用者代理程式。
確認 user-agent
前沒有 allow
或 disallow
指令
使用者代理程式名稱會定義 robots.txt
檔案的部分,搜尋引擎檢索器會根據這些區段來判斷要遵循哪些指令。如果在第一個使用者代理程式名稱「之前」放置指令,任何檢索器就不會追蹤該指令。
# start of file disallow: /downloads/ user-agent: magicsearchbot allow: /
沒有任何搜尋引擎檢索器讀取 disallow: /downloads
指令。
# start of file user-agent: * disallow: /downloads/
不允許所有搜尋引擎檢索 /downloads
資料夾。
搜尋引擎檢索器只會遵循最具體的使用者代理程式名稱章節中的指令。舉例來說,如果設定了 user-agent: *
和 user-agent: Googlebot-Image
指令,Googlebot 圖片只會遵循 user-agent: Googlebot-Image
區段中的指令。
為 sitemap
提供絕對網址
如要讓搜尋引擎瞭解你網站上的網頁,使用 Sitemap 檔案是不錯的方法。一般而言,Sitemap 檔案會列出您網站上的網址清單,以及網址上次變更時間的相關資訊。
如果您選擇透過 robots.txt
提交 Sitemap 檔案,請務必使用絕對網址。
sitemap: /sitemap-file.xml
sitemap: https://example.com/sitemap-file.xml