WordPressで固定ページを開こうとしたら、勝手に別のページへ飛ばされる・404になる・トップページにリダイレクトされる…。
このようなトラブルは非常によく起こり、原因もさまざまです。
特に以下のようなケースは要注意です。
- 固定ページのURL(スラッグ)を変更した
- パーマリンクを触った
- SEOプラグインを導入した
- サーバーを移転した
- SSL化(HTTPS化)した
実は、WordPressは内部で「正しいURLへ自動的に導く」仕組みを持っており、それが意図せぬ 自動リダイレクトの暴走 を引き起こすことがあります。
この記事では、初心者でも確実に直せるようによくある原因 → チェックする場所 → 正しい対処法の順にわかりやすく解説します。今回の手順を上から順番に試せば、ほとんどのリダイレクト問題は解決できます。
WordPressの固定ページが勝手にリダイレクトされる主な原因
WordPressでは、URLの自動補正機能(canonical redirect)が働くため、URL や パーマリンク、スラッグの不整合 があると、意図せず別ページへ飛ばされてしまいます。
ここでは、特に起こりやすい原因を詳しく解説します。
原因① 固定ページのスラッグ(URL)が他と重複している
WordPressでは 同じスラッグ(URL)を別の投稿タイプで使うと衝突が発生 し、リダイレクトが起きます。
よくある重複例:
- 固定ページ:「/news/」
- 投稿カテゴリー:「/news/」
- カスタム投稿タイプ:「/news/」
この場合、WordPress が
「どっちが正しいのか?」
判断できず、投稿カテゴリーへ強制的にリダイレクト されることがあります。
- スラッグを別の名前に変更する
- カテゴリー・タグのスラッグも確認する
- カスタム投稿の
rewrite設定を見直す
原因② パーマリンク設定の不整合
パーマリンクを変更した直後、WordPress内部で古いURLが残り、リダイレクトループ や 404 → トップページへの自動転送 が発生します。
特に以下の操作後に起こりやすいです。
- パーマリンク構造を変更した
- カスタム投稿タイプのスラッグを変更した
- テーマやプラグインを更新した
WordPress管理画面 → 設定 → パーマリンク → 「何も変更せずに保存」
→ リライトルールが再生成され、問題が改善されることが多いです。
原因③ リダイレクト系プラグインが誤作動している
以下のようなプラグインが誤設定で勝手に転送しているケースも多いです。
- Redirection
- Yoast SEO / All in One SEO(canonical設定)
- Simple 301 Redirects
- SiteGuard(ログインページ移動機能)
特にSEO系プラグインは、canonical(正規URL)で別ページを指定してしまうと、問答無用でリダイレクトされます。
- 該当プラグインを一時停止して確認
- canonical URL の設定を確認
- 手動で設定した 301 リダイレクトを削除
原因④ .htaccess の記述ミス
サーバーの .htaccess に古いリダイレクト設定が残っていると、WordPressより優先されて強制的に飛ばされます。
よくある例)
Redirect 301 /old-page/ /new-page/
RewriteRule ^page/?$ https://example.com/ [R=301,L]
- FTP で
.htaccessを開き、不要なリダイレクトを削除 - WordPress で「パーマリンク設定の保存」を行い再生成する
原因⑤ サーバー側のキャッシュ・WAFの影響
さくらサーバー・エックスサーバーなどのWAF(セキュリティ)やキャッシュ機能が誤検知 してリダイレクトする場合があります。
例)
- さくらのプロテクト機能で URL がブロックされる
- エックスサーバーのアクセラレータが古いキャッシュを保持
- Cloudflareが勝手にルールを作っている
- サーバーパネルでキャッシュクリア
- WAF設定のログを確認
- Cloudflareを使っている場合はルールを確認
原因⑥ SSL(HTTPS)化の設定漏れ
以下のような状態だと、HTTP → HTTPS への自動リダイレクトが暴走します。
- wp-config.php の URL が http のまま
- サイトアドレス(一般設定)が不一致
- ミックスドコンテンツが発生している
SSL化直後に起こる典型的なリダイレクトループです。
- 一般設定の URL が https で統一されているか確認
- 301リダイレクトを .htaccess に二重書きしていないか確認
原因別の具体的な解決策
ここからは、先ほど紹介した原因ごとに初心者でも確実に改善できる具体的な方法 を解説します。
1. スラッグ(URL)の重複を解消する
同じスラッグを複数の投稿・カテゴリーで使うとWordPress は「どっちが正しいURL?」と判断できずリダイレクトが発生します。
- 管理画面 → 固定ページ → 編集
- 右側の「パーマリンク」でスラッグを確認
- 投稿 → カテゴリー → カスタム投稿 などと重複していないかチェック
- 必要に応じてスラッグ名を変更する(例:
news-pageなど)
よくある NG パターン
| 種類 | スラッグ |
|---|---|
| 固定ページ | /blog/ |
| 投稿カテゴリー | /blog/ |
→ ほぼ確実に投稿一覧へリダイレクトされます。
固定ページは /blog-top/、カテゴリーは /blog/など役割を分けましょう。
2. パーマリンク設定をリセット(再生成)
WordPress の URL ルールが壊れると勝手にリダイレクトされます。
- 管理画面 → 設定 → パーマリンク
- 何も変更せずそのまま「保存」ボタンをクリック
これにより、リライトルール(URLの内部設定)が再生成され、問題が直ることが多いです。
3. リダイレクト系プラグインを無効化して確認
プラグインが勝手に301転送を作っている可能性があります。
疑いのあるプラグイン例
- Redirection
- All in One SEO / Yoast SEO(canonical設定)
- Simple 301 Redirects
- SiteGuard(ログインURL変更)
- 上記プラグインを一時停止して固定ページにアクセス
- リダイレクトが止まれば犯人確定
- 設定画面で手動登録されたリダイレクトを削除
- canonical の設定を見直す
4. .htaccess を確認する(特にさくら・エックスサーバー)
.htaccess の書き換えミスがあると、WordPressより優先されて強制リダイレクトされます。
- FTP(FFFTP、FileZilla など)で接続
- WordPress のルートにある
.htaccessを開く - 不要なリダイレクト行がないか確認
WordPress の正しい初期状態
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これ以外に意味不明な転送ルールがあれば削除する。
その後…→ パーマリンク設定を再保存しましょう(必須)
5. サーバーのキャッシュ & WAF を無効化してみる
特に以下でトラブルが多発します:
- さくらサーバー「WAF(Webアプリケーションファイアウォール)」
- エックスサーバー「Xアクセラレータ」
- Cloudflare のリダイレクトルール
さくらサーバーの場合
- コントロールパネル → Webアプリケーションファイアウォール
- 一時的に「OFF」にしてページを確認
エックスサーバーの場合
- サーバーパネル → Xアクセラレータ
- 「OFF」または「標準」に変更
- キャッシュの削除をクリック
Cloudflareの場合
- ルール → “URL Redirect Rule” を確認
- 不要な転送が入っていないかチェック
6. SSL設定の不整合を修正する(http → httpsの混在)
SSL化直後に多いパターンです。
チェックリスト
- 設定 → 一般 → WordPressアドレス(URL)、サイトアドレス(URL)
→ 両方 https になっているか? .htaccessに以下のような重複コードが2回書かれていないか?
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
- http の画像やスクリプトを読み込む
→ Chrome が強制的に https に飛ばす → リダイレクトループ
- Really Simple SSL を使ってURLをまとめる
- Mixed Content Checker で http リソースを洗い出す
それでも改善しない場合の最終手段(上級者向け)
上記の対処法を試しても問題が解決しない場合、WordPressのより深い部分でリダイレクトが発生している可能性があります。
ここでは、開発者・中級〜上級者向けの最終手段を紹介します。
操作を誤るとサイト全体に影響が出るため、バックアップを取った上で慎重に進めてください。
1. .htaccess を初期化する
.htaccess に不要なリダイレクト設定が残っている場合、WordPressの挙動が正常に戻らないことがあります。
- TP または ファイルマネージャーで
/.htaccessを開く - ファイルをいったん 削除 または 名前変更(例:.htaccess_old)
- WordPress管理画面 →「設定」→「パーマリンク」を開き、何も変更せず「保存」
→ WordPressが自動で正しい.htaccessを再生成します
注意:独自のリダイレクト設定を書いていた場合は、必要なコードを再度追記してください。
2. テーマやプラグインのリダイレクト処理をコードレベルで調査する
テーマの functions.php やプラグイン内部で、意図しないリダイレクト関数が発動している場合があります。
よくあるリダイレクト関数
wp_redirect()wp_safe_redirect()wp_safe_redirect_admin()add_action( 'template_redirect', ... )add_action( 'init', ... )
- テーマフォルダ →
functions.php内のredirectという単語を検索 - 必要に応じてテーマ全体(VSCode などでフォルダ検索)にリダイレクト処理がないかチェック
- プラグインフォルダも同様に確認
対策
- 不要なリダイレクトがある場合はコメントアウトして原因を特定
- テーマのアップデートや修正で解決する場合も
3. サーバー側の設定(自動リダイレクト)が影響している可能性
サーバーパネルで HTTP→HTTPS 強制 や www あり/なし統一 の設定が行われていると、WordPressの設定と二重でリダイレクトが発生することがあります。
- エックスサーバー:ドメイン設定 → リダイレクト設定
- ConoHa WING:サイト管理 → リダイレクト
- ロリポップ:独自ドメイン → SSL設定、リダイレクト設定
- Cloudflare 使用時:Page Rules や Transform Rules の設定
対策
- サーバーの設定と WordPress の設定がぶつかっていないか整理する
- 重複するルールを停止/統合する
4. データベース内の URL が誤っている可能性
データベースの wp_options や wp_postmeta に誤った URL が残っていると、自動的に別の URL に飛ばされることがあります。
wp_options→siteurl/home- 固定ページの
postmeta内にカスタムリダイレクトが書かれていないか - プラグインが残した古いリダイレクトデータがないか
注意
- phpMyAdmin で直接編集するため、間違えるとログインできなくなる可能性あり
- 必ずバックアップを取ってから変更すること
5. WordPress 本体の再インストール
根本的にファイルが破損している場合、WordPressの再インストールが有効です。
- WordPress管理画面 →「ダッシュボード」→「更新」
- ページ下部にある「WordPress を再インストール」ボタンをクリック
6. 最終手段:専門家へ依頼する
コードレベルの問題、複雑なリダイレクトループ、サーバー設定の絡む問題は、プロでも調査に時間がかかるケースがあります。
以下のような場合は専門家に依頼することをおすすめします。
- 問題の原因が複数重なっている
- 問題が再発する
- コードの編集が不安
- サーバーや DNS の知識が不足している
まとめ
WordPress で固定ページが勝手にリダイレクトされる問題は、パーマリンク設定の不整合・スラッグの重複・プラグインの影響・キャッシュ・サーバー側の設定 など、複数の要因が重なって起きることが多いトラブルです。
まずは次のポイントを順番に確認することで、ほとんどのケースは解決します。
- パーマリンク設定を更新する
- 固定ページのスラッグとディレクトリ名が重複していないか確認
- プラグインを一時停止して原因を切り分ける
- キャッシュをクリアする
- URL の統一設定(www / SSL)を見直す
それでも改善しない場合は、.htaccess の初期化やコードレベルでの調査、サーバー設定の見直しなど、より専門的な対応が必要です。複雑なリダイレクトループは非常に原因が見つけにくいため、無理をせず専門家へ相談するのも一つの手です。



コメント