移転したページはSEOのためにもリダイレクトしましょう

移転元ページ→移転先ページへ飛ばすことをリダイレクトといいます。
ページをリダイレクトする理由は、おもに2つあります。

  • 検索エンジンなど、移転前のリンクから訪問されるお客様を逃さない
  • 移転前のページ評価が引き継げる、SEOのメリット

リダイレクトしなければいけない状況はそれほどありませんが、仕事としてはときどき相談されます。

ということで、リダイレクトについてまとめました。

.htaccess によるリダイレクト

よくあるページの移転は、ドメインが変更になる、カテゴリーが変更になる、ページ名が変更になる、などのページURLに影響が出ます。

多くの場合は恒久的な移転になりますので、301リダイレクトを使います(余談ですが302リダイレクトは一時的な移転)。Webサーバー内にファイルが置けるなら、この方法を使います。

経験的にいうと、301リダイレクトすると、数日から数週間くらいで移転先にインデックスしなおしてくれます。
リダイレクトしたからといって、アクセス数が急激に減ったりはしません。SEO的な評価も引き継がれているのだろうなと感じます。

ロリポップ!のようなレンタルサーバーで、WordPressを運用しているような場合などで、.htaccessによるリダイレクトが使えます。
よりかんたんな方法では、WordPressプラグインでリダイレクトを行うことも可能。

.htaccessの一例

.htaccessという名前でファイルを作成し、テキストエディタで編集します。
WordPressを使っているとファイルがすでにある場合も多いです。すでにある場合は、上書きせずに追加すればOKです。

# リダイレクト設定
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^customize(.*)$ $1 [L,R=301]
RewriteRule ^blog-rss-yql$ rss-feed [L,R=301]
</IfModule>


作ったファイルはWebサーバーにアップロードします。
WordPressの環境によって、ルートディレクトリに置くのか、/wpディレクトリに置くのか変わってきます。

リダイレクトのサンプルコードを見ていきます。

ディレクトリを変更したい場合

移転元)https://naeco.jp/customize/instagram-graph-api

移転先)https://naeco.jp/instagram-graph-api

柔軟な対応が必要な場合は、正規表現を使って移転前・移転後の対応を書きます。customizeディレクトリ直下のURLすべてを移動させる場合は正規表現を使って書かないと大変です。

RewriteRule ^customize(.*)$ $1 [L,R=301]

^…先頭 $…最後 (.*)…任意の文字列がヒット
$1…ヒットした文字列が入ります(正規表現の後方参照という機能)

ページのスラッグを変更した場合

移転元)https://naeco.jp/blog-rss-yql

移転先)https://naeco.jp/rss-feed

移転数が多くない場合は、後方参照を使わずに一対一で書けます。

RewriteRule ^blog-rss-yql$ rss-feed [L,R=301]

^、$の指定は、より厳密な指定のためについています。似たようなURLがある場合に関係ないものがヒットしないようにしています。

meta refresh によるリダイレクト

metaタグを使って、移転先に飛ばすことができます。
metaタグなので<head>内に書きます。
秒数(待ち時間)を0にしても、移転前サイトがすこし見えます。
極力ページ先頭に書くとよいです。

<meta http-equiv="refresh" content="秒数; url=移転先URL">

昨今は使わない方法ですが、以前カラーミーショップで使っているショップを見たことがあります。
全ページを一箇所に飛ばす方法なので、これを使うメリットはありません。

JavaScript によるリダイレクト

301リダイレクトが使えない場合は、JavaScriptによるリダイレクトを選択します。しばらくすると、移転先にインデックスしなおされますし、Googleの中の人のコメントによると、SEO的なページ評価も引き継げるそうです。

location.href="移転先URL";


カラーミーショップでは、各ページがURLにつくパラメータで区別されています。
フリーページ f1のときはhttps://your-domain.com/xxxxへという風に各ページごとに飛ばす先を変更できます。

var p = location.search;
if(p=="?mode=f1") {
  location.href="https://your-domain.com/xxxx";
}

おわりに

移転元ページがすでにインデックスされている場合は、極力飛ばしておくほうが都合よいです。

リダイレクトの方法は、サーバーにファイルが置ける場合(WordPressなど)とサーバーにファイルが置けない場合(カラーミーショップなど)で、選択肢が違ってきます。
301リダイレクトが最良で、JavaScriptが次善になります。

執筆者

えいじ@naeco.jp この記事を書いた人

メーカー系情報システム部門出身の個人事業主。
自作するのが好きですぐに試したくなる、凝り性なWebエンジニア。
カラーミーショップ、モールなどのECについて記事にしています。

ご相談・お問い合わせはこちら