\コピペでOK/はてなブログ記事を301リダイレクトさせる\簡単/

リペア/カスタム備考録

〜「はてなブログ」から「独自ドメインWordPress」への引越し〜
はてなブログ記事を301リダイレクトさせるには?】編
です。

はてなブログからWordPressへ移転する際、無料のはてなアカウントでは、301リダイレクトやcanonicalの変更が行えません。ですが、JavaScriptを適切に設定すれば、Googleが移転したことを理解してくれるようです。

この記事では、「新サイトへのリダイレクト」と「canonicalの設定」の方法を紹介します。

なお、投稿記事の移転方法については、既にはてなブログから一括ダウンロードをし、パーマネントリンクの変更などを済ませておく必要があります。
詳しくは下記の記事で紹介していますので、参考にしてみてください。

\簡単/はてなブログ記事を一括でダウンロードする方法
〜「はてなブログ」から「独自ドメインWordPress」への引越し〜 【はてなブログ記事を移行するには?】編です。 移行するには、先ず「はてなブログに投稿した画像全てをダウンロードする」必要があります。 私の制作環境はMacを...

サイト移転には、本来、Search consoleのヘルプでグーグルが書いているように、301リダイレクトを使った方法がオススメされています。

リダイレクトを使用してページの URL を変更する | Google 検索セントラル  |  Google Developers
リダイレクトは、検索エンジンとユーザーを正しいページに導く確実な方法です。各種リダイレクトを使用するケースと、それらの実装方法に関するリソースについて説明します。

ですが、はてなブログ(無料版)では外部への301リダイレクトが設定できないため、JavaScriptを用いた移転方法を紹介します。この設定で、無事にGoogleインデックスを移転することに成功しました。

今回紹介するJavaScriptでは次のことを行います。

  • 旧記事(はてなブログ記事内)での「移転しました」表示とリンク記載
  • 数秒後に、新URLへのリダイレクト
  • はてなブログで既に設定してしまっている canonical タグ※書き換え
※ canonical タグとは、Webページが重複している際、googleにインデックスして欲しいページを教えるタグ。また、新サイトがコピーサイトではないことを表します。

設定方法 〜はてなブログ〜

はてなブログのデザイン設定から、記事ページに一括で JavaScript を貼ることができます。

設定場所

以下、はてなブログの設定画面です。

  1. JavaScript を貼りつける画面を表示させます

    ダッシュボード => デザイン => レンチ・アイコン => 記事 => 記事上下のカスタマイズ => 記事上

  2. 「スマートフォン用ページの設定」として、チェックをいれます

    ダッシュボード => デザイン => スマートフォンのアイコン => 記事 => 記事上下のカスタマイズ => PCと同じhtmlを表示する

コード

この枠内に、次のコードを貼り付けます。

<p><b>移転しました。</b></p>
<p><b>約5秒後に自動的にリダイレクトします。</b></p>
<script type="text/javascript" language="javascript">
<!--
 // 新URLを作成
  var domain = "https://〇〇〇〇.com/"; // 新ドメイン + ディレクトリに置換。末尾はスラッシュ。
  var path = location.pathname.substr(6).replace(/\//g, "") + "-2"; // パス整形
  var url = domain + path; 

 // htmlリンクの書き出し
  document.write("<a href=\"" + url + "\">" + url + "</a></p>");

 // リダイレクトまでの待ち時間
  setTimeout("redirect()", 5000); // 5 sec
  function redirect(){
    location.href = url; 
  }
 
  // canonical の書き換え
  var link = document.getElementsByTagName("link")[0];
  link.href = url;
-->
</script>

 

コードについて ※赤マーカ部分は変更可能

新URLを作成

“新URLを作成”部分で、移転先URLを準備します。
このコードでは、リダイレクト元と先のURLが下記の様に想定していますので、適宜環境に合わせて修正ください。

  • はてなブログのURL => https://hatena-domain/entry/2020/10/06/012345
  • 移転先URL =>https://NEW-DOMAIN/20201006012345-2

これは、はてなブログからエクスポート、Wordpressにインポートしたときの標準的なURLです。記事URLを独自URLに設定していない場合は、ママでOKです。
なお、過去にはてなダイヤリーから、はてなブログに記事をインポートしている場合は、パスが hatena-domain/entry/20201006/012345 となっていますが、この場合でもOKです。

コード中の新ドメインの部分(https://〇〇〇〇.com/)は移転先のURLに置き換えてください。

htmlリンクの書き出し

この部分では、作成したurlを使い、<a href=””>タグを挿入します。”+”が、文字列を結合する演算子です。htmlを変更したい場合はここを適宜変更してください。
なお冒頭の「移転しました。」の文字列も適宜変更してください。

リダイレクト

5秒後にリダイレクトをする設定。
リダイレクトさせない場合は、この部分は削除してください。

canonicalの書き換え

はてなブログでソースコードの表示をすると、head 部分で該当記事のURLへ canonical タグの設定がされています。

<link rel="canonical" href="https://NEW-DOMAIN/20201006012345-2"/>

href 要素を、新URLへと置き換えます。実際には、linkタグに対して置換しています。
canonical タグは、head 部分の頭に近いところへ記述することが推奨され、はてなブログも同様となっていることから、一番目のlinkタグを書き換えることで上手くいきます。

Search Consoleで、移転をGoogleに知らせる

ページにリダイレクトを設定したとしても、Googleがリダイレクトを知るのは次のクロールのときです。クロール頻度が低いページでは数ヶ月かかってしまいます。

ですので、Search Consoleでクロール要求を必ずしてください。

  • Search Consoleから、旧サイトの「クロール => Fetch as Google」を選択
  • リダイレクトを設定したページのURL(旧サイトURL)を入力。「取得」ボタンを押す
  • ステータスが「リダイレクトされました」になっていることを確認
  • インデックス登録をリクエスト」ボタンを押し完了

まとめ

この方法では、301リダイレクトのようにきっちり移転できるわけではありませんが、ある程度ページランクのある旧サイトの個別記事から、新ブログにリンクがされます。そのため、新サイトで記事を読むことができます。

コードをひとつ貼り付けるだけで出来てしまうので、ぜひトライしてみてください。

上手く行かない場合 〜個別に記事上部へ埋め込む〜

どうしても上手く行かない場合、個別に JavaScript を貼ることでも可能です。下記のコードをはてなブログ記事上部へ記載してみてください。

<p><b>移転しました。</b></p>
<p><b>約5秒後に自動的にリダイレクトします。</b></p>
<script type="text/javascript" language="javascript">
<!--
 // 新URLを作成
  var domain = "https://〇〇〇〇.com/"; // 新ドメイン(最後のスラッシュは不要です)
  var path = location.pathname;
  var url = domain + path; 

 // リンクhtmlの書き出し
  document.write("<a href=\"" + url + "\">" + url + "</a></p>");

 // リダイレクト
  setTimeout("redirect()", 5000); // 5 sec
  function redirect(){
    location.href = url; 
  }
 
  // canonical の書き換え
  var link = document.getElementsByTagName("link")[0];
  link.href = url;
-->
</script>

コメント

タイトルとURLをコピーしました