このブログはパーマリンク設定を、
https://tmrkzr.com/gadget/9862/
という形で運用してきましたが、思うところあってこれを、
https://tmrkzr.com/9862/
に変更したら大失敗だった、ということをまとめます。
記事URLを「4桁の数字だけ」にしたらダメなんですよ……!
記事のURLを「カテゴリ/記事ID」から「記事ID」のみに変更した
パーマリンク設定を変更しようと思ったきっかけは、記事カテゴリを後から変えることがあるから。
最初からきっちり設計するサイトならまだしも、今後どんな記事書くかわからない個人の雑記ブログだと、しょっちゅう記事のカテゴリを変えたくなるのです。
しかし、パーマリンク設定を、「カテゴリ/記事ID」にしているので、カテゴリを変えると記事URLまで変わってしまい、その度に301リダイレクトするわけですが、それも面倒。そこで、パーマリンク設定を変えてしまうことにしました。
まずは、後で一括してリダイレクトを設定するため、プラグイン「Export All URLs」で現在の記事のURL一覧をcsvで取得します。
次に、WordPress管理画面の設定>パーマリンク設定から「カスタム構造」を選択。空欄に
/%post_id%/
を入力。「変更を保存」すれば全ての記事URLが変更されます。
ここで「投稿名」を選べば、自分で記述したスラッグを記事のURLとすることができます。SEO的にも有利、という話もあります。
しかし個人の雑記ブログで今さらSEOもないしなあ。そもそもスラッグを手作業で書いていくのは手間かかりすぎ。
というわけで妥協してシステムが自動的につけてくれるIDにした次第。しかしこれが大失敗の元だった……
プラグインで一括リダイレクト完了
このままだとリンクが全部切れてしまうので、301リダイレクトを設定します。
Export All URLsで新たなURLのcsvを取得し、旧URLの隣の列にコピペ。
一列目を「source」「target」とし、ドメインを検索置換で削除すれば新旧の相対URL一覧が出来上がり。
プラグイン「Redirection」でこのcsvをインポートして、全ての記事の301リダイレクトが完了しました。
「記事URLが4桁の数字のみ」をやってはいけない
ところで、システムが自動的につけてくれるIDは4桁の数字です。つまり9999通りで、記事数が9999を超えるとどうなるのかな、という興味が湧き、ググってみたらあら大変。パーマリンクを記事IDだけにしてはダメ、なのでした。
なぜかというと、システムが使う年月アーカイブが4桁の数字なので、かぶってしまうから。
カテゴリ名+記事IDに設定しなおした
というわけで、パーマリンク設定を、
%category%%post_id%
としました。旧URLが、
https://tmrkzr.com/gadget/9862/
だとすると、
https://tmrkzr.com/gadget9862/
となるわけですね。
再度csvを作成し、インポートして一件落着。