2026年5月20日
2026年5月20日
WordPressの検索順位が急落した場合の対処法
はじめに
検索順位の急落は複数の原因が考えられます。Googleのアルゴリズム更新・技術的なSEO問題・手動ペナルティ・設定ミスなど、原因によって対処法が異なります。まず原因を正確に特定してから対処することが重要です。
症状・原因
- 特定の日を境にオーガニック流入が大幅に減少した
- Search Consoleで「手動による対策」の通知が届いた
noindexタグが誤ってサイト全体に設定されていた- 更新前後でページ数が大幅に変わっている
解決手順
ステップ1:原因の種類を特定する
【チェックリスト】
① Googleアルゴリズム更新と日付が一致するか?
→ https://status.search.google.com/ で更新履歴を確認
→ Search Engine Land / SEMrush Sensor でコアアップデートを確認
② Search Console に手動ペナルティの通知があるか?
→ Search Console → セキュリティと手動による対策 → 手動による対策
③ noindex・robots.txt に問題があるか?
→ ブラウザで: view-source:https://example.com/robots.txt
→ Search Console → URL検査ツール → インデックス登録を確認
④ 大規模なコンテンツ変更・削除があったか?
→ git log / WordPressリビジョンで変更内容を確認
⑤ ライバルサイトも落ちているか?
→ SEMrush / Ahrefs で競合サイトのトラフィック変化を確認
ステップ2:技術的なSEO問題を確認する
# robots.txt の確認(Disallow: / になっていないか)
curl -s https://example.com/robots.txt
# サイトマップが正しく返るか確認
curl -s -o /dev/null -w "%{http_code}" https://example.com/wp-sitemap.xml
# ホームページのnoindexタグを確認
curl -s https://example.com/ | grep -i "noindex\|robots"
# WordPress の検索エンジン表示設定を確認
wp option get blog_public
# 0 = 検索エンジンに表示しない(問題あり)
# 1 = 検索エンジンに表示する(正常)
// 誤ったnoindex設定の確認と修正
// 設定を修正(管理画面 → 設定 → 表示設定 → 検索エンジンの表示)
// または wp-config.php や functions.php に誤ったコードがないか確認
// 問題のあるコード例(これがある場合は削除)
// add_action('wp_head', function() {
// echo '<meta name="robots" content="noindex, nofollow">';
// });
// 正しいコード例(本番環境では削除)
// define('WPSEO_NOINDEX', true); // Yoast SEO プラグインのnoindex設定
// Search Console で確認するためのGoogleボット向けアクセスをシミュレート
// → URL検査ツール → URLを検査 → ライブテスト
ステップ3:コンテンツの問題を診断する
# インデックス数の急変を確認(site: 演算子)
# ブラウザで: site:example.com
# 想定より大幅に少ない場合はインデックス問題
# 重複コンテンツの確認
wp post list --post_type=post --post_status=publish \
--format=json | python3 -c "
import json, sys
posts = json.load(sys.stdin)
titles = [p['post_title'] for p in posts]
dupes = [t for t in titles if titles.count(t) > 1]
print('重複タイトル:', set(dupes))
"
# カノニカルURLの確認
curl -s https://example.com/post-slug/ | grep -i canonical
// functions.php: カノニカルURL設定の確認
// Yoast SEO / All in One SEO が正しくカノニカルを出力しているか確認
add_action('wp_head', function(): void {
if (is_singular()) {
$canonical = get_permalink();
// プラグインが出力していない場合のフォールバック
if (!defined('WPSEO_VERSION') && !defined('AIOSEO_VERSION')) {
echo '<link rel="canonical" href="' . esc_url($canonical) . '">' . PHP_EOL;
}
}
}, 5);
// ページネーションのカノニカル
// ?page=2 などのページには rel="next"/"prev" が必要(廃止済みだがrel=canonicalは有効)
ステップ4:被リンクの問題(スパムリンク)を確認する
# Google Search Console → リンク → 外部リンク → 上位のリンク元サイト
# 不自然なリンクがある場合:
# 1. Disavow ファイルを作成
cat > disavow.txt << 'EOF'
# スパムリンクの否認
domain:spam-site1.com
domain:spam-site2.com
https://bad-site.com/specific-page/
EOF
# 2. Search Console → 古いツール → リンクの否認
# disavow.txt をアップロード
// functions.php: 低品質ページのnoindexを適切に設定
// (乱用するとインデックス数が減って逆効果になる場合もある)
add_action('wp_head', function(): void {
// タグページ、作者アーカイブはnoindex
if (is_tag() || is_author()) {
echo '<meta name="robots" content="noindex, follow">' . PHP_EOL;
}
// 検索結果ページ
if (is_search()) {
echo '<meta name="robots" content="noindex, follow">' . PHP_EOL;
}
}, 1);
ステップ5:回復のためのアクション
// コンテンツの品質改善チェックリスト
// functions.php: コンテンツ品質確認ツール
add_action('admin_notices', function(): void {
if (!current_user_can('manage_options')) return;
$screen = get_current_screen();
if ($screen->id !== 'edit-post') return;
// 文字数が少ない投稿を警告
global $wpdb;
$short_posts = $wpdb->get_var(
"SELECT COUNT(*) FROM {$wpdb->posts}
WHERE post_status = 'publish'
AND post_type = 'post'
AND CHAR_LENGTH(post_content) < 500"
);
if ($short_posts > 0) {
echo '<div class="notice notice-warning"><p>';
echo "文字数500字未満の公開記事が{$short_posts}件あります。コンテンツを充実させることを検討してください。";
echo '</p></div>';
}
});
# Search Console の URL 再クロールリクエスト(重要ページのみ)
# Search Console → URL検査 → インデックス登録をリクエスト
# サイトマップを再送信
wp eval "
\$sitemap_url = home_url('/wp-sitemap.xml');
\$ping_url = 'https://www.google.com/ping?sitemap=' . rawurlencode(\$sitemap_url);
\$response = wp_remote_get(\$ping_url);
echo 'Status: ' . wp_remote_retrieve_response_code(\$response);
"
注意事項
- コアアップデートによる順位変動は、Googleが「品質の高いコンテンツを評価」した結果です。小手先の対策より、コンテンツの充実が最も有効です。回復には数週間〜数ヶ月かかる場合があります
- 手動ペナルティの場合は、Search Consoleの再審査リクエスト機能を使い、問題を修正した旨をGoogleに申告する必要があります
blog_publicが0になっているとサイト全体がインデックスされません。wp option get blog_publicで必ず確認してください
まとめ
順位急落の診断は①アルゴリズム更新との時期一致確認、②Search Consoleで手動ペナルティ・カバレッジエラーを確認、③wp option get blog_publicでnoindex設定ミスを確認、④robots.txtとカノニカルの技術的チェック、⑤被リンクのスパムリンク確認と否認、の順で進めます。原因特定後にコンテンツ品質改善・サイトマップ再送信・再クロールリクエストで回復を促進します。