【WordPress】パーマリンク変更時の301リダイレクト設定

【WordPress】パーマリンク変更時の301リダイレクト設定のアイキャッチ画像

記事公開後にパーマリンクを変更したい場合の、リダイレクト設定や注意点を紹介します。

パーマリンクとスラッグとは?

パーマリンク&スラッグ

パーマリンクとは、上記画像の赤枠内のような記事のURL全体のことを言います。

この記事のパーマリンクは、
https://heeeehuuum.club/change-permalink-301-redirect
です。

上記画像の赤枠のパーマリンク内にある、青線部分がスラッグです。
WordPressの場合はパーマリンク設定で決めたものになるので、サイトによって異なります。

当サイトのパーマリンク設定は、
https://heeeehuuum.club/投稿名(postname)
にしています。

この記事のスラッグは、
change-permalink-301-redirect
の部分です。

投稿名(スラッグ)を日本語のままにした場合

スラッグ入力忘れ

スラッグに投稿名が使用される設定の場合のパーマリンクは、記事をそのまま公開した場合は、日本語の記事タイトルがそのままスラッグになります。
日本語を使用したURLを日本語URLといいます。

ブラウザ上では、
https://heeeehuuum.club/【WordPress】パーマリンク変更時の301リダイレクト設定
と日本語に変換して表示されます。

実際のURLは、
https://heeeehuuum.club/%E3%80%90WordPress%E3%80%91%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E5%A4%89%E6%9B%B4%E6%99%82%E3%81%AE301%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E8%A8%AD%E5%AE%9A
と非常に長いURLになってしまいます。
リンクを貼る時は、未変換のそのままのURLが表示されるので、あまりおすすめできません。

投稿名(postname)変更時のリダイレクト

英数字の投稿名(スラッグ)を入力するのを忘れてそのまま公開した場合は、日本語URLになってしまいますが、それを後から変更するというのはたまにはあると思います。
それに限らず別の投稿名に変更した場合は、特に何もしなくてもWordPressの元々の機能で、旧パーマリンクから新パーマリンクへ自動的にリダイレクトされます。

パーマリンク設定

パーマリンク設定

極力シンプルなパーマリンクがベストなので、当サイトの場合は
https://heeeehuuum.club/投稿名(postname)
にしていますが、変更前は、
https://heeeehuuum.club/投稿名(postname).html
でした。
この『.html』を無くしたくて思い切って変更することにしました。

例えば
https://heeeehuuum.club/カテゴリー名/投稿名(postname)
に設定している場合、後から違うカテゴリーに変更した場合、パーマリンク(URL)も変わってしまいます。
投稿名のみにしておけば、投稿名さえ変わらなければ影響しません。
パーマリンク設定、基本の
https://heeeehuuum.club/?p=123
というように、投稿ID(post_id)でも良いですが、どの記事のパーマリンク(URL)かが一目瞭然ではないため、投稿名(postname)を採用しています。

パーマリンクは変更しない方が良い?

最初は何がどうベストなのか、よく分からずにパーマリンク設定をしていたりします。
ああしたいこうしたいというのは、大体あとからどんどん出てくるものです。
URLが変わってしまうということは、Googleなどの検索順位にも影響してくるので、一度決めたらコロコロと変えるべきではありません。
それでも、気に入らないパーマリンクのままずっといくというのは、なかなかのストレスです。
そんなことで、きちんとした手順でパーマリンクの変更、リダイレクト設定をしてすっきりしてしまおうことにしました。
基本的には、パーマリンクは一度決めたら変えるべきではないので、パーマリンク変更をする場合は、よく考えた上でどのように変更するのかを決めておきましょう。

パーマリンク変更&リダイレクト設定の手順

  1. WordPressプラグイン『Export any WordPress date to XML/CSV』をインストール
  2. 記事のパーマリンクなどのデータ(CSV)を一括でエクスポート(出力)
  3. CSVデータをリダイレクト設定用に編集
  4. .htaccessに301リダイレクト設定を記述
  5. WordPressプラグイン『Search Regex』をインストール
  6. 記事内の内部リンクを一括変更
  7. パーマリンク設定変更

