2012年5月21日 星期一

WordPress SEO - robots.txt 詳細說明


這個網址是關於 robots.txt的說明和撰寫方法 A Standard for Robot Exclusion ,簡單的 Yahoo上面的說明也可以看這裡 Yahoo Help

robots.txt 檔案只有在位於最高層目錄並套用至網域中的所有目錄時才是有效的。 套用到您網站 (如果有的話) 的 robots.txt 檔案必須位於根目錄下,例如 : http://www.yourdomain.com/robots.txt,如果你沒有根目錄的存取權限,那你放到非根目錄下的話這個檔案不會發生任何的效果

那什麼是 robots.txt呢?? 其實它只是一個放在網站根目錄內,並且記錄了一些些文字的文本文件罷了。但它是如何在網站的優化中起到作用的呢? 簡單的說就是搜尋引擎會根據你的 robots.txt的內容去 [ 按表操作 ]。哪些內容應該要被搜尋引擎所搜索到,哪些內容你覺得不應該被搜索,你可以設定好你的 robots.txt檔案全部都由 robots.txt來做指揮。

那我們應該如何設置 robots.txt的內容呢? 以下說明請您參考

所有的記錄檔的語法都是以 <Field> “:” <value> 來做為一行, Field表示欄位的名稱,而冒號後面接著對這欄位的值

robots.txt檔名必須是小寫的,並且注意必須是文字檔而非 html格式,並且如果你是放在 Linux/Unix的主機上的,檔案的格式必須是遵循其格式撰寫,你可以使用一些文字編譯器編寫,要注意格式就對了,主要的語法大概如下

User-Agent: 後面的值表示是針對哪一個 bot的抓取行為,例如 :

User-Agent: *
表示針對所有的 Robot抓取行為

User-Agent: Slurp
表示針對Yahoo Robot的抓取行為,Slurp是Yahoo! crawler的名稱

Disallow: 表示在這個後面所寫的值的網址字串所得到的所有網址都不接受 bot抓取,例如 :

Disallow: /
表示根目錄下所有的網頁和目錄都不接受抓取

Disallow: /news
表示根目錄下 news延伸出來的所有目錄和網頁都不接受抓取,注意這個值的意義包括該字串所接得起來的所有可讀取的網頁和目錄,所以 Disallow: /news 代表底下的連結都是不接受抓取的 !!
http://yourdomain.com/news/index
http://yourdomain.com/newshistory/
http://yourname.com/newstoday.html
http://yourname.com/news.php

也就是說,Disallow後面開始接的就是你的網域名稱最後的那條反斜線為開始就對了,其他的撰寫規格需要注意的,大概只有每一個描述請獨立一行,其他沒甚麼注意的了

接下來舉幾個比較讓人明瞭的例子 :

User-Agent: Googlebot
Disallow: /mysite/test/
Disallow: /mysite/cgi-bin/post.cgi?action=reply
Disallow: /a

在這個例子中底下的內容都會禁止被 Google的 bot抓取 :
http://adomain.com/mysite/test/index.html
http://adomain.com/mysite/cgi-bin/post.cgi?action=reply&id=1
http://adomain.com/mysite/cgi-bin/post.cgi?action=replytome
http://adomain.com/abc.html

而底下的內容依然會被 Google的 bot抓取 :
http://adomain.com/mysite/test.html
http://adomain.com/mysite/cgi-bin/post.cgi?action=edit
http://adomain.com/mysite/cgi-bin/post.cgi
http://adomain.com/bbc.html

最後你可以用 allow做一個 disallow的反向處理例如
User-Agent: Googlebot
Disallow: /cgi-bin/
Allow: /cgi-bin/Ultimate.cgi
Allow: /cgi-bin/forumdisplay.cgi

在 http://adomain.com/cgi-bin/ 下的所有目錄和檔案都會禁止被 Google的 bot抓取,除了 http://adomain.com/cgi-bin/Ultimate.cgi 和 http://adomain.com/cgi-bin/forumdisplay.cgi 這兩個檔案之外

再例如 :

User-Agent: *
Disallow: /cgi-bin/

User-Agent: FreeFind
Disallow:

所有的搜尋引擎 bot都不可以抓取 http://adomain.com/cgi-bin/ 下的所有檔案和目錄,但是名叫 FreeFind的 bot例外,FreeFind robot可以抓取所有的檔案和目錄

請注意幾點差異

Disallow: /
表示全部禁止

Disallow:
表示沒有禁止

到這裡要多注意的是

1. 建議兩段的 user-agent: 之間請空一行

2. 後面寫的 URL 是有分大小寫的

最後介紹 [ * ]  代表所謂的萬用字元表示,[ $ ] 代表所謂的結尾符號 稱為媒合符號, Googlebot 可解譯一些模式媒合。這是標準模式的延伸,但注意並不是全部的 bot (漫遊器) 都能適用

若要攔截所包含問號 (?) 之 URL 的存取,您可以使用下列項目:
User-agent:* Disallow:/*?*

若要攔截以 .asp 結尾的 URL,您可以使用下列項目:
User-Agent:Googlebot Disallow:/*.asp$

關於這個 [ * ] 和 [ $ ]的問題,Google上有不錯的解說,你可以參考這裡  Google 如何檢索我的網站

OK,到這裡為止,如果你的 wordpress網站是放在根目錄下面的,那麼底下是我放在 cocolike.com根目錄下的建議適合 WordPress使用的設定 :

User-Agent: *
# disallow all files in these directories
Disallow: /dh_
Disallow: /cgi-bin/
Disallow: /files/
Disallow: /forum/
Disallow: /pictures/
Disallow: /usersguide/
Disallow: /utilities/
Disallow: /blog/wp-admin/
Disallow: /blog/wp-includes/
Disallow: /blog/ela
Disallow: /blog/contact
Disallow: /feed/
Disallow: /trackback/
Disallow: */feed$
Disallow: */trackback$
Disallow: *.htmlemail/
Disallow: *.htmlprint/

User-Agent: Googlebot
# disallow all files ending with these extensions
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.wmv$
Disallow: /*.cgi$
Disallow: /*.xhtml$

# disallow all files with ? in url
Disallow: /*?*

# disable duggmirror
User-Agent: duggmirror
Disallow: /
# allow google image bot to search all images
User-Agent: Googlebot-Image
Disallow:
Allow: /*

# allow adsense bot on entire site
User-Agent: Mediapartners-Google*
Disallow:
Allow: /*

你可以把它複製,然後另存為 robots.txt並且放在你網域的根目錄下就行了。請注意我的目錄結構,我的網域名稱是 cocolike.com,我的 wordpress是放到 blog的目錄下的,灰字的是我的一些不想被抓取的子目錄,因此你請自行修改目錄的結構,若沒有安裝 wp-email和 wp-print這兩個外掛,底下兩行也不須要

Disallow: *.htmlemail/
Disallow: *.htmlprint/

# disallow all files with ? in url
Disallow: /*?*

而上面的那句是讓搜尋引擎不去搜索所有帶有“?”的網頁。如果你的 WordPress的連結是預設有問號的那一種,請把這一行刪掉。

讓搜尋引擎在搜索我們的網站時會有更好的效率,避免了浪費時間去搜索一些無意義的目錄,包括實體的目錄,例如 wp-admin,包括你不想讓 bot讀的虛擬的目錄 contact,或類似 feed,trackback等等,甚至一些外掛造成的目錄,我們也能透過 robots.txt更好的讓自己的網站被收錄。所以,如果你的 WordPress還沒有 robots.txt,趕快設置一個吧!

最後我講一下我的感想,要了解甚麼是 Google sitemap和 robots.txt我想對一些人有一定的難度,一開始我想就照著做就好了,也不要態探究原理,等有時間有力氣再多做探討其實就夠了,但是如果你的 blog並不是自己擁有的,根目錄也不是你可以存取的話,那這個部分可能就沒有辦法實作

你可以照自己研究的方法來操作,我也是邊研究邊試驗,我是習慣自己都操作一遍並研究沒問題後才會把心得PO出來,我的方式是邊改一些東西,邊到 Google 網站管理員工具 的介面去看結果,看有甚麼心得 !!

如果我有更多的心得的時候會再修改這些文章的,Thanks !!

沒有留言: