什麼是 robots.txt? 用例子釘它的初學者指南
已發表: 2022-03-29
啊,robots.txt——一個很小的文件,卻有著重大的意義。 伙計們,這是您不想弄錯的一種技術 SEO 元素。
在本文中,我將解釋為什麼每個網站都需要 robots.txt 以及如何創建一個(不會導致 SEO 出現問題)。 我將回答常見的常見問題解答並包括如何為您的網站正確執行它的示例。 我還將為您提供涵蓋所有詳細信息的可下載指南。
內容:
- 什麼是 robots.txt?
- 為什麼 robots.txt 很重要?
- 但是,robots.txt 有必要嗎?
- robots.txt 會出現什麼問題?
- robots.txt 是如何工作的?
- 無錯誤創建 robots.txt 的提示
- robots.txt 測試器
- 機器人排除協議指南(免費下載)
什麼是 robots.txt?
Robots.txt 是網站發布者創建並保存在其網站根目錄的文本文件。 其目的是告訴自動網絡爬蟲(例如搜索引擎機器人)不要在網站上爬取哪些頁面。 這也稱為機器人排除協議。
Robots.txt 不保證排除的 URL 不會被編入索引以供搜索。 這是因為搜索引擎蜘蛛仍然可以通過鏈接到它們的其他網頁找到這些頁面。 或者,這些頁面可能仍會從過去編入索引(稍後會詳細介紹)。
Robots.txt 也不能絕對保證機器人不會抓取排除的頁面,因為這是一個自願系統。 主要搜索引擎機器人很少不遵守您的指令。 但其他不良網絡機器人,如垃圾郵件機器人、惡意軟件和間諜軟件,通常不服從命令。
請記住,robots.txt 文件是可公開訪問的。 您只需將 /robots.txt 添加到域 URL 的末尾即可查看其 robots.txt 文件(如我們的此處)。 因此,請勿包含任何可能包含業務關鍵信息的文件或文件夾。 並且不要依賴 robots.txt 文件來保護私人或敏感數據免受搜索引擎的攻擊。
為什麼 robots.txt 很重要?
搜索引擎機器人具有抓取和索引網頁的指令。 使用 robots.txt 文件,您可以有選擇地排除網頁、目錄或整個網站被抓取。
這在許多不同的情況下都很方便。 以下是您需要使用 robots.txt 的一些情況:
- 阻止某些不應被抓取/索引的頁面或文件(例如不重要或類似的頁面)
- 在更新時停止抓取網站的某些部分
- 告訴搜索引擎您的站點地圖的位置
- 告訴搜索引擎忽略網站上的某些文件,如視頻、音頻文件、圖像、PDF 等,而不是讓它們出現在搜索結果中
- 幫助確保您的服務器不會被請求淹沒*
*使用 robots.txt 阻止不必要的抓取是減輕服務器壓力並幫助機器人更有效地找到您的優質內容的一種方法。 谷歌在這裡提供了一個方便的圖表。 此外,Bing 支持 crawl-delay 指令,這有助於防止過多的請求並避免服務器不堪重負。
當然,robots.txt 的應用有很多,我會在這篇文章中詳細介紹。
但是,robots.txt 有必要嗎?
每個網站都應該有一個 robots.txt 文件,即使它是空白的。 當搜索引擎機器人進入您的網站時,他們首先尋找的是 robots.txt 文件。
如果不存在,則為蜘蛛提供 404(未找到)錯誤。 儘管 Google 表示即使沒有 robots.txt 文件,Googlebot 也可以繼續抓取網站,但我們認為最好讓 bot 請求加載的第一個文件而不是產生 404 錯誤。
robots.txt 會出現什麼問題?
如果您不小心,這個簡單的小文件可能會導致 SEO 出現問題。 這裡有幾個需要注意的情況。
1. 不小心屏蔽了你的整個網站
這個問題發生的頻率比你想像的要多。 開發人員可以在開發過程中使用 robots.txt 隱藏網站的新部分或重新設計的部分,但在發布後忘記取消阻止。 如果它是一個現有的網站,這個錯誤可能會導致搜索引擎排名突然下降。
在準備啟動新站點或站點部分時,能夠關閉抓取非常方便。 只要記住在站點上線時更改您的 robots.txt 中的該命令。
2.排除已經被索引的頁面
屏蔽已編入索引的 robots.txt 頁面會導致它們卡在 Google 的索引中。
如果您排除已經在搜索引擎索引中的頁面,它們將保留在那裡。 為了真正從索引中刪除它們,您應該在頁面本身上設置一個元機器人“noindex”標籤,讓 Google 抓取並處理它。 一旦頁面從索引中刪除,然後在 robots.txt 中阻止它們,以防止 Google 將來請求它們。
robots.txt 是如何工作的?
要創建 robots.txt 文件,您可以使用記事本或 TextEdit 等簡單的應用程序。 用文件名robots.txt保存它,然後將它作為 www.domain.com/robots.txt 上傳到您網站的根目錄——這是蜘蛛會尋找它的地方。
一個簡單的 robots.txt 文件如下所示:
用戶代理: *
禁止:/目錄名稱/
Google 在其關於創建 robots.txt 的幫助文件中很好地解釋了組中不同行在 robots.txt 文件中的含義:
每組由多個規則或指令(指令)組成,每行一個指令。
一個組提供以下信息:
- 該組適用於誰(用戶代理)
- 代理可以訪問哪些目錄或文件
- 代理無法訪問哪些目錄或文件
接下來,我將詳細解釋 robots.txt 文件中的不同指令。
Robots.txt 指令
robots.txt 中使用的常用語法包括:
用戶代理
用戶代理是指您在其中發出命令的機器人(例如,Googlebot 或 Bingbot)。 您可以為不同的用戶代理設置多個指令。 但是當您使用 * 字符時(如上一節所示),這是一個包羅萬象的意思,表示所有用戶代理。 您可以在此處查看用戶代理列表。
不允許
Disallow 規則指定要從 Web 機器人訪問中排除的文件夾、文件甚至整個目錄。 示例包括以下內容:

允許機器人爬取整個網站:
用戶代理: *
不允許:
禁止來自整個網站的所有機器人:
用戶代理: *
不允許: /
禁止“/myfolder/”和“myfolder”的所有子目錄中的所有機器人:
用戶代理: *
禁止:/myfolder/
禁止所有機器人訪問任何以“myfile.html”開頭的文件:
用戶代理: *
禁止:/myfile.html
禁止 Googlebot 訪問以“my”開頭的文件和文件夾:
用戶代理:googlebot
不允許:/我的
允許
此命令僅適用於 Googlebot,並告訴它即使其父目錄或網頁被禁止,它也可以訪問子目錄文件夾或網頁。
舉個例子:禁止 /scripts/文件夾中的所有機器人,除了 page.php:
禁止:/scripts/
允許:/scripts/page.php
爬行延遲
這告訴機器人要等待多長時間才能抓取網頁。 網站可能會使用它來保留服務器帶寬。 Googlebot 無法識別此命令,並且 Google 會要求您通過 Search Console 更改抓取速度。 盡可能避免抓取延遲或謹慎使用它,因為它會嚴重影響網站的及時有效抓取。
網站地圖
告訴搜索引擎機器人在 robots.txt 文件中的何處可以找到您的 XML 站點地圖。 例子:
用戶代理: *
禁止:/目錄名稱/
站點地圖:https://www.domain.com/sitemap.xml
要了解有關創建 XML 站點地圖的更多信息,請參閱:什麼是 XML 站點地圖以及如何製作?
通配符
有兩個字符可以幫助指導機器人如何處理特定的 URL 類型:
性格。 如前所述,它可以通過一組規則將指令應用於多個機器人。 另一個用途是匹配 URL 中的字符序列以禁止這些 URL。
例如,以下規則將禁止 Googlebot 訪問任何包含“頁面”的 URL:
用戶代理:googlebot
禁止:/*頁面
$ 字符。 $ 告訴機器人匹配 URL 末尾的任何序列。 例如,您可能希望阻止抓取網站上的所有 PDF:
用戶代理: *
禁止:/*.pdf$
請注意,您可以組合 $ 和 * 通配符,它們可以組合用於允許和禁止指令。
例如,禁止所有 asp 文件:
用戶代理: *
禁止:/*asp$
- 由於 $ 指定結尾,這不會排除帶有查詢字符串或文件夾的文件
- 由於 asp – /pretty-wasp 前面的通配符而被排除
- 由於 asp – /login.asp 前面的通配符而被排除
- 由於 $ 和包含查詢字符串 (?forgotten-password=1) – /login.asp?forgotten-password=1 的 URL 不排除
不爬行與不索引
如果您不希望 Google 將頁面編入索引,那麼除了 robots.txt 文件之外,還有其他補救措施。 正如穀歌在這裡指出的那樣:
我應該使用哪種方法來阻止爬蟲?
- robots.txt:如果對您的內容的抓取導致您的服務器出現問題,請使用它。 例如,您可能希望禁止抓取無限日曆腳本。 您不應使用 robots.txt 阻止私有內容(改用服務器端身份驗證)或處理規範化。 要確保 URL 未被編入索引,請改用 robots 元標記或 X-Robots-Tag HTTP 標頭。
- robots 元標記:如果您需要控制單個 HTML 頁面在搜索結果中的顯示方式(或確保不顯示),請使用它。
- X-Robots-Tag HTTP 標頭:如果您需要控制非 HTML 內容在搜索結果中的顯示方式(或確保不顯示),請使用它。
以下是來自 Google 的更多指導:
阻止 Google 抓取頁面可能會將該頁面從 Google 的索引中刪除。
但是,robots.txt Disallow 並不能保證頁面不會出現在結果中:Google 仍可能根據外部信息(例如傳入鏈接)確定它是相關的。 如果您希望明確阻止頁面被索引,則應使用 noindex robots 元標記或 X-Robots-Tag HTTP 標頭。 在這種情況下,您不應禁止 robots.txt 中的頁面,因為必須抓取該頁面才能看到並遵守標籤。
創建沒有錯誤的 robots.txt 的提示
在創建 robots.txt 文件時,請牢記以下提示:
- 命令區分大小寫。 例如,您需要在Disallow中使用大寫“D”。
- 在命令中的冒號後始終包含一個空格。
- 排除整個目錄時,在目錄名前後加上正斜杠,如下所示: /directory-name/
- 所有未明確排除的文件都將包含在內,供機器人抓取。
robots.txt 測試器
始終測試您的 robots.txt 文件。 更常見的情況是,您可能認為網站發布者會犯此錯誤,這可能會破壞您的 SEO 策略(例如,如果您禁止抓取重要頁面或整個網站)。
使用 Google 的 robots.txt 測試工具。 您可以在此處找到相關信息。
機器人排除協議指南
如果您需要比本文更深入的了解,請下載我們的機器人排除協議指南。 這是一個免費的 PDF,您可以保存和打印以供參考,為您提供有關如何構建 robots.txt 的大量細節。
結束的想法
robots.txt 文件看似簡單,但它允許網站發布者就他們希望機器人如何抓取網站給出複雜的指令。 正確獲取此文件至關重要,因為如果做錯了,它可能會破壞您的 SEO 程序。
因為關於如何使用 robots.txt 有很多細微差別,請務必閱讀 Google 對 robots.txt 的介紹。
您是否有索引問題或其他需要技術 SEO 專業知識的問題? 如果您想要免費諮詢和服務報價,請立即聯繫我們。