旅とアロマ

旅とアロマ

五感で楽しむ旅ブログ

【記事URLの変更】新URLにリダイレクトする方法 ~はてなブログ~

 更新日2020/04/23

f:id:monteverde-aroma:20200411155825p:plain

皆さま、いかがお過ごしでしょうか。

私は、家での時間が増えたので、ブログのカスタマイズに励んでいます。今回は、記事を削除したあとの処理や、旧記事のURLを変更し、新記事のURLにリダイレクトさせる方法です。よろしければ、お付き合いくださいませ。

URLのリダイレクト

URLのリダイレクトが必要なのは、記事のURLを変更する場合です。

日本語のURL

はてなブログでは、entry/以下のURLを任意の文字列に変更できます。私は、はてなブログを始めた時、任意の文字列を日本語にしていました(1年半ぐらい経って、英語に変更しました)。

f:id:monteverde-aroma:20200411163323p:plain

例えば、entry/のあとを「JALラウンジ/アロマ」にしていました。

はてなブログを利用させていただいている間は何の問題もありません。ただ、Googleなどで検索した際、以下のように表示されるだけです。

 

https://www.monteverde-aroma.com/entry/JAL/_%E3%82%B5%E3%82%AF%E3%83%A9%E3%83%A9%E3%82%A6%E3%83%B3%E3%82%B8/%E3%82%A2%E3%83%AD%E3%83%9E

 

しかし、記事数が300を超え、古い記事を書き換えるにあたり WordPress へのお引越しも頭をよぎるようになりました。あと、ずっと気になっていた「ads.txt」の設置が、「はてなブログ」では簡単にできないことも後押しして気持ちが揺らぎ始めました。

ブログを始めたとき「はてなブログ」か「WordPress 」のどちらで始めるか悩んだのですが、ブログデザインなど全く知識がなく、初心者でも簡単に始められる「はてなブログ」にしました。

「はてなブログ」は初心者の私でも簡単にブログを書くことができました。それから、2年半、少しずつ慣れてきたので、お引越しを視野に入れました。しかし、お引越しに際して、一つ大きな問題が見つかりました!

f:id:monteverde-aroma:20200411164726p:plain

それは「日本語のURL」です。はてなブログでは何の問題もない日本語のURLは「WordPress 」では使えないのです。しかも、「/」もダメなようです。

なので、古くなった記事を刷新する際、100以上ある日本語URLを英語のURLに変えることにしました。

 

https://www.monteverde-aroma.com/entry/JAL/_%E3%82%B5%E3%82%AF%E3%83%A9%E3%83%A9%E3%82%A6%E3%83%B3%E3%82%B8/%E3%82%A2%E3%83%AD%E3%83%9E

   

https://www.monteverde-aroma.com/entry/jal-aroma

 

気の遠くなる作業です・・・・

 

新URLにリダイレクト

しかし、URLを書き換えてしまうと旧URLにアクセスがあったときに「404 Entry is not found」と表示されてしまいます。

そのため、旧記事のURLを新記事URLにリンクさせなければなりません。そんなときは、URLを変更しつつリダイレクトの設定をすればいいようです。

リダイレクトにはいくつかの方法があり、主に以下の2つです。

  1. 301リダイレクト・302リダイレクト
  2. Javascriptでリダイレクト

1は、htaccessというファイルに転送元のURL・転送先のURLをセットで書くと、転送元のURLにアクセスしてきた読者を、転送先のURLへ強制的に移動させることができます。「301リダイレクト」は恒久的な転送で、「302リダイレクト」は一時的な転送です。

htaccessを使うのが最も良い方法なのですが、サーバー側での設定が必要となり、はてなブログでは使えません。そのため、2の「Javascriptでリダイレクト」する方法を取ることにしました。

1.Javascriptでリダイレクト

実際に行った方法は、 

 

【Blog】はてなブログで変更前のURLから変更後のURLへ転送(リダイレクト)する方法 | CGメソッド

 

 の記事を参考にさせていただきました。その結果・・・

 

f:id:monteverde-aroma:20200411160635p:plain

旧URLの記事にアクセスすると、以下のように表示され、リダイレクトされるようになりました。複数、転送したい記事入れたい場合は、コードの // <![CDATA[ ~ // ]]> の部分のコピーして追加して、入力するだけだそうです。

しかし、私の場合、複数のコピーがうまくいきませんでした。全部同じ記事に転送されてしまうのです。ほかのコードが邪魔しているのでしょうか?あまり知識がないので、どこが間違っているのか見つけることができず、他の方法を探すことにしました。

2.一記事ずつリダイレクト

すると、一記事ずつ簡単なコードでリダイレクトする方法が見つかりました。

 

301リダイレクトが使えないときにJavascriptでページを転送する方法 | 3分ニュース: にゃんぷん

 

そのまま、使わせていただきました。

<script>
var url1 = 'https://www.monteverde-aroma.com/entry/%E9%9D%92%E6%A3%AE%E5%B1%8B';
var url2 = 'https://www.monteverde-aroma.com/entry/aomoriya-summer';
if(location.href.startsWith(url1)){
    location.href = url2;
}
</script>

「url1」に旧URL、「url2」に新URLを書くだけです。

 この方法が私のブログには合っているようで、うまく転送できました。しばらくはこのままで転送して、新URLが検索上位に取り替わったら、削除したいと思います。

 

3.404ページのカスタマイズ

そのまま記事を「新URL」でアップするには上記の方法でいいのですが、内容が古すぎたりする記事は削除することにしました。

私はGoogle AdSense で広告を貼らせていただいているので、削除した(=404のエラー表示)にも広告が出てしまいます。これは、ポリシー違反にあたるので、対処しなければなりません。

その場合「Entry is not Found」のページに、お詫びとおすすめ記事へのリンクを設定すればいいそうです。

404ページのコンテンツの作り方は、こちらのサイトを参考にさせていただきました。

 

アドセンスポリシー違反に注意:404ページ、関連コンテンツのラベル、グローバルメニュー - ミセスGのブログ

 

f:id:monteverde-aroma:20200412110247p:plain


検索してくださった方には申し訳ないのですが、これでポリシー違反にならないようです。

コードを貼る場所

はてなブログで、上記のコードを貼る場所はみな同じです。

ダッシュボード > デザイン > ヘッダ

f:id:monteverde-aroma:20200411161137p:plain

ヘッダ > タイトル下

f:id:monteverde-aroma:20200411161341p:plain

コードの重複?

私は、参考にさせていただいたコードを全部貼りました。すると、次のように転送されるようになってしまいました。 

 ① 旧URL (404エラー)

      

 ② 新URLへ3秒後に転送(404ページのカスタマイズ)

      

 ③ 新URLのページ

なので、「1.Javascriptでリダイレクト」を削除して、「2.一記事ずつリダイレクト」に統一しました。

すると・・・

今度は、新URLに転送されず、「Entry is not Found」のページになってしまいました(泣)とりあえず、その記事が「一番人気」の記事として表示されているので、しばらくはこのままでいこうと思います。知識の限界です。その間に新URLがもっと人気がでるといいのですが・・・。

新URLの「Google」認識

もう一つ、同時に行うことがあります。それは、「Search Console」という解析ツールを使って、新URLを「Google」に認識してもらうことです。作ったばかりの新URLを検査してみると、「URLがGoogleに登録されていません」と表示されました。

なので、「インデクス登録をリクエスト」します。

f:id:monteverde-aroma:20200411172328p:plain

リクエストしてしばらく待ち、再度URLをチェックしてみました。

f:id:monteverde-aroma:20200411172613p:plain

すると「URLはGoogleに登録されています」と変わりました。この作業を行うことで、Googleにより早く新URLを検索結果に加えてもらえます。

問題発覚

順調に日本語のURLを「新URL」に変更していました。ふっと見てみると、「新URL」の記事には、いただいていた「はてなスター」がありません。「新URL」することで「はてなスター」も消えてしまうようです。今回は、やらなくては前へ進めないのでやっていますが、URLを変更するということは、デメリットもあるようですね。

さいごに:追記

10日ほどかけて、やっと日本語URLを新URLに変更できました。お引越しはまだまだ先のことですが、少しずつ古い記事の手直しもやっていきたいと思ってます。また、お引越ししても「Pro」はやめますが、無料のはてなブログは続けていきたいと思っています。

 

最後までご覧いただきありがとうございます。