突然ですがパーマリンクを変更しました。
具体的にはずっとずっと悩んでいた日付を削除しました。
変更前 turicco.com/yyyy/mm/dd/post-name/
変更後 turicco.com/post-name/
そして現在運営しているブログは全3サイトあり、すべてのサイトを変更しました。
- ルートドメイン(当サイトです)
- サブドメイン
- サブディレクトリ
同じようにパーマリンクをなんとなく設定してしまい(または初期設定のままで)、途中で変えたいと悩んでいる方はいませんか?
調べていくと「パーマリンクは絶対に変えるべきではない」と書かれていることがほとんど。もちろんリスクが大きいからですが、できるかできないかで言えば途中で変更することが「できる」んです。
検索上でサブドメインやサブディレクトリも合わせて変更する例は見つからなかったのでここにまとめてご紹介します。
- パーマリンクを変更したい
(パーマリンクから日付を消したい) - エックスサーバーを使っている
- サブドメイン、サブディレクトリのサイトがある
- 301リダイレクト方法を知りたい
- URLなどテキストを一括で置き換える方法を知りたい

なお、リダイレクトについてはエックスサーバーを利用した手順でおこなっていきます。
ではご覧ください~。
パーマリンクについて
パーマリンクはWebサイトのページごとに個別設定されるURLの一部。
例)https://abc.com/パーマリンク/
サイト開設時に設定した後は構造を変えないことが前提となります。

でも私は変えたくて仕方なかった!
例)https://abc.com/2000/01/01/post-name/
当初はよく考えて良かれと思って入れた日付だけど、せっかく最新情報にリライトをしても記事の古さを際立たせてしまうことになるとは…
この先どんどん記事が増えてから変えるよりもやるなら今でしょ!と踏み切りました。
パーマリンクを変更する手順
- Step1パーマリンクを変更
ワードプレスの設定から簡単に変更できます。
- Step2301リダイレクト(大事!)
リンク切れ防止のため、旧URLから新URLへ転送します。
- Step3内部リンクURL置換
サイト内の内部リンクURLをプラグインを使って置換します。
パーマリンクを変更
ワードプレスの設定→「パーマリンク」から変更します。

日付と投稿名 → 投稿名
変更自体は一瞬で終わります。が…

このままでは大変なことが起こってしまうのはお分かりいただけるかと思います。
301リダイレクト/リダイレクトコードを取得
ここで終わってしまうとNOT FOUND(404)が出てリンク切れの嵐になってしまうため、新しく設定したURLへ自動的に転送する301リダイレクトが必要になります。
ちなみにリダイレクトには「301リダイレクト(恒久的)」と「302リダイレクト(一時的)」の2種類あり、ずっとここにリダイレクトしますという意味で301リダイレクトです。
サイトを開設後にhttps化(SSL化)した後にも同じように301リダイレクトをおこなっているはずですね。SEOにも大きく影響する部分なのでしっかりと設定しておきましょう。
この工程が一番重要なポイント。
プラグインか?.htaccessを使う方法か?
301リダイレクトをするにあたり、プラグイン「Redirection」等を使っておこなうこともできますが「.htaccess」(ドットエイチティーアクセス)ファイルを使用する方法を選択しました。

プラグインは増やしたくないので自力でできることが理想!
最大のメリットはプラグインに依存しないことの反面、デメリットは.htaccessファイルを編集するのに高度な知識がいるということ。
リダイレクトコードの書き方について調べた結果、自分でコードが書けなくてもリダイレクトを生成できるツールがあることが分かりました。
リダイレクトコードを取得できるツール
今回利用したのはこちらです。
パーマリンクの構造を変更したときにリダイレクトを生成してくれる素晴らしいツール。

- サイトのURL
- サブディレクトリがある場合はディレクトリ名
- 古いパーマリンクの構造を選択(日付と名前)
この3ヶ所を入力してリダイレクト生成をクリックすると自動的にリダイレクトコードが生成されるんです。
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://turicco.com/$4

これはすごい!当サイトは3サイト分のリダイレクトコードを取得しました。
301リダイレクト/.htaccessに転送の記述をする
あとは.htaccessに転送の記述をします。
ここからは当サイトが利用しているエックスサーバーでの手順となります。
- ドメイン、サブディレクトリ→サーバーパネルから
- サブドメイン→ファイルマネージャーから
設定する場所に違いがあるので注意しましょう。また転送やアクセス制御など大切な内容を記述するデリケートな場所のため、設定時は細心の注意が必要です。
ルートドメイン、サブディレクトリの場合
エックスサーバーのサーバーパネルから行います。
- Step1エックスサーバー/サーバー管理にログイン
- Step2ホームぺージ:.htaccess編集をクリック
- Step3ドメインを選択し、.htaccess編集タブを開きます
- Step4リダイレクトコードを入力
既存のコードを消さずにリダイレクトコードを追加します。(先頭に)
サブドメインの301リダイレクトを設定
サブドメインの301リダイレクト設定は、 エックスサーバーのファイルマネージャーから行います。

