突然ですが当サイト、パーマリンクを変更しました。
(※記事ごとに設定するURLのこと)
具体的にはパーマリンクの構造を「日付+投稿名」から「投稿名」に変えて、ずっとずっと悩んでいた日付を削除した形です。
変更前 turicco.com/yyyy/mm/dd/post-name/
変更後 turicco.com/post-name/
すっきり~
そして現在運営しているブログは全3サイトあり、すべてのサイトを変更。
- ルートドメイン(当サイトです)
- サブドメイン
- サブディレクトリ
同じようにパーマリンクを最初になんとなく設定してしまい、途中で変えたい!と悩んでいる方は一定数いるのではないでしょうか?
調べると「パーマリンクは絶対に変えるべきではない」と書かれていることがほとんど。
もちろんリスクが大きいからですが…
できるかできないかで言うならば、途中で変更することが「できる」んです!
この記事ではパーマリンクを途中で変更したい人向けに、変更の仕方から301リダイレクト(転送)、内部リンク置き換えまでを分かりやすく解説します。
検索上では見つかりにくい、サブドメインやサブディレクトリも合わせて変更する例をまとめてご紹介しますので、複数サイトを運営されている方にもおすすめです。
それではご覧ください。
パーマリンクとは
パーマリンクはWebサイトのページごとに個別設定されるURL全体のこと。
そのURLの末尾部分を「スラッグ」と言います。
パーマリンクの構造
ワードプレスではパーマリンク(スラッグ部分)の構造を下記の6種類から選べるようになっています。
- 基本
- 日付と投稿名
- 月と投稿名
- 数字ベース
- 投稿名
- カスタム画像
結論から言うと、投稿名一択です。
パーマリンクを変更しようと思ったきっかけ
サイト開設時にパーマリンクを設定した後は、構造を変えないことが前提となります。
でも私は変えたくて仕方なかった!
当サイトはとある理由で【日付】+【投稿名】を選択しました。
例)https://turicco.com/2000/01/01/post-name/
当初はよく考えて良かれと思って入れた日付だけどこんなことになるとは…
そこでパーマリンクに日付がある(現在のまま)デメリットと、途中で変更するデメリットを比較しました。
パーマリンクに日付が含まれるデメリット
パーマリンクを変更するデメリット
どちらも影響が大きくしばらく悩んでいたのですが、結局は変更することに。
- この日付があるままだとずっと悶々とした思いで運営することになる
- まだ記事数が少なく少しでもリスクが少ないうちに変えておこう
デメリットを比較した上で、この2点が変更を決断した理由です。
ワードプレスでパーマリンクを変更する手順
ここからは具体的なパーマリンク変更手順について。
流れとしては下記の3ステップで進めます。
- Step1パーマリンクを変更
ワードプレスの設定から簡単に変更できます。
- Step2301リダイレクト 大事!
リンク切れ防止のため、旧URLから新URLへ転送します。
- Step3内部リンクURL置換
サイト内の内部リンクURLをプラグインを使って置換します。
ワードプレスでパーマリンクを変更
管理画面の「設定」→「パーマリンク」から変更します。
「日付と投稿名」→ 「投稿名」
変更自体は一瞬で終わります。が…
このままでは大変なことが起こってしまうのはお分かりいただけるかと思います。
301リダイレクト/リダイレクトコードを取得
ここで終わってしまうとNOT FOUND(404)、つまりページが見つかりませんの嵐!!
古いURLにきたアクセスを新しいURLに転送する301リダイレクトが必要になります。
ちなみにリダイレクトには「301リダイレクト(恒久的)」と「302リダイレクト(一時的)」の2種類あり、ずっとここにリダイレクトしますという意味で301リダイレクトです。
サイトを開設後にhttps化(SSL化)した後にも同じように301リダイレクトをおこなっているはずですね。SEOにも大きく影響する部分なのでしっかりと設定しておきましょう。
この工程が一番重要なポイント。
プラグインか?.htaccessを使う方法か?
301リダイレクト(転送)する方法は2つ。
- プラグインを使う:一般的に「Redirection」を使用
- 「.htaccess」(ドットエイチティーアクセス)ファイルを使用する
プラグインを使う方法
- 簡単に操作できる
- リダイレクトしている間はプラグインを削除できない
「Redirection」というプラグインがあります。
「Redirection」は個別にURLをリダイレクトするほかに、どの記事からも日付を削除するような規則的なものは正規表現を使って一括しておこないます。
「Redirection」の操作イメージ
プラグインを開き「新しい転送ルールを追加」を使用します。
- 「ソースURL」にリダイレクトの対象のURLを入力
- 「ターゲットURL」にリダイレクト先のURLを入力
- 「転送ルールを追加」ボタンをクリック
今回プラグインを使用していなく未検証のため、具体的な設定は省略します。
.htaccessを使う方法
- プラグインに依存しない
- ファイルを編集するために高度な知識が必要
リダイレクトをするにあたり、前述のプラグイン「Redirection」を使っておこなうこともできますが当サイトでは「.htaccess」(ドットエイチティーアクセス)ファイルを使用する方法を選択しました。
プラグインは増やしたくないので自力でできることが理想!
最大のメリットはプラグインに依存しないことの反面、デメリットは.htaccessファイルを編集するのに高度な知識がいるということ。
リダイレクトコードなんて書けないよ…
リダイレクトコードの書き方について調べた結果、自分でコードが書けなくてもリダイレクトを生成できる超便利ツールがあることが分かりました。
リダイレクトコードを取得できるツール
利用したのはこちらです。
パーマリンクの構造を変更したときにリダイレクトを生成してくれる素晴らしいツール。
- サイトのURL
- サブディレクトリがある場合はディレクトリ名
- 古いパーマリンクの構造を選択(日付と名前)
この3ヶ所を入力してリダイレクト生成をクリックすると自動的にリダイレクトコードが生成されるんです。
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://turicco.com/$4
元のURLが/2022/01/01/some-page
のような形式で、4桁の年、2桁の月、2桁の日が続いていて、かつpage/
が後続していない場合、そのページ名部分(some-page
)を抜き出して、新しいURL https://turicco.com/some-page
にリダイレクトします。
これはすごい!当サイトは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」に起因するアクシデント発生
当サイトでは以前、新たにサブディレクトリを作成したときにプラグイン「Search Regex」を使ってURL置換を試みたのですが、操作ミスがあったためか処理途中で画面がフリーズ。
サイトが壊れてしまった!!
嫌な予感は的中し…サイトが壊れるまでに至ってしまいました……
なんでもリビジョンを削除するために入れていたプラグインWP-Optmizeがエラーを起こしているとのことで、管理画面にも入れなくなったのでリカバリーモードでプラグインの削除を試みるも「削除できません」と…
それならばとFTPソフトから直接プラグインを削除。
そうしたらサイト画面がすべて真っ白に…
致命的なエラーのメールが立て続けに何通も届き手に負えない状態となりました。泣
もうダメだ
頼るべきはエックスサーバーのバックアップ
最終的に頼ったのはエックスサーバーの自動バックアップ。
半日ほどかかりその間は気が気じゃない思いで過ごしましたが、データベースとMySQLの両方を復元することで無事にサイトが戻ってきました。
ブログ存続の危機からの復活、自動バックアップと復元も容易なエックスサーバーには感謝ばかりです。復元するには以前は有料(5000円)でしたが2020.9~現在は無料となっているのもありがたい限り。
これを機にもうひとつ入れていたバックアップ用のプラグインを削除し、サーバーバックアップに一本化しました。普段はなんとなく自動バックアップの存在を意識する程度でしたが、サイトが壊れるという不測の事態が起こったときに大切さを痛感する出来事となりました。
「Search Regex」といった可塑性(失敗しても元に戻せない)のプラグインを使うときは慎重に、またバックアップは必須です!!!
まとめ/無事にパーマリンク変更が終わりました
この記事では、パーマリンクの変更方法について解説しました。
SEOを考えると本当なら途中で変更するのは避けた方が無難ですが、変更して1ヶ月の検索流入は下がることなく横ばいをキープ。
SEO評価も合わせてきちんとリダイレクトされています!
今回のパーマリンク変更は3サイト同時作業となり、サブドメイン、サブディレクトリと少し手順が違い戸惑うこともあったので同じように悩んでいる方の参考になれば幸いです。
現在、URLがすっきりしてとても快適です。
Comment