Saturday, April 20, 2024

WordPress網站的Robots.txt設置

為了避免搜索引擎對博客內容進行重複索引,可以用robots.txt限制搜索引擎機器人對某些頁面的抓取。例如分類頁面(category)、標籤頁面(tag)之類的是隨最新文章變化的,對它們做索引就沒有什麼意義。

可以在web的根目錄下放置一個如下內容的robot.txt文件(文件名全部為小寫):

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /*/comment-page-*
Disallow: /feed
Disallow: /*/feed
Disallow: /comments/feed
Disallow: /*?replytocom=*
Disallow: /category/*/page/
Disallow: /tag/*/page/
Disallow: /*/trackback

Disallow: /?s=*
Disallow: /*/?s=*
Disallow: /attachment/

Disallow: /author/
Disallow: /tag
Disallow: /*/tag
Disallow: /category/
Disallow: /page/

User-agent: Mediapartners-Google
Allow: /

其中的“Disallow:/*?*”那句是讓搜索引擎不去索引所有帶“?”的網址。如果WordPress沒有採用永久固定鏈接而用默認的“ /?p=xx”的方式的話就要刪掉這句。

請注意末尾的兩句,其含義是允許Google Adsense的機器人去抓取所有頁面,這樣才可以在所有頁面上都放adsense廣告。否則在禁止了索引的頁面上只會顯示公益廣告而無法獲得 adsense收入。Mediapartners-Google後面不能加*,利用google的網站管理員工具中的“測試robots.txt”來進行測試,就會發現如果末尾加了“*”的話結果是不正確的。

Google網站站長工具:https://www.google.com/webmasters/
百度站長平台Robots工具:http://zhanzhang.baidu.com/robots/

什麼是robot.txt文件及其語法:

robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。Robots.txt文件告訴蜘蛛程序在服務器上什麼文件是可以被查看的。
當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的範圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。
robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。

語法:最簡單的 robots.txt 文件使用兩條規則:
• User-Agent: 適用下列規則的漫遊器
• Disallow: 要攔截的網頁

在該文件中可以使用#進行註解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,後面加上若干Disallow和Allow行,詳細情況如下:
  User-agent:
  該項的值用於描述搜索引擎robot的名字。在”robots.txt”文件中,如果有多條 User-agent記錄說明有多個robot會受到”robots.txt”的限制,對該文件來說,至少要有一條User-agent記錄。如果該項的值設為*,則對任何robot均有效,在”robots.txt”文件中,”User-agent:*”這樣的記錄只能有一條。如果在”robots.txt”文件中,加入”User-agent:SomeBot”和若干Disallow、Allow行,那麼名為”SomeBot”只受到”User-agent:SomeBot”後面的Disallow和Allow行的限制。
  Disallow:
  該項的值用於描述不希望被訪問的一組URL,這個值可以是一條完整的路徑,也可以是路徑的非空前綴,以Disallow項的值開頭的URL不會被robot訪問。例如”Disallow:/help”禁止robot訪問/help.html、 /helpabc.html、/help/index.html,而”Disallow:/help/”則允許robot訪問/help.html、 /helpabc.html,不能訪問/help/index.html。”Disallow:”說明允許robot訪問該網站的所有url,在” /robots.txt”文件中,至少要有一條Disallow記錄。如果”/robots.txt”不存在或者為空文件,則對於所有的搜索引擎 robot,該網站都是開放的。
  Allow:
  該項的值用於描述希望被訪問的一組URL,與Disallow項相似,這個值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項的值開頭的URL是允許robot訪問的。例如”Allow:/hibaidu”允許robot訪問 /hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一個網站的所有URL默認是Allow的,所以 Allow通常與Disallow搭配使用,實現允許訪問一部分網頁同時禁止訪問其它所有URL的功能。
  需要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。
  使用”*”和”$”:
  Baiduspider支持使用通配符”*”和”$”來模糊匹配url。
  ”$” 匹配行結束符。
  ”*” 匹配0或多個任意字符。

4 comments

  1. Disallow: /feed
    Disallow: /*/feed

    這樣就OK了

  2. 博主 您好 怎麼設置robot 讓搜索引擎不索引ree feed啊 我的rss feed 地址抓取錯誤,找不到,不利於SEO我乾脆 把它去掉。

  3. 我個人意見是不用.

  4. wordpress的wp-放進robots.txt好嗎?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.