WordPressで壊れたパーマリンクを修正する方法
John Turner
John Turner
クライアントのサイトに初めてログインしたとき、404エラーしか表示されなかったのを今でも覚えています。すべてのページが消えてしまったかのようでした。少なくとも、そう見えたのです。
パーマリンクの破損は、WordPressで最もよくある問題の1つであり、実際よりも悪く見えることがほとんどです。
この記事では、最も簡単な修正から始めて、より技術的な内容に進みながら、壊れたパーマリンクを修正する方法を説明します。
ほとんどの場合、5分以内に解決できます!
主なポイントは次のとおりです:
- パーマリンクが壊れると、すべての投稿やページが404エラーを返します。
- コンテンツはデータベースに安全に残っていますが、WordPressがトラフィックを正しくルーティングできません。
- 一般的な原因としては、プラグインの競合、サイトの移行、.htaccessファイルの破損、不適切なファイル権限などが挙げられます。
- 最も簡単な修正方法:設定 » パーマリンクに移動し、何も変更せずに「変更を保存」をクリックします。
- 修正を試みた後は、必ずすべてのキャッシュをクリアしてください。ブラウザキャッシュ、プラグインキャッシュ、サーバーキャッシュ、CDNキャッシュなどです。
- 簡単な修正でうまくいかない場合は、すべてを無効化してテストし、プラグイン/テーマの競合を確認してください。
- 更新にはステージングサイトを使用し、公開後にパーマリンク構造を変更せず、定期的なバックアップを維持することで、将来の問題を防ぎます。
目次
WordPressのパーマリンクとは?
パーマリンクとは、投稿やページの永続的なURL構造のことです。誰かがあなたのコンテンツを訪問したときに、ブラウザのアドレスバーに表示されるものです。
WordPressでは、これらのURLの表示方法について、主に2つのオプションがあります。
最初のオプションは、私が「醜い」パーマリンクと呼ぶものです。次のような表示になります:https://yoursite.com/?p=123。技術的には問題なく機能しますが、人間にとっても検索エンジンにとっても最悪です。
2番目のオプションは「わかりやすい」パーマリンクです。次のような表示になります:https://yoursite.com/how-to-fix-broken-links/。明確でキーワードが豊富なURLは、ランダムな数字の羅列よりもパフォーマンスが向上します。
わかりやすいパーマリンクが重要な理由は2つあります。
- 訪問者は、クリックする前にページの内容を理解することができます。
- Googleなどの検索エンジンは、URL構造をランキングシグナルとして使用します。
パーマリンクが壊れているかどうかはどうすればわかりますか?
「壊れたパーマリンク」と言うとき、それはWordPressがこれらのわかりやすいURLを突然処理できなくなった場合を指します。
コンテンツはデータベースにまだ存在しています。WordPressがトラフィックを正しくルーティングできないため、代わりにすべてのページが404エラーを返します。
症状は通常、非常に明白です。ホームページは正常に読み込まれますが、個々の投稿やページはすべて404エラーを返します。内部リンクをクリックすると、コンテンツの代わりに「ページが見つかりません」というメッセージが表示されます。
WordPressの管理ダッシュボードは正常に機能します。ログインして、バックエンドですべての投稿やページを確認でき、そこではすべて正常に見えます。しかし、フロントエンドではどうでしょうか?404エラーしか表示されません。
特定の操作、例えばサイトの移行、プラグインの更新、サーバー設定の変更などの直後に、これがすぐに発生することがあります。他の場合は、どこからともなく発生するように見えます。
これは、ランダムなURLが1つか2つだけではなく、すべての投稿とページに一度に影響します。それが、単なるリンク切れではなく、パーマリンクの問題であるとわかる方法です。
パーマリンクが壊れるのはなぜですか?
パーマリンクの破損はランダムに発生するわけではありません。ほぼ必ず特定のトリガーがあります。
プラグインまたはテーマの競合
新しいプラグインやテーマが、WordPressのURL書き換えルールを壊すことがあります。
以前、セキュリティプラグインをインストールしたところ、サイト上のすべてのリンクが即座に壊れてしまいました。そのプラグインは独自の書き換えルールを追加しようとして、WordPressのコアルールを上書きしてしまったのです。
これは、あなたが思うよりも頻繁に発生します。特にリダイレクト、キャッシュ、またはセキュリティ機能を処理するプラグインでよく見られます。
サイトの移行または復元
サイトをあるサーバーから別のサーバーに移動すると、パーマリンクの仕組みを制御する.htaccessファイルが常に正しく転送されるとは限りません。サーバーはそれぞれ異なる設定を持っており、古いホストで機能したものが新しいホストで機能しない場合があります。
.htaccessファイルの破損
.htaccessファイルはWordPressのルートディレクトリにあり、URLの処理方法をサーバーに指示します。
プラグインがこのファイルを編集してパーマリンクの破損を直接引き起こすことがあります。また、手動での変更がうまくいかない場合もあります。
いずれにしても、そのファイル内の書き換えルールが破損または削除されると、パーマリンクが機能しなくなります。
SSL/HTTPSの問題
最近SSL証明書を追加して、サイトをHTTPSに切り替えた場合、リダイレクトループや混合コンテンツの問題が発生している可能性があります。これらはパーマリンクの破損のように見えますが、根本原因は異なります。
WordPressで壊れたパーマリンクを修正する方法
WordPressのパーマリンクの破損を修正するための最良の方法を以下に示します。
- パーマリンクをリセットする(設定 » パーマリンク » 変更を保存)
- すべてのキャッシュをクリアする(ブラウザ、プラグイン、サーバー、CDN)
- プラグインを無効化し、テーマを切り替えて競合を見つける
- .htaccessファイルのパーミッションを確認する(644であるべきです)
- サーバー設定を確認する(Apacheでmod_rewriteが有効になっているか)
- SSL設定が「設定 » 一般」と一致しているか確認する
- 必要に応じて.htaccessファイルを再生成する
- 複雑な問題の場合は、ホスティングサポートまたはWordPressの専門家に連絡する
wp-adminでパーマリンクをリセットする
WordPressには、ダッシュボードを通じてパーマリンクの破損を修正するための組み込みの方法があります。パーマリンク設定を再度保存することで、WordPressが.htaccessファイルを再生成します。
この修正はほとんどの場合で機能し、30秒もかかりません。私はこれを何十回も使用しましたが、魔法のように感じることは決してありません。
WordPress管理ダッシュボードにログインし、**設定 » パーマリンク**に移動します。何も変更しないでください。下にスクロールして、**変更を保存**ボタンをクリックするだけです。

