blogger設定單篇文章不被搜尋引擎索引 - 部落格

Table of Contents

網誌圖文 : http://blog.wahahajk.com/2009/06/blogger_05.html

blogger可以在"後台設定->基本->讓搜尋引擎來尋找您的網誌?"

設定整個blog是否要被搜尋引擎給索引

但是如果想讓整個blog可以被搜尋引擎找到

可是又有某些文章內的關鍵字不想被搜尋引擎看到

例如有些文章裡有人名 帳號 序號等等

守規矩的搜尋引擎都會遵循2個標準來決定是否要進行索引

一個是根目錄下的robots.txt 另一個是當前頁面的meta tag

但是blogger已經把robots.txt給寫死了 我們不能更改

(附註:blogger的robots.txt長這樣
User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /search
可以看的出來預設robots.txt禁止索引search目錄底下的文章 其他都沒禁止)



既然robots.txt不能動 另外一個方法就是用meta tag去宣告

根據:

http://www.google.com.tw/support/webmasters/bin/answer.py?hl=b5&answer=93710
http://www.robotstxt.org/meta.html

如果我們不想被檢索 可以在網頁中加入<meta name="robots" content="noindex"/>
可是如果blogger不允許我們在文章中加入meta
如果在文章中加入這個meta 會跳出這個錯誤訊息:
您的 HTML 不被接受: Tag is not allowed: <meta name="robots" content="noindex">

所以我們要從範本裡下手:

展開小裝置範本 尋找範本程式碼中的下面這個區段

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='post_body'>
<data:post.body/>
</div>
</b:if>

然後把下列程式碼插進去 像下面這樣

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='post_body'>
<data:post.body/>
</div>
<!--start檢查是否指定為noindex-->
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name == &quot;noindex&quot;'>
<meta name="robots" content="noindex"/>
<img src="http://jkfiledownload.googlecode.com/files/noindex.jpg" />
</b:if>
</b:loop>
</b:if>
<!--end檢查是否指定為noindex-->
</b:if>

這樣以後單篇文章 只要有加"noindex"這個標籤的
就會自動加上<meta name="robots" content="noindex"/>
並在文章最下面出現"此頁面已宣告禁止搜尋引擎索引收錄"這個圖示以供識別

範例文章:
[測試]我這個頁面不想被索引 http://blog.wahahajk.com/2009/06/blog-post.html


當然 這個方法也有要注意的地方:

第一 只防君子不防小人 只能阻檔像google這種有遵守robots.txt和meta協議的搜尋引擎 但是像百度這種流氓搜尋引擎就不能保證會遵守了
另外blogger預設的網誌內搜尋也還是找的到標為noindex的文章

第二 已經被收錄的文章 再補上這個標籤後要等下次搜尋引擎再爬到這篇文章才會從搜尋
引擎的資料庫裡移除這頁面

第三 如果這文章出現在你blog首頁 那還是會被搜尋到前幾個字(首頁有每篇文章的預覽) 解決方法就是把blog首頁也設成瀏覽器不能索引
不然就是把不想被索引的文章的發佈時間調古早一點
這樣就不會在首頁出現被搜尋引擎看到

--

宅之力
http://blog.wahahajk.com

--

All Comments