ブログを引越しさせたときって前のブログ、どうしてますか?
「引越し先はこちら!」みたいにリンクをはるパターンが多いかもしれませんね。
僕も先日、はてなブログから WordPress に移行して そのようにしてたのですが、たぶん「引越ししました」ってリンクを見た瞬間に訪問者が帰っちゃうような気がするんですよねえ(汗)
あと外部のリンクから直接 記事ページに飛んできても「ページが見つかりません」って出てきて
「がーん!」
みたいな。
これはもったいない!
実際のところ、引越し後もはてなブックマークや他のブロガーの方がはってくださったリンクからたどって僕の前のブログにアクセスがちょこちょこあったんです。
というわけで、はてなブログで自動的に引越し先の記事へリダイレクトさせる方法をまとめました。
他のブログサービスでもおそらく使えます。
まずはやりたいことを整理
あらためてやりたいことを整理すると、以下のURLのように引越し前のブログURLにアクセスされたら引越し後のブログURLに自動的に移動させるようにします。
これは僕のブログURLの例。
http://sakagami.hatenablog.com/ (移転前)
↓
https://sakagami3.com/ (移転後)
記事のURLにアクセスされたらこんな感じ。
記事のパスはそのままで、ドメインだけ変えたリンク先へ飛ばします。
http://sakagami.hatenablog.com/entry/2017/08/17/194045 (移転前)
↓
https://sakagami3.com/entry/2017/08/17/194045 (移転後)
やり方
おまたせしました。それでは実際に設定していきます!
以下は はてなブログでの設定例。
まず はてなブログのダッシュボードにアクセスし、メニューにある「デザイン」をクリックします。
するとデザインページが現れるので、そこの左メニューにあるレンチのアイコンをクリックし、「ヘッダ」をクリック。
そして「タイトル下」という項目にコードを記述していきます。
はてなブログじゃない方も、ブログ全体に適用されるHTMLをはりつける場所があると思うので、そこにコードを記述します。
はりつけるコードは以下。
<script type="text/javascript"><!-- var domain = "https://sakagami3.com"; var path = location.pathname; var url = domain + path; location.href=url; // --></script>
JavaScript を使ってアクセスされたURLのパスを取得し、引越し先のドメインとつなげてリダイレクトさせるというシンプルなコードです。
最後は「変更を保存する」ボタンをクリックするのも忘れないように注意!
これで完了です!
実際に設定したブログのトップページURLや、もともと記事があったURLにアクセスしてみてください。
引越し先のページへリダイレクトされることが確認できます。
設定は以上! ここからの説明は興味のある方だけどうぞ!
301リダイレクトはできない?
ブログを移転した場合など、URLが恒久的に変更される場合は本来 301リダイレクトを使うことで、前の記事の検索エンジンの評価を引き継げると言われています。
しかし、これを実現するためには「.htaccess」というファイルを用いる必要があり、はてなブログではこの操作することができません。
つまり301リダイレクトは使えません。
そのため今回は JavaScript を使って頑張っています。
あと僕の場合はもともと はてなブログで独自ドメインを使用していて、記事のURLを変えずに移行することができています。
移行時の手順はこちら。
そのため、独自ドメインが外れてしまった古いはてなブログのURLから301リダイレクトさせる必要もないのかなとは思います。
しかし別の問題で、これは はてなのサービス特有の仕様なのですが、はてなブログの独自ドメインが外れてしまうと、はてなブックマークのブックマーク数が独自ドメイン適用前のブログURLについてしまうのです。
そのため、せっかく はてなブックマークを介してアクセスがあっても、前使っていたはてなブログに飛んでしまいます。
それを救い上げる意味で今回のリダイレクトの処理が役立つかと!
また、もともと独自ドメインを使っておらず、はてなブログから別のブログに移行してURLが変わっているのなら、普通に今回のやり方は使えると思います。
公式でブログ移転時の対応策がないので、前のURLにアクセスされた人を適切なページへ飛ばす救済措置として今回のやり方を参考にしてみてくださいな!
やらないよりはやっておいたほうがいいよって話でした!