WordPressで壊れたパーマリンクを修正する方法
ジョン・ターナー
ジョン・ターナー
初めてクライアントのサイトにログインしたとき、404エラーしか表示されなかったことを今でも覚えている。すべてのページが消えていた。少なくとも、そう見えた。
壊れたパーマリンクはWordPressの最も一般的な問題のひとつで、ほとんどの場合、実際よりも悪く見えます。
この記事では、壊れたパーマリンクを修正する方法を、最も簡単な修正から始めて、より技術的なものまで含めて紹介する。
たいていの場合、5分以内に解決する!
以下はその要点である:
- パーマリンクが壊れていると、すべての投稿とページが404エラーを返す。
- あなたのコンテンツはまだデータベース内で安全ですが、WordPressはトラフィックを正しくルーティングできません。
- よくある原因としては、プラグインの競合、サイトの移行、.htaccessファイルの破損、ファイルのパーミッションの誤りなどがあります。
- 最速の修正方法です:設定 " パーマリンクに移動し、何も変更せずに変更を保存をクリックします。
- ブラウザキャッシュ、プラグインキャッシュ、サーバーキャッシュ、CDNキャッシュなど、修正を試みた後は必ずすべてのキャッシュをクリアしてください。
- 簡単な修正でうまくいかない場合は、プラグインやテーマの競合がないか、すべてを無効にしてテストしてください。
- アップデートにステージングサイトを使用し、ローンチ後にパーマリンク構造を変更せず、定期的にバックアップを維持することで、将来の問題を防ぐことができます。
目次
WordPressのパーマリンクとは?
パーマリンクは、あなたの投稿やページの恒久的なURL構造です。誰かがあなたのコンテンツにアクセスしたときに、ブラウザのアドレスバーに表示されるものです。
WordPressでは、URLの見栄えについて主に2つのオプションを提供しています。
1つ目は、私が「醜い」と呼ぶパーマリンクだ。https://yoursite.com/?p=123。技術的には問題なく機能するが、人間にとっても検索エンジンにとっても最悪だ。
2つ目のオプションは、「きれいな」パーマリンクです。https://yoursite.com/how-to-fix-broken-links/。明確でキーワードが豊富なURLは、ランダムな数字の羅列よりも優れたパフォーマンスを発揮します。
きれいなパーマリンクが重要なのは、2つの大きな理由がある。
- 訪問者がクリックする前に、そのページが何について書かれているのかを理解するのに役立つ。
- Googleをはじめとする検索エンジンは、URL構造をランキングシグナルとして利用している。
パーマリンクが壊れているかどうかを知るには?
私が「壊れたパーマリンク」と言ったのは、WordPressが突然、これらのきれいなURLを処理できなくなったときのことだ。
あなたのコンテンツはデータベースに残っています。WordPressがトラフィックを正しくルーティングできないため、404エラーが返されるだけです。
この症状は通常、かなり明白です。ホームページは問題なく読み込まれるが、個々の投稿やページは404エラーを返す。内部リンクをクリックすると、コンテンツではなく「ページが見つかりません」というメッセージが表示されます。
ワードプレスの管理ダッシュボードはまだ完全に機能しています。ログインし、バックエンドですべての投稿とページを見ることができ、そこではすべてが正常に見えます。しかし、フロントエンドでは?404以外何もありません。
サイトの移行、プラグインの更新、サーバー設定の変更など、特定の操作を行った直後に発生することもあります。また、突然発生することもあります。
1つまたは2つのランダムなURLではなく、一度にすべての投稿とページに影響します。そうすることで、リンク切れではなくパーマリンクの問題であることがわかるのです。
パーマリンクが壊れている理由
パーマリンク切れはランダムに起こるわけではありません。ほとんどの場合、特定のきっかけがある。
プラグインとテーマの競合
新しいプラグインやテーマは、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の管理画面にログインし、Settings " Permalinksに移動します。何も変更しないでください。下にスクロールして、変更を保存ボタンをクリックするだけです。

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

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

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

サーバーサイド・キャッシングもお忘れなく。多くのホストは独自のキャッシュレイヤーを持っています。ホスティングのコントロールパネルでキャッシュクリアオプションを確認してください。
CloudflareのようなCDNを使用している場合は、そのキャッシュもパージする必要がある。
ステップ1の後、実際に問題は解決したのだが、キャッシュされたページが何時間も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つのフィールドを見てみよう:
- ワードプレスアドレス(URL)
- サイトアドレス(URL)
どちらも正確に一致するはずです。また、SSL証明書をお持ちの場合は、どちらもhttp s://(http:// ではありません)で始まるはずです。

