LLMO対策をWordPressで実装する完全手順|プラグイン設定からコード実装まで

AI検索の利用者が急速に増加するなか、WordPressサイトでもLLMO(大規模言語モデル最適化)対策の実装が急務となっています。しかし、「何をどの順番で設定すればよいのか」「プラグインで対応できるのか、コードを書く必要があるのか」が分からず、手つかずのままになっている企業も多いのではないでしょうか。

本記事では、WordPressサイトにおけるLLMO対策の実装手順を、robots.txtの設定からllms.txtの生成、構造化データの実装、Yoast SEOの最適化設定まで、プラグインとコードの両面から具体的に解説します。

WordPressでLLMO対策を実装すべき理由

WordPressは世界のWebサイトの約43%で採用されているCMSであり、BtoB企業のコーポレートサイトやオウンドメディアでも広く使われています。一方で、デフォルトの状態ではAI検索への対応が十分とは言えません。

WordPressの初期設定では、AIクローラーへの明示的な許可がなく、構造化データもテーマ依存です。ChatGPTやPerplexityがサイトの情報を参照・引用する際に必要な技術的条件が整っていないケースがほとんどです。

LLMOの技術的な基盤についてはテクニカルSEOとLLMO対策の関係で詳しく解説していますが、本記事ではWordPressに特化した実装手順を取り上げます。

実装すべき項目は大きく以下の5つに分類されます。

  1. AIクローラーのアクセス許可(robots.txt)
  2. llms.txtの設置
  3. Yoast SEOのLLMO向け設定
  4. 構造化データの実装(FAQPage、HowTo、Article、Speakable)
  5. サイト全体の技術的な最適化
  6. 以降のセクションで、それぞれの実装手順を具体的に説明します。

    手順1:robots.txtでAIクローラーを許可する

    LLMO対策の第一歩は、AIクローラーがサイトのコンテンツにアクセスできる状態を作ることです。WordPressではrobots.txtが仮想的に生成されるため、設定方法は通常のサーバー直接配置とは異なります。

    プラグインを使う方法

    Yoast SEOを導入済みの場合、「ツール」メニューから「ファイルエディター」を開き、robots.txtを編集できます。以下の記述を追加してください。

    User-agent: GPTBot
    Allow: /
    
    User-agent: ClaudeBot
    Allow: /
    
    User-agent: PerplexityBot
    Allow: /
    
    User-agent: Google-Extended
    Allow: /
    
    User-agent: Applebot-Extended
    Allow: /
    

    GPTBot(OpenAI)、ClaudeBot(Anthropic)、PerplexityBot(Perplexity)、Google-Extended(Gemini)、Applebot-Extended(Apple Intelligence)の5つが、2026年時点で対応すべき主要AIクローラーです。

    functions.phpでカスタマイズする方法

    テーマのfunctions.phpに以下のコードを追加することで、プラグインに依存せずrobots.txtをカスタマイズできます。

    /**
     * AIクローラーのアクセスをrobots.txtで許可する
     */
    function llmo_custom_robots_txt( $output, $public ) {
        $ai_crawlers = array(
            'GPTBot',
            'ClaudeBot',
            'PerplexityBot',
            'Google-Extended',
            'Applebot-Extended',
        );
    
        foreach ( $ai_crawlers as $bot ) {
            $output .= "nUser-agent: " . $bot . "nAllow: /n";
        }
    
        return $output;
    }
    add_filter( 'robots_txt', 'llmo_custom_robots_txt', 10, 2 );
    

    設定後は https://あなたのドメイン/robots.txt にアクセスし、追加した記述が反映されていることを確認してください。また、WordPressの「設定 > 表示設定」で「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていないことも併せて確認します。

    手順2:llms.txtを設置する

    llms.txtは、AIに対してサイトの全体像と主要コンテンツを伝えるためのファイルです。robots.txtが「どこにアクセスしてよいか」を示すのに対し、llms.txtは「何が重要なコンテンツか」を示します。

    llms.txtの基本構成

    サイトのルートに設置する /llms.txt には、以下の情報を記載します。

    # サイト名
    > サイトの概要(1〜2文)
    
    ## カテゴリ名1
    - [記事タイトル](URL): 記事の概要
    - [記事タイトル](URL): 記事の概要
    
    ## カテゴリ名2
    - [記事タイトル](URL): 記事の概要
    

    BtoB企業の場合、自社の専門領域や対象読者を明確に記述することで、AIがサイトの権威性を適切に判断する材料になります。

    WordPressで自動生成する方法

    記事の更新に合わせてllms.txtを手動で更新し続けるのは現実的ではありません。以下のコードをfunctions.phpに追加することで、投稿の公開・更新時にllms.txtを自動生成できます。

    /**
     * llms.txt を投稿の公開/更新時に自動生成する
     */
    function llmo_generate_llms_txt( $post_id ) {
        if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
            return;
        }
    
        $site_name = get_bloginfo( 'name' );
        $site_desc = get_bloginfo( 'description' );
        $output    = "# {$site_name}n> {$site_desc}nn";
    
        $categories = get_categories( array( 'hide_empty' => true ) );
        foreach ( $categories as $cat ) {
            $output .= "## {$cat->name}n";
    
            $posts = get_posts( array(
                'category'       => $cat->term_id,
                'posts_per_page' => 20,
                'orderby'        => 'date',
                'order'          => 'DESC',
                'post_status'    => 'publish',
            ) );
    
            foreach ( $posts as $post ) {
                $url     = get_permalink( $post->ID );
                $excerpt = wp_trim_words( $post->post_excerpt ?: $post->post_content, 40, '...' );
                $output .= "- [{$post->post_title}]({$url}): {$excerpt}n";
            }
            $output .= "n";
        }
    
        file_put_contents( ABSPATH . 'llms.txt', $output );
    }
    add_action( 'publish_post', 'llmo_generate_llms_txt' );
    add_action( 'edit_post',    'llmo_generate_llms_txt' );
    

    このコードは、カテゴリごとに最新20件の公開済み記事をリスト化し、llms.txtとしてサイトルートに出力します。記事の公開・更新のたびに自動的に最新の状態に保たれます。

    プラグインで対応する方法

    コードを書かずに対応したい場合は、「LLMs.txt for WordPress」などの専用プラグインが利用できます。管理画面からllms.txtの内容をGUIで編集でき、投稿との連動も設定可能です。ただし、2026年4月時点ではプラグインの選択肢は限られており、カスタマイズ性の面ではfunctions.phpでの実装が優れています。

    LLMO対策に適したCMS選びについてはLLMO対策に強いCMS比較も参考にしてください。

    手順3:Yoast SEOをLLMO向けに設定する

    Yoast SEOはWordPressにおけるSEOプラグインの定番ですが、適切に設定することでLLMO対策にも有効に機能します。以下の設定項目を確認・調整してください。

    メタディスクリプションの最適化

    Yoast SEOの投稿編集画面で設定するメタディスクリプションは、AIが記事の概要を把握する際に重要な参照元となります。以下の点を意識して記述します。

    • 記事の主題と結論を含める(AIは冒頭の要約を重視する)
    • 専門用語を避けず、正確な表現を使う
    • 120〜160文字の範囲で簡潔にまとめる

    Schema設定の確認

    Yoast SEOは自動的にArticleスキーマとBreadcrumbListスキーマを出力します。「検索での見え方 > コンテンツタイプ」で以下を確認します。

    • 投稿のスキーマタイプが「Article」に設定されていること
    • 著者情報が正しく入力されていること(E-E-A-T強化)
    • パンくずリストが有効になっていること

    サイトマップの最適化

    「一般 > 機能」でXMLサイトマップが有効であることを確認します。AIクローラーもサイトマップを参照するため、不要な投稿タイプ(メディア添付ファイルなど)はサイトマップから除外し、重要なコンテンツが確実にインデックスされるようにします。

    手順4:構造化データを実装する

    構造化データ(Schema.org)の実装は、AIがページの内容を正確に理解するための最重要施策の一つです。WordPressでは、プラグインとカスタムコードの組み合わせで効率的に実装できます。

    構造化データの全体像については構造化データとLLMO対策の関係で解説していますので、ここではWordPressでの具体的な実装方法に焦点を当てます。

    FAQPageスキーマ

    よくある質問セクションにFAQPageスキーマを設定すると、AIが質問と回答のペアを構造的に理解できます。以下のJSON-LDコードをテンプレートに追加します。

    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "LLMO対策はWordPressで実装できますか?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "はい、WordPressでLLMO対策を実装できます。robots.txtの設定、構造化データの追加、llms.txtの設置など、プラグインとカスタムコードの組み合わせで対応可能です。"
          }
        },
        {
          "@type": "Question",
          "name": "LLMO対策に必要なプラグインは何ですか?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yoast SEOまたはRank Math(メタデータ・基本スキーマ)、Schema Pro(拡張構造化データ)、LLMs.txt for WordPress(llms.txt管理)が推奨されます。"
          }
        }
      ]
    }
    

    WordPressで動的にFAQPageスキーマを生成するには、カスタムフィールドと連携させる方法が効果的です。以下はfunctions.phpに追加するコード例です。

    /**
     * FAQPage構造化データを投稿のカスタムフィールドから動的生成する
     */
    function llmo_faq_schema() {
        if ( ! is_single() ) {
            return;
        }
    
        $faq_items = get_post_meta( get_the_ID(), 'faq_items', true );
        if ( empty( $faq_items ) || ! is_array( $faq_items ) ) {
            return;
        }
    
        $questions = array();
        foreach ( $faq_items as $item ) {
            $questions[] = array(
                '@type'          => 'Question',
                'name'           => esc_html( $item['question'] ),
                'acceptedAnswer' => array(
                    '@type' => 'Answer',
                    'text'  => esc_html( $item['answer'] ),
                ),
            );
        }
    
        $schema = array(
            '@context'   => 'https://schema.org',
            '@type'      => 'FAQPage',
            'mainEntity' => $questions,
        );
    
        echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE ) . '</script>' . "n";
    }
    add_action( 'wp_head', 'llmo_faq_schema' );
    

    HowToスキーマ

    手順型のコンテンツにはHowToスキーマが有効です。AI検索で「WordPressでLLMO対策をする方法」と質問された際、手順がステップごとに引用されやすくなります。

    {
      "@context": "https://schema.org",
      "@type": "HowTo",
      "name": "WordPressでLLMO対策を実装する手順",
      "description": "WordPressサイトにLLMO対策を実装するための5ステップを解説します。",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "robots.txtでAIクローラーを許可する",
          "text": "functions.phpにフィルターを追加し、GPTBot、ClaudeBot、PerplexityBotなどのAIクローラーをAllowに設定します。"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "llms.txtを設置する",
          "text": "サイトルートにllms.txtを設置し、サイトの概要と主要コンテンツを記載します。自動生成スクリプトの導入を推奨します。"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Yoast SEOをLLMO向けに設定する",
          "text": "メタディスクリプション、Articleスキーマ、サイトマップの設定を最適化します。"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "構造化データを実装する",
          "text": "FAQPage、HowTo、Articleの各スキーマをJSON-LDで実装します。"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Speakableマークアップを追加する",
          "text": "音声読み上げに適した箇所をspeakableプロパティで指定し、AI音声検索への対応を強化します。"
        }
      ]
    }
    

    Articleスキーマの拡張

    Yoast SEOが自動出力するArticleスキーマに、LLMO対策として有効なプロパティを追加します。以下のコードでauthorやpublisherの情報を補強できます。

    /**
     * Yoast SEOのArticleスキーマにLLMO向けプロパティを追加する
     */
    function llmo_enhance_article_schema( $data ) {
        if ( isset( $data['@type'] ) && in_array( $data['@type'], array( 'Article', 'NewsArticle', 'BlogPosting' ), true ) ) {
            // 専門性を示すキーワードを追加
            if ( $keywords = get_post_meta( get_the_ID(), '_yoast_wpseo_focuskw', true ) ) {
                $data['keywords'] = $keywords;
            }
    
            // 記事の対象読者を明示
            $data['audience'] = array(
                '@type'        => 'Audience',
                'audienceType' => 'BtoB企業のマーケティング担当者',
            );
        }
    
        return $data;
    }
    add_filter( 'wpseo_schema_article', 'llmo_enhance_article_schema' );
    

    Speakableマークアップ

    Speakable(読み上げ適性)マークアップは、Google AssistantやSiriなどの音声AIがコンテンツを読み上げる際に参照するプロパティです。LLMO対策の文脈では、AI検索が回答を生成する際にどの部分を引用すべきかのヒントとしても機能します。

    /**
     * Speakableマークアップを記事に追加する
     */
    function llmo_speakable_schema() {
        if ( ! is_single() ) {
            return;
        }
    
        $schema = array(
            '@context'  => 'https://schema.org',
            '@type'     => 'WebPage',
            'name'      => get_the_title(),
            'speakable' => array(
                '@type'    => 'SpeakableSpecification',
                'cssSelector' => array(
                    '.entry-title',
                    '.entry-content h2',
                    '.entry-content > p:first-of-type',
                    '.faq-answer',
                ),
            ),
        );
    
        echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE ) . '</script>' . "n";
    }
    add_action( 'wp_head', 'llmo_speakable_schema' );
    

    cssSelectorには、AIに優先的に読み取ってほしい要素のCSSセレクタを指定します。記事タイトル、見出し、冒頭の段落、FAQの回答部分などが適切な対象です。

    手順5:サイト全体の技術的な最適化

    個々のページだけでなく、サイト全体の技術的な基盤を整えることもLLMO対策に直結します。

    ページ速度の改善

    AIクローラーはページのレンダリングを待たずにHTMLを取得するケースが多いため、サーバーサイドレンダリング(SSR)が確実に動作していることが重要です。WordPressでは以下の対策を行います。

    • キャッシュプラグイン(WP Super Cache、W3 Total Cacheなど)を導入し、静的HTMLを生成する
    • 不要なプラグインを無効化し、HTMLの出力を軽量に保つ
    • 画像の遅延読み込み(lazy loading)を有効にする(ただし、OGP画像やファーストビュー画像は除外する)

    セキュリティヘッダーとクローラーアクセス

    WAF(Web Application Firewall)やセキュリティプラグインがAIクローラーを誤ってブロックしていないかを確認します。Wordfenceなどのプラグインを使用している場合、ファイアウォールの「許可されたIPアドレス」にAIクローラーのIPレンジを追加するか、ユーザーエージェントによるブロックルールを確認してください。

    内部リンク構造の最適化

    AIはサイト内のリンク構造を分析してコンテンツの関係性を把握します。WordPressでは以下の点に注意して内部リンクを整備します。

    • 関連記事プラグイン(YARPP、Jetpackの関連投稿機能など)を活用する
    • カテゴリやタグの階層構造を論理的に整理する
    • パンくずリストをすべてのページに設置する(Yoast SEOの機能で対応可能)

    LLMO対策全体の施策一覧はLLMO対策チェックリスト20項目で確認できます。

    LLMO対策に役立つWordPressプラグイン一覧

    ここまで紹介した施策をプラグインで効率的に実装するための推奨リストを整理します。

    プラグイン名 主な用途 LLMO対策での役割
    Yoast SEO メタデータ・スキーマ・サイトマップ Articleスキーマの自動出力、robots.txt編集
    Rank Math メタデータ・スキーマ FAQスキーマ・HowToスキーマのGUIエディタ
    Schema Pro 拡張構造化データ Speakable、Articleの詳細スキーマ
    LLMs.txt for WordPress llms.txt管理 llms.txtの生成・編集
    WP Super Cache キャッシュ 静的HTML生成によるクロール最適化
    Wordfence / Sucuri セキュリティ AIクローラーのアクセス許可確認

    Yoast SEOとRank Mathはいずれか一方を選択してください。両方を同時に有効化するとスキーマが重複出力され、構造化データのエラーが発生します。

    構造化データの出力が正しく行われているかは、Googleのリッチリザルトテスト(https://search.google.com/test/rich-results)で検証できます。

    実装後の確認と効果測定

    実装が完了したら、以下の手順で正しく動作しているかを確認します。

    技術的な動作確認

    • robots.txtの確認:ブラウザで /robots.txt にアクセスし、AIクローラーのAllowルールが表示されることを確認
    • llms.txtの確認:/llms.txt にアクセスし、サイト情報とコンテンツ一覧が正しく出力されていることを確認
    • 構造化データの確認:リッチリザルトテストに主要ページのURLを入力し、FAQPage、HowTo、Articleの各スキーマがエラーなく検出されることを確認
    • Speakableの確認:構造化データテストツールでspeakableプロパティが正しく出力されていることを確認

    効果測定の指標

    LLMO対策の効果は、従来のSEO指標だけでは測定できません。以下の指標を定期的にモニタリングします。

    • GA4のリファラルレポートで chat.openai.comperplexity.aigemini.google.com からの流入数を確認
    • Google Search Consoleの検索パフォーマンスで、AI Overviewsの表示回数(可能な場合)を確認
    • ChatGPTやPerplexityで自社の主要キーワードを検索し、言及・引用の有無を手動チェック

    よくある質問

    Q. LLMO対策はWordPressの無料テーマでも実装できますか?

    はい、無料テーマでも実装可能です。本記事で紹介したrobots.txtの設定、llms.txtの設置、構造化データの追加はすべてfunctions.phpやプラグインで対応できるため、テーマの種類に依存しません。ただし、テーマが独自に構造化データを出力している場合は、重複を避けるために既存の出力を確認してから追加してください。

    Q. Yoast SEOとRank MathのどちらがLLMO対策に向いていますか?

    どちらもLLMO対策に必要な基本機能(Articleスキーマ、サイトマップ、メタデータ管理)を備えています。Rank MathはFAQスキーマやHowToスキーマをブロックエディタ上でGUI操作で追加できる点が優れています。一方、Yoast SEOはSchema APIを通じたカスタムスキーマの拡張に柔軟に対応できます。技術リソースがある場合はYoast SEO、ノーコードで運用したい場合はRank Mathが適しています。

    Q. llms.txtは必ず設置する必要がありますか?

    llms.txtの設置は必須ではありませんが、推奨されます。llms.txtはまだ標準化の過程にありますが、AIがサイト全体の構造と主要コンテンツを短時間で把握するための有効な手段です。特にコンテンツ量が多いサイトでは、AIがどのページを優先的に参照すべきかの判断材料になります。設置のコストは低いため、早期に対応しておくことを推奨します。

    Q. 構造化データを追加するとページの表示速度に影響しますか?

    JSON-LD形式の構造化データはブラウザのレンダリングには影響しないため、表示速度への影響はほぼありません。JSON-LDはscriptタグ内にJSONデータを記述する形式であり、DOMの構築やCSSの解釈とは独立して処理されます。ただし、PHPで動的に構造化データを生成する処理が重い場合は、キャッシュの活用を検討してください。

    まとめ

    WordPressでのLLMO対策は、robots.txtの設定から構造化データの実装まで、段階的に進められる実装可能な施策です。本記事で紹介した5つの手順を整理すると以下のようになります。

    1. robots.txtでAIクローラー(GPTBot、ClaudeBot、PerplexityBot、Google-Extended、Applebot-Extended)を許可する
    2. llms.txtを設置し、サイトの概要と主要コンテンツをAIに伝える
    3. Yoast SEOのメタディスクリプション、スキーマ設定、サイトマップを最適化する
    4. FAQPage、HowTo、Article、Speakableの構造化データをJSON-LDで実装する
    5. ページ速度、セキュリティ設定、内部リンク構造を見直す
    6. 重要なのは、すべてを一度に実装しようとせず、優先度の高い施策から順番に進めることです。まずはrobots.txtとllms.txtの設定を完了させ、その後に構造化データの実装へ進むのが効率的な進め方です。

      自社サイトのLLMO対策状況を無料で診断できるツールも提供しています。まずは現状を把握し、優先的に対応すべき項目を特定することから始めてみてください。

無料資料ダウンロード