WordPress

【wordpress】非公開・削除したページが勝手にリダイレクトされる?原因「自動補完リダイレクト」の挙動と停止方法

WordPressを運用していて、ページを削除(または非公開に)したはずなのに、なぜか「別の似たようなページ」に勝手に転送されて困ったことはありませんか?

このような挙動が発生している場合、原因はWordPressに標準搭載されている「404リダイレクト推測(自動補完リダイレクト)機能」である可能性が高いです。

本記事では、この挙動の仕組みと、意図しないリダイレクトを防ぐ具体的な対処方法を解説します。

1.原因:WordPressの「404リダイレクト推測機能」とは

この挙動の原因は、WordPressに標準搭載されている「404リダイレクト推測(自動補完リダイレクト)」という機能です。

リクエストされたURLが見つからない(404になる)際、WordPressは「ユーザーが打ち間違えたのかもしれない」と判断し、似たようなデータを探してきて自動で転送し、表示します。

2.解決方法:自動リダイレクトを制御する

方法A:特定のページだけ404にしたい場合(おすすめ)

redirectionのインストール画面

プラグイン「Redirection」で、削除・非公開としたページのURLを「404」へリダイレクトする設定を追加します。プラグインで簡単に設定ができ、特定のページだけを確実に404にできるため、影響範囲を限定して対応できます。

ツール>redirectionより新規追加し、以下のように設定します。

redirectionの設定画面

ソースURL:非公開・削除したページのURL
一致条件:URLのみ
一致した時:「エラー(404)」の次のHTTPコードと共に「404-未検出」

これにより、意図しない別ページへのリダイレクトは発生せず、正しく404表示になることを確認しました。
(うまくいかない場合はキャッシュを消去してください)

ページが見つかりませんと表示されたサイト

方法B:推測リダイレクト機能自体を完全に無効化する

一つずつURLの設定をするのが手間な場合は、functions.php に以下のコードを追記してください。
この「推測機能」自体を無効化できます。

// 404発生時の類似ページ推測リダイレクトを停止する 
add_filter('do_redirect_guess_404_permalink', '__return_false');

サイト全体で同様の誤リダイレクトを防げますが、URLの打ち間違い時の補完機能も無効になるため、ユーザー体験に影響する可能性があります。

3.【事例】実際に発生したトラブルの状況

特定の固定ページを非公開にした際、本来なら「404 Not Found(ページが見つかりません)」となるはずが、勝手に別の投稿ページへリダイレクトされる事象が発生しました。

非公開「Amazon Linux 2からAL2023への移行におけるデータベースのバックアップ手順に関するマニュアル」という固定ページ

Amazon Linux 2からAL2023への移行におけるデータベースのバックアップ手順に関するマニュアルというページ

シークレットモードにてURLを入力確認した際、
「Amazon Linux 2からAL2023への移行におけるデータベースのバックアップ手順に関するマニュアルについてのお知らせ」という投稿ページに飛んでしまう。

Amazon Linux 2からAL2023への移行におけるデータベースのバックアップ手順に関するマニュアルについてのお知らせというページ

パーマリンク設定は「投稿ID」形式にしており、Custom Permalinksプラグインでスラッグも英数字に変更済みでした。URLに共通点はありません

また、プラグイン「Redirection」を導入していたため、リダイレクト設定を確認しましたが、該当する設定は見つかりませんでした。

Redirectionの設定一覧画面

しかし、自動補完リダイレクトは、データベースの wp_posts (投稿データの保管場所)にある post_name(スラッグ) を参照し、似たページがないか自動で検索しています。

URLの見た目ではなく、この内部的な「スラッグ文字列」の冒頭が一致していると、システムが「正しい移動先」だと誤認してリダイレクトを実行します。

つまり、パーマリンクがID形式でも、内部的にはタイトルから生成された日本語の post_name が保持されており、似たようなURLだけではなく、似たようなタイトルのページなども自動的に補完されているようです。

4.まとめ

今回のように、削除・非公開ページが意図しないページへリダイレクトされる場合は、WordPressの「404リダイレクト推測」機能が原因の可能性が高いです。

・特定ページのみ対応 → Redirectionで404設定
・サイト全体で防ぐ → functions.phpで無効化

リダイレクト挙動に違和感がある場合は、本機能を確認することで解決できるケースがあります。

その他のWordPressに関する障害、エラーについての記事はこちら

TOP