要約
GEOコンテンツサイトがAIや検索エンジンに正しく引用されるには、5つの構造チェックを満たす必要がある:JSON-LD構造化データ、hreflang言語宣言、sitemap.xml、llms.txtテキスト索引、robots.txtクローラー許可。本記事は各項目のcurl+grepコマンド、合格基準、knowflowhub.comの実測結果を示す。
適用シーン
GEO(Generative Engine Optimization)サイトの目的は、AI検索ツールに直接引用されること。サイトの機械可読構造が、AIがコンテンツを発見し言語バージョンを識別し記事メタデータを解析できるかどうかを左右する。新規サイトの公開前チェック、リニューアル後の回帰チェック、「AIが記事を見つけてくれない」問題の調査に適用する。手順はすべてcurlとgrepで完結し、追加ツールは不要。
操作手順
ステップ1:JSON-LD構造化データ
コマンド:
curl -s https://ドメイン/ | grep -o 'application/ld+json' | wc -l合格基準:数値が1以上、かつ<script type="application/ld+json">ブロックが存在し、python3 -c "import json; json.load(open('/tmp/ld.json'))"でJSONとして解析可能。knowflowhub.com実測:ホームページに1つのJSON-LDブロック。
ステップ2:hreflang言語宣言
コマンド:
curl -s https://ドメイン/ | grep -o 'hreflang="[^"]*"' | sort -u合格基準:公開中の全言語にhreflang値があり、x-defaultも含む。knowflowhub.com実測:zh-CN、en-US、ja-JP、x-defaultの4項目。
ステップ3:sitemap.xmlの一覧確認
コマンド:
curl -s https://ドメイン/sitemap.xml | grep -oE '/content/[a-z]+/[0-9-]+/[a-z0-9-]+' | sort -u | wc -l合格基準:URL数が公開記事数と一致し、同一slugの多言語URLは重複カウントしない。knowflowhub.com実測:sitemapは195KBのXMLで、slug重複除去後82件。
ステップ4:llms.txt索引
コマンド:
curl -s https://ドメイン/llms.txt | head -30合格基準:ファイルが存在し(HTTP 200)、先頭にサイト説明があり、各記事の.md版へのMarkdownリンクと一行要約が並ぶ。knowflowhub.com実測:llms.txtがサイト紹介とコンテンツ索引を返す。
ステップ5:robots.txt許可
コマンド:
curl -s https://ドメイン/robots.txt合格基準:AIクローラー(GPTBot、ChatGPT-User、OAI-SearchBot、Googlebot、Google-Extended、Bingbot、PerplexityBot等)にAllow: /があり、Disallowで遮られていない。knowflowhub.com実測:GPTBot、ChatGPT-User、OAI-SearchBot、Googlebot、Google-Extendedをすべて許可。
注意事項
- JSON-LDとhreflangはJavaScript描画後のDOMではなく、生のHTMLソースに存在する必要がある。curlで取得したHTMLを確認すること。
- sitemapで同一slugの多言語URLを重複カウントしない。日付ディレクトリ構成の場合、各記事は3言語ルートすべてで収録されること。
- llms.txtはコミュニティ提案(llmstxt.org)であり検索エンジンの強制標準ではないが、複数のAI検索ツールが採用済み。コンテンツ更新時は同期刷新する。
- 構造チェック合格は「収録済み」を意味しない。収録はクロールタイミングと外部引用に依存し、構造は前提条件であって十分条件ではない。
ソース
- schema.org:JSON-LD入門ガイド
- Google Search Central:構造化データの紹介
- llms.txt提案:llmstxt.org
