Drupal SEO 入門

轉自:http://drupalsh.cn/node/416

Drupal 核心模塊中就包含了可選的 SEO 優化選項,此外還有一些有益的 Drupal 的第三方模塊,他們都可以幫助 Drupal 的使用者提升搜索引擎的排名。本文就將介紹一些 Drupal SEO 時必裝模塊和相應的設置,希望對您有所幫助。但是這只是 Drupal SEO 的開始…… 

  • 開啓簡潔鏈接(Clean URLs)
  • 開啓 Path 模塊 (從 Drupal 4.3 開始進入 Drupal 核心模塊)

    Path 模塊可以讓您通過添加路徑別名(path alias),來達到自定義鏈接名的效果。例如 http://www.mypetal.com/node/7 可以定義爲 http://www.mypetal.com/library/drupal-seo 。

  • 開啓 Pathauto 模塊 (http://drupal.org/project/pathauto

    Pathauto 模塊能夠爲不同類型的頁面(nodes, categories, users)自動生成路經別名(path alias),而不在需要用戶手動定義路徑別名。

  • 設置 Pathauto 模塊,在修改 node 的標題時,禁止 Pathauto 模塊二次修改路徑別名。
  • 開啓 Global Redirect 模塊(http://drupal.org/project/globalredirect

    Global Redirect 模塊在頁面擁有路徑別名的情況下,移除該頁面的原始路徑,這樣可以減少網站的重複內容頁面,有利於 SEO。

  • 開啓 Meta Tags (nodewords)模塊(http://drupal.org/project/nodewords

    Meta Tags 模塊可以讓您爲每個 node、user、view 或 panel 頁面設置多種 meta tags,例如:keywords 和 description,有利於 SEO。

  • 開啓 Page Title 模塊(http://drupal.org/project/page_title

    Page Title 模塊能讓您自定義頁面標題,有利於 SEO。

  • 使用 Drupal XML Sitemap 模塊
  • 調整 .htaccess 文件to redirect to "www" or remove the "www" subdomain.
  • 調整您網站主題的 HTML headers -- 許多主題設置不正確。
  • 調整您網站的 robots.txt 文件。在 Drupal 6 中 Drupal 默認的 robots.txt 文件還是有一些問題。
  • 檢查安裝的第三方模塊是否新增了一些重複的鏈接,如果有,使用在 robots.txt 添加規則對搜索引擎的爬蟲進行屏蔽。 

文章說明

  • 參考文章地址:
    1. Drupal SEO Tutorial Update
    2. drupal Seo 插件
  • Cityreader 對原文進行翻譯,結合了自己的理解和註釋。
  • 轉載本文請留言,請保留作者名和網頁地址:)
  • Petal SEO 爲您提供更多精彩的 Drupal 文章

Drupal SEO 常用模塊

本文羅列了 Drupal SEO 常用模塊,定期更新中……

模塊 簡介 鏈接 推薦
Pathauto 基於文章標題自動生成對搜索引擎友好的鏈接。 This is currently the recommended release for 6.x.
Google Analytics 網站統計與客戶追蹤。 This is currently the recommended release for 6.x.
Page title 允許您爲網站所有的 node 頁面設置 <title> 標籤。 This is currently the recommended release for 6.x.
Global redirect 修正開啓簡潔鏈接和 Pathauto 模塊後出現常見的鏈接問題。 This is currently the recommended release for 6.x.
Taxonomy title 允許您爲網站所有的 taxonomy 頁面設置 <title> 標籤。 This is currently the recommended release for 6.x.
Meta tags (曾用名:Nodewords) 允許您自由編輯您網站上node、分類、view等頁面上的 meta 標籤。 This is currently the recommended release for 6.x.
XML Site map 創建和 Sitemaps.org 標準相兼容的,搜索引擎可讀的動態網站地圖。 This is currently the recommended release for 6.x.
URL list 創建純文本的網站地圖,包含您網站上的所有鏈接。 This is currently the recommended release for 6.x.
Site map 創建純文本的網站地圖。 This is currently the recommended release for 6.x.
Syndication 創建一個網頁,包含所有的 RSS feed。 This is currently the recommended release for 6.x.

文章說明

  • 參考文章:Search Engine Optimization
  • Cityreader 對原文進行翻譯,結合了自己的理解和註釋。
  • 轉載本文請留言,請保留作者名和網頁地址:)
  • Petal SEO 爲您提供更多精彩的 Drupal 文章

SEO Drupal .htaccess 文件(適合multi-site)

Drupal版本: 

6.x

如果要對基於 Drupal 建立的網站進行 SEO (Search Engine Optimization——搜索引擎自然結果優化),那麼就一定要儘量避免網站內的重複頁面。因爲當搜索引擎的爬蟲抓取到大量的重複頁面時,搜索引擎就 會降低對網站頁面的打分,當然這種影響可能並不太容易被察覺。

當我們使用 Drupal 時通常會碰到這樣的問題,例如:頁面 http://www.mypetal.com/node/12 和頁面 http://mypetal.com/node/12 顯示的是相同的內容。或許您會認爲這是大驚小怪,但事實上這是兩個獨立的頁面,它們的內容重複,這一點對 SEO 不利。好在 Drupal 開發者早已爲我們考慮到了這點,只要做個略施小計就能喚醒這個功能:) 

注意:本文只針對擁有一級域名的網站,二級域名的網站不存在這個問題。

默認安裝下 Drupal .htaccess 配置

Drupal 默認的 .htaccess 爲我們提供了兩種解決方案:

  1. 把鏈接 http://mypetal.com 重定向到 http://www.mypetal.com
  2. 把鏈接 http://www.mypetal.com 重定向到 http://mypetal.com

這兩種方案都是爲了確保只有一種形式的鏈接,沒有優劣之分。

第1種方案,查找下面代碼:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

刪除上面高亮顯示的 #,並把 example com 改爲您的域名。

第2種方案,查找下面代碼:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

刪除上面高亮顯示的 #,並把 example com 改爲您的域名。 

Multi-site(多站點)下 Drupal .htaccess 配置

 第1種方案,查找下面代碼:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

在後面添加如下代碼:

  RewriteCond %{HTTP_HOST} ^([a-z0-9-]+\.[a-z]{2,6})$ [NC]
  RewriteRule ^ http://www.%1%{REQUEST_URI} [L,R=301]

第2種方案,查找下面代碼:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

在後面添加如下代碼:

  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

參考內容

修改 Drupal 的 robots.txt 文件

Drupal版本: 

6.x

在 SEO (Search Engine Optimization——搜索引擎優化) 時關鍵的一點是爲搜索引擎的爬蟲提供一個好的、乾淨的鏈接地址,這就意味着在一個網站內不能有內容重複的兩 個或以上不同鏈接地址的頁面。 然後這個問題在對 Drupal SEO 時尤爲突出。而且如果使用的第三方模塊中存在一些不合理的鏈接,那麼這個問題就會更加嚴重了。

這時我們就要用到 robots.txt 這個文件,它的作用是限制爬蟲機器人抓取文件範圍。從 Drupal 5 時代起,Drupal 安裝包裏就包含了這個文件了,它的位置在安裝包的根目錄下。但是它還不夠完美,需要一些改善。

修改Drupal 的默認 robots.txt 文件

抓取延時

 第一步要做的就是註釋掉 Crawl-delay 這行。除非您的網站規模很大,或者備受爬行機器人的困擾,如果不是這樣,那麼不需要這行。

Crawl-delay: 10

在 Robots.txt 中,下面提及到規則都可以幫助減少爬蟲收取重複內容的數量。

目錄

 下面這部分是在默認 robots.txt 文件中 Drupal 設置的禁止爬蟲訪問的實際存在的目錄。 

# Directories
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Disallow: /updates/
Disallow: /profiles/
這部分可以保持不變。只要記住由於默認設置中 Drupal 禁止爬蟲抓取 /sites//modules/ 以及 /themes/ 這三個目錄,所以爬蟲抓取不到您網站的 logo 圖片。但是如果您自定義了 logo 圖片,記得把它放在其他文件夾內 (如:/files/ ),然後用一個關鍵字作爲名字,重明名 logo 圖片。

文件

下面這部分是 Drupal 的根目錄下的默認文件。我重來沒有看到這些文嘉被加入索引,但是如果你喜歡可以保留他們不變。但是不要刪除 CHANGELOG.txt 這個文件,因爲就算過了一段時間,它還是能提醒您 Drupal 的版本號。

# FilesDisallow: /xmlrpc.php
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlcpc.php

開啓 Clean URLs 功能的路徑

這是默認 robots.txt 文件中最重要的一部分,因爲這裏有些問題: 

# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact/
Disallow: /logout/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/

在 Drupal 中,鏈接的尾部不包含斜線,所以您可以參照下面高亮顯示的位置修改 Robots.txt 中的相應規則。 

# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact
Disallow: /logout
Disallow: /node/add
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login

舉例來說,每個 node 頁面上的“Login or register to post comments”(登錄或註冊後發表評論)鏈接地址形式如下:http://mypetal.com/user/login?destination=comment/reply/806%2523comment-formhttp://mypetal.com/user/register?destination=comment/reply/806%2523comment-form。在默認的 robots.txt 中的規則是不會屏蔽搜索引擎的爬蟲抓取這些鏈接,但是如果您刪除上面高亮顯示部分末尾的斜線。 

沒有開啓 Clean URLs 功能的路徑

下面這部分針對與沒有開啓 Clean URLs 模塊下的規則,您可以參照上面開啓 Clean URLs 模塊的修改邏輯來修改下面這部分。

 

# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=aggregator/
Disallow: /?q=comment/reply/
Disallow: /?q=contact/
Disallow: /?q=logout/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/

如果您沒有開啓 Clean URLs 模塊,並且提交到搜索引擎並生成索引,那麼這種頁面:http://example.com/?q=node/25 就會擁有 PageRank。如果您正打算開啓 Clean URLs 模塊,那麼別忘了在 .htaccess 中設置301 redirects(重定向):把動態鏈接重定向到簡介鏈接。

其他規則

我同時推薦您在仔細閱讀並理解後添加下面的規則:

在網站中,每個模塊都可能添加額外的鏈接,這樣會增加大量的重複內容的頁面,同時在搜索引擎抓取頁面時增加服務器的負擔。在這裏爲核心模塊定製一些額外的規則。

Disallow: /node$

http://mypetal.com/node 頁面和 http://mypetal.com/ 頁面重複。

Disallow: /user$

添加上面這條規則可以阻止爬蟲抓取 http://mypetal.com/node 頁面。如果您想對搜索引擎屏蔽所有用 user 頁面,只需刪除最後的。

Disallow: /*sort=

如果安裝論壇模塊、視圖模塊(Views)或其他包含有按**排序(Sort by **)功能的模塊,就需要以上這條規則。

Disallow: /search$

添加上面這條規則可以阻止爬蟲抓取 http://mypetal.com/search 鏈接。而這個鏈接會進行一個302 redirect 重定向到 http://mypetal.com/search/node 這個頁面,而這個頁面已經被 Drupal 默認的 Robots.txt 規則屏蔽。

Disallow: [front page]  (請把 [front page] 改爲您指定的首頁)

如果您在 Home › Administer › Site configuration 頁面改變了默認首頁,這樣可以對爬蟲屏蔽這個鏈接。或者您可以選擇使用 Global Redirect 模塊,它會自動重地向到真正的首頁頁面。

文章說明

  • 原文地址:http://tips.webdesign10.com/robots-txt-and-drupal  (For Drupal 5)
  • Cityreader 對原文進行翻譯,並針對 Drupal 6 版本做了相應改動,結合了自己的理解和註釋。
  • 轉載本文請留言,請保留作者名和網頁地址:) 

Drupal 多站點(multi-site) robots.txt 配置攻略

Drupal版本: 

6.x

Drupal 憑藉其強大的擴展性備受使用者的親睞,而且 multi-site 配置更是一絕(multi-site 是指只用一套 Drupal 程序,同時結合域名的設置,就可以建立多個網站)。本文主要講述如何在 multi-site 下爲每個網站配備的獨立 robots.txt 文件。

Multi-site 下 robots.txt 的困惑

在使用 multi-site 技術建立多個網站時可能會碰到這樣的問題:一個網站希望被搜索引擎收錄,允許爬蟲抓取網頁,而同一個 Drupal 系統下的另一個網站出於某種原因不希望被搜索引擎爬蟲抓取網頁。舉例來說:網站1 mypetal.com 希望網頁被 Google 收錄,但是 網站2 car.mypetal.com 是一個案例演示網站,期中的數據不希望被收錄到 Google 中。但是當我們打開 Drupal 根目錄時就會發現只有一個 robots.txt 文件,這就意味着所有站點都是使用這個 robots.txt,如果修改就會影響到全部站點。

好在我們不是第一個碰到這個問題的人,只要善用搜索功能,不論是搜索 drupal.org 還是 google.com 相信都會找到滿意的答案。下面就是我結合自己的搜索結果整理的兩個解決方案。

方案1:使用 Drupal 的第三方模塊 RobotTxts

從 Drupal 5 時代起,對應這個問題就給出了第三方解決方案 RobotsTxt 模塊,點擊這裏進入  http://drupal.org/project/robotstxt。這個模塊使用原理就是:每個網站都可以在後臺設置 robots 內容,然後保存在數據庫系統變量的表中,當搜索引擎訪問時動態生成 robots.txt 文件內容。因爲每個網站都有獨立的系統變量數據表,所以就可以設置不同的 robots.txt 的訪問規則。

這個模塊使用起來十分方便,但美中不足是又增加了一個模塊,對於我們這些租用虛擬主機、系統資源配額捉襟見肘、對 Drupal 第三方模塊無限渴望、但又多裝幾個模塊就會白屏的人來說,勢必又是增加一筆內存開銷。所以如果像我們一樣的拮据,我還爲您準備了第二種解決方案。

方案2:設置 .htaccess 讓暴風雨來得更猛烈些吧

.htaccess 是個好東西,在這裏它同樣能幫我們解決這個問題,但前提是:

  1. 您使用的服務器(/虛擬主機)支持 .htaccess
  2. 您使用的 php 服務器(/虛擬主機)安裝了mod_rewrite 模塊,換句話說您可以正常開啓使用 Clean URLs 功能

現在就開始修改 .htaccess

重要提示:在修改 .htaccess 時,如果有任何錯誤(包括書寫和格式錯誤),都將可能引起 錯誤代碼 500 的錯誤,甚至於使網頁無法打開!所以請在修改前,備份原文件,仔細閱讀並理解下面內容,修改後請檢查網頁打開是否正常,並嘗試打開不同網站的 robots.txt 是否正常顯示,例如:http://mypetal.com/robots.txt 和 http://car.mypetal.com/robots.txt。

打開 /.htaccess 文件,查找:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

在後面添加如下規則: 

  RewriteCond %{HTTP_HOST} \.([a-z0-9-]+\.[a-z]{2,6})$ [NC]
  RewriteCond %{REQUEST_URI} !^(.*)/sites/(.*)$ [NC]
  RewriteRule ^(.*)robots.txt$ /sites/%{HTTP_HOST}/files/robots.txt [L]

注意這三行代碼針對的是二級子域名的網站,例如二級子域名網站 car.mypetal.com,當 搜索引擎爬蟲讀取該網站的 robots.txt 時會自動定位到 /sites/car.mypetal.com/files/ robots.txt 文件。而對於一級域名網站 mypetal.com,仍然讀取的是 /robots.txt 文件。這是我所希望的解決方案,但是如果您在一個 Drupal 系統上同時建立多個一級域名的網站,例如同時有 mypetal.com 和 cooos.com, 那麼請您先閱讀 SEO Drupal .htaccess 文件(適合multi-site),修改諸如: www.mypetal.com 重定向到 mypetal.com 的文章後,刪除上面3行規則中的高亮顯示的第一行規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章