一致しない場合は、更新してください。しかし、ここで注意してほしいのは、これを間違えると、自分のサイトからロックアウトされてしまう可能性があるということだ。まずはバックアップを取りましょう。

これを修正してもリダイレクトのループが発生する場合は、.htaccessファイルを更新してHTTPSリダイレクトを正しく実行する必要があるかもしれません。
htaccessファイルを手動で再生成する
他に何も効果がない場合は、手動で新しい.htaccessファイルを作成しましょう。
FTPでサイトに接続し、WordPressのルート・ディレクトリに移動する。.htaccessファイルを見つけ、バックアップとしてコピーをコンピューターにダウンロードします。
サーバー上のファイルを.htaccess_oldにリネームする。

WordPressのSettings " Permalinksに行き、Save Changesをクリックする。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のようなプラグインを使えば可能だが、面倒でエラーが起こりやすい。
最初から良いパーマリンク構造を選び、それにこだわるだけでいい。私はほとんどのサイトでPost Name(/sample-post/)を推奨している。クリーンでSEOに優しく、柔軟性がある。
定期的なバックアップ
最近のバックアップは究極のセーフティネットだ。
何かが壊れても、バックアップを復元すれば数分でオンラインに戻ることができる。バックアップがなければ、簡単にはトラブルシューティングから抜け出せなくなる。
Duplicatorで自動バックアップを設定することをお勧めする。トラフィックが少ない夜間に実行するようにスケジュールを組む。バックアップをオフサイト(ウェブサイトと同じサーバー上だけでなく)に保存する。

過去24時間の仕事を失うことが心配なら、毎日バックアップを取る。過去1週間分を失うのが心配なら、毎週バックアップする。
よくある質問 (FAQ)
WordPressのパーマリンクはどこにありますか?
WordPressのダッシュボードに移動し、設定 " パーマリンクに移動します。ここでサイトのURL構造を表示したり変更したりすることができます。
WordPressでパーマリンクを追加するには?
WordPressはコンテンツを公開すると自動的にパーマリンクを生成します。特定の投稿やページのURLスラッグをカスタマイズしたい場合は、投稿エディターでサイドバーまたはタイトルの下にあるパーマリンクセクションをクリックして編集できます。
パーマリンクを変更するとページが壊れる?
はい、その通りです。パーマリンク構造を変更すると、サイト上のすべてのURLが変更され、検索エンジン、ソーシャルメディア、あなたのコンテンツを指す他のウェブサイトからの既存のリンクがすべて壊れます。
WordPressのリンク切れを修正するには?
すべての投稿やページが404エラーを返す場合、それはパーマリンクの問題です。特定のリンクだけが壊れている場合は、Broken Link Checkerのようなプラグインを使ってサイトをスキャンし、それらのURLを手動で更新またはリダイレクトしてください。
WordPressでパーマリンクをフラッシュするには?
Settings " Permalinksに行き、何も修正せずにSave Changesをクリックする。これで古いリライトルールがフラッシュされ、ゼロから再生成されます。
サイトのリンクを健全に保つ
パーマリンク切れが起きると、大惨事になる。あなたのサイト全体が突然404エラーを返し、すべてがなくなったように見える。
しかし、ほとんどの場合、コンテンツは問題ありません。WordPressがトラフィックを正しくルーティングできないのは、リライトルールが混乱しているからだ。
まずパーマリンクをリセットし、キャッシュをクリアし、コンフリクトをチェックし、パーミッションを確認し、必要であればそこからエスカレーションする。
そして問題を修正したら、再発防止策を講じましょう。テストにはステージングサイトを使う。既存サイトのパーマリンク構造を変更しない。定期的にバックアップを取る。
サイトを移行した後、壊れたパーマリンクに対処したことがある方は、それがどれほどイライラさせるかご存知でしょう。Duplicator Proは移行時にサーバー設定と.htaccessの調整を自動的に行うので、ほとんどのパーマリンクの問題を未然に防ぐことができます。
また、自動バックアップにより、アップデートが原因で問題が発生した場合でも、常に最新の復元ポイントを確保することができます。Duplicator Proを今すぐお試しください!
ここにいる間、私はあなたがこれらの他の厳選されたWordPressリソースを気に入ると思います: