背景
WordPressで固定ページを新規作成し、既存ページに近い内容のページを用意していた。
このとき、ページのスラッグを aaa にしたかったが、https://example.com/aaa/ にアクセスすると https://example.com/aaa_2/ のような別URLへ遷移してしまった。
※本記事は出来事を一般化したもので、ドメイン/構成/値/画面など固有情報は匿名化しています。
起きていた現象
- 管理画面上ではスラッグを
aaaに設定した(つもり) - しかし
aaaにアクセスするとaaa_2側へ飛ぶ - リダイレクトっぽく見えるが、見た目だけでは原因は断定できない
今回の状況メモ:スラッグを2回編集していた
固定ページ作成時に、スラッグを2回編集していた。
例)
- 新規作成(自動でスラッグが入る)
-
aaaに変更 - もう一度編集(微調整など)
この流れから「2回編集したせいで _2 判定になったのかも?」と最初は考えた。
ただ、あとから整理すると 「編集回数そのもの」より「編集したタイミングで重複が検知された」 可能性が高そうだった。
原因候補(よくあるところ)
1) スラッグの重複 → ユニーク化が走っている
WordPressは同一階層でスラッグが被ると、末尾に -2 などを付けてユニークにすることがある。
(環境によっては _2 のような表記になるケースも)
重複の落とし穴
- 公開済みページだけでなく、下書き・非公開・ゴミ箱に同名が残っている
- 複製系の機能/プラグインが、別ページとして同名を確保している
2) 旧スラッグの履歴や、別レイヤーの誘導が効いている
- スラッグ変更の履歴から、新しいURLへ誘導されている
- 誘導(リダイレクト)設定がプラグイン/テーマ/設定/キャッシュなど別レイヤーにある
- キャッシュが古く、挙動が固定化して見える
私がやった切り分け
ここからは「どの管理画面・どのツール」といった固有の手順は出さず、切り分けの考え方だけまとめる。
手順1:まず「本当に aaa なのか」を確認する
管理画面で見えている値と、実際に参照されている値がズレることがある。
そこで、URLに使われるスラッグとして保存されている値が何になっているかを先に確認した。
- ここで
aaa_2として保存されているなら、まずは「ユニーク化が走った」線が濃い -
aaaのままなら、別レイヤー(誘導/キャッシュ等)を疑う
手順2:重複がないかを探す
次に、同じ aaa がどこかに残っていないか確認した。
- 同階層に
aaaが存在しないか - 下書き/非公開/ゴミ箱に残っていないか
- 複製・移行・多言語などの仕組みで別ページとして保持されていないか
手順3:誘導(リダイレクト)やキャッシュの影響を疑う
保存値が aaa でも挙動が変わらない場合は、以下を疑う。
- 誘導(リダイレクト)設定がどこかにある(プラグイン/テーマ/設定)
- キャッシュが古い(プラグイン/サーバー/CDN など環境により様々)
- パーマリンクのルールが更新されていない(設定の再保存など)
最終的にやったこと
最終的に、管理画面上の操作だけでは挙動が変わらなかったため、投稿(ページ)のスラッグとして保存されている値(post_name)を確認し、意図した aaa に揃えた。
※スラッグ周りの値を直接調整する場合は影響範囲が広くなり得るので、実施前にバックアップ取得と、再発要因(重複・誘導・キャッシュ)の確認をセットで行うのが安全。
学び(今回の結論)
-
/aaa/が/aaa_2/に変わるときは、まず 「重複→ユニーク化」 を疑う - 次に 「履歴や別レイヤーの誘導(リダイレクト)」「キャッシュ」 を疑う
- 表面の表示(管理画面)だけで判断せず、実際に使われている保存値を基準に切り分けると早い
WordPressいまだに謎すぎて沼です。