せっかくDrupalでウェブサイトを構築したのなら、一人でも多くの人に見てもらいたいですよね。ご存知の方がほとんどと思いますが、SEOとはSearch Engine Optimizationの頭文字で、日本語でいうと『検索エンジン最適化』といったような意味になります。要するに検索エンジンからのトラフィックを増やすためのテクニックです。幸い、DrupalはSEOに非常に有利なCMSという定評があります。CocoaSpaceはSEOに詳しくないので、本投稿の内容に間違った情報があるかもしれません。そのような場合にはご指摘いただければ幸いです。
本投稿では、オンサイトでできる、つまり自分のDrupalサイトでできるSEO対策について書きますが、本当はオンサイトでの小手先のSEOテクニックよりも、サイトのコンテンツを充実させることのほうが遥かに重要でしょう。コンテンツが充実すればリピーターが増えますし、気に入ってくれた人が外部のサイトからリンクしてくれるかもしれません。このような外部からのリンクが増えれば、検索エンジンからの評価が高まります。結果的に効果的なSEOとなるのではないでしょうか?ですからCocoaSpaceとしましては、オンサイトのSEOには手間をかけずにできる最低限の対応をして、コンテンツの作成のほうに集中するのがいいと思っています。この記事の内容の根底には、CocoaSpaceのこのような考え方があります。
それでは前置きはそれくらいにして、CocoaSpaceで試した『最低限の手間のかからない』対応をご紹介します。
1. Clean URLsの有効化
Drupalコアの機能のClean URLsを有効化することで、 "example.com/?q=node/1"のようなURLではなく、"example.com/node/1"のような、文字どおりクリーンなURLになります。下記のdrupal.orgのInstallation GuideのClean URLsページ(Clean URLs | drupal.org)にもあるように、Googleのウェブマスター向けガイドラインには以下のような表記がありますので引用させていただきます。
動的なページ(URL に「?」が含まれているページなど)を使用する場合、検索エンジンのスパイダーによっては、静的なページと同じようにはクロールされない場合があります。パラメータを短くしたり、パラメータの数を少なくしたりすると、クローラで見つけやすくなります。
従いまして、Clean URLsを有効化することで、URLに"?q="含まれないようにしたほうが良いと考えられます。SEOへの効果は別としても、すっきりしたURLのほうが覚えやすく、見た目もいいですよね。
2. Pathモジュールの有効化
コアに付属するPathモジュールを有効化することで、任意のページをURLを好みのURLに変更することができるようになります。例えば"example.com/node/1"というURLを"example.com/customising-drupal"のように意味のあるエイリアス(=alias 別名)にすることができます。また、"example.com/Drupalのカスタマイズ"のように日本語のURLにすることもできます。このように変更することで、検索エンジン経由でそのページを見つけてもらいやすくなると考えられます。
3. .htaccessファイルを編集し、URLのwwwあり、wwwなしを設定
http://www.example.com にアクセス -> http://example.com に301リダイレクト
または
http://example.com にアクセス -> http://www.example.com に301リダイレクト
のどちらか設定をして、サイトのURLをwwwありとwwwなしのどちらかに統一すると良いといわれています。幸いDrupalのルート・ディレクトリにある.htaccessファイルには以下の記述があります(Drupal 6.16では87~97行目あたり)ので、コメントを外し、example.comのところをご自分のドメインに置き換えるだけで301リダイレクトの設定ができます。
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
4. Pathautoのインストール
コンテンツやタクソノミーの追加のたびにPathエイリアスを手動で設定しなくても、一定の規則通りにエイリアスを自動作成できるようになります。ノードやタクソノミーのタイトルをエイリアスにするのが一般的な使い方のようです。しかし、日本語のノードタイトルではURLも日本語になります。ノードタイトルをURLに含めたほうがSEO的に良いような気がしますが、個人的にはURLに日本語が含まれるのは気持ちが悪いので、ノードタイトルをURLに含めないように設定しています。
5. Page Titleのインストール
HTMLの<title>タグの内容を任意に変更することができるようになります。ルールを設定して自動生成できるようになるほか、コンテンツ作成画面からコンテンツごとにオーバーライドすることもできます。<title>タグ内に適切なキーワードを含めることで、SEOに効果があるとされています。念のため申し上げますが、このモジュールはページタイトルとはコンテンツ名やタクソノミー名を自動で生成するものではありません。あくまで<title>タグを変更できるようにするだけです。
6. Global Redirectのインストール
Pathモジュールで"example.com/node/1"に"example.com/about"というURLエイリアスを設定した場合、同じページを表示するための2つのURLが存在するようになります。検索エンジンはこのような同じ内容のページがいくつもある場合、そのようなページをインデックスしない傾向があるようです。また、本来"example.com/about"に外部リンクが貼られるようにしたいところ、"example.com/node/1"にもリンクが貼られ、外部リンクが分散する可能性があるというのは検索エンジンからの評価をあげようする妨げになる気がします。Global Redirectを利用することで、面倒な設定なしで"example.com/node/1"を"example.com/about"にリダイレクトさせることができ、検索エンジンは同じ内容のページがいくつもあると解釈しなくなります。
7. Nodewordsのインストール
meta descriptionをはじめとするメタタグを設定できるようにするモジュールです。ノードのteaserからdescriptionを自動生成したり、タクソノミーからkeywordを自動生成する機能もあります。因みに当サイトで以前このモジュールを試してみたことがありますが、現在は使用していません。理由は以下のとおりです。
- メタタグは検索順位に(ほとんど?)関係ない。
- 以前Twitterでも投稿しましたが、Nodewordsモジュールにバグが多く、テストしてバグを直したりするのが面倒。
メタタグが検索順位に影響しないのはわかっていたのですが、それでもNodewordsを導入してみたのは、GotDrupal.comのNodewords紹介記事でも紹介されているとおり、Googleの検索結果にmeta descriptionが表示されるからです。Eコマースサイトなどで、商品のキャッチラインなどをmeta descriptionに書いておけば、検索結果からクリックしてくれる確率が上がるかもしれないですが、CocoaSpaceのような文章主体の情報系のコンテンツを見てもらうようなサイトでは必要はないと判断し、アンインストールしました。geoタグなどを使いたい場合は便利かもしれません。
8. XML Sitemapのインストール
ノードやタクソノミーなどのXMLサイトマップを自動生成し、GoogleやYahoo!などの主要な検索エンジンに送信するモジュールです。CocoaSpaceをスタートしたばかりの頃、試しに最初だけ使用していました。現在では使用していません。個人的にはサイトマップの提出は意味がないと思っていますが、サイトマップを提出することで、スタートしたばかりのサイトが検索エンジンにインデックスされるのが早くなるというのをどこかで読んだような気がします。スタートしたばかりのサイトを検索エンジンにインデックスされるようにするには、すでにインデックスされている別サイトからリンクを貼るのがいいような気がします。が、既にインデックスされたサイトからリンクを貼るのが不可能な場合や、サイトがいつになってもインデックスされなくて困っている場合には、このモジュールを試してみてもいいかもしれません。
9. HTMLソースでメインコンテンツが最初にくるようなテーマを使用する
これはSEOにどれだけ効果があるのかわかりませんが、ページのメインのコンテンツがHTMLソースの上部にきたほうが良いという説があります。Drupalでいうと、プライマリリンクやセカンダリリンク、サイドバーよりもメインのコンテンツが先にくるようにデザインされたテーマを使用したほうが、SEOに有利かもしれません。drupal.orgで一番人気のZenテーマではHTMLソースが以下のような順番に並びます。
header
content
navigation bar(プライマリリンク、セカンダリリンク)
left sidebar
right sidebar
footer
ナビゲーションやサイドバーの前にメインのコンテントが先になるのがポイントです。ナビゲーションバーがメインのコンテンツよりも先になるものも含まれると思われますが、Drupal 6.x対応の主なスターターテーマで上記の順番にソースが並ぶものをリストします。私が記憶している限りでは、ZenとBasicはnavigation barがサイドバーの下になります。
他にもあるかもしれませんし、テーマのバージョンによって変化してくるかもしれません。ご了承ください。
10. その他
英語のサイトですが、Drupal SEO | Webmaster TipsというページにDrupalでのSEOの基本がまとめられています。本投稿の内容の多くは上記ページの内容と重複していますが、robots.txtの設定や、Drupalテーマにおける<h1>などのHTML headerの基本などについても書かれていますので、更に多くの情報を得たい方はチェックしてみてください。
コメントを追加