2026年5月22日

2026年5月22日

WordPressのHTTP 410 Goneエラーを処理する方法

はじめに

HTTP 410 Goneエラーは、ウェブページやリソースが存在しなくなったことを示すHTTPステータスコードです。WordPressサイトでこのエラーが発生すると、特定のコンテンツへのアクセスができなくなることがあります。この記事では、原因と解決策について詳しく解説します。

症状・背景

  • 旧コンテンツの削除後
  • プラグインやテーマの更新後に不具合が発生した場合
  • データベースのエントリーやファイルの誤削除後
  • マルチサイト設定でサブサイトが削除された場合

手順・設定方法

ステップ1: エラーログの確認

# ホスト名やドメイン名に適切な値を指定します。
ssh user@your-hostname.com

# SSHログイン後、エラーログファイルを開きます。ここではApacheを使用していることを前提としています。
sudo tail -f /var/log/apache2/error.log

# 410 Goneエラーが記録されているかどうか確認します。

ステップ2: ファイルとデータベースの整合性チェック

# WordPressサイトのルートディレクトリに移動します。
cd /path/to/your/wordpress/root

# `.htaccess`ファイルを編集して、存在しないページへのアクセスをロギングするための設定を追加します。
nano .htaccess

# 以下のような内容を追記します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [E=HTTP_410:1]

<If "%{ENV:HTTP_410}">
    Header set Status "410 Gone"
</If>

ステップ3: カスタムプラグインの使用

# WordPressプラグイン管理ページから「Custom 410 Gone Redirects」などの関連プラグインを探します。
wp plugin install custom-410-gone-redirects --activate

# プラグインを有効化したら、設定画面を開きます。
wp admin menu

# 特定のURLパターンや旧ページへのアクセスに対して410 Goneリダイレクトを作成します。

ステップ4: 既存データベースエントリーの修正

# phpMyAdminまたはMySQLクライアントを使用してWordPressデータベースに接続します。
mysql -u root -p

# `wp_posts`テーブルから削除されたポストを探すSQLクエリを実行します。
SELECT * FROM wp_posts WHERE post_status = 'trash';

# 適切なアクションを行います。例えば、不要なデータは完全に削除し、必要であれば復元します。
DELETE FROM wp_posts WHERE ID = 12345;

注意事項

  • バックアップの作成: 改変前に必ずバックアップを取ること。
  • リダイレクトの適切な設定: 404 Not Foundと誤って設定しないように注意すること。
  • セキュリティ上の注意: ファイルやデータベースへのアクセスは適切な権限を持つユーザのみが行うこと。
  • パフォーマンス/運用上の注意: 無駄なリダイレクトは回避し、エラーの原因を特定した上で解決すること。

まとめ

1. ログファイルの確認: エラーログから410 Goneエラーが発生している箇所を見つけます。

2. .htaccessの修正: 不要なURLへのアクセスを抑止し、適切に処理する設定を行います。

3. プラグインの活用: カスタムプラグインを利用して効率的に410 Goneエラーを管理します。

4. データベースの整合性確保: データベース内の不要なエントリーを削除し、適切に整えます。

5. 保守と監視: 定期的なバックアップをとり、サイトのパフォーマンスを監視します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