WordPressは、新しい書き換えルールで.htaccessファイルを再生成します。設定を変更していなくても、保存する行為によってWordPressはこれらのルールを最初から書き直すことになります。
10回中9回は、この時点でサイトが修正されます。それでも解決しない場合は、読み進めてください。
キャッシュのクリア
パーマリンクのリセットが機能しなかったと決めつける前に、サイトのキャッシュをすべてクリアしてください。
ブラウザのキャッシュから始めましょう。Chromeでは、3つの点のアイコンをクリックし、「閲覧履歴データの削除」を選択します。

「キャッシュされた画像とファイル」を選択し、「データを削除」をクリックします。

次にキャッシュプラグインをクリアします。WP Rocket、W3 Total Cache、またはその他のキャッシュプラグインを使用している場合は、WordPress管理バーまたはプラグイン設定にある「キャッシュをクリア」ボタンを探してください。

サーバーサイドキャッシュも忘れないでください。多くのホスティングサービスには独自のキャッシュレイヤーがあります。ホスティングコントロールパネルでキャッシュクリアオプションを確認してください。
CloudflareのようなCDNを使用している場合は、そのキャッシュもパージする必要があります。
最初のステップで問題が実際に解決されたにもかかわらず、キャッシュされたページが何時間も404エラーを表示し続けた状況を見たことがあります。すべてをクリアしてから、再度テストしてください。
競合するプラグインまたはテーマを無効化する
パーマリンクのリセットが機能しなかった場合、おそらくプラグインまたはテーマの競合に対処していると思われます。
まずプラグインを確認する必要があります。問題が消えるかどうかを確認するために、すべてのプラグインを無効にしてください。

次にサイトをテストします。リンクは機能しますか?
もしそうなら、プラグインの競合を確認したことになります。原因を特定するまで、プラグインを1つずつ再度有効にし、有効にするたびにテストしてください。
すべてのプラグインが無効な状態でもリンクが機能しない場合は、Twenty Twenty-FiveのようなデフォルトのWordPressテーマに切り替えてみてください。「外観 » テーマ」に移動し、デフォルトのテーマを有効にして、再度テストしてください。

競合しているプラグインまたはテーマを見つけたら、いくつかの選択肢があります。
- 問題に対処できるアップデートが利用可能かどうかを確認してください。
- 同じ機能を持つ代替プラグインを探してください。
- 開発者のサポートチームに連絡してください。
ファイルパーミッションを確認する
WordPressが.htaccessファイルを自動的に更新するには、書き込みアクセス権が必要です。権限が正しくない場合、パーマリンクをリセットしてもWordPressは新しいリライトルールを書き込むことができません。
正しいファイル権限は次のとおりです。
- ファイル(.htaccessを含む):644
- フォルダ: 755
これは、FileZillaのようなFTPクライアントまたはホスティングコントロールパネルのファイルマネージャーを通じて確認できます。
ファイル上で右クリックし、「ファイル権限」を選択します。チェックボックスのあるダイアログボックスが表示されます。

644の場合、次のようになります。
- 所有者:読み取り + 書き込み
- グループ:読み取りのみ
- 公開:読み取りのみ
権限が正しくない場合は、変更してから、「設定 » パーマリンク」メソッドを使用してパーマリンクを再度リセットしてください。
サーバー構成を確認する
ここからがより技術的な内容になります。
Apacheサーバー(ほとんどの共有ホスティング)を使用している場合、mod_rewriteモジュールが有効になっている必要があります。このモジュールにより、そもそもパーマリンクが機能します。
ほとんどのホスティングサービスではデフォルトで有効になっていますが、すべてではありません。
Nginxを使用している場合は、話が異なります。Nginxは.htaccessファイルをまったく使用しません。URLのリライトは独自の構成ファイルを通じて処理されるため、WordPressを通じて自分で修正することはできません。
サーバー構成の問題が疑われる場合は、ホスティングサポートに連絡してください。すべての投稿とページで404エラーが発生していることを伝え、mod_rewriteが有効になっているか(Apacheの場合)、またはパーマリンクのリライトルールが正しく構成されているか(Nginxの場合)を確認するように依頼してください。
ホスティングサポートチームはこれを何度も経験しており、数分で修正できます。
SSLの問題を確認する
最近HTTPSに移行した場合、これはまったくパーマリンクの問題ではない可能性があります。
WordPressダッシュボードの設定 » 一般に移動します。
2つのフィールドを確認してください。
- WordPressアドレス (URL)
- サイトアドレス (URL)
両方とも正確に一致する必要があります。SSL証明書がある場合は、両方とも http:// ではなく https:// で始まる必要があります。

一致しない場合は、更新してください。ただし、ここで注意してください。間違えると、サイトにアクセスできなくなる可能性があります。最初にバックアップを作成してください。

これを修正した後にリダイレクトループが表示される場合は、HTTPSリダイレクトを正しく強制するために.htaccessファイルを更新する必要がある場合もあります。
htaccessファイルを手動で再生成する
他のすべてがうまくいかなかった場合は、新しい.htaccessファイルを手動で作成する時期です。
FTPでサイトに接続し、WordPressのルートディレクトリに移動します。.htaccessファイルを見つけて、バックアップとしてコンピューターにコピーをダウンロードします。
サーバー上のファイルを.htaccess_oldに名前変更します。

WordPressで設定 » パーマリンクに移動し、変更を保存をクリックします。WordPressはデフォルトのリライトルールで新しい.htaccessファイルを作成するはずです。
WordPressが(権限のために)ファイルを自動的に作成できない場合は、手動で作成する必要があります。.htaccessという名前の新しいファイルを作成し、このコードを貼り付けます。
# 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
そのファイルをWordPressのルートディレクトリにアップロードし、権限が644に設定されていることを確認します。サイトを再度テストしてください。
専門家のヘルプを求める
上記すべてを試してもパーマリンクがまだ壊れている場合は、問題が標準的な修正で対応できるよりも深い可能性があります。データベースの問題、サーバー構成の誤り、またはまったく別の問題である可能性があります。
最初にホスティングサポートチームに連絡する必要があります。ほとんどのホストにはWordPressの専門家がおり、WordPress管理画面からは見えない問題を特定するためにサーバーログを調査できます。
ホストが対応できない場合(またはサポートが最小限のホストを使用している場合)は、WordPressメンテナンスサービスに連絡することを検討してください。WPBeginnerは、このような問題を処理できるプレミアムWordPressサポートを提供しています。

専門家に30分だけ料金を支払うことで、何時間ものフラストレーションを節約できることがあります。
パーマリンクが将来壊れるのを防ぐ方法
一度壊れたパーマリンクを修正するのは面倒です。繰り返し修正するのは悪夢です。
この問題に再び対処しないようにする方法は次のとおりです。
ステージングサイトを使用する
本番サイトに触れる前に、ステージングサイトですべてをテストしてください。
プラグインの更新、テーマの変更、およびWordPressコアのメジャーアップデートは、最初にステージングで実行する必要があります。何かがパーマリンク(または他の何か)を壊した場合、実際の訪問者が404エラーを見る前にそれを検出できます。
Duplicator Proを使えば、これが簡単になります。本番サイトの完全なバックアップを作成し、そのWordPressバックアップファイルをステージング環境にドラッグ&ドロップします。データベースとすべてのファイルを含め、完全なクローンが自動的にセットアップされます。

今では、大きな変更を加える前には必ずこれを行うようにしています。数え切れないほど助けられました。
パーマリンク構造の変更は避ける
サイトが公開され、Googleにインデックスされたら、パーマリンク構造を変更しないでください。
誘惑はわかります。たとえば、最初は/?p=123から始めて、きれいなURLにしたくなったかもしれません。あるいは、投稿URLから日付を削除したいかもしれません。
しかし、そうなると、サイト上のすべてのURLが変更されます。コンテンツを指しているすべての被リンクが壊れます。インデックスされたURLが404エラーを返すようになるため、Googleのランキングは急落します。
どうしても構造を変更する必要がある場合は、古いURLごとに301リダイレクトを設定する必要があります。AIOSEOやRedirectionのようなプラグインで可能ですが、手間がかかり、エラーが発生しやすいです。
最初から良いパーマリンク構造を選び、それに固執してください。ほとんどのサイトでは、投稿名(/sample-post/)をお勧めします。クリーンで、SEOに強く、柔軟性があります。
定期的なバックアップを作成する
最近のバックアップは、究極のセーフティネットです。
何か問題が発生した場合、バックアップを復元すれば数分でオンラインに戻ることができます。バックアップがなければ、簡単な解決策もなく、トラブルシューティングに立ち往生してしまいます。
Duplicatorで自動バックアップを設定することをお勧めします。トラフィックが少ない深夜に実行されるようにスケジュールしてください。バックアップはオフサイトに保存してください(ウェブサイトと同じサーバーにだけ保存しないでください)。

私のバックアップルールはこうです。過去24時間の作業を失うことを心配するなら、毎日バックアップしてください。過去1週間を失うことを心配するなら、毎週バックアップしてください。
よくある質問(FAQ)
WordPressのパーマリンクはどこで見つけられますか?
WordPressダッシュボードに移動し、設定 » パーマリンク設定に移動します。そこにサイトのURL構造を表示および変更できます。
WordPressでパーマリンクを追加するにはどうすればよいですか?
WordPressは、コンテンツを公開するとパーマリンクを自動的に生成します。特定の投稿またはページのURLスラッグをカスタマイズしたい場合は、投稿エディターで、サイドバーまたはタイトルの下にあるパーマリンクセクションをクリックして編集できます。
パーマリンクを変更するとページが壊れますか?
はい、もちろんです。パーマリンク構造を変更すると、サイト上のすべてのURLが変更され、検索エンジン、ソーシャルメディア、その他のウェブサイトからコンテンツを指している既存のすべてのリンクが壊れます。
WordPressの壊れたリンクを修正するにはどうすればよいですか?
すべての投稿とページで404エラーが返される場合は、パーマリンクの問題です。この記事の前半のトラブルシューティング手順に従ってください。特定のリンクのみが壊れている場合は、Broken Link Checkerのようなプラグインを使用してサイトをスキャンし、それらのURLを手動で更新またはリダイレクトしてください。
WordPressでパーマリンクをフラッシュするにはどうすればよいですか?
設定 » パーマリンク設定に移動し、何も変更せずに変更を保存をクリックします。これにより、古い書き込みルールがフラッシュされ、最初から再生成されます。
サイトリンクを健全に保つ
パーマリンクが壊れると、発生したときに壊滅的な事態に感じられます。サイト全体が突然404エラーを返し、すべてが消えてしまったように見えます。
しかし、ほとんどの場合、コンテンツは問題ありません。WordPressはリライトルールが混乱しているため、トラフィックを正しくルーティングできないだけです。
体系的なアプローチが機能します。まずパーマリンクをリセットし、キャッシュをクリアし、競合を確認し、権限を確認し、必要に応じてそこからエスカレートします。
そして、問題を修正したら、再発を防ぐための措置を講じます。テストにはステージングサイトを使用します。確立されたサイトのパーマリンク構造を変更しないでください。定期的なバックアップを維持してください。
サイトを移動した後に壊れたパーマリンクを扱ったことがあるなら、それがどれほどイライラするかを知っているでしょう。Duplicator Proは、移行中にサーバー構成と.htaccess調整を自動的に処理するため、ほとんどのパーマリンクの問題が発生する前に防止します。
自動バックアップは、アップデートが問題を引き起こした場合に常に最新の復元ポイントがあることを保証します。今日Duplicator Proをお試しください!
せっかくなので、これらの厳選されたWordPressリソースも気に入ると思います: