はてなブログの記事を移すだけなら、めちゃ簡単だった
ここ数日、はてなブログの無料プランのブログを、すでに運営しているWordpressのサイトに移転しようかと思って、その方法を調べています。
その理由は前回の記事→はてなブログ無料プランからWordpressに移転したいと思ったワケ
調べてみて、記事をエクスポートして新しいブログにインポートできることは分かりました。
なので、記事を一つ一つコピーするっていう手間はいりません。
はてなブログにはエクスポート機能という、ブログの移転やバックアップのための機能がついています。
設定→詳細設定のところにエクスポート機能があります。

↓

エクスポートのポイントはコレ
- はてなブログのエクスポート機能では、MT(Movable Type)形式のブログデータとして書き出しする
- はてなブログの文字コードはUTF-8
- 画像はエクスポート機能ではバックアップされないので、自分で行う必要がある(はてなフォトライフという所にデータがある)
WordPress側でも、MT(Movable Type)形式のブログデータをインポートできるようになっているので、簡単に読み込めます。
ダッシュボードのツール → インポート → Movable Type と TypePad でインポートできます。

記事自体を移動させるのは、けっこう簡単にできるんですね。
記事を移行した後に出てくる問題点とは?
さて、記事をインポートした後に出てくる問題についてです。
色々な移転経験者のブログなどを拝見させていただいて、自分の場合に出てくる問題を上げてみます。
- はてな特有のキーワードリンクがついたままインポートされる
- カード形式のリンクがうまく表示されなくなる
- 画像がはてなフォトライフ内から読み込まれることになる
- URLを打ち直さなければいけない
- ドメイン自体が変わるので、今まできていたアクセスを新しいブログに流す方法を考えなければいけない
ざっくり考えて問題点はこんなところ。
記事内のリンクがうまく表示されなくなったり、キーワードリンクがたくさんついている点については、一つ一つチェックして修正していくしかないですね。
画像がはてなフォトライフから読み込まれる点については、別に不満が無い限りはそのままでもいいかなと感じます。
はてなブックマークは使い続けるので、はてなのアカウントはそのままにします。
URLについてはかなり後悔しています。
なぜなら、はてなブログでの記事のURLを『記事タイトル』に設定していたため、日本語URLでした。
なので、コンピューターさんが認識する記述に直すと…
entry/2016/09/21/%E3%83%A2%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A2%E3%81%AE%E3%83%95%E3%82%A1%E3%83%B3%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BF%9D%E6%B9%BF%E3%82%92%E5%AE%9F
こんな宇宙人とのやりとりのようなURLになってるわけです。
たった21文字の日本語がこうなります。
で、新しいほうのブログでは、SEOの観点も視野に入れたい。
アメリカ人であるGoogleクローラーさんにもURLの意味がすぐに分かるようにしようと思っています。
つまり、英単語で短いURLにするということ。
Googleのほうも日を追うごとに進歩してきているので、もしかしたらこんな長い日本語URLでも問題はないのかなあ??なんて思ったりしますが(日本語ドメインが上位表示される件然り)、短くて分かりやすい方が管理するにおいても便利ですよね。
というワケで、インポートをした後に、すべての記事のURLを変更するという作業が待っています。
これからブログを始める方には、是非、初めからカスタムURLで英単語や連番などのURLにすることをオススメします!!
ブログを移転することになった場合に、私のような痛い目を見ないで済みます。
ドメインと記事URLを変えるから301リダイレクト無しではアクセスはゼロになる…
そして、今回のブログ移転の最大の問題は
- ドメイン自体が変わるので、今まで来ていたアクセスを新しいブログに流す方法を考えなければいけない
これですね!!
これまでの問題なんて、ちょっと頑張れば解決できる問題。
でも、この『アクセスを新ブログに送る』というミッションについては、かーなーり考えて頑張らなきゃいけない問題なんですよね。
なんでコレが難しいかというと、
【はてなブログの無料プランでは301リダイレクトを付けることができない】
から。
301リダイレクトを設定するためには、サイトの.htaccessというファイルを触れる必要があります。
しかし、無料ブログではこのファイルをいじれない!!
サイトの根幹のファイルなので、使用者に勝手にいじくられては困るので当然なのです…。
が!!!
全く違うドメインの、全く違うURLに変更する訳です。
301リダイレクトを使えないならどうすればいいのでしょうか???
301リダイレクトとは
ちなみに…
301リダイレクトとは、サイトの移転の際に設定すると、古いURLに来たアクセスが自動的に新しいサイトに飛ぶやつ。
サイトの恒久的な移転のときに使う。
Googleのインデックスに関しても、301リダイレクトを使うことで今までのサイトのステータスがそのまま引き継がれる。
だから、移転後の検索結果も同じ位になるようにGoogleのほうでも働いてくれます。
ページの URL の変更と 301 リダイレクトの使用
検索エンジンの結果で表示されるページの URL を変更する必要がある場合は、サーバー サイドの 301 リダイレクトを使用することをおすすめします。これは、ユーザーや検索エンジンが正しいページにたどり着くことを保証する最善の方法です。ステータス コード 301 は、ページが別の場所に完全に移転したことを意味します。
引用:Googleサーチコンソールヘルプより
Googleさんは、サイト移転する場合には301を使って教えてね!とおっしゃってるわけである。
では、301が使えない無料ブログの場合にはどうすればいいのだろうか??
301が使えない時の最終手段はcanonicalとmeta refreshだ!!
301が使えない無料ブログの場合にはどうすればいいのかについて、WEB上の情報を拾い集めてみると、こんなことが分かった。
301リダイレクトが使えないサイトの移転の場合、一番有効なのは
- canonical(カノニカル)
- meta refresh(メタリフレッシュ)
この2つを使うということ。
このことをGoogleの中の人も推奨しているみたい。保証はしてないけどね。
この2つを同時に使うことで、301リダイレクトと同じように動いている例もある、と。
ほうほう…
これしかないならやるしかあるまい!!!
しかし、metaリフレッシュは知ってるけど、カノニカルって初めて聞きました。
知らなかったので調べてみた。
canonical(カノニカル)とは?
【canonicalの本来の使い方】
中身が一緒のコンテンツのページが複数ある場合に、どのURLのページが一番優先されるページなのかをクローラーに伝える。
一番大事なページがコピーページと間違われて検索結果から削除!なんていうのを回避できる。
他のサイトからリンクをもらうときにも、リンクを貰うURLが一つの方が非リンクパワーも上がります。
同じサイトで、www付とそうでないものを統一したい場合にも使われます。
最近本格的に始まったAMPの場合でも、AMP バージョンと非 AMP バージョンの両方のページがある場合にはcanonicalとamphtmlを使ってくださいね!となっている。(これは余談)
- 非 AMP バージョンでは、AMP バージョンのページを参照して Google やその他のプラットフォームが AMP ページの情報を認識できるようにします。
<link rel="amphtml" href="https://www.example.com/url/to/amp-version.html" />
- AMP バージョンでは、次のテキストを追加して非 AMP の正規バージョンを参照します。
<link rel="canonical" href="https://www.example.com/url/to/regular-html-version.html" />
スタンドアロン AMP ページ(非 AMP バージョンがないページ)では、AMP ページでそのページ自体を正規バージョンとして指定する必要があります。
<link rel=”canonical” href=”https://www.example.com/url/to/amp-document.html” />
【canonicalの書き方】
サイトの<head>
セクションに書くもの。
リンク要素でこんな風に書く。
<link rel="canonical" href="https://アクセスさせたいサイト.com/〇〇" />
なるべくなら、セクションの最初の方に書くのがいいそうです。
ちなみに、このカノニカルの効果は絶対ではないそうです。
注: Google ではこのような指定に配慮するよう努めますが、必ずしもこのとおりになると保証することはできません
って書かれていますっ!!
meta refresh(メタリフレッシュ)とは?
【meta refreshの使い方】
『10秒後に新しいサイトに移動します…』っていうやつです。
設定した時間になると、自動的に設定したURLにページが遷移します。
時間は0秒から設定出来ます。
でも、今回の301リダイレクトの代わりとして使う場合には、0秒は使わない方がいいようです。
0秒リフレッシュって、たまにサイトのスパムなどで使われることがあるため、Googleから見ても評価は良くないとのこと。
301の代わりとして使うのであれば、『サイトが移転したので転送します!』ときちんとユーザーの目に触れるところに書いて、数秒待ってから新しいページに飛ばすべき。
その間に離脱される可能性も高いんですが、Googleからの評価の方が移転の際には大事かなと思います。
【meta refreshの書き方】
meta要素なので、サイトの<head>
セクションに書く。
こんな風に書く。
<meta http-equiv=”refresh” content=”0; URL=http://新しいブログのURL.com/〇〇”>
content=”0; の数字の部分がページ遷移までのタイムリミットになります。
今回、私は3秒にしてみようかと思っています。
はてなブログでは個別記事ごとにheadセクションを変えられないという問題
はてなブログでは、無料プランでもhead内への書き込みはできるんです。
カノニカルとmetaリフレッシュはどちらもheadの中に書くのでOKなんですね。
ただし…
無料ブログって、headエリアをたった一つのテンプレートで生成してます。
だから、個別記事ごとに設定出来ない!
カノニカルは、新ブログのTOPページに設定することで良しとして、一番のネックは各記事のリフレッシュをどうするのか??
もしも、旧URLと新URLのドメイン以降のURLを全く同じにするのであれば、無料ブログサービスの独自タグを使って各記事にアクセスを流すことが可能です。
だけど、今回は新サイトの記事URLは全部変更する予定です!
これまでの日本語URLは辞めたいんですよ。
そうなると、各記事のメタリフレッシュを個別で設定しないといけないです。
でも個別記事のheadは変えられない…。
他の方がどうしているのか探ってみたら、そんな場合は諦めてサイトのTOPページにリフレッシュを設定している方を多数発見。
でもね…
全部のアクセスをTOPページに流すのは、ちょっとお粗末なんじゃないかと思ったワケです。
知りたいことがあって調べてやってきた人が、答えが書いてあるページじゃなくてサイトのTOPページに飛ばされたら絶対に帰っちゃうでしょ。
離脱しちゃうでしょ?
飛んだ先の新サイトから記事を探して読んでくれる人なんていないと思ったの。
だからなんとしても個別記事ごとにリフレッシュしたかった。
個別記事ごとにメタリフレッシュを書くことはできない。
なら、どうする??
次はこの問題について深堀りしながら解決策を探っていきます!