WordPressの旧スラッグ(_wp_old_slug)を管理画面から一覧表示・編集・削除できるプラグインです。
WordPressでは、投稿のスラッグ(URL)を変更すると、自動的に旧スラッグが _wp_old_slug としてデータベース(wp_postmetaテーブル)に保存されます。これにより、古いURLにアクセスがあった場合、新しいURLへ301リダイレクトが行われます。
この機能の目的:
- SEO対策: 古いURLへの被リンク評価を新URLに引き継ぐ
- リンク切れ防止: ブックマークや外部サイトからのリンクが壊れない
しかし、WordPress標準の管理画面には旧スラッグを管理する機能が存在しません:
- 旧スラッグの一覧を確認できない
- 不要になった旧スラッグを削除できない
- リダイレクトを個別に停止できない
- 転送先がエラー(404など)になっているか確認できない
結果として、多くのサイトでは旧スラッグがデータベースに溜まり続け、問題に気づかないまま放置されています。
- 放置 - 多くの人は旧スラッグの存在すら知らない
- phpMyAdmin - データベースを直接操作(危険を伴う)
- WP-CLI -
wp post meta delete --all _wp_old_slug - SQLクエリ -
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug'
これらは技術的知識が必要で、個別の管理ができません。
- 全ての旧スラッグを一覧表示
- 個別に編集・削除が可能
- リダイレクトの停止/開始をワンクリックで切替
- 転送先のHTTPステータスチェック
- 無効な旧スラッグの警告表示
| 表示 | 説明 |
|---|---|
| 301転送中(黄色) | リダイレクト有効。クリックで停止 |
| 転送停止(グレー) | リダイレクト無効。クリックで開始 |
- 全選択: 全ての行を選択/解除
- 選択を301転送開始: 選択した行のリダイレクトを有効化
- 選択を転送停止: 選択した行のリダイレクトを無効化
- 選択を削除: 選択した行を一括削除
転送先スラッグ(またはURLパス)を入力して、新しい旧スラッグを手動で追加できます。「確認」ボタンで転送先URLを事前確認できます。
| 対象 | 操作 | 説明 |
|---|---|---|
| 旧スラッグ | 「編集」ボタン | リダイレクト元のスラッグを変更 |
| 転送先URL | 「編集」ボタン | この旧スラッグの紐づけ先を別の投稿に変更。入力したスラッグを持つ投稿に紐づけ直します |
「転送先をチェック」ボタンで、全ての転送先URLのHTTPステータスを確認できます。
| バッジ | 意味 |
|---|---|
| 200(緑) | 正常 |
| 3xx(黄) | リダイレクト |
| 4xx/5xx(赤) | エラー |
| マーク | 説明 |
|---|---|
| ★ | 最終着地点(他の旧スラッグから参照されていない) |
| → | クリックで連携先へジャンプ |
| 無効な旧スラッグ(他の投稿が同じスラッグを使用中) |
以下の項目でソート可能:
- 旧スラッグ
- 転送先URL
- 転送先ID
- 更新日
- プラグインファイルを
/wp-content/plugins/kashiwazaki-seo-stop-old-slugs/にアップロード - WordPress管理画面でプラグインを有効化
- 管理画面メニューから「Kashiwazaki SEO Old Slug Manager」にアクセス
| 項目 | 対応 | 説明 |
|---|---|---|
| 投稿のスラッグ変更 | ✅ 対応 | スラッグ変更時に自動保存される旧スラッグを管理 |
| パーマリンク構造の変更 | ✅ 対応 | スラッグが一致すれば新しい構造のURLへ転送 |
| 固定ページの親変更 | ❌ 非対応 | WordPressコアの仕様で階層型投稿タイプは非対応 |
| 部分一致 | ❌ 非対応 | スラッグは完全一致のみ |
- WordPress: 5.0以上
- PHP: 7.4以上
- MySQL: 5.6以上
- Nonce検証によるCSRF攻撃防止
manage_options権限必須- 全ての入力データをサニタイズ
- prepared statementによるSQLインジェクション防止
GPL-2.0-or-later
開発者: 柏崎剛 (Tsuyoshi Kashiwazaki) ウェブサイト: https://www.tsuyoshikashiwazaki.jp/