WordPressは、世界のWebサイトの約40%以上が使用しているCMSです(W3Techs, 2024)。 GEO対策を行う際、すでにWordPressで運用しているサイトをどう最適化するかは、多くのマーケティング担当者が直面する課題です。

この記事では、WordPressサイトのGEO対策を、プラグイン設定・構造化データ・キャッシュ・テーマ選びの観点から解説します。

WordPressとAIクローラの関係

WordPressはPHPがリクエストのたびにHTMLを生成するCMSです。 AIクローラはJavaScriptを実行しなくてもコンテンツを読めるため、これはGEO対策において有利な点です。

ただし、以下の要因でAIクローラの読み取りが阻害されることがあります。

現状確認——AIクローラから自社サイトがどう見えているか

# GPTBotとしてアクセス
curl -A "GPTBot" https://example.com/blog/sample-article/ > gpbot_output.html

# 通常のブラウザとしてアクセス
curl -A "Mozilla/5.0" https://example.com/blog/sample-article/ > browser_output.html

# 行数を比較
wc -l gpbot_output.html browser_output.html

Bot向けの出力が極端に少ない場合、セキュリティプラグインやWAFがブロックしている可能性があります。

robots.txtの修正

AIクローラを明示的に許可するには、functions.phpに以下を追加します。

add_filter('robots_txt', function ($output, $public) {
    $ai_crawlers = [
        'GPTBot', 'ChatGPT-User', 'PerplexityBot',
        'ClaudeBot', 'Applebot-Extended',
    ];
    foreach ($ai_crawlers as $bot) {
        $output .= "\nUser-agent: {$bot}\nAllow: /\n";
    }
    return $output;
}, 10, 2);

管理画面の「設定 → 表示設定」で「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていないかも確認してください。

Yoast SEOでのGEO対策設定

Yoast SEOの構造化データは自動で出力されます。 出力内容は以下のコマンドで確認できます。

curl -s https://example.com/blog/sample-article/ \
  | grep -o '<script type="application/ld+json">.*</script>' \
  | python3 -m json.tool

GEO対策として確認・設定すべき項目です。

Rank Mathの場合は、Schema Markupの詳細設定が組み込まれており、記事個別にスキーマタイプを変更できます。

カスタム構造化データの追加

SEOプラグインが出力する構造化データに加えて、FAQスキーマを追加する方法です。

// functions.php — ACFリピーターフィールドからFAQスキーマを生成
add_action('wp_head', function () {
    if (!is_singular('post') || !function_exists('get_field')) {
        return;
    }
    $faq_items = get_field('faq_items');
    if (empty($faq_items)) {
        return;
    }

    $schema = [
        '@context' => 'https://schema.org',
        '@type' => 'FAQPage',
        'mainEntity' => array_map(function ($item) {
            return [
                '@type' => 'Question',
                'name' => $item['question'],
                'acceptedAnswer' => [
                    '@type' => 'Answer',
                    'text' => $item['answer'],
                ],
            ];
        }, $faq_items),
    ];

    echo '<script type="application/ld+json">'
       . wp_json_encode($schema, JSON_UNESCAPED_UNICODE)
       . '</script>';
});

ACFの管理画面で「リピーターフィールド」としてfaq_itemsを作成し、questionanswerのサブフィールドを設定します。

キャッシュプラグインの設定

WordPressはキャッシュなしでは応答速度が遅くなります。 AIクローラは応答速度も評価基準にしているため、キャッシュの設定はGEO対策の一部です。

プラグインGEO対策のポイント
WP Super Cache「mod_rewrite」方式を選択(最速)
W3 Total CachePage Cacheの「ディスク(Enhanced)」を選択
WP Rocket「Botのためのキャッシュ」を有効化
LiteSpeed Cache「Crawler」設定を有効化

注意すべき点として、一部のプラグインはBotにキャッシュを返さない設定がデフォルトです。 AIクローラがBot判定されると、PHPの動的生成が走り、サーバー負荷が高い場合にタイムアウトします。

テーマ選びのGEO対策ポイント

テーマが出力するHTMLの構造が、AIクローラの読み取り精度に直結します。

# 見出し構造を確認
curl -s https://example.com/blog/sample-article/ \
  | grep -oP '<h[1-6][^>]*>.*?</h[1-6]>'

GEO対策の観点でのテーマ評価基準です。

ブログ記事にはページビルダーを使わず、ブロックエディタ(Gutenberg)を使うことを推奨します。 ブロックエディタはセマンティックなHTMLを出力する設計です。

更新日の出力と鮮度管理

AI検索は情報鮮度を評価基準としています。 更新日をメタタグに反映させます。

add_action('wp_head', function () {
    if (!is_singular('post')) {
        return;
    }
    $modified = get_the_modified_date('c');
    $published = get_the_date('c');

    echo '<meta property="article:published_time" content="'
       . esc_attr($published) . '" />' . "\n";
    echo '<meta property="article:modified_time" content="'
       . esc_attr($modified) . '" />' . "\n";
});

Yoast SEOやRank Mathはこのメタタグを自動出力しますが、テーマによっては出力されないことがあります。 curlで確認し、不足があれば上記のコードを追加してください。

セキュリティプラグインとの競合確認

for bot in "GPTBot" "PerplexityBot" "ClaudeBot" "ChatGPT-User"; do
  status=$(curl -s -o /dev/null -w "%{http_code}" -A "$bot" https://example.com/)
  echo "$bot: $status"
done

200以外のステータスコード(403、429など)が返される場合、セキュリティプラグインがブロックしています。 Wordfenceの場合、「Firewall → Rate Limiting」でBot向けのレート制限を緩和できます。

実装チェックリスト

項目確認内容優先度
robots.txtAIクローラがAllowされているか
メタデータtitle、description、OGPが全ページにあるか
構造化データArticleスキーマが全記事に出力されているか
キャッシュBot向けにもキャッシュが返されているか
セキュリティAIクローラが403/429でブロックされていないか
テーマセマンティックなHTML構造になっているか
更新日article:modified_timeが出力されているか

まとめ——WordPressのGEO対策は設定の確認から

WordPressはサーバーサイドレンダリングのCMSであるため、GEO対策の土台は整っています。 問題が発生するのは、プラグインやテーマの設定がAIクローラをブロックしているケースです。

まずcurlで現状を確認し、robots.txt・セキュリティプラグイン・キャッシュプラグインの設定を見直してください。 その上で、SEOプラグインの構造化データ設定を整備し、カスタムスキーマを必要に応じて追加します。