極力プラグインは使用しないようにしています。
プラグインはとても便利ではあるのですが、多くのプラグインをインストールしてしまうと重くなってしまうからです。
そのため、プラグインなしでなんとかなることは、極力なしで行なっています。
あと、プラグインがいろいろな動作に影響するので、何か不具合が起こった時に、どのプラグインが原因かを探るのが大変なので必要最小限にしています。

今回使用する、『Export any WordPress date to XML/CSV』と『Search Regex』は、パーマリンク設定変更、内部リンク変更、リダイレクト設定完了後は、削除しても問題ありません。

『Export any WordPress date to XML/CSV』をインストール

プラグインインストール

『ダッシュボード』→
『プラグイン』→
『新規追加』をクリック

プラグイン追加画面

右上の赤枠部分の検索フォームに
「wp all export」か
「Export any WordPress data to XML/CSV」
と入力する。

Export any WordPress data to XML/CSVをインストール

「Export any WordPress data to XML/CSV」を見つけて
『今すぐインストール』をクリック。

Export any WordPress data to XML/CSVを有効化

「Export any WordPress data to XML/CSV」を『有効化』する。

『Export any WordPress data to XML/CSV』でエクスポート

新規エクスポート画面へ遷移

『ダッシュボード』→
『すべてエクスポート』→
『新規エクスポート』をクリック

新規エクスポート1

『投稿タイプを選択』と表示されたセレクトボックスの右端、赤枠内の『▼』をクリック

新規エクスポート2

『投稿』を選択する

新規エクスポート3

『エクスポートファイルをカスタマイズします。』をクリック。

新規エクスポート4

破線枠内にある、『ID』と『Title』を残して、『Content』は不要なので削除します。
全記事の『記事ID』と『記事タイトル』のデータを出力するということです。

新規エクスポート5

『削除』をクリックする。

新規エクスポート6

『Content』が削除できました。
右にある、『利用可能なデータ』の一番上にある『標準』をクリックする。

新規エクスポート7

一番下にある『Permalink』を破線枠内へドラッグ&ドロップする。

新規エクスポート8

『ID』『Title』『Permalink』が破線枠内にあります。
今回のリダイレクト設定に必要な、全記事の『記事ID』『記事タイトル』『記事パーマリンク』のデータを出力できるようになりました。
『続行』をクリックします。

新規エクスポート9

『エクスポートの確認&実行』をクリック。

新規エクスポート10

『CSV』をクリックする。

新規エクスポート11

全記事CSVデータのダウンロード完了。

Googleスプレッドシートにインポート

インポート1

Googleスプレッドシートを使用します。
Excelでも同様のことができますが、Web版の場合はそのままではインポートができないため、手っ取り早いGoogleスプレッドシートを使用しています。
尚、筆者のパソコンはMacです。
Windowsの場合、操作や表示が違う箇所もあると思うので、その場合は適宜作業してください。

『Googleスプレッドシート』を開く→
『新しいスプレッドシートを作成』の『空白』を選択。
『ファイル』→
『インポート』をクリック。

インポート2

手順通りに進めていたら、『マイドライブ』にダウンロードしたCSVファイルが表示されます。
該当ファイルを選択して、赤枠の『選択』をクリック。

インポート3

事前に用意したCSVファイルを使用する場合や、『マイドライブ』にCSVファイルが表示されていない場合は、『アップロード』をクリックします。
破線枠内にCSVファイルをドラッグするか、『デバイスのファイルを選択』をクリックしてCSVファイルを選択します。
『Export any WordPress data to XML/CSV』でエクスポートしたCSVファイルの場合は、『ダウンロード』フォルダ内にあるはずです。

インポート4

『データをインポート』をクリック。

インポート5

A列に『記事ID』、B列に『記事タイトル』、C列に『記事パーマリンク』という全記事のデータをインポートできました。

CSVデータを編集する

CSVデータ編集1

Cのパーマリンクの列の幅を広げます。

『C』の部分をクリックして、C列全体を選択→
C列選択範囲内で右クリック + 『コピー』をクリック
or
『command + C』

CSVデータ編集1