サーバー管理で設定してもリダイレクトができなくてしばらく戸惑いました。
- Step1エックスサーバー→ファイル管理画面に入る
- Step2サブドメインの.htaccess編集画面を開く
①「ドメイン」→②「public_html」→③設定したい「サブドメイン」→④「.htaccess」→⑤「編集」をクリック(上部メニュー)
- Step3.htaccessを記述する
既存のコードを消さずに、リダイレクトコードを記述します。(先頭に)
301リダイレクトの確認
301リダイレクト設定はこれで完了です。
すべてのページが変更した新しいURLへ正常にリダイレクト設定できているか確認しておきましょう。
内部リンク置換/プラグイン「Search Regex」を使用
最後の仕上げとして内部リンクのURLを置き換えます。
ブログカードの場合、リダイレクトが正常におこなわれていればクリックしてのリンクは動作するのですが、旧URLのままだとアイキャッチ画像と記事タイトルが取得できません。(NOT FOUNDと表示されていたような)
「Search Regex」はテキスト置換ができるプラグイン。

記事内に書かれている日付入りURL(パーマリンク変更前)を検索して年月がない新URL(パーマリンク変更後)に置き換える作業をおこないます。
プラグインにはリスクがあり個人的には記事数が少ない場合は手作業で修正でもよいかと思います。また、Search Regexを使っても記事数が多い場合に一括で置換されずに残ってしまう場合があるようなので最終確認は必要です。

- 右側の記号∧をクリックし「正規表現」にチェックを入れる
- 検索:abc.com/[0-9]{4}/[0-9]{2}/[0-9]{2}
- 置換:abc.com
- 確認して検索をクリック
※abc.comのドメイン部分は自分のサイトに合わせてください
※他サイトでは|abc.com/[0-9]{4}/[0-9]{2}/[0-9]{2}|のように||で囲んで紹介されているケースもありますが、バージョンアップにより必要ありませんのでご注意ください。
古いスラッグをプラグイン「Slugs Manager」で削除
パーマリンクを変更後はデータベースに古いスラッグ(パーマリンク)が残っているので裏の方をすっきりさせたいときはプラグインで削除することができます。
古いスラッグを削除するプラグイン:「Slugs Manager」
使い方は簡単なのでSlugs Managerの使い方をご覧ください。

プラグイン「Search Regex」「Slugs Manager」ともに使用後は無効化または削除しても問題ありません。
プラグインに起因するアクシデント発生
当サイトでは以前、新たにサブディレクトリを作成したときにプラグイン「Search Regex」を使ってURL置換を試みたのですが、操作ミスがあったためか処理途中で画面がフリーズしてしまい。
サイトが壊れてしまった!!
嫌な予感は的中し…サイトが壊れるまでに至ってしまいました……


なんでもリビジョンを削除するために入れていたプラグインWP-Optmizeがエラーを起こしているとのことで、管理画面にも入れなくなったのでリカバリーモードでプラグインの削除を試みるも「削除できません」と…
それならばとFTPソフトから直接プラグインを削除。
そうしたらサイト画面がすべて真っ白に…
致命的なエラーのメールが立て続けに何通も届き手に負えない状態となりました。泣

もうダメだ
頼るべきはエックスサーバーのバックアップ
最終的に頼ったのはエックスサーバーの自動バックアップ。

半日ほどかかりその間は気が気じゃない思いで過ごしましたが、データベースとMySQLの両方を復元することで無事にサイトが戻ってきました。(詳しいことは分からないのですがデータベースだけでは復元できませんでした)
ブログ存続の危機からの復活、自動バックアップと復元も容易なエックスサーバーには感謝ばかりです。復元するには以前は有料(5000円)でしたが2020.9~現在は無料となっているのもありがたい限り。
これを機にもうひとつ入れていたバックアップ用のプラグインを削除し、サーバーバックアップに一本化しました。普段はなんとなく自動バックアップの存在を意識する程度でしたが、サイトが壊れるという不測の事態が起こったときに大切さを痛感する出来事となりました。

こういった可塑性のプラグインを使うときは慎重に、またバックアップは必須です!!!
無事にパーマリンク変更が終わりました
SEOを考えると本当なら途中で変更するのは避けた方が無難ですが、変更して1ヶ月の検索流入は下がることなく横ばいを維持しております。
URLのほかSEO評価も合わせてきちんとリダイレクトはされている模様。
今回のパーマリンク変更は3サイト同時作業となり、サブドメイン、サブディレクトリと少し手順が違い戸惑うこともあったので同じように悩んでいる方の参考になれば幸いです。

現在、邪魔だった日付を消し去って快適です。
Comment