WordPressは、世界のWebサイトの約40%以上が使用しているCMSです(W3Techs, 2024)。 GEO対策を行う際、すでにWordPressで運用しているサイトをどう最適化するかは、多くのマーケティング担当者が直面する課題です。
この記事では、WordPressサイトのGEO対策を、プラグイン設定・構造化データ・キャッシュ・テーマ選びの観点から解説します。
WordPressとAIクローラの関係
WordPressはPHPがリクエストのたびにHTMLを生成するCMSです。 AIクローラはJavaScriptを実行しなくてもコンテンツを読めるため、これはGEO対策において有利な点です。
ただし、以下の要因でAIクローラの読み取りが阻害されることがあります。
robots.txtでAIクローラをブロックしている- セキュリティプラグインがBotを403で拒否している
- キャッシュプラグインがBot向けに空ページを返している
- テーマがJavaScriptで本文を遅延読み込みしている
現状確認——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対策として確認・設定すべき項目です。
- 「SEO → 検索での見え方 → コンテンツタイプ」でタイトルとディスクリプションのテンプレートが設定されているか
- 「SEO → 検索での見え方 → 一般」で組織名・ロゴが正確に入力されているか
- 「ソーシャル」でOGPの有効化とデフォルトOGP画像が設定されているか
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を作成し、questionとanswerのサブフィールドを設定します。
キャッシュプラグインの設定
WordPressはキャッシュなしでは応答速度が遅くなります。 AIクローラは応答速度も評価基準にしているため、キャッシュの設定はGEO対策の一部です。
| プラグイン | GEO対策のポイント |
|---|---|
| WP Super Cache | 「mod_rewrite」方式を選択(最速) |
| W3 Total Cache | Page 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対策の観点でのテーマ評価基準です。
- セマンティックなHTMLタグ(article、section、nav等)を使っているか
- 見出し構造がh1→h2→h3の順序で正しいか
- 本文がサーバーサイドでHTML出力されているか(JSの遅延読み込みでないか)
ブログ記事にはページビルダーを使わず、ブロックエディタ(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.txt | AIクローラがAllowされているか | 高 |
| メタデータ | title、description、OGPが全ページにあるか | 高 |
| 構造化データ | Articleスキーマが全記事に出力されているか | 高 |
| キャッシュ | Bot向けにもキャッシュが返されているか | 高 |
| セキュリティ | AIクローラが403/429でブロックされていないか | 高 |
| テーマ | セマンティックなHTML構造になっているか | 中 |
| 更新日 | article:modified_timeが出力されているか | 中 |
まとめ——WordPressのGEO対策は設定の確認から
WordPressはサーバーサイドレンダリングのCMSであるため、GEO対策の土台は整っています。 問題が発生するのは、プラグインやテーマの設定がAIクローラをブロックしているケースです。
まずcurlで現状を確認し、robots.txt・セキュリティプラグイン・キャッシュプラグインの設定を見直してください。
その上で、SEOプラグインの構造化データ設定を整備し、カスタムスキーマを必要に応じて追加します。