


SIRIUS2でサイトを作っている時、こんな経験ないですか?
「この記事、やっぱり別のカテゴリーに移動しよう」
「カテゴリーが合わなくなってきたから別のカテゴリー名に変えよう」
これはよくあることと言えばよくあることです、最初のうちはね。
だからといってむやみに記事を移動したりカテゴリーをポンポンと変えていいかと言えばよくはないんです。
なぜなら…URLが変わってしまうから。
『ページの生成先フォルダ』を「全て同じ階層に出力する」を選択している方は、記事タイトルやカテゴリー名などを変更した時だけ当ページの内容をご覧になるといいでしょう。
たとえばカテゴリー「話題」というのがあったとして、そのファイル名(スラッグ)に”topic”と付けていたとします。
(”スラッグ”というのはURLの一部の文字列で自由に設定ができる部分を指します)
※スラッグやファイル名についてはこちらの記事をご参照ください。
ここで仮に「話題」カテゴリーに属するsample.htmlというページがあったとします。この時のページURLは
https://(ドメイン)/topic/sample.html
となります。
ところが「話題」というカテゴリーを途中から「よく読まれる記事」というカテゴリーに、スラッグも”favorites”に変えたとします。
すると”https://(ドメイン)/topic/sample.html”は
”https://(ドメイン)/favorites/sample.html”
に変わってしまいます。
じゃあURLが変わるとどうなるのでしょうか。
Googleにインデックスされている過去の記事(旧URL)は当然古いURLのままです。
ということはその検索結果からページに飛んでも「見つかりませんでした(404)」になっちゃいます。
これが1個2個ぐらいならまだしもどれも「見つかりません」になってしまったら「ダメだ、このサイト。二度と来ないぜ!」ってなるかもしれません。
Googleさんも「どうしちゃったのこのサイト、全然記事がないじゃな~い」ということでサイト評価を落としかねません。
これは古いURLを自動的に新しいURLに切り替えてやれば「見つかりませんでした」は防げます。
そういった仕組みは通常301リダイレクトと呼ばれ、一時的にではなく”半永久的にURLを変更します”という手法です。
これをやっておけば検索エンジンに嫌われることもなく、404エラーページが表示されることもなくなります。
古いURLの記事にさまざまな”評価”が付けられていた場合、URLが変わるとその価値はリセットされてゼロからの再スタートとなってしまいます。
でも301リダイレクトで飛ばした場合はその評価も引き継いでくれます。
そのため人気のあるページだった場合はおさらそのまま放置しないようにしましょう。
記事URLが変更になるケースはいくつかあります。
ここではケースに応じて301リダイレクトの書き方をいくつかご紹介します。
この先は「サイトが正しく表示されない」などのトラブルが発生する可能性もあるカスタマイズになりますゆえ、ご利用に際しては自己責任にてお願いします。
心配な方はカスタマイズする前のデータをコピーするなどしてバックアップをとっておいてください。
「サイトオプション」→「.htaccess」を開きます。
『.htaccess上部』に「URLが変わったので自動的に新しいURLに飛ばしてね」という命令を書き込んでいきます。

ドメイン直下の記事sample.htmlをカテゴリー”ABC”内に移動
https://(ドメイン)/sample.html→https://(ドメイン)/ABC/sample.html
【書き方】
Redirect☐permanent☐/sample.html☐https://(ドメイン)/ABC/sample.html
”ABC”というカテゴリー名を”XYZ”に変更
https://(ドメイン)/ABC/xxx.html→https://(ドメイン)/XYZ/xxx.html
【書き方】
Redirect☐permanent☐/ABC/☐https://(ドメイン)/XYZ/
”abc(.html)”というファイル名を”xyz(.html)”に変更
https://(ドメイン)/abc.html→https://(ドメイン)/xyz.html
【書き方】
Redirect☐permanent☐/abc.html☐https://(ドメイン)/xyz.html
カテゴリー”ABC”内の記事sample.htmlをサブカテゴリー”DEF”内に移動
https://(ドメイン)/ABC/sample.html→https://(ドメイン)/ABC/DEF/sample.html
【書き方】
Redirect☐permanent☐/ABC/sample.html☐https://(ドメイン)/ABC/DEF/sample.html
サブカテゴリー”DEF”内の全記事を親カテゴリー”ABC”内に一括移動
https://(ドメイン)/ABC/DEF/xxx.html→https://(ドメイン)/ABC/xxx.html
【書き方】
Redirect☐permanent☐/ABC/DEF/☐https://(ドメイン)/ABC/
旧ドメインのカテゴリー”ABC”内の記事sample.htmlを新しいドメインのカテゴリー”HIJ”内に移動
https://(旧ドメイン)/ABC/sample.html→https://(新ドメイン)/HIJ/sample.html
【書き方】
Redirect☐permanent☐/ABC/sample.html☐https://(新ドメイン)/HIJ/sample.html
【定型文の記述】をクリックすると『301リダイレクト』という選択肢が現れます。
この設定項目、いつからあったのかは筆者は定かではありません。
ただ画面を見ると、やることはここまで紹介してきたこととほぼ同じのようです。

きちんとリダイレクトされてるかどうかを確認したいという方にはこんな確認ツールもあります。
URL欄に「検証したいページのURL(旧URL)」を入れて「チェックする」をクリックします。

うまくリダイレクトが行われていれば下のようなステータスが表示されます。

何らかの記述ミスなどがあれば下のようなエラー表示になります。


筆者
「301リダイレクトチェック」で検索すれば他の301リダイレクト検証サービスも見つかります。
新しいURLへの移動に関しては早ければ2,3ヵ月、長くても半年も放っておけばGoogleに認識されるかと思います。
その頃には.htaccess に書いたリダイレクト情報は消してもいいっちゃいいのですが、気になる人はそのまま書きっぱなしでも問題ありません。
ただし消す場合は.htaccessに書いたものを全部消して再アップロードし、検証サービス等で古いURLを1個1個チェックして問題ないことを確認してから消した方がいいです。
(※.htaccessのバックアップは必ず取っておきます)
301リダイレクトの設定自体は上記で完了です。
しかしながら記事内に設置したリンク情報は古いURLのままです。
もちろんそのままでもリダイレクトしてくれるので放置しておいても問題はないんですが、将来的なことを考えたらサイト内部のリンク情報も早めに修正しておいた方が無難です。
これは『記事の置換』ツール(ctrl+R)を使うと短時間で修正が完了します。
ただし一瞬で置き換えられてしまうのと元に戻せないので注意が必要です。
(実行前にサイトのバックアップをとっておくことをおススメします)

コツは置き換えしたい部分だけが選択されるように記入することです。
たとえば『ドメイン直下の記事sample.htmlをカテゴリー”ABC”内に移動』した場合、URLの変更は下のようになります。
https://(ドメイン)/sample.html→https://(ドメイン)/ABC/sample.html
この場合、古いURLの内部リンクは
<a href="<% pageDepth %>sample.html">○○○</a>
となっているはずです。
これを新しいURLに変更したいので『検索する文字列』には
href="<% pageDepth %>sample.html"
とだけ書き、『置き換えする文字列』には
href="<% pageDepth %>ABC/sample.html"
と記述します。こうすればリンクだけを置き換えることができます。
もちろん『記事の検索』ツール(ctrl+F)を使って”手動”で修正していくのもありです。
多少の面倒くささはありますが、一つ一つ確認しながらなので不安要素は確実にぬぐえます。