D列全体を選択→
D列選択範囲内で右クリック + 『貼り付け』をクリック
or
『command + V』

CSVデータ編集2

C列のパーマリンクのデータをD列にそのままコピーできました。
C列はリダイレクト元の旧パーマリンクで、D列はリダイレクト先の新パーマリンクです。

CSVデータ編集3

D列全体を選択→
『編集』→
『検索と置換』をクリック

CSVデータ編集4

この検索と置換機能を使用すれば、一つ一つ変更していくという時間と手間のかかる作業をしなくても、一括で文字列の置き換えができます。
この機能を使用して、選択しているD列のパーマリンクの文字列を任意の文字列に置き換えます。

CSVデータ編集5

当サイトを例に、パーマリンク末尾の「.html」をなくして「投稿名」の後ろを何もなしにします。

『検索』に「.html」を入力 →
『置換後の文字列』には「何も入力しない」→
『すべて置換』をクリック

CSVデータ編集6

これでパーマリンク末尾の「.html」がなくなりました。

その他の検索置換(正規表現)のやり方

CSVデータ編集7
  • ドメイン名/日付/投稿名
  • ドメイン名/カテゴリー名/投稿名

というようなパーマリンクを例えば
ドメイン名/投稿名
というパーマリンクに変更する場合は、検索置換の仕方が変わります。

『正規表現を使用した検索』にチェックを入れます。
そうすると、『大文字と小文字の区別』にも勝手にチェックが入ります。
この項目は、適宜変更してください。
正規表現による検索置換のやり方の一例を紹介します。

「ドメイン名/日付/投稿名」から「ドメイン名/投稿名」に変更

変更前パーマリンク:
https://heeeehuuum.club/2022/09/19/投稿名
変更後パーマリンク:
https://heeeehuuum.club/投稿名

『検索』に入力:
https://heeeehuuum.club/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.*)
『置換後の文字列』に入力:
https://heeeehuuum.club/$1

「ドメイン名/カテゴリー名/投稿名」から「ドメイン名/投稿名」に変更

変更前パーマリンク:
https://heeeehuuum.club/カテゴリー名/投稿名
変更後パーマリンク:
https://heeeehuuum.club/投稿名

『検索』に入力:
https://heeeehuuum.club/(.*)/(.*)
『置換後の文字列』に入力:
https://heeeehuuum.club/$2

https://heeeehuuum.club/投稿名/
というように、末尾のスラッシュありなしは、そのサイトの設定によるのでスラッシュありの場合はつけ忘れに気をつけてください。

CSVデータを編集する つづき

CSVデータ編集8

C列全体を選択→
『編集』→
『検索と置換』をクリック

CSVデータ編集9

C列のリダイレクト元のパーマリンクのドメイン名部分は不要なので削除します。

『検索』に「ドメイン名/」を入力
当サイトの場合は
「https://heeeehuuum.club/」と入力
『置換後の文字列』に「/」

CSVデータ編集10

C列のパーマリンクが、ルートパスになりました。

CSVデータ編集11

B列の『Title』は、不要なので削除します。

B列全体を選択→
B列選択範囲内で右クリック→
『列を削除』をクリック

CSVデータ編集12

A列の『ID』
を全て「Redirect 301 」
(※301の後ろに半角スペースあり)
に変更します。

A列2行目に「Redirect 301 」と入力→
A列2行目をコピー

CSVデータ編集13

A列3〜最終行を選択→
選択範囲内で右クリック + 『貼り付け』
or
command + V

CSVデータ編集14

C列全体を選択→
『編集』→
『検索と置換』をクリック

CSVデータ編集15

パーマリンクの先頭に 「半角スペース」を追加します。

『検索』に「https://」と入力
『置換後の文字列』に「 https://」と入力 (先頭に半角スペースあり)

CSVデータ編集16

C列のパーマリンクの先頭に、半角スペースが追加されました。

CSVデータ編集17

D列2行目に
「=A2&B2&C2」と入力

CSVデータ編集18

「D列2行目」に、「A列2行目」「B列2行目」「C列2行目」のデータが合体して表示されるようになりました。

D列2行目を選択して『コピー』→
D列2行目〜最終行を選択して『貼り付け』

CSVデータ編集19

全行に、それぞれの記事の
「Redirect 301 旧パーマリンクのルートパス 新パーマリンクの絶対パス」
が表示されています。
D列全行をコピーして、「.htaccess」に貼り付けます。

この手順は、WordPressに限らず、ドメイン変更をした場合などにも使えます。 無料のブログやホームページスペースなどから、独自ドメインを取得して移転する場合なんかでも、このやり方でできます。

.htaccessにリダイレクト用コードを記述

htaccess記述1

「.htaccess」ファイルを開き、コピーしたコードを貼り付けます。

htaccess記述2

WordPressを導入している場合は、赤枠の記述があるので
「# BEGIN WordPress」
よりも前に貼り付けます。
「#END WordPress」
よりうしろに記述すると、勝手に上書きされて消えてしまう場合があるので、何か記述をする場合は「# BEGIN WordPress」より前です。

『Search Regex』で内部リンクを一括変更

Searce Regex1

プラグイン『Search Regex』をインストールします。
『Search Regex』を使用すれば、全記事内から文字列を検索して、一括で変更することが可能です。
アフィリエイトのリンクを変更しなければならなくなったり、今回のように内部リンクを変更する必要が出てきたりといった時に大活躍します。
このプラグインは、本当に便利なので使いこなすことをおすすめします。

Searce Regex2

『Search Regex』をインストールして有効化→
『ダッシュボード』→
『ツール』→
『Search Regex』をクリック

Searce Regex3

『フラグ』右端の『
をクリック

Searce Regex4

『大文字小文字の区別なし』は、元々チェックされているので
『正規表現』にもチェックを入れる。

Searce Regex5
<a href="/(.*?)">

を入力して
『検索』をクリックすると
画像下部のように、内部リンクがある記事本文の一致結果がずらっと出てきます。

Searce Regex6

この画像は、内部リンク変更後のものなので、下部には一致結果が表示されていません。
パーマリンク末尾に、「.html」があるものをないものへと変更する場合は

『検索』に

<a href="/(.*?).html">

と入力
『置換』に

<a href="/$1">

と入力

入力内容に間違いがないなら、『すべてを置換』をクリックすると、一括で変更されます。
『検索』に文字列を入力して、赤枠の『検索』をクリックすると、置き換え対象の文字列が下部に表示されます。
間違いないことを確認してから、『置換』に文字列を入力し、『検索』をクリックすると、今度は置き換え後の状態を確認できます。
不安な場合は、その手順で進めた方が安心かと思います。
失敗すると全部が間違った文字列に置き換わってしまい、それを修正するとなるととんでもなく大変です。(経験済)

その他のパーマリンク変更の場合は、CVSデータ編集の項目で紹介した正規表現を参考にしてみてください。

パーマリンク設定変更

パーマリンク設定変更

https://heeeehuuum.club/%postname%.html
から
https://heeeehuuum.club/%postname%
に変更して
『変更を保存』をクリック

さいごに

これで、パーマリンクは思い通りの形に変更され、問題なくリダイレクトされ、内部リンクも新パーマリンクに変更することができました。
旧パーマリンクのリンクからアクセスがあっても、新パーマリンクへリダイレクトされるのでまずは安心です。
ただ、URLが変わったということには違いがないので、Googleなどの検索順位が一時的に落ちるというデメリットはあるようです。

  • 基本的には、後からパーマリンクは変更しない。
  • どのようなパーマリンクにするのが良いか、導入時によく考える。
  • どうしても、後から変更する必要が出てきた場合は、パーマリンク設定を変更するだけではなく、リダイレクト設定、内部リンクの変更などをきちんとやる。
  • 一時的に検索順位が落ちてしまうことは覚悟する。

デメリットや手間はありますが、思い通りのパーマリンクに変更できたことは大きなメリットでした。
ぜひ参考にしてみてください。

著者: Heeee Huuum

投稿日: 2022/09/19 最終更新日: 2023/06/26

投稿日: 2022/09/19

最終更新日: 2023/06/26