回答エンジン向けコンテンツのルール
回答エンジンはページ全体を表示しません。ページ内の一節、またはその一節をもとに再構成した文を表示し、読者はそこで読むのを止めます。したがって、書く単位はドキュメントではなくセクションです。以下は、Docsbookがセクションに適用するルールであり、それぞれが作用する仕組みと、そのルールを裏付ける出典を示しています。
このページが扱わないことは3つあります。1つ目はマークアップ層です。それについては構造化された回答を参照してください。2つ目は、すでに取得された後に引用される可能性を高める要素の一覧です。それについては引用シグナルが扱い、測定された効果量と、してはいけないことをまとめています。このページが扱うのは執筆ルールであり、各ルールについて、ベンダーがルールを示したときに重要となる唯一の問い、つまりあなたの製品は実際にこれを行うのか、それとも私に行うよう求めているだけなのかに、正直に答えるものです。
3つの適用ラベルの意味#
| ラベル | 意味 | ルールに違反した場合の動作 |
|---|---|---|
| 自動的に適用 | コードが実行するか、違反する出力の出荷を拒否します | Docsbookを通じて違反することはできません。この動作は設定できません |
| チェックして報告 | コードが測定し、結果を表示します | 何も自動的には変更されません。証拠付きの指摘が表示されます |
| 推奨のみ | 執筆エージェントが下書きを作成する際に従う指示です | 人間がページを作成する場合も含め、その後に検証されることはありません |
ルールの概要#
| # | ルール | 適用 |
|---|---|---|
| 1 | 1ページで1つの役割に答え、その役割に合った形式にする | 推奨のみ |
| 2 | 見出しは読者が入力した質問として書く | 推奨のみ |
| 3 | すべてのセクションは、その上に何もなくても読めなければならない | 自動適用 |
| 4 | 見出しレベルはスタイル上の選択ではなく、契約である | 推奨のみ |
| 5 | アンカーは見出しテキストが持つため、手動で記述してはならない | 自動適用 |
| 6 | JavaScriptが実行される前に、答えがバイト列に含まれていなければならない | 確認して報告 |
| 7 | 主張に含まれるすべての数値は、それを生成したものを明示する | 自動適用 |
| 8 | 価格、制限、バージョンは推測せず、そのままコピーする | 自動適用(生成された料金ページ) |
| 9 | タイトルと説明は記述するものであり、H1から抽出するものではない | 自動適用 |
| 10 | どこからもリンクされていないページは、どこからも取得されない | 確認して報告 |
ルール 1 — 1ページは、その役割に適した形で1つの役割に答える#
チュートリアル、説明、ハウツー、リファレンステーブル、FAQはそれぞれ異なる5つの形式であり、これらを混ぜると、どの質問にも完全には答えられないページになります。Docsbookがサイトを生成すると、これらを別々の概要を持つ別ページとして記述します。説明ページには名詞句の見出しとコマンドなしの構成が使われ、ハウツーページには「具体的な目標を達成する方法」という形式のタイトルと、背景理論を含まない、目標指向の番号付き手順が使われ、リファレンスページにはグループごとに1つのテーブルが使われます。
回答エージェントへの影響。 エンジンは質問の種類と文章の種類を照合します。概念的な質問は、セクションが命令形の手順になっているページに対しては適切に検索できず、手順に関する質問は、理由を説明する文章に対しては適切に検索できません。Docsbookでは、ハウツー形式にもう1つ機械的な効果があります。「How to」で始まり、3つ以上の手順からなる番号付きリストが続く見出しは、HowTo検出器が読み取るまさにその形式であるため、形式を正しく記述することがマークアップの生成にもつながります — 構造化された回答を参照してください。
根拠。 Googleの有用なコンテンツに関する自己評価では、「メインの見出しまたはページタイトルが、コンテンツの内容を説明する有用な要約を提供しているか」を確認し、別途、「誇張したり、衝撃的な内容にしたりしていないか」も確認します(Google、役立つコンテンツの作成)。1つの役割を示すページタイトルは、設計上この両方を満たします。5つの形式への分割はDocsbook独自の実践であり、それを測定した公開情報源はありません。
推奨事項にとどまります。 形式は、ジェネレーターが従うページ概要に記載されています。手書きのページがこれらに従っているかどうかを確認する仕組みはありません。
ルール 2 — 見出しは読者が入力した質問として書く#
「レート制限」ではなく、「レート制限に達するとどうなりますか?」と書きます。サブシステムの内部名称ではなく、読者の言葉を使ってください。
回答エージェントに対する効果。 クエリのテキストを文書内に置くことができます。検索では質問と文章の類似度が評価され、そのスコアを上げる最も安価な方法は、文章に質問自体を含めることです。これは、文書拡張が意図的に利用するのと同じ効果です。Nogueira らは「特定の文書に対してどのクエリが発行されるか」を予測して文書に追加し、「2つの検索タスクで最高水準の性能」を報告しています。検索だけでも、はるかに高コストなニューラル再ランキングモデルに近い有効性を達成しています(arXiv 1904.08375)。質問形式の見出しは、セクションがどの質問に答えるかをすでに把握している人が書く文書拡張です。Docsbook では、これが検出器への入力にもなります。疑問符で終わる ### 見出しは、FAQPage マークアップ内で Question になります。
根拠。 arXiv 1904.08375 と、上記の仕組みです。どの資料も裏付けていないことにも注意してください。質問形式の見出しによって強調スニペットを獲得できると述べた公刊資料はありません。ページを強調スニペットとして表示する方法を尋ねられた Google は、「できません。Google のシステムが、ユーザーの検索リクエストに対してそのページが適切な強調スニペットになるかどうかを判断し、適切な場合はそのページを上位に表示します」と回答しています(Google、強調スニペット)。
推奨事項にすぎません。 執筆エージェントはこの形式で見出しを作成しますが、あなたが書いた見出しを書き換えることはありません。
ルール 3 — すべてのセクションは、その上に何もなくても読めなければならない#
「前述のとおり、これはデフォルトで 30 秒です」で始まるセクションは、参照先の段落から切り離された瞬間に使いものにならなくなります。そして、最初の取得時に切り離されることになります。
回答エージェントへの影響。 Docsbook はデフォルトで、ドキュメントを見出し単位でインデックス化します。つまり、ページ単位ではなく、セクションごとに 1 つの埋め込み単位を作成します。各単位の埋め込みテキストの先頭には、セクションの完全な見出し階層が付加されます — Billing > Refunds > Limits — これは、「Limits」というセクションが Webhooks の下にある場合と AI chat の下にある場合とでは意味が異なり、ベクトルにもその情報を保持させる必要があるためです。各単位は6,000 文字までに制限されます。この長さを超えるセクションは切り詰められるため、非常に長いセクションの末尾に埋もれた事実は、そもそもベクトルに含まれません。行単位の場合、20 文字以下の段落ブロックはノイズとして除外されます。
エビデンス。 取得の粒度は測定可能な変数であり、より細かく自己完結した単位のほうが優れています。Chen らは、文書、パッセージ、文の各単位を「命題」と比較しています。命題とは「テキスト内の原子的な表現で、それぞれが明確な 1 つの事実を内包し、簡潔で自己完結した自然言語形式で提示されたもの」です。そして、「命題のような細粒度の単位でコーパスをインデックス化すると、取得タスクにおいてパッセージレベルの単位を大幅に上回る」と報告しています(Dense X Retrieval、arXiv 2312.06648)。この発見をベンダー側から捉えた説明と、自身の主題を明示しない文章で生じる失敗モードについては、引用シグナルに記載されています。
自動的に適用されます — Docsbook が担う部分については。パンくずのプレフィックス、単位の境界、上限は、変更する設定なしにすべてのページへ適用されます。あなたが担う部分は文章です。明示しなかった主題を、後から復元することはできません。
ルール 4 — 見出しレベルはスタイルの選択ではなく契約#
セクションには H2、その中の質問には H3 を使用し、フォントを小さくするためにレベルを飛ばさないでください。
回答エージェントへの影響。 2 つあります。見出しツリーは、ページをルール 3 の単位に分割するものです。そのため、レベルを飛ばすとセクションが誤った親の下に置かれ、そのベクトルに誤ったパンくずが付与されます。また、Docsbook の FAQ 検出機能が読み取る形は 1 つだけです。それは、H3 の子要素が質問になっている H2 セクション、または疑問符で終わる H3 です。H3 セクションと H4 質問で FAQ を記述すると、マークアップはまったく生成されず、何も通知されません — 私たちが目にする AEO の失敗として最も一般的なものです。
根拠。 「見出しはページ上のコンテンツの構成を伝えます。ウェブブラウザー、プラグイン、支援技術は、ページ内ナビゲーションを提供するために見出しを使用できます」、また「見出しのランクを飛ばすと混乱を招く可能性があるため、可能な限り避けるべきです。<h2> の直後に <h4> が直接続かないようにしてください」(W3C WAI、見出し)。
推奨にとどまりますが、これは実際の問題です。 Docsbook には、レベルを飛ばしたことや、FAQ セクションが何にも一致しなかったことを警告する機能はありません。バリデーターで確認してください — 構造化された回答を参照してください。
ルール 5 — 見出しテキストがアンカーを所有する。手動で記述してはいけない#
ディープリンク、検索結果、AI による引用はすべて page#anchor を指します。これらのアンカーはすべて、レンダラーが使用するのと同じライブラリによって見出しテキストから導出され、他のコードが推測して作成することは許可されていません。
回答エージェントへの影響。 アンカーが存在しない引用は、特定のセクションを約束されていた読者を、長いページの先頭に移動させます。例外は発生せず、リンクが単に間違っているだけです。Docsbook は github-slugger を呼び出してアンカーを計算します。これはページのレンダリング時に rehype-slug が使用するものなので、事前計算されたアンカーとレンダリングされた id が一致しないことはありません。これが一元化される前に、このリポジトリ独自のコーパスを使って手作業で作成したスラッグ生成器を検証したところ、21,827 個の見出しのうち 1,386 個(6.3%)で、ページ上の id ではないアンカーが生成され、263 個はダッシュだけになりました。 不一致のうち 314 個は純粋な ASCII の見出し(「Edge cases & errors」は区切り文字を 1 つ多くまとめてしまう)で発生し、残りは非ラテン文字の見出しで、ロシア語サイトのすべての見出しが同じ無効なアンカーにまとまりました。
根拠。 上記の測定値は公開された研究のものではなく、このリポジトリで得た独自の数値です。外部の出典はなく、必要もありません — 所有者がある文字列は、再導出するのではなく、その所有者に問い合わせるというのがこのルールです。
自動的に適用されます。 すべての利用者向けに、アンカーは 1 か所で計算されます。
ルール 6 — JavaScript が実行される前に、答えがバイト列に含まれていなければならない#
本文がブラウザでスクリプトを実行した後にしか表示されない場合、URL を取得するアシスタントが受け取るのは空の殻です。
回答エージェントに及ぼす影響。 まったく何もありません — それがこの問題の要点です。Markdown には何も問題がないため、Markdown を読み取るチェックではこの失敗を見つけられません。Docsbook の audit_geo は、JavaScript エンジンなしでサンプルページを取得し、タグを除去した後に本文の文章が少なくとも 200 語残っているかどうかを確認します。それ未満の場合、ナビゲーションラベル、Cookie バナー、title タグだけでも低い基準を満たせてしまうという考えに基づき、ページは重大な問題として報告されます。同じチェックを指定されたアシスタントのユーザーエージェントに対しても実行するため、CDN がブラウザにはページを提供し、アシスタントにはチャレンジを返す場合は、別の問題として検出されます。
根拠。 Google の AI Overviews と AI Mode に関するガイダンスでは、修正すべきものはマークアップではなくテキストコンテンツであることが明確に示されています。具体的には「重要なコンテンツをテキスト形式で利用できるようにすること」と、「robots.txt でクロールが許可されていることを確認すること」です。また同じ文書には、「これらの機能に表示されるために、新しい機械可読ファイル、AI テキストファイル、またはマークアップを作成する必要はありません」とあります(Google、AI 機能)。Perplexity は、ユーザーが質問した際にページを訪問し、「正確な回答の提供を支援し、回答にそのページへのリンクを含める」ためのものとして Perplexity-User を説明しています(Perplexity、ボット)— つまり、ブラウザを介さない取得です。
チェックおよび報告済み。 Docsbook 自体のページはサーバーサイドでレンダリングされるため、Docsbook がホスティングするサイトはこのチェックに自動的に合格します。このチェックは、Docsbook が監査するサイトのために存在します。
ルール 7 — 主張に含まれるすべての数値は、それを生み出したものを示す#
数値を含む文は、その数値を生み出した観察結果までたどれる必要があります。もっともらしい記憶にたどり着ければよいのではありません。
回答エージェントに対する効果。 間違った数値は、修正しても残り続ける唯一の誤りです。アシスタントがそれを繰り返し、その繰り返しがあなたの編集よりも長く残ってしまいます。Docsbook は、エージェントツールが出力するすべての内容に対してこれを強制します。各検出結果には、名前付きの証拠エントリを指し示す evidence_refs が含まれ、コントラクトバリデーターは検出結果自体のテキスト内にある数字をスキャンします。引用している証拠に現れない数値は違反とみなされ、ペイロードはあなたに返されるのではなく、修正のためにモデルへ送り返されます。唯一の例外は、通常の文章内にある序数や少数の個数を表す 0~9、10、100 です。スコアリングはモデルではなく、収集した証拠に対する単純なコードによって行われます。言語モデルが書いた 0~100 は、同じモデルが翌週に書いた同じ数値と比較できないためです。
証拠。 Google の有用なコンテンツに関する質問では、「明確な出典や、関与した専門知識の証拠など、信頼したくなるような形で情報を提示しているか」を尋ねています(Google、有用なコンテンツの作成)。統計情報を追加して出典を引用すると、生成された回答のうち、どの程度があなたに帰属するかが高まるという測定結果は、これらの効果量を管理している 引用シグナルに記載されています。
エージェント出力には自動的に適用されます。 自分でページに入力した数値は、何によってもチェックされません。
ルール 8 — 価格、制限、バージョンは推測せず、そのままコピーする#
生成されたページに記載されるすべての価格と明示された制限は、その実行で読み取ったソース資料から逐語的にコピーされます。価格がソースに記載されていないプランは、「営業に問い合わせ」と記載されます。
回答エージェントに及ぼす影響。 価格は、製品について最も引用される事実であり、読者が行動の判断材料にするものです。推測された「一般的な」価格も、アシスタントが繰り返せば本物の価格と区別できません。Docsbookのジェネレーターはこのルールをブリーフに盛り込み、匿名パイプラインではさらに踏み込んでいます。クロールで価格がまったく見つからなかった場合、推測した数字を載せた価格ページは、価格ページがないよりも悪いという判断から、価格ページは作成されません。
根拠。 Googleの構造化データポリシーでは、マークアップは「ページの内容を正確に表すもの」でなければならず、読者に表示されない内容をマークアップすることは禁止されています(Google、構造化データのガイドライン)。またGoogleのAI機能に関するガイダンスでは、「構造化データがページ上の表示テキストと一致する」ことが求められています(Google、AI機能)。いずれも、発明した価格については何も述べていません。その部分はDocsbook独自のルールであり、私たちのルールとして明示しています。
自動的に適用されます。生成される価格ページについては、推測して作成するのではなく、ページ自体が削除されます。それ以外では、ブリーフに記載された指示です。
ルール 9 — タイトルと説明は記述するものであり、H1から抜き出すものではない#
フロントマターの title が本文のH1より優先され、本文のH1がファイル名より優先されます。フロントマターの description が本文の最初の段落より優先されます。
回答エージェントに及ぼす影響。 タイトルと説明は、機械が他の何よりも先に読み取る2つの文字列であり、どちらにもページ上では見えない失敗モードがあります。H1からタイトルを導出すると、検索結果を制御するためにフロントマターを編集した作成者の変更が何も反映されず、ブランド名が2回追加されるため、検索結果の1行の3分の1が重複で消費されます。本文から説明を導出すると、ウィジェットのマークアップやカードリストの残骸が読者に表示される内容に漏れ込みます。Docsbookは優先順位を1か所で固定し、単語の境界で切り詰め、可能な場合は文末で切断します。<meta name="description"> は160文字、Open GraphとJSON-LDの description は400文字です。どちらも同じ作成済み文字列から生成されるため、決して食い違うことはありません。
根拠。 「スニペットは主にページのコンテンツ自体から作成されます」。また、Googleは「各ページに固有の説明」を推奨しています(Google、スニペット)。タイトルについては、「説明的で簡潔なテキスト」を記述し、「繰り返しのテキストや定型文」を避け、「タイトルには簡潔にブランド名を付ける」ことが推奨されています(Google、タイトルリンク)。
優先順位と切り詰めは自動的に適用されます。長さはDocsbook独自の予算であり、公開された制限ではありません — 「制限」を参照してください。
ルール 10 — どこからもリンクされていないページは、何も取得されないページ#
すべてのページには、少なくとも1つの別のページからアクセスできるようにし、ページ上のすべてのリンクが解決されるようにする必要があります。
回答エージェントに与える影響。 クローラーはリンクをたどってページを見つけます。サイトマップにしか存在しないページは、クローラーが取得する弱い理由が1つあるだけで、重要だと判断する理由はありません。Docsbookはドキュメントセット全体のリンクグラフを構築し、ページごとに被リンク数と未解決リンク数をカウントします。リンク切れがあるページ、または被リンク数が0のページは、修正アクションとともにドキュメントグラフカードでフラグが付けられます。
根拠。 GoogleがAI OverviewsとAI Modeにページを表示させるのに実際に役立つものとして挙げている項目には、「ウェブサイト内の内部リンクを通じて、コンテンツを簡単に見つけられるようにすること」(Google、AI機能)が含まれています。
確認および報告済み。 エージェントに依頼しない限り、何もリンクを追加してくれるものはありません。
限界と未解決の問題#
- リストの半分は、間違ったことをするのを防いでくれません。ルール1、2、4は執筆エージェントが下書き時に従う指示であり、ルール6と10は事後に報告されます。ルール8が厳格に適用されるのは、生成された料金ページだけです。手作業でページを作成した場合、またはエージェントが作成したページを編集した場合、このリストに照らして確認する仕組みはDocsbookにはありません。見出しレベルの飛びや、どの検出器にも一致しなかったFAQセクションを報告するリンターはまだ存在せず、最も頻繁に、そして最も気づかれない形で失敗するのがルール4です。
- ルール9の文字数上限は、Googleのものではなく、私たちのものです。Googleは文字数制限を一切公開していません。「
<title>要素の長さに制限はない」としており、タイトルリンクは「必要に応じてGoogle検索結果で省略され、通常はデバイスの幅に収まるように調整される」と説明しています(Google、タイトルリンク)。説明文についても同様です。160文字と400文字はこのコードベースで使用している上限であり、ジェネレーターのブリーフにあるタイトル50~60文字、説明文130~160文字という目標は、社内スタイルです。これらは妥当なデフォルト値として扱い、何らかの測定で評価されるしきい値とは考えないでください。 - 未解決の問題:薄いページのしきい値。Docsbookのコードはページごとの判定を計算し、120語未満のページを「薄い」と呼び、「壊れている」「孤立している」とともに分類します。リンク切れと孤立の判定は表示されますが、薄いという判定は計算され、エクスポートされ、ユニットテストも実施されるものの、現在どのパネルにも表示されていません。そのため実際には、ページが薄いことを知らされることはありません。ジェネレーターのブリーフにある最低語数(ページの種類に応じて300~400語)は社内スタイルであり、これらの具体的な数字を裏付ける公開された出典はありません。出典があるのは方向性だけです。Googleは、コンテンツが「検索結果の他のページと比較して十分な価値を提供しているか」を問うています(Google、有用なコンテンツの作成)。
- 未解決の問題:疑問文形式の見出しが引用率を高めるかどうか。ルール2の検索メカニズムが実在し、出典によって裏付けられていることは確かです。しかし、特定の見出し形式によって、どの回答エンジンでも引用率が向上することを示す公開された出典はありません。ドキュメントの展開は検索ベンチマークで測定されており、ChatGPTやAI Overviewsで測定されているわけではありません。誰かが2回目の測定結果を公開するまでは、ルール2は検索については十分に根拠があるものの、引用については実証されていないものとして扱ってください。
- ルール3と6は異なる2つのパイプラインを説明しており、一方に合格しても他方については何も意味しません。ルール3はMarkdown上に構築されるDocsbook独自のセマンティックインデックスであり、ルール6は外部アシスタントがURLを取得したときに得るものです。サイト内検索用には完全にチャンク化されたページがChatGPTからは見えないこともあれば、その逆もあります。両者に共通するコードはありません。
- これらのいずれも、あなたにとっての成果に基づいて測定されていません。Docsbookは、ページが孤立していること、セクションがどの検出器の形式にも一致しなかったこと、または取得結果に文章が含まれていなかったことを伝えられます。しかし、これらのルールに従ったことで引用されたかどうかを伝えることはできず、またそのような主張もしていません。なぜ1回の実行では何も証明できないのかについては引用シグナルを、これらのページが満たすべき基準についてはDocsbookが主張をどのように証明するかを参照してください。
関連#
- AEO — 回答エンジンがページに必要とするものと、マークアップでなお実現できること
- 構造化された回答 — これらのルールが入力する検出器と、失敗がどのように見えるか
- 引用シグナル — 測定された効果量と、してはいけないこと
- GEO — TL;DRブロック、表示される日付、著者名の行
- SEO — インデックス作成、正規URL、クロール可能性、これらすべてに先立つ段階
- 検索 — チャンク化ルールが入力するサイト内検索
- コンテンツウィジェット — 検出器が理解するステッパーとアコーディオンの領域
- Docsbookが主張を裏付ける方法 — これらのページが従う証拠のルール