はてなブログ は、WordPress と違ってあれこれ調べて事前にサーバーの設定などをしなくても記事を作成して公開さえすればブログの作成ができるという点で初心者にとってはとても始めやすいものだと思います。「見たまま編集」モードで使えば写真の貼り付けも容易で記事の仕上がりを見ながらブログを書くことができますし、ちょっと勉強して「Markdown」モードで書けば html も織りまぜながら自由度の高いレイアウトで記事を書くことも出来ます。有料版の「はてなブログ Pro」を契約すれば独自ドメインだって使う事が可能です。
ただ、逆に言えばブログシステムの根幹は「はてな」のサービスな訳で、ちょっと込み入った事をしようとすると途端に壁にぶち当たってしまうこともあります。
無料版の はてなブログ から「はてなブログ Pro」へ移行し、独自ドメインへの切替を行った場合は、はてなブログ の運営の方で自動的に元の無料版の はてなブログ で使っていた URL から、はてなブログPro で使用する独自ドメインの URL へ「301リダイレクト」が掛かるようにしてくれます。これによって、ブログを訪れて下さった方が以前の URL でアクセスしても独自ドメインのアドレスへ自動転送されるようになります。ここまではまあいいのです。
ただ、Google の検索エンジンにとってはこれだけではどうやら独自ドメインに切り替わったブログは ” 新しく作成されたもの ” と判断されるようで、ブログ内の記事が「複製された記事」と見做されてしまうことがあるようです。これの何が問題かと言うと、Google の検索エンジンにとっては複製された記事は「重複コンテンツ=価値の無いもの」として扱われるらしく、検索結果から除外されてしまいます。
そしてこの「重複コンテンツ」は特に Google AdSense の申請時に於いては鬼門です。私の場合は知らずにこの状態に陥ってしまったことと、コロナ禍での審査不能による門前払いと相まって結構な泥沼に嵌まってしまいました。
結局その時は検索エンジンのクロール頻度を上げ、Google Search Console 上でブログURL の移行操作を行うことで AdSense の審査になんとか通過することも出来ました。その辺りのことも含め、Google AdSense の審査を受けるにあたって直面した様々な問題については以下の記事で書いていますので、同じ様な問題に当たっている方は試してみてください。
■ はてなブログサービス内のブログ間で記事を移転させる際のお話です
能書きがすっかり長くなってしまいました。上記は「無料版の はてなブログ から 有料版の はてなブログ Pro に切り替えた場合」には自動的に はてな の方で 301リダイレクトを掛けてくれるということでした。今回は同じ はてなブログサービスの中で別のブログから記事を移転させてくる際に Google の検索エンジンにアドレスの移転を報せる(リダイレクト)方法について記録しておくことにします。
例えば、同じ はてなブログ内で新たに立ち上げたブログ(このブログ)を使って Google AdSense の審査を通過させ、後から旧ブログから記事を移植して統合させたいといった場合や、特化型のブログを作り直そうと思ったとしても、単に記事を持ってきただけでは「コラお前!コピー記事書いてるだろ!」と Google様に判断されてペナルティを科されてしまう可能性があります。そのような場合に検索順位を保ったまま検索エンジンにブログアドレスの移転を報せる方法として利用出来るかと思います。
元のブログ記事を削除して新しいブログに掲載するだけでも時間は掛かるもののいずれは Google の検索エンジンにも認識はされるそうなのですが、この方法だと上記の様に「コピー記事」と認識された状態がしばらく続いてしまう可能性があり、SEO的に非常に宜しくないのだそうです。ブログの収益化を気にしないのであればそれでもいいのかも知れませんが、せっかく書いた記事が検索結果から除外されてしまっては見に来てくれる方も減ってしまいますしね。
「301 リダイレクト」という方法を採ることで、元のサイトにあった記事の SEO評価を引き継いだまま URL の移転を検索エンジンに報せることができるそうです。WordPress の場合は「プラグイン」を利用すれば簡単にこの設定を行うことが出来るそうなのですが、残念ながら はてなブログ には個別の記事毎に「301リダイレクト」を行う機能がありません。
そこで、代わりに javascript を使って「301 リダイレクト」を実現させることにします。Google の検索エンジンはこのような javascript を使ったリダイレクト処理も理解してサイトのレンダリングを行ってくれるそうです。
■ jQuery を利用してリダイレクト処理をさせる
動作としては、元記事のページにアクセスがあると「このページは移転しました。〇秒後にリダイレクトされます。」と表示させ、新アドレスの記事へ遷移するようにします。流れとしては以下の通り。
① 新ブログの方に移植した記事を公開
② 旧ブログの移転対象記事内にリダイレクトさせるスクリプトを設置
③ 後日 Google Search Console上で「正規化」ができているか確認
javascript を使ったリダイレクト処理は、記事の移転元のサイトの方に仕掛けます。
まずは事前準備として旧ブログの管理ページで「 デザイン」→「 カスタマイズ」と進み、「フッタ」に下記のコードを記述し、「jQuery」を利用出来るようにします。記述したら必ず「変更を保存する」をクリックすること。
<!--jQuery-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js">
</script>
はてなブログの記事ソースを見るに、デフォルトの状態で jQuery 1.12.3 は組み込まれている模様ですが、念のため。3.x.x はどうも構造がかなり変わっているようなので上手く動作しないかも知れないので使っていません。
次に、移転元の記事本文を下記の様に編集して公開します。
こちら記事は移転しました。<br>
約 3秒後に新しい URL へ転送されます。<br>
<br>
自動的に転送されない場合は <a href="(記事移転先 URL)"><b>こちら</b></a> をクリックしてください。<br>
<script type="text/javascript" language="javascript">
// 現在の記事 URL
var href = window.location.href;
// 記事ページのURL正規表現
var re = new RegExp(".*entry.*");
if (re.test(href)) {
// 新URL
var url = "(記事移転先 URL)";
// リダイレクト処理
setTimeout("redirect()", 3000); // 3秒後
function redirect(){
location.href = url;
}
}
</script>
(記事移転先 URL)と書かれている部分に移動先となる新ブログの記事URL をコピペして下さい。移転元記事の編集と公開が終わったら元記事の URL にアクセスして想定通りの挙動になっているか確かめておきましょう。記事毎にこれら作業を繰り返す事になるので手間は掛かりますけどね。
Google Search Console で移転先サイトへ検索bot が巡回する頻度も上げておくとよいでしょう。「こちら」からクロール頻度の変更を行うことが出来ます。どういうわけか、はてなブログ への巡回頻度はほぼ最低ライン近くにされていることが多いようです。サイトマップが正常に認識されないのもこの辺りに原因があるような気がします。
■ リダイレクトされていることの確認と旧サイトの扱い
上記の仕掛けを移転させる全ての記事に施し終わったのが昨年の末頃。リダイレクトを Google の検索エンジンが理解してくれるのにはある程度の時間が掛かるとのことではありますが、さすがにちょっとほったらかしにし過ぎました💦正常に認識されているかどうか確かめてみることにします。
Google Search Console で旧ブログサイトの状態を確認してみます。「カバレッジ」を確認してみたところ、ほとんどの記事のアドレスのステータスが「除外」となっており「ページにリダイレクトがあります」と表示されていました(いくつか移転させずに残した記事もあります)。
更に「URL 検査」で個々の記事を確認してみた結果が右の画像です。「ユーザーが指定した正規 URL」のところに移転先の URL が記載されていました。上手くいったようですね。
というわけで、記事移転元のブログからの巻き取り(消去)を始めます。Google の検索エンジンで移転が認知されていることを確認しながら少しずつ行っていくつもりなので大丈夫かとは思いますが、リンク切れなどご不便をおかけすることがあるかも知れません。その節はどうかご容赦を。
尚、今回の記事執筆にあたっては以下のサイト様を筆頭にいくつかの記事を参考にさせて頂きました。この場をお借りして御礼申し上げます。
- 海外 SEO 情報ブログ 様
【保存版】301や302、307、JavaScript、meta refreshなどのリダイレクトをGoogleはどの
ように処理するか? - うたたね 様
はてなブログの特定記事のみ新ブログへ移動させる方法(リダイレクト)