はてなブログからWordPressへの移行の際、記事URLが変わってしまい、SNSやはてなブックマークのリンクが切れてしまうのは避けたいものです。
またURLが変わってしまうと、移行後のサイトが移行前のサイトのコピーサイトだとみなされると重複ペナルティを受けてしまう危険性もあります。
したがって、はてなブログからWordPressへの移行は、URLを変更しないように行うのがおすすめです。
そこで今回は、URLを変えずに「はてなブログ」から「WordPress」へ移行する方法についてご紹介します。
前提条件
URLを変更せずに移行するには、はてなブログを独自ドメインで運営している必要があります。はてなブログ無料版は独自ドメインが使えないので、無料版の場合は同じURLでの移行はできません。
はてなブログの記事URL形式について
はてなブログからWordPressへの移行の際の設定は、はてなブログの記事URLの形式により異なります。はてなブログの記事に設定されるURLには次の2つの形式があります。
(1)標準フォーマット
特になにも設定してない場合、はてなブログでは、記事が投稿された日時からURLが生成されます。
https://(ブログのURL)/entry/yyyy/mm/dd/hhmmss
例えば、2022年7月1日11時20分32秒に投稿された記事では、URLは次のようになります。
https://(ブログのURL)/entry/2022/07/01/112032
(2)カスタムURL
はてなブログではカスタムURL機能を使うことで、記事を投稿する時にURLを任意列の文字にしたり、過去に標準フォーマットで投稿した記事のURLを変更することができます。URLのentry/以下に任意の文字列が割り当てられます。
https://(ブログのURL)/entry/(任意の文字列)
通常は何の記事かわかるように記事のタイトルを簡潔に入れておきます。
例えば「custom-url」という文字列にした場合、URLは次のようになります。
https://(ブログのURL)/entry/custom-url
カスタムURLに日本語を割り当てることもできますが、日本語は英数字に変換(エンコード)されてしまいURLが長くなってしまうのでおすすめしません。
標準フォーマットでもカスタムURLでも「https://(ブログのURL)/entry/」の部分は共通になります。「entry/」以下の部分の記事URL形式によって、移行先のWordPressでのパーマリンク設定が異なります。
WordPressでのパーマリンク設定
パーマリンク設定とは、WordPressの記事URLをどのように生成するのかを定める設定です。WordPress管理画面の「設定 > パーマリンク設定」から設定することができます。
パーマリンクの設定は、いくつかの設定例から選ぶ他、「カスタム構造」を使って自分の好きなURL形式を指定することができます。はてなブログから移行する際は、はてなブログのURL形式に合わせて、パーマリンク設定の「カスタム構造」を設定します。
はてなブログの記事URL形式ごとのパーマリンク設定方法は以下の通りです。
「カスタムURL」の場合の設定方法
はてなブログで「カスタムURL」を使用している場合は、WordPressへの移行はとてもカンタン。パーマリンク設定のカスタム構造に以下のコードを記述するだけで同じURLのまま移行できます。
/entry/%postname%
「標準フォーマット」の場合の設定方法
はてなブログで「標準フォーマット」のURLを使用している場合は、少し大変かもしれません。というのも、WordPressでは日時のみのURLは非推奨とされており、WordPress5.4.1からは日時のみのパーマリンクが使えなくなってしまったのです。
そのため、もしカスタム構造を以下のように投稿日時で生成するように設定してしまうと記事が個別ページ(single.php)ではなくアーカイブページ(archive.php)として表示されてしまうという問題が発生してしまいます。
/entry/%year%/%monthnum%/%day%/%hour%%minute%%second%
WordPressを5.4以前にダウングレードすれば回避可能ですが、セキュリティを考慮すればとてもおすすめはできません。
そこで、標準フォーマット形式のはてなブログでWordPress移行後も同じURLを使用するためには、以下の手順で設定を行います。
(1)パーマリンク設定のカスタム構造に以下のコードを記述
/entry/%year%/%monthnum%/%day%/%postname%
(2)URLスラッグの書き換え
(1)のように設定した状態で、はてなブログでエクスポートした記事データをWordPressにインポートすると、記事のURLは次のようになります。
https://(ブログのURL)/entry/yyyy/mm/dd/yyyy-mm-dd-hhmmss
例えば、2022年7月1日11時20分32秒に投稿された記事では、URLは次のようになります。
https://(ブログのURL)/entry/2022/07/01/2022-07-01-112032
これは移行の過程で、はてなブログ標準URL形式「entry/」以下の「yyyy/mm/dd/hhmmss」部分が、WordPressのURLスラッグに置き換わったためです。URLスラッグでは通常「/」が使用できないため「/」が「-」に変換され「yyyy-mm-dd-hhmmss」と表示されてしまうのです。
このURLスラッグを元々のはてなブログのURLになるように、記事1つ1つ書き換えることで、同じURLのままWordPressへ移行することができます。URLスラッグの書き換え手順は次の通りです。
(a)WordPress管理画面の「投稿」からURLスラッグを変更したい記事の編集画面を開きます。
(b)パーマリンクの「編集」をクリックしURLスラッグを書き換え
https://(ブログのURL)/entry/yyyy/mm/dd/yyyy-mm-dd-hhmmss
↓
https://(ブログのURL)/entry/yyyy/mm/dd/hhmmss
同じURLで移行するためには、この書き換え作業を全ての記事で行わなければなりません。あまりに記事が多い方はこの機会に記事の見直しを行い、あまりアクセスの見込めない記事については同じURLでの移行を諦めてしまうのも1つの手です。
もしくはReflectionプラグインを使用して、これまでのURLから新しいURLへリダイレクトさせるという方法もあります。
「標準フォーマット」と「カスタムURL」が混在している場合
「標準フォーマット」と「カスタムURL」が混在していて、且つ全ての記事をはてなブログと同じURLで移行したい場合は、かなり大変です。
手順は次の通り。
(1)パーマリンク設定のカスタム構造に以下のコードを記述
「カスタムURL」の場合の設定方法と同じように、パーマリンク設定のカスタム構造に以下のコードを記述。
/entry/%postname%
(2)「標準フォーマット」形式の記事のURLスラッグの書き換え
(1)の設定ではてなブログの記事をインポートすると、標準フォーマット形式の記事のURLは次のようになってしまいます。
https://(ブログのURL)/entry/yyyy-mm-dd-hhmmss
はてなブログの時と同じURLにするためにはURLスラッグの「-」を「/」に書き換えれば良いのですが、URLスラッグに「/」が入力しても勝手に「-」に変換されてしまいます。
これを回避する方法について、下記の記事で詳しく解説されていました。functions.phpへのコード追記も必要なため、トラブルが起きた場合の対応に自信のない方は手を出さない方が良いかもしれません。
URLを変えずに「はてなブログ」から「WordPress」へ移行するためのパーマリンクの設定方法の紹介は以上です。
コメント