什麼是 SEO 中的 Robots.txt:如何創建和優化它

已發表: 2022-04-22

今天的話題與流量變現沒有直接關係。 但是 robots.txt 會影響您網站的 SEO,並最終影響它收到的流量。 許多網絡管理員由於拙劣的 robots.txt 條目而破壞了他們網站的排名。 本指南將幫助您避免所有這些陷阱。 一定要讀到最後!

內容
  • 什麼是 robots.txt 文件?
  • robots.txt 文件的外觀如何?
  • 如何找到您的 robots.txt 文件
  • Robots.txt 文件如何工作?
  • Robots.txt 語法
  • 支持的指令
  • 用戶代理*
  • 允許
  • 不允許
  • 網站地圖
  • 不支持的指令
  • 爬行延遲
  • 無索引
  • 不關注
  • 您需要 robots.txt 文件嗎?
  • 創建 robots.txt 文件
  • Robots.txt 文件:SEO 最佳實踐
  • 為每個指令使用一個新行
  • 使用通配符來簡化指令
  • 使用美元符號“$”指定 URL 的結尾
  • 每個用戶代理只使用一次
  • 使用特定說明來避免意外錯誤
  • 在 robots.txt 文件中輸入帶有哈希的註釋
  • 為每個子域使用不同的 robots.txt 文件
  • 不要屏蔽好的內容
  • 不要過度使用抓取延遲
  • 注意區分大小寫
  • 其他最佳實踐:
  • 使用 robots.txt 防止內容索引
  • 使用 robots.txt 屏蔽私密內容
  • 使用 robots.txt 隱藏惡意重複內容
  • 所有機器人的所有訪問權限
  • 所有機器人都無法訪問
  • 阻止所有機器人的一個子目錄
  • 阻止所有機器人的一個子目錄(允許一個文件)
  • 為所有機器人阻止一個文件
  • 為所有機器人阻止一種文件類型 (PDF)
  • 僅阻止 Googlebot 的所有參數化網址
  • 如何測試您的 robots.txt 文件是否有錯誤
  • 提交的 URL 被 robots.txt 阻止
  • 被 robots.txt 屏蔽
  • 已編入索引,但已被 robots.txt 阻止
  • Robots.txt vs meta robots vs x-robots
  • 進一步閱讀
  • 包起來

什麼是 robots.txt 文件?

robots.txt 或機器人排除協議是一組網絡標準,用於控制搜索引擎機器人如何抓取每個網頁,直至該頁面上的架構標記。 它是一個標準的文本文件,甚至可以阻止網絡爬蟲訪問您的整個網站或部分網站。

在調整 SEO 和解決技術問題的同時,您可以開始從廣告中獲得被動收入。 您網站上的一行代碼會返回定期付款!

從廣告中獲利
到目錄↑

robots.txt 文件的外觀如何?

語法很簡單:你通過指定它們的用戶代理和指令來給機器人規則。 該文件具有以下基本格式:

站點地圖:[站點地圖的 URL 位置]

用戶代理:[機器人標識符]

[指令 1]

[指令 2]

[指令……]

用戶代理:[另一個機器人標識符]

[指令 1]

[指令 2]

[指令……]

如何找到您的 robots.txt 文件

如果您的網站已經有一個 robots.txt 文件,您可以通過在瀏覽器中訪問以下 URL: https ://yourdomainname.com/robots.txt 找到它。 例如,這是我們的文件

機器人 txt 文件
到目錄↑

Robots.txt 文件如何工作?

robots.txt 文件是一個純文本文件,不包含任何 HTML 標記代碼(因此擴展名為 .txt)。 該文件與網站上的所有其他文件一樣,存儲在網絡服務器上。 用戶不太可能訪問此頁面,因為它沒有鏈接到您的任何頁面,但大多數網絡爬蟲機器人會在爬取整個網站之前搜索它。

robots.txt 文件可以為機器人提供指令,但不能強制執行這些指令。 一個好的機器人,例如網絡爬蟲或新聞提要機器人,會在訪問任何域頁面之前檢查文件並按照說明進行操作。 但惡意機器人會忽略或處理文件以查找被禁止的網頁。

在 robots.txt 文件包含衝突命令的情況下,機器人將使用最具體的指令集。

到目錄↑

Robots.txt 語法

robots.txt 文件由多個“指令”部分組成,每個部分都以用戶代理開頭。 用戶代理指定與代碼通信的爬網機器人。 您可以一次處理所有搜索引擎,也可以管理單個搜索引擎。

每當機器人爬取網站時,它都會作用於正在調用它的網站部分。

用戶代理: *

不允許: /

用戶代理:Googlebot

不允許:

用戶代理:Bingbot

禁止:/not-for-bing/

支持的指令

指令是您希望您聲明的用戶代理遵循的準則。 Google 目前支持以下指令。

用戶代理*

當程序連接到 Web 服務器(機器人或常規 Web 瀏覽器)時,它會發送一個名為“user-agent”的 HTTP 標頭,其中包含有關其身份的基本信息。 每個搜索引擎都有一個用戶代理。 Google 的機器人被稱為 Googlebot,Yahoo 的稱為 Slurp,Bing 的稱為 BingBot。 用戶代理啟動一系列指令,這些指令可以應用於特定的用戶代理或所有用戶代理。

允許

allow 指令告訴搜索引擎抓取頁面或子目錄,甚至是受限目錄。 例如,如果您希望搜索引擎無法訪問除一篇之外的所有博客文章,您的 robots.txt 文件可能如下所示:

用戶代理: *

禁止:/博客

允許:/blog/allowed-post

但是,搜索引擎可以訪問 /blog/allowed-post 但他們無法訪問:

/博客/另一個帖子

/博客/又一個帖子

/blog/download-me.pd

不允許

disallow 指令(添加到網站的 robots.txt 文件中)告訴搜索引擎不要抓取特定頁面。 在大多數情況下,這也會阻止頁面出現在搜索結果中。

您可以使用此指令指示搜索引擎不要抓取您對公眾隱藏的特定文件夾中的文件和頁面。 例如,您仍在處理但錯誤發布的內容。 如果您想阻止所有搜索引擎訪問您的博客,您的 robots.txt 文件可能如下所示:

用戶代理: *

禁止:/博客

這意味著 /blog 目錄的所有子目錄也不會被抓取。 這也將阻止 Google 訪問包含 /blog 的 URL。

到目錄↑

網站地圖

站點地圖是您希望搜索引擎抓取和索引的頁面列表。 如果您使用站點地圖指令,搜索引擎將知道您的 XML 站點地圖的位置。 最好的選擇是將它們提交給搜索引擎的網站管理員工具,因為每個工具都可以為訪問者提供有關您網站的有價值的信息。

需要注意的是,為每個用戶代理重複站點地圖指令是不必要的,它不適用於一個搜索代理。 在 robots.txt 文件的開頭或結尾添加站點地圖指令。

文件中的站點地圖指令示例:

站點地圖:https://www.domain.com/sitemap.xml

用戶代理:Googlebot

禁止:/blog/

允許:/blog/post-title/

用戶代理:Bingbot

禁止:/服務/

到目錄↑

不支持的指令

以下是Google 不再支持的指令——其中一些在技術上從未得到認可。

爬行延遲

雅虎、必應和 Yandex 快速響應網站的索引並響應爬蟲延遲指令,從而使它們在一段時間內處於檢查狀態。

將此行應用於您的塊:

用戶代理:Bingbot

爬行延遲:10

這意味著搜索引擎可以等待十秒再爬取網站,也可以等待十秒再爬取後重新訪問網站,這是一樣的,但根據使用的用戶代理略有不同。

無索引

noindex 元標記是防止搜索引擎索引您的一個頁面的好方法。 該標籤允許機器人訪問網頁,但它也通知機器人不要索引它們。

  • 帶有 noindex 標記的 HTTP 響應標頭。 您可以通過兩種方式實現此標記:帶有 X-Robots-Tag 的 HTTP 響應標頭或放置在 <head> 部分中的 <meta> 標記。 這就是您的 <meta> 標記的外觀:

<元名稱=“機器人”內容=“noindex”>

  • 404 & 410 HTTP 狀態碼。 404 和 410 狀態代碼表示頁面不再可用。 在抓取和處理 404/410 頁面後,它們會自動將其從 Google 的索引中刪除。 為了降低 404 和 410 錯誤頁面的風險,請定期抓取您的網站,並在必要時使用 301 重定向將流量引導到現有頁面。
到目錄↑

不關注

Nofollow 指示搜索引擎不要跟踪特定路徑下的頁面和文件上的鏈接。 自 2020 年 3 月 1 日起,Google 不再將 nofollow 屬性視為指令。 相反,它們將是提示,很像規範標籤。 如果您想要頁面上所有鏈接的“nofollow”屬性,請使用機器人的元標記、x-robots 標頭或rel=“nofollow”鏈接屬性。

以前,您可以使用以下指令來阻止 Google 跟踪您博客上的所有鏈接:

用戶代理:Googlebot

不關注:/博客/

您需要 robots.txt 文件嗎?

許多不太複雜的網站不需要一個。 雖然 Google 通常不會將被 robots.txt 阻止的網頁編入索引,但無法保證這些網頁不會出現在搜索結果中。 擁有此文件可以讓您對搜索引擎上的網站內容有更多的控制和安全性。

機器人文件還可以幫助您完成以下任務:

  • 防止抓取重複的內容。
  • 維護不同網站部分的隱私。
  • 限制內部搜索結果抓取。
  • 防止服務器過載。
  • 防止“抓取預算”浪費。
  • 將圖片、視頻和資源文件排除在 Google 搜索結果之外。

這些措施最終會影響您的 SEO 策略。 例如,重複的內容會使搜索引擎感到困惑,並迫使他們選擇兩個頁面中的哪一個排名第一。 無論內容是誰創建的,Google 都可能不會選擇原始頁面作為熱門搜索結果。

如果 Google 檢測到旨在欺騙用戶或操縱排名的重複內容,他們會調整您網站的索引和排名。 因此,您網站的排名可能會受到影響或完全從 Google 的索引中刪除,從搜索結果中消失。

維護不同網站部分的隱私還可以提高您的網站安全性並保護其免受黑客攻擊。 從長遠來看,這些措施將使您的網站更安全、更值得信賴和更有利可圖。

您是想要從流量中獲利的網站所有者嗎? 使用 Adsterra,您將從任何網站獲得被動收入!

加入並賺取
到目錄↑

創建 robots.txt 文件

您需要一個文本編輯器,例如記事本。

  1. 創建一個新工作表,將空白頁另存為“robots.txt”,然後開始在空白 .txt 文檔中輸入指令。
  2. 登錄到您的 cPanel,導航到站點的根目錄,查找public_html文件夾。
  3. 將您的文件拖到此文件夾中,然後仔細檢查文件的權限是否設置正確。

您可以作為所有者寫入、讀取和編輯文件,但不允許第三方。 文件中應出現“0644”權限代碼。 如果沒有,請右鍵單擊該文件並選擇“文件權限”。

Robots.txt 文件:SEO 最佳實踐

為每個指令使用一個新行

您需要在單獨的行上聲明每個指令。 否則,搜索引擎會感到困惑。

用戶代理: *

禁止:/目錄/

禁止:/另一個目錄/

使用通配符來簡化指令

您可以對所有用戶代理使用通配符 (*),並在聲明指令時匹配 URL 模式。 通配符適用於具有統一模式的 URL。 例如,您可能希望阻止抓取所有 URL 中帶有問號 (?) 的過濾器頁面。

用戶代理: *

不允許: /*?

使用美元符號“$”指定 URL 的結尾

搜索引擎無法訪問以 .pdf 等擴展名結尾的 URL。 這意味著他們將無法訪問 /file.pdf,但他們將能夠訪問不以“.pdf”結尾的 /file.pdf?id=68937586。 例如,如果您想阻止搜索引擎訪問您網站上的所有 PDF 文件,您的 robots.txt 文件可能如下所示:

用戶代理: *

禁止:/*.pdf$

每個用戶代理只使用一次

在 Google 中,您是否多次使用同一個用戶代理並不重要。 它將簡單地將來自各種聲明的所有規則編譯成一個指令並遵循它。 然而,每個用戶代理只聲明一次是有意義的,因為它不那麼令人困惑。

保持指令簡潔明了可以降低出現嚴重錯誤的風險。 例如,如果您的 robots.txt 文件包含以下用戶代理和指令。

用戶代理:Googlebot

禁止:/a/

用戶代理:Googlebot

禁止:/b/

使用特定說明來避免意外錯誤

設置指令時,未能提供具體說明可能會產生可能損害您的 SEO 的錯誤。 假設您有一個多語言站點,並且正在為 /de/ 子目錄開發德語版本。

您不希望搜索引擎能夠訪問它,因為它還沒有準備好。 以下 robots.txt 文件將阻止搜索引擎對該子文件夾及其內容編制索引:

用戶代理: *

禁止:/de

但是,它將限制搜索引擎抓取以 /de 開頭的任何頁面或文件。 在這種情況下,添加尾部斜杠是簡單的解決方案。

用戶代理: *

禁止:/de/

到目錄↑

在 robots.txt 文件中輸入帶有哈希的註釋

註釋可以幫助開發人員,甚至可能幫助您理解您的 robots.txt 文件。 以井號 (#) 開始該行以包含註釋。 爬蟲會忽略以散列開頭的行。

# 這指示 Bing 機器人不要抓取我們的網站。

用戶代理:Bingbot

不允許: /

為每個子域使用不同的 robots.txt 文件

Robots.txt 僅影響對其主機域的抓取。 您需要另一個文件來限制對不同子域的抓取。 例如,如果您在 example.com 上託管您的主網站,在 blog.example.com 上託管您的博客,您將需要兩個 robots.txt 文件。 將一個放在主域的根目錄中,而另一個文件應該放在博客的根目錄中。

不要屏蔽好的內容

不要使用 robots.txt 文件或 noindex 標籤來阻止您想要公開的任何優質內容,以避免對 SEO 結果產生負面影響。 徹底檢查頁面上的 noindex 標籤和禁止規則。

不要過度使用抓取延遲

我們已經解釋了抓取延遲,但您不應該經常使用它,因為它會限制機器人抓取所有頁面。 它可能適用於某些網站,但如果您有一個大型網站,您可能會損害您的排名和流量。

注意區分大小寫

Robots.txt 文件區分大小寫,因此您需要確保以正確的格式創建 robots 文件。 機器人文件應命名為“robots.txt”且全部小寫。 否則,它將無法正常工作。

其他最佳實踐:

  • 確保您沒有阻止抓取您網站的內容或部分。
  • 不要使用 robots.txt 將敏感數據(私人用戶信息)排除在 SERP 結果之外。 如果其他頁面直接鏈接到私有頁面,請使用不同的方法(例如數據加密或noindex元指令)來限制訪問。
  • 一些搜索引擎有不止一個用戶代理。 例如,谷歌使用 Googlebot 進行自然搜索,使用 Googlebot-Image 進行圖像搜索。 沒有必要為每個搜索引擎的多個爬蟲指定指令,因為來自同一搜索引擎的大多數用戶代理都遵循相同的規則。
  • 搜索引擎會緩存 robots.txt 內容,但會每天更新。 如果您更改文件並希望更快地更新它,您可以將文件 URL 提交給 Google。
到目錄↑

使用 robots.txt 防止內容索引

禁用頁面是防止機器人直接抓取它的最有效方法。 但是,它在以下情況下不起作用:

  • 如果另一個來源有指向該頁面的鏈接,機器人仍然會抓取並索引它。
  • 非法機器人將繼續抓取內容並將其編入索引。

使用 robots.txt 屏蔽私密內容

即使您阻止機器人,某些私人內容(例如 PDF 或感謝頁面)仍然可以索引。 將您的所有專屬頁面放在登錄後面是加強禁止指令的最佳方法之一。 您的內容將保持可用,但您的訪問者將採取額外的步驟來訪問它。

使用 robots.txt 隱藏惡意重複內容

重複內容與相同語言的其他內容相同或非常相似。 谷歌試圖索引和顯示具有獨特內容的頁面。 例如,如果您的網站有每篇文章的“常規”和“打印”版本,並且 noindex 標記都不會阻止,那麼他們會列出其中的一個。

示例 robots.txt 文件

以下是一些示例 robots.txt 文件。 這些主要用於創意,但如果其中一個滿足您的需求,請將其複制並粘貼到文本文檔中,將其保存為“robots.txt”,然後將其上傳到正確的目錄。

所有機器人的所有訪問權限

有幾種方法可以告訴搜索引擎訪問所有文件,包括擁有一個空的 robots.txt 文件或沒有文件。

用戶代理: *

不允許:

所有機器人都無法訪問

以下 robots.txt 文件指示所有搜索引擎避免訪問整個站點:

用戶代理: *

不允許: /

阻止所有機器人的一個子目錄

用戶代理: *

禁止:/文件夾/

阻止所有機器人的一個子目錄(允許一個文件)

用戶代理: *

禁止:/文件夾/

允許:/folder/page.html

為所有機器人阻止一個文件

用戶代理: *

禁止:/this-is-a-file.pdf

為所有機器人阻止一種文件類型 (PDF)

用戶代理: *

禁止:/*.pdf$

僅阻止 Googlebot 的所有參數化網址

用戶代理:Googlebot

不允許: /*?

如何測試您的 robots.txt 文件是否有錯誤

Robots.txt 中的錯誤可能很嚴重,因此監控它們很重要。 定期檢查 Search Console 中的“覆蓋範圍”報告,了解與 robots.txt 相關的問題。 下面列出了您可能遇到的一些錯誤、它們的含義以及如何修復它們。

提交的 URL 被 robots.txt 阻止

阻止網址

這表明 robots.txt 已阻止您站點地圖中的至少一個網址。 如果您的站點地圖正確且不包含規範化、無索引或重定向頁面,則 robots.txt 不應阻止您發送的任何頁面。 如果是,請確定受影響的網頁並從您的 robots.txt 文件中刪除該塊。

您可以使用 Google 的 robots.txt 測試器來識別屏蔽指令。 編輯 robots.txt 文件時要小心,因為錯誤可能會影響其他頁面或文件。

機器人-txt-tester
到目錄↑

被 robots.txt 屏蔽

此錯誤表明 robots.txt 已阻止 Google 無法索引的內容。 如果此內容至關重要且應編入索引,請刪除 robots.txt 中的抓取塊。 (另外,檢查內容是否沒有索引。)

如果您想從 Google 的索引中排除內容,請使用機器人的元標記或 x-robots-header 並刪除抓取塊。 這是將內容排除在 Google 索引之外的唯一方法。

已編入索引,但已被 robots.txt 阻止

這意味著谷歌仍然索引了一些被 robots.txt 屏蔽的內容。 Robots.txt 不是阻止您的內容顯示在 Google 搜索結果中的解決方案。

要防止索引,請刪除爬網塊並將其替換為元機器人標記或 x-robots-tag HTTP 標頭。 如果您不小心屏蔽了此內容並希望 Google 將其編入索引,請刪除 robots.txt 中的抓取屏蔽。 它可以幫助提高內容在 Google 搜索中的可見性。

Robots.txt vs meta robots vs x-robots

這三個機器人命令有什麼區別? Robots.txt 是一個簡單的文本文件,而 meta 和 x-robots 是元指令。 除了它們的基本作用之外,這三者還具有不同的功能。 Robots.txt 指定整個網站或目錄的爬取行為,而 meta 和 x-robots 定義單個頁面(或頁面元素)的索引行為。

進一步閱讀

有用的資源

  • 維基百科:機器人排除協議
  • 谷歌關於 Robots.txt 的文檔
  • Robots.txt 上的 Bing(和 Yahoo)文檔
  • 指令解釋
  • Robots.txt 上的 Yandex 文檔
到目錄↑

包起來

我們希望您已經充分理解了 robots.txt 文件的重要性以及它對您的整體 SEO 實踐和網站盈利能力的貢獻。 如果您仍在努力從您的網站獲得收入,則無需編碼即可開始通過 Adsterra 廣告獲利。 在您的 HTML、WordPress 或 Blogger 網站上添加廣告代碼,立即開始盈利!

通過流量獲利