2012.05.22Web制作

サイトリニューアル時の301リダイレクト、.htaccess記述方法いろいろ

  • このエントリーをはてなブックマークに追加

この記事をご覧いただいている皆様へ。

このページは、SEO情報ブログ「ディーエムソリューションズの社員が作った、【SEOまとめ】」にて公開されていた記事であり、2014年12月にデジタルマーケティング研究所へ統合されました。

blog-news

WEBサイトをリニューアルする際、古いURLを放置したままにしていませんか。古いURLに対して適切な処理を行わずにいると、さまざまな機会損失を発生させてしまいます。
今日はサイトリニューアル時に使える.htaccessファイルを使った301リダイレクトの設定方法をいくつかご紹介します。

301-redirect

 

【前提】アクセスできないURLを放置してしまうと何がまずい?

リニューアルでURLが変わってしまった時の旧URLをそのままにしておくと、さまざまな観点から機会損失が発生します。

ユーザービリティの損失

存在しなくなったURLにも少数ながらユーザーはやってきますオリジナルの404エラーページを設定しない場合、下のようなエラー画面を見ることになるユーザーが少なからず発生してしまいますよ、ということです。

google-error

検索エンジンの評価の損失

存在しなくなったURLにも検索エンジンのクローラーはやってきます。放っておくとウェブマスターツールの「クロールエラー」画面が以下のように「見つかりませんでした」だらけになってしまいますよ、ということです。

crowl-error

【手法】Googleが「非推奨」としている事項

とにかく基本は301リダイレクト(恒久的な転送)を使うこと。また、面倒でも特定のページに全て転送、ということは必ずコンテンツが対応しているページに転送すること。

「そもそも301リダイレクトって何?」という方はこちら。→リダイレクト:301・302・メタリフレッシュ・javascript

ちなみに、URLを変える必要が無いページに関しては極力維持する方が理想です。301リダイレクトを使っても評価の一部は失われると言われていますし、URLが変わることでせっかく集めたはてブやイイねのカウント表示もゼロ・リセットされてしまうからです。

【準備】あらかじめ設定しておくべきこと

URLの正規化を行なっておきましょう。.htaccessの頭に以下の記述を設定しておくことで、この後の設定がいろいろと楽になります。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(example.com)(:80)? [NC]

RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html

RewriteRule ^(.*)index.html$ http://www.example.com/$1 [R=301,L]

※上記は「www.」有りに統一する場合。「example.com」部分や「index.html」は任意の内容に変更する。

※.htaccessの記述内容はご利用中のサーバー環境やその使用状況によって異なります。ここではあくまで一般的なものを記載しておりますので、ご注意ください。

なお、私はIIS環境のサーバー設定に関してあまり詳しく無いので、今回はApache環境のサーバーで、「.htaccess」ファイル及び「mod_Rewrite」と呼ばれる記述形式が使える環境を想定しています。
ほとんどの方は上記の環境に該当すると思いますが、もしIIS環境のサーバーをご利用の場合、多くはサーバー管理の担当者様が所属していらっしゃるはずです。そのレベルの方でしたら内容をご覧いただければ実現したいことはご理解いただけるかと思いますので、この記事を紹介していただければ大丈夫、だと思います。

【ケース01】ドメインが変更になる

では具体的なケースに踏み込んでいきましょう。最初のケースは「ドメインが変更になる」場合。

これはわりと簡単。URLの正規化を行った記述の後に、以下を追記しましょう。

RewriteCond %{HTTP_HOST} ^(www.old-url.com)(:80)? [NC]
RewriteRule ^(.*) http://www.new-url.com/$1 [R=301,L]

当たり前ですが「www.old-url.com」や「www.new-url.com」は任意のURLに書き換えて使ってください。

【ケース02】個別ページのリダイレクト

全ての基本となる設定。

RewriteRule ^/old-page.html$ http://www.example/new-page.html [R=301,L]

数十ページまでならこれでなんとかなるでしょう。

【ケース03】リニューアル後にディレクトリ名が変わってしまう

次はリニューアル後にディレクトリ名を変えたい場合。

RewriteRule ^old-dir(.*)$ /new-dir$1 [R=301,L]

これだけ。簡単ですね。さらに【ケース02】との合わせ技も可能。

RewriteRule ^old-dir(.*)$ /new-dir$1 [R=301,L]
RewriteRule ^new-dir/old-page.html$ http://www.example/new-dir/new-page.html [R=301,L]

上記のように設定することで、ディレクトリ名は変えつつ特定のページを新しいページにリダイレクトできます。

【ケース04】一部のディレクトリやページに関しては、転送設定をかけたくない

これは例えが無いとわかりにくいので、サブディレクトリを個別ページへ301リダイレクトする場合の設定方法(無料SEO対策のススメ)の内容をケーススタディにさせていただきます。

うーむ、パズルのようですな。こんな時は「!」(例外条件の指定)を使って解決します。

RewriteCond ^!saitama/old-dir.*

RewriteRule ^saitama.* /saitama.html [R=301,L]

RewriteRule ^saitama/old-dir.* http://www.example/new-page.html [R=301,L]

複雑なようですが.htaccessに記載する際は3行で済んでしまうから面白いですね。

【ポイント】URLのリダイレクトを念頭において、初動からチームで取り組む

小~中規模サイトのリニューアルであれば、上記の記述の組み合わせでなんとかなるはずです。
しかし、大規模サイトの大幅リニューアルとなると話は別。旧URLを100%リダイレクトすることが非現実的になるケースも往々にして発生するでしょう。

ただ、そのような場合でも旧URLを意味も無く変更しない、やむを得ず変更になる場合はできるだけ301リダイレクトしやすいように新URLを作るというポリシーを制作チーム全体で共有してリニューアルを企画することで、結果はかなり変わってくるはずです。

地味ながら意外とあなどれない旧URLの扱いと301リダイレクトの設定。放置すると往年のときめきメモリアルよろしくどんどん爆弾をふくらませてリニューアル企画そのものを台無しにしかねない困ったヤツです。リニューアルの際は議論の対象として、いつも頭の片隅においてあげるようにしてあげてくださいね。

【SEOコンサルタント監修】
2017年 最新版 SEOセルフチェックリスト 無料プレゼント!

年間何百ものWebサイトを確認している当社でも、内部施策SEOが完璧にできているというサイトを見たことがありません。
内部施策SEOに漏れがあるということは、自分でできることをやっていないということであり、それだけで機会損失を発生させている可能性があります。

本書では、ご自身でセルフチェックと修正ができるよう、Googleが推奨する内部施策SEOのうち、重要なポイントをかいつまんでご紹介しております。

  • このエントリーをはてなブックマークに追加
The following two tabs change content below.
片川 創太

片川 創太

2014年12月までディーエムソリューションズ株式会社SEO対策チームに所属。「SEOは実装」を信条に、コミュニケーションを重視するスタイルで数多くのサイトのコンサルティングを手がける。内部施策に関して造詣が深く、「SEOまとめ」としてブログやtwitterを通じて日々情報発信を続けている。 Twitter: SEOまとめ

このエントリーにコメントする

必須項目は全て入力してください。