robotstxtモジュールとGrobal redirectモジュール

SEO対策?にrobots.txtは自前で用意していましたが、Drupalのrobotstxtモジュールを導入してみました。

このモジュールは、robots.txtの編集をDrupalのAdmin画面から編集できるようにするものであって、自分で記述しないといけないのは変わりません。
Drupal導入時は、robots.txtを滅多に編集することはないだろうと思っていましたが、自サイトにあわせて編集する必要性があり、毎回、サーバにリモート接続して編集するのも面倒だなぁと思いモジュールを導入しました。
リモート接続といってもWinSCPを使ってSFTPで接続して、ファイルの編集はWindows上のテキストエディタを使用しているのでそれほど手間にはならないのですが、新たにモジュールを導入したりするとrobots.txtの編集が必要になると思われるので、どっちでもいいようにも感じます。

Drupalのサイトログに、「ページが見つかりませんでした」というエラーが多く、URLエイリアスの影響なのかなぁと考えていました。
また、Googleのウェブマスターツールで自サイトの診断結果などを見ていると、クローラーエラーの「見つかりませんでした」というのが非常に多いのも前々から気になっていました。
だからといって何もしていなかったのですが、今回、エラーの原因を調査してみることにしました。どちらのエラーも"http 404 page not found”のエラーです。

調査の結果、原因は意図していない階層までをクローラが見に行くため、検索サイトからのリンク先がすでになくなっていて発生しているのがわかりました。
その対処のためにrobots.txtを編集することになりました。

エラーが多いパスは①~⑦のなかで、①と②がエラーの約80%を占めていました。
①content
②category
③node/%/backlinks
④popular?page=%
⑤feed-item?page=%
⑥aggregator
⑦sample
※%はnidや数値です。

この中で意図していないのは、②~⑦番です。
②番はタクソノミーの階層を変更したためだと思われます。そもそもタクソノミーで検索エンジンにエントリされるのは意図してないのでrobots.txtで対処しました。
③番はViewsのbacklinksが有効になっていたためです。④番も同じくViewsの人気のあるページが有効になっていたためです。
これらは使用するつもりはなかったのでViewsのエントリを無効にして対処しました。
⑤番はfeedapiモジュールを使用していたときのもので、これもViewsでエントリが有効になっていましたので無効にし、モジュール自体もアンインストールしました。
feedapiモジュールはYoutubeサイトのRSSフィードからノードを作成し、Viewsでページを作成することができるので動画サイトを構築するには便利ではありますし、Imagegrabberモジュールも導入すれば、サイトから取得した画像も貼り付けることができるのですが、データベースを圧迫しそうだったのでやめました。
⑥番はfeedアグリゲータモジュールによるものですが、これも検索エンジンに登録してほしくないのでrobots.txtを編集しました。
⑦番はプログラムなどダウンロード用にあとから追加したディレクトリですので、これも除外したいのでrobots.txtを編集しました。

③~⑤番に関しては認識が間違っていました。
Viewsで有効になっておりかつページなどのパスが設定されていてもサイト上にリンクが存在しないのでアクセス要求はないと思っていました。
しかし、実際はクローラによって検索エンジンに登録されてしまうので検索サイトからアクセスがあるということのようです。
Viewsで生成したページを参照すること自体は問題ないのですが、使用していないものにアクセスできる事は管理がいい加減であると思われるのであまりよいことではありません。
モジュールを追加するとViewsで有効になるものもあるので気をつけることにします。

以上により判明したのは、taxonomyの階層を修正したのと、ブックコンテンツのタイトルを修正したのが直接の原因だということです。
どちらもURLエイリアス(Pathauto)の設定が影響します。
 

URLエイリアスの自動エイリアス設定

blog paths:blogs/[user-raw]
node paths:content/[title-raw]
taxonomy term paths:category/[vocab-raw]/[catpath-raw]
users paths:users/[user-raw]

さらに、すでに存在するURLエイリアスをアップデートした際は新しいURLエイリアスを作成し、既存のものは削除する設定にしてあります。
どうしてこの設定にしたのか記憶があいまいですが、タイトルとURLエイリアスの不一致が気持ち悪かったのでそうしたのだと思います。
ただ、この設定は推奨されないようで、なにもせずそのままにするのがよいみたいです。

このURLエイリアスによるものは、Global Redirectモジュールでなんとかならないかなぁと思って導入しました。
できれば自動で対応したいところですが、もしかするとPath Redirectモジュールなどで手動で設定しないといけないのかもしれません。
まぁ導入するのはしばらく様子をみてからにします。

動画サイトを構築するという目標を持ってサイトを立ち上げたことでそればかりに注力しすぎて、基本的な部分の設定が全くできてないことにいまごろ気づき焦っています。
 

Drupalバージョン

Drupal 6.x

カテゴリ

コマースと広告

モジュール

robotstxt Grobal redirect