はてなブログからWordPressに引き継いだパーマリンク設定を変更し、全記事を一括で301リダイレクトさせる方法

この記事には広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

ミクジン
ミクジン

寝ぐせの王様、ミクジンです

はてなブログからWordPressに移行した場合、記事の評価を受け継ぐため、パーマリンク設定を以下のようにしている人も多いかと思います。

パーマリンク設定

/entry/%year%/%monthnum%/%day%/%hour%%minute%%second%

ところが。

2020年4月30日にWordPressがバージョン5.4.1にアップデートされたことによって、このパーマリンク設定だと記事のページが表示されない事態になってしまいました。

関連記事

上の記事ではとりあえずWordPressのバージョンをダウングレード(ひとつ前の5.4へ)して対応しましたが、この先のアップデートで元に戻る可能性は低いそうなんですよね…。

…ああもう仕方ねえ!

ってことで今回、パーマリンク設定を変えて、記事の評価を落とさないように全記事を301リダイレクト設定しました。

301リダイレクト設定は記事ひとつひとつに設定しなきゃならないので、記事数が多いほど大変な作業になります。

しかしこれを一括でやってくれる方法が分かったので、自分がやった手順をここに記録しておきます。

なお、これから書く手順や使うプラグインは以下の記事を参考にさせていただきました。

スポンサーリンク

簡単な手順説明

初めに簡単な手順を書いておきます。

何かあった場合に備えて事前にバックアップを取っておくと安心です。

パーマリンク設定変更前の全記事のURLリストを取得

プラグイン『Export All URLs』を使って現在の全記事のURLを取得し、Excelなどで表を作成します。

パーマリンク設定の変更

パーマリンク設定を『%postname%』か『%post_id%』を入れたものに変更します。

WordPressを最新版にアップグレードする

オレの場合、とりあえずの対策でWordPressをバージョン5.4にダウングレードしていたので、ここで最新版にバージョンアップしました。

パーマリンク設定変更後の全記事のURLリストを取得

パーマリンク設定を変えて全記事のURLが変わっているので、STEP1のプラグインを使って変更後のURLをすべて取得し、表に追加します。

作った表で変更前と変更後のURLを見比べて、必要があれば修正する

変更後のURLに修正が必要な場合はここで修正します。※変更前のURLを修正してしまうとリダイレクトできなくなるので注意!

作った表でCSVを作成

修正が終わった表でCSVファイルを作成します。

プラグイン『Redirection』にCSVファイルをぶっ込んで、一括でリダイレクト(301)する

記事を一括でリダイレクトできるプラグインを使い、全記事を一気にリダイレクト処理します。

旧URLから新URLにちゃんと転送されているか確認

最後にちゃんと転送されているか確認して終了です。

スポンサーリンク

STEP.1「パーマリンク設定変更前の全記事のURLリストを取得する

記事の評価を引き継ぐために301リダイレクト設定をするには、パーマリンク変更前と変更後のURLが必要になります。

パーマリンクを変更してしまうと、変更前のURLを調べるのが大変になるので、最初に変更前のURLをメモっておくことが必須になります。

でもこれ…。

全記事分のURLが必要になるので、記事が多いほどひとつひとつメモってたら頭がおかしくなる可能性が高まります。

ミクジン
ミクジン

このブログ400記事以上あるから…

変更後のURLもメモると倍になるので、

その数800以上。

ミクジン
ミクジン

メモるだけで今年が終わってしまう…!

しかもそれに加え、変更前と変更後のURLがちゃんと合っているか確認までしなければなりません。

ああもうめんどくせえ…!

…とはいえ、せっかく301リダイレクト設定をしてもちゃんと転送されず、記事の評価がゼロになることを避けるためにはやらねばなりません。

そこでまずはいろんな手間を省くために、全記事分のタイトルとURLを取得できるプラグインを使って表を作ります。

『Export All URLs』を使って全記事のタイトルとURLを一気に取得する

Export All URLs

『プラグイン』→『新規追加』から、『Export All URLs』をインストールして有効化します。

『ツール』→『Export All URLs』から上の画面を開いたら、写真のようにチェックを入れます。

チェックを入れる場所
  • 1番上(記事タイプ)→『Posts(投稿記事)』
  • 2番目(取得するデータのタイプ)→『Titles』『URLs』
  • 3番目(どの状態の記事を取得するかの設定)→『Published(公開済の記事)』
  • 4番目(取得するデータ形式)→『CSV』

ちなみにURLだけでなくタイトル名も取得するのは、あとでチェックする時に分かりやすいからです。

最後に『Export Now』を選択します。

画面上部の『Click here』を選択すれば、公開済の全記事のタイトルとURLがCSVファイルでダウンロードできます。

CSVファイルで表を作成する

ダウンロードしたCSVファイルを使って表を作ります。

最終的にまたCSVファイルとして書き出せるならExcelでも何でもいいですが、オレは作業すべてをiPad Pro(第1世代)でやったこともあり、最初から入っている無料アプリのNumbersを使ってみました。

一応、iPad ProのNumbersを使った表の作り方も載せておきます。

iPad Proの『Numbers』を使った表の作成①

『ファイル』のアプリから、ダウンロードしたCSVファイルを選んで『コピー』します。

ちなみに

コピーせずにそのまま開くこともできますが、iPad ProにExcelなどのアプリが入っていると、勝手にそちらで開いてしまうことがあるので、そちらの説明は省きます。ブラウザから開こうとした場合も同様です。

アプリ『Numbers』

『Numbers』のアプリを開いてテンプレートを選択します。

いろいろありますが、オレは基本の『空白』を選びました。

写真のあたりにカーソルを合わせて『ペースト』します。

はい全部出ました。

下までスクロールしてみたら、オレのブログにはこの時点で公開記事が424ありました。

これをひとつひとつメモっていたらと考えると、ほんとに恐ろしいですね。

ミクジン
ミクジン

プラグイン様さまやで…

Post IDの行を削除した画面

タイトルとURLの他にPost IDCategoriesという列がありますが、こちらは使わないので削除しても大丈夫です。

ちなみにシートの名前は『チェック用』としておきました。

これでパーマリンク変更前の表ができたので、次の手順へ進みます。

スポンサーリンク

STEP.2「パーマリンク設定の変更」

本当は怖いのでイヤですが…。

オレはここでパーマリンク設定の変更をしました。

変更をしないと変更後のURLが取得できないので、何も進められません。

やるしかないんですよねこれが…。

『設定』→『パーマリンク設定』から上の画面になります。

オレはシンプルに%postname%(投稿名)のみの構造にしました。

カテゴリー名なんかを入れてしまうと、あとでそれらを変更した時に勝手にURLも変わってしまうからです。

投稿名なら自分で決められるので安心です。

ちなみに今回のバージョン5.4.1から、パーマリンクをカスタム構造にする時には以下のどちらかを入れないと投稿記事として表示されなくなったみたいです。

カスタム構造に入れるもの
  • %postname%(投稿名)
  • %post_id%(投稿記事のID)

このどちらかをカスタム構造の最後に入れることが推奨されてるそうです。

はてなブログから引き継いだ日付のみのパーマリンク設定で記事が表示されないのは、そういう理由だったんですね。

さて…。

パーマリンク設定を変更して記事のURLが変わったので、試しに変更前のURLで記事ページに飛んでみました。

当ブログの404エラー画面

404エラー…!

検索に載っているこのURLはすでにないのでこうなるのは知ってましたが…実際に見ると本当に悲しくなりますね。

ミクジン
ミクジン

早く301リダイレクトをしなきゃ

そんなわけで次に進みます!

スポンサーリンク

STEP.3「WordPressを最新版にアップグレードする

オレはとりあえずの対応としてバージョン5.4にダウングレードしてたので、ここで最新版にアップグレードしようとしました。

しかし。

現在バージョン5.4なのに「最新バージョンのWordPressをお使いです」しか表示されず…!

『今すぐ更新』ボタンがどこにもない!

最新は5.4.1だろうが!

画面にツッコミみましたがどうにもならず、途方に暮れていたのですが…。

プラグイン『WP Downgrade』

バージョン5.4にダウングレードするために使ったプラグイン『WP Downgrade』停止したら解決しました。

『今すぐ更新』ボタンも復活し、最新バージョンに更新完了。

次へ進みます。

スポンサーリンク

STEP4.「パーマリンク設定変更後の全記事のURLリストを取得」

パーマリンク設定を変更して記事のURLが変わっているので、STEP.1で使ったプラグイン『Export All URLs』で再び全記事のタイトルとURLのリストをCSVファイルで取得します。

取得したら、これまたSTEP.1で作った表に変更後のリストを追加します。

オレはiPad Proでやったので、そちらを載せておきます。

iPad Proの『Numbers』を使った表の作成②

『ファイル』のアプリから、ダウンロードしたCSVファイルを『コピー』するところまでは一緒です。

STEP.1で作った『チェック用』のシートにペーストします。

写真の場所にカーソルを合わせて『ペースト』を選択。

はい出ました。

表の左側のタイトルとURLが変更前、右側が変更後のものになります。

タイトルも一緒に表にしたおかげで、表にズレがないか見やすいと思います。

それではもっと見やすいように、必要のないPost IDCategories、そして一番右の空白の行を削除します。

ついでに行の幅も調整しました。

ここから変更前と変更後のURLを見比べて、必要があれば修正していきます。

STEP.5「作った表で変更前と変更後のURLを見比べて、必要があれば修正する」

ざっと見比べてみたら特に表のズレはなかったのですが、変更後のURLがなぜか2タイプに別れてました。

変更後のURLを修正するかどうかは各自の好みによると思うのですが、ここではオレが修正しなかったもの修正したものを載せておきます。

変更後のURLを修正しなかったもの

修正しなかったのは、日付はそのままで記号だけが変わったタイプです。

URLのうち、赤枠の部分がパーマリンク設定が反映されるところです。

左が変更前で、右が変更後のもの。

オレは投稿名だけのパーマリンク設定にしたので、『entry/』がなくなりました。

そして日付の間にあった『/』が『』に変更されています。

日付の間の記号が変わっただけだし、どうせ301リダイレクトするし、このタイプはそのままにすることにしました。

変更後のURLを修正したもの

修正したのは、完全に文字化け的な雰囲気になっちゃったタイプです。

これはたぶん、タイトル名(投稿名)が日本語のままURLにブッ込まれてる状態だと思われます。

なぜ日付のままタイプ文字化けタイプに別れたのかはよく分かりませんが、文字化けタイプは見た目がアレだし、長すぎるし、あとでGoogleアナリティクスなんかで見る場合にもしんどいので修正することにしました。

修正した方法(iPad Pro・Numbers使用)

またもやiPad ProNumbersを使った場合を載せておきます。

NumbersではURLを入れると自動でリンクを検出し、表のURLから直接そのサイトのページに飛べるようになってます(設定で変更可能)

URLの下に線が引いてあるのはそのためですが、修正したい時はそれを一旦解除します。

URLを選んだ時に出てくる『リンク設定』から、『リンクを解除』を選びます。

URLの下の線が消えて修正できるようになったので、自分の好きなものに変更します。

注意!

パーマリンク設定変更前(左側)のURLは修正しないでください。修正すると301リダイレクトがうまくできなくなります。

この記事の場合はシンプルに『switch-data-share』としました。

次に『switch-data-share』をコピーして、WordPressでこの記事の編集画面にいき、記事のURLを修正します。

赤枠のところにペーストし、記事を更新すれば完了です。

これで表と記事のURLが一致しました。

パーマリンク設定を投稿名にすると、自分で自由に決められるようになるのが良いところですね。

逆に、これから新記事を書く時には自分でちゃんと決めないと、日本語のタイトルそのままのURLになってしまうので注意が必要ですが…。

こんな感じで気になったURLはすべて修正しました。

STEP.6「作った表でCSVを作成」

表が完成したら、作った表でCSVファイルを作成します。

これは301リダイレクトを一括でやるために必要な作業になります。

これまたiPad ProNumbersでの作り方を載せておきます。

『チェック用』のシートを複製します。

『チェック用』のシートはまだ使うので、そのまま残しておいてください。

複製したシートには分かりやすいように『インポート用』とでも名前を付けておきます。

『インポート用』シートのタイトルの列を2つとも削除し、変更前のURLの列の1番上に『source』、変更後のURLの列の1番上に『target』と入力します。

画面右上・1番右のアイコンから『書き出し』→『CSV』を選びます。

『ファイルに保存』を選び、アプリ『ファイル』内の好きな場所に保存します。

アプリ『ファイル』を開き、保存したファイルを選びます。

ひとつファイルが追加されるので、中身を確認します。

ファイルが2つありますが、これには作ったシートの名前がついています。

『インポート用』となっているのがこの後使うファイルです。

STEP.7「プラグイン『Redirection』にCSVファイルをぶっ込んで、一括でリダイレクト(301)する」

それではいよいよ全記事を一括で301リダイレクトするわけですが、これにはプラグイン『Redirection』を使います。

Redirection』については以下の記事を参考にさせていただきました。

詳しい使い方は参考記事を見てもらえば分かりますが、ここではオレがやったことだけ載せておきます。

『Redirection』のインストール

『プラグイン』の新規追加から探してインストールし、有効化します。

初期設定

『ツール』→『Redirection』を選ぶと初期設定の画面になるので、『セットアップを開始』を選びます。

3つのチェック項目すべてにチェックを入れて『セットアップを実行』を選びます。

少しした後に『セットアップを実行』が『セットアップ完了』に変わるので、もう一度選択します。

この画面になって『完了』を選んだら、301リダイレクト設定をしていきます。

CSVファイルで301リダイレクト設定をする

このプラグインではいろんなリダイレクトの設定ができるみたいですが、初期設定では301リダイレクト設定になっているのでそのまま使います。

ひとつひとつ個別に設定することもできますが、ここではCSVファイルを使った一括リダイレクト設定のやり方を載せておきます。

ちなみにこの作業はおなじみのiPad Proを使ってやったものなので、出てくるファイル画面などはiPad Proのものになります。

画面上のタグから『インポート/エクスポート』を選び、『ファイルを追加』を選択します。

『インポート用』のファイルを選びます。

『アップロード』を選べば完了です。

ミクジン
ミクジン

一瞬で終わった…

STEP.8「旧URLから新URLにちゃんと転送されているか確認」

最後に、パーマリンク変更前のURLにアクセスした場合に、ちゃんと変更後のURLに転送されているか確認します。

Redirection』から確認することもできますが、こちらでは記事のタイトルまでは書いてなかったので、オレは確認にiPad ProのNumbersで作った『チェック用』のシートを使いました。

Numbers

前にも説明しましたが、NumbersではURLを自動でリンク検出してくれるので、表のURLから直接そのサイトのページに飛べるようになってます。

この機能を使って変更前のURLにアクセスし、ちゃんと変更後のURLに転送されてそのページにアクセスできればオッケーです。

結果、すべてちゃんと転送されていることが確認できました!

最後に

ひとつひとつやってたら危なく今年が終わるところでしたが、思ったより短い時間ですべて終わらせることができて安心しました。

参考にさせていただいた方々、本当にありがとうございました。

ミクジン
ミクジン

本当に助かりました

当ブログもお世話になってます

スポンサーリンク

4 COMMENTS

アバター maco

すっごく読みやすくなって、みやすくなっていてびっくりしました!!

なんだか、大変でしたね
いっぱい調べて、ひとつひとつ解決していったことが、伝わってきました

返信する
ミクジン ミクジン

macoさん
見やすくなったって言われると、ちょこちょこブログをいじってるかいがあって嬉しいです。
そしてたまに様子を見にきてくれるのは、ヨダレが出るくらいすごく嬉しいです(笑)

返信する
アバター Pochi

はじめまして。
はてなブログからWPに移行し、全く同じ状態になって悩んでいたのですが、こちらの記事のおかげで対処できました。
すごく分かりやすくまとめて下さり、本当にありがとうございました!

返信する
アバター 匿名

はじめまして。約2年間悩んでいた問題が当記事で全面解決しました。

はてなブログからの移行したあとの変な表示問題で、ず~~~~~っとWordPressをアップデートできず、かといってリダイレクトのやり方もイマイチわからずでした。

本当に、本当にありがとうございました。

返信する

ミクジン へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※コメントは日本語で入力してください(スパム対策です)