データストアでウェブサイトの高度なインデックス登録が有効になっている場合は、次のタイプの構造化データを使用してインデックス登録を拡充できます。
このページでは、ウェブページの構造化データの両方のタイプについて説明し、カスタム構造化属性をデータストア スキーマに追加する方法について説明します。
事前定義された Google が推定したページの日付について
ウェブサイト データストア内のウェブページをクロールする際、Google はコンテンツに適用されるプロパティを使用してページデータを推定します。 Vertex AI Search は、これらの推定されたページデータ プロパティをスキーマに追加します。この推定データには、署名日とも呼ばれる、次のような事前定義された日付プロパティが含まれます。
datePublished: ページが最初に公開された日時dateModified: ページが最後に変更された日時
これらのプロパティは自動的にインデックス登録されます。これらの日付プロパティは、スキーマに追加しなくても、直接使用して検索を拡充できます。 ウェブサイトに署名日を追加するには、 Google 検索で署名日に影響を与えるをご覧ください。
フィルタ式やブースト仕様など、検索 リクエストにこれらの事前定義された日付プロパティを含める方法については、 Google が推定したページの日付を使用したユースケースの例をご覧ください。
ウェブページ上のカスタム日時フィールドについて
ウェブページにカスタム日時フィールドを追加できます。このようなタグは、カスタム構造化データ属性をデータストアスキーマに追加するときに、
高度なインデックス登録で使用できます。
ウェブページに lastModified
という名前のカスタム日時メタタグを追加する場所の例を次に示します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your web page title</title>
<!-- Vertex AI Search can use this date. -->
<meta name="lastModified" content="2022-07-01">
</head>
<body>
</body>
</html>
フィルタ式やブースト仕様など、検索リクエストにこのようなカスタム日時タグを含める方法については、カスタム日時属性を使用したユースケースの例をご覧ください。
カスタム構造化データ属性について
構造化データ属性を meta タグや PageMaps
としてウェブページに追加し、これらを使用してインデックス登録を拡充できます。カスタム構造化属性をインデックス登録に使用するには、スキーマを更新する必要があります。
meta タグのユースケースの例
組織内のさまざまな部門に関連するウェブページが多数あるとします。meta
タグを使用して、各部門に関連するページにラベルを付けることができます。その後、インデックスに登録されたタグをクエリのフィルタとして使用できます。これにより、検索結果を、指定した部門のいずれかに一致するラベルを含むウェブページに制限できます。
この処理を簡単に説明すると、次のようになります。
ウェブページの一部に次の
metaタグを追加します。エンジニアリング部門と IT 部門に関連するタグ:
<meta name="department" content="eng, infotech"> <meta property="og:title" content="Password best practices">財務部門と人事部門に関連するタグ:
<meta name="department" content="finance, human resources"> <meta property="og:image" content="https://example.com/images/team-training-contractors.jpg">詳細な例については、ウェブページの
metaタグの例をご覧ください。
更新されたページを再クロールします。
データストア スキーマにカスタム構造化データ属性を追加するのセクションで説明されているように、
departmentをインデックス登録可能な配列としてデータストア スキーマに追加します。
スキーマを更新すると、データストアのインデックスが自動的に再作成されます。
インデックスの再作成が完了したら、フィルタ式でdepartmentフィルタを使用して、検索結果の並べ替えやフィルタを行うことができます。たとえば、財務部門のユーザーがクエリを実行する場合、department フィルタを finance に設定すると、検索結果の関連性を高めることができます。
ウェブページの meta タグの例
ウェブページに追加できる meta タグの例を次に示します。このようなタグは、カスタム構造化データ属性をデータストア スキーマに追加するときに、高度なインデックス登録で使用できます。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Your web page title</title>
<!-- Robots instructions for crawlers and for Vertex AI Search. -->
<meta name="robots" content="index,follow">
<!-- Vertex AI Search can use custom datetime fields to filter, boost, and order. -->
<meta name="lastModified" content="2024-09-06">
<!-- Vertex AI Search can filter by category or tags. -->
<meta name="category" content="archived">
<meta name="tags" content="legacy,interesting,faq">
<!-- Vertex AI Search can index these common HTML tags. -->
<meta name="description" content="A description of your web page's content.">
<meta name="author" content="Your name or organization">
<meta name="keywords" content="relevant,keywords,separated,by,commas">
<link rel="canonical" href="https://www.yourwebsite.com/this-page">
<meta property="og:title" content="Your Webpage Title">
<meta property="og:description" content="A description of your webpage's content.">
<meta property="og:image" content="https://www.yourwebsite.com/image.jpg">
<meta property="og:url" content="https://www.yourwebsite.com/this-page">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Your customized Webpage Title">
<meta name="twitter:description" content="A description of your webpage's content.">
<meta name="twitter:image" content="https://www.yourwebsite.com/image.jpg">
</head>
<body>
...
</body>
</html>
PageMaps のユースケースの例
料理のレシピを含むウェブページが複数あるとします。各ページの HTML コンテンツに PageMap データを追加できます。インデックス登録された PageMap 属性名をクエリでフィルタとして使用できます。たとえば、レシピの評価に応じてウェブページをブーストまたは非表示する場合は、次の手順に沿って操作します。
次のような PageMap データをウェブページに追加します。
<html> <head> ... <!-- <PageMap> <DataObject type="document"> <Attribute name="title">Baked potatoes</Attribute> <Attribute name="author">Dana A.</Attribute> <Attribute name="description">Homestyle baked potatoes in oven. This recipe uses Russet potatoes.</Attribute> <Attribute name="rating">4.9</Attribute> <Attribute name="lastUpdate">2015-01-01</Attribute> </DataObject> </PageMap> --> </head> ... </html>更新されたページを再クロールします。
データストア スキーマにカスタム構造化データ属性を追加するのセクションで説明されているように、
ratingをインデックス登録可能な配列としてデータストア スキーマに追加します。
スキーマを更新すると、データストアのインデックスが自動的に再作成されます。
インデックスの再作成が完了したら、フィルタ式でrating属性を使用して、検索結果の並べ替えやフィルタを行うことができます。たとえば、ユーザーがレシピを検索したときに、カスタム数値属性として rating を使用して、評価の高い検索結果をブーストします。
schema.org データのユースケースの例
レビュー ウェブサイトがあり、そのウェブページが、HTML script タグ内に JSON-LD 形式で schema.org データを使用してアノテーションされているとします。インデックスに登録されたアノテーションをクエリのフィルタとして使用できます。たとえば、総合評価に応じてウェブページをブーストまたは非表示する場合は、次の手順に沿って操作します。
次のようなレビュー コンテンツの schema.org アノテーションを ウェブページに追加します。使用可能な他のタイプの schema.org テンプレート を表示するには、スキーマをご覧ください。
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Review", "aggregateRating": { "@type": "Average Rating", "ratingValue": 3.5, "reviewCount": 11 }, "description": "Published in 1843, this is the perfect depiction of the Victorian London. A Christmas Carol is the story of Ebenezer Scrooge's transformation.", "name": "A Christmas Carol", "image": "christmas-carol-first-ed.jpg", "review": [ { "@type": "Review", "author": "Alex T.", "datePublished": "2000-01-01", "reviewBody": "Read this in middle school and have loved this ever since.", "name": "Worth all the adaptations", "reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 } } ] } </script>更新されたページを再クロールします。
ratingValueへのパスをデータストア スキーマに追加します。データストア スキーマのフィールド名として識別子 を使用します(rating_valueなど。 データストア スキーマにカスタム構造化データ属性を追加する のセクションで説明されています)。
スキーマを更新すると、データストアのインデックスが自動的に再作成されます。
インデックスの再作成が完了したら、rating_value属性を
フィルタ式で使用して、検索結果の並べ替えやフィルタを行うことができます。たとえば、ユーザーが書籍を検索するときに、カスタム数値属性として rating_value を使用して、評価の高い検索結果をブーストします。
始める前に
データストア スキーマを更新する前に、次の操作を行います。
- データストアのウェブサイトの高度なインデックス登録を有効にします。詳しくは、 ウェブサイトの高度なインデックス登録を有効にするをご覧ください。
- 構造化データの仕組みについて理解します。
- PageMaps の 使用方法 を理解します。PageMap データに追加できる 認識された DataObject のリストを確認します。
- タグ
metaの使用方法を理解します。除外された タグ名 や サポートされていないメタタグを使用しないようにします。metaただし、除外されたmetaタグ名がすでにある場合は、siteSearchMetatagName回避策をご覧ください。 - インデックス登録する必要がある属性に、次の値が含まれていないことを確認します。
datePublisheddateModifiedsiteSearch
- ウェブページに構造化データを追加したら、ページを再クロールする必要があります。これには数時間かかることがあります。
- データストア スキーマに構造化データ属性を追加すると、データストア内のウェブページのインデックスが自動的に再作成されます。 インデックスの再作成は長時間実行オペレーションであり、数時間かかることがあります。
データストア スキーマにカスタム構造化データ属性を追加する
データストア スキーマにカスタム構造化データ属性を追加するには:
構造化データのインデックス登録で拡充するウェブサイトのページに、
metaタグ、PageMap データ、schema.org データを追加します。metaタグの場合:- 各
metaタグでは、そのname属性をインデックスに登録するフィールドに設定し、content属性を 1 つ以上のカンマ区切り値の文字列に設定する必要があります。 - Vertex AI Search は、
[a-zA-Z0-9][a-zA-Z0-9-_]*パターンに一致する名前のmetaタグをサポートしています。ただし、他の文字を含む名前のmetaタグがすでにある場合は、回避策をご覧ください。siteSearchMetatagName - Vertex AI Search では、除外された
タグ名や
サポートされていないメタタグの使用はサポートされていません。
metaただし、除外されたmetaタグ名がすでにある場合は、siteSearchMetatagNameの回避策をご覧ください。
- 各
PageMap データの場合:
- PageMap データは、 インデックス登録する属性名を含む、認識された DataObject で構成する必要があります。DataObjects 内の属性名は、インデックスを登録するフィールドに設定する必要があります。
schema.org データの場合:
- アノテーションは、有効な JSON-LD、microdata、または RDFa 形式である必要があります。 詳細については、サポートされている形式をご覧ください。
データストアのスキーマ定義を REST API を介して表示します。
データストア スキーマを更新するには、 Google Cloud コンソール または API を使用します。API を使用する場合は、独自のスキーマを JSON オブジェクトとして指定する方法をご覧ください。
検索可能、取得可能、インデックス登録可能にするカスタム属性ごとにオブジェクトを追加します。
カスタム属性を追加し、その
typeをarrayに設定します。カスタム属性の値のデータ型を追加します。
カスタム属性のソースを指定します。これは
siteSearchStructuredDataSourcesフィールドにあります。schema.org データの場合:
siteSearchSchemaOrgPathsフィールドで、文字列_rootで始まる schema.org アノテーションの属性のパスを指定します。
ウェブサイトのスキーマ更新の例を次に示します。
{ "type": "object", "properties": { "CUSTOM_ATTRIBUTE": { "type": "array", "items": { "type": "DATA_TYPE", "searchable": true, "retrievable": true, "indexable": true, "siteSearchMetatagName": "METATAG_NAME", "siteSearchStructuredDataSources": ["STRUCTURED_DATA_SOURCE_1", "STRUCTURED_DATA_SOURCE_2"] } }, "IDENTIFIER_FOR_SCHEMA_ORG_FIELD": { "type": "array", "items": { "type": "DATA_TYPE_SCHEMA_ORG_FIELD", "searchable": true, "retrievable": true, "indexable": true, "siteSearchSchemaOrgPaths": ["_root.PATH_TO_THE_SCHEMA_ORG_FIELD"] } } }, "$schema": "https://json-schema.org/draft/2020-12/schema" }
以下を置き換えます。
CUSTOM_ATTRIBUTE:name属性の値。 次に例を示します。metaタグが<meta name="department" content="eng, infotech">として定義されている場合は、departmentを使用します。<Attribute name="rating">4.9</Attribute>として定義された PageMap 属性の場合は、ratingを使用します。
DATA_TYPE:name属性のデータ型。文字列、数値、日時のいずれかである必要があります。次に例を示します。metaタグを<meta name="department" content="eng, infotech">として定義した場合、stringを使用します。<Attribute name="rating">4.9</Attribute>として定義された PageMap 属性の場合は、numberを使用します。<Attribute name="lastPublished">2015-01-01</Attribute>として定義された PageMap 属性の場合は、 を使用します。datetime
詳細については、
FieldTypeをご覧ください。METATAG_NAME:siteSearchMetatagNameフィールドの値。これにより、ウェブページのmetaタグの正確な名前を指定できます。siteSearchMetatagNameの回避策を使用する必要があるのは、次のような場合のみです。metaタグのname属性に特殊文字(コロンなど)が含まれており、CUSTOM_ATTRIBUTEに必要なパターン[a-zA-Z0-9][a-zA-Z0-9-_]*と一致しない。
たとえば、タグ
<meta name="og:updated_time">がある場合、og:updated_timeをCUSTOM_ATTRIBUTEとして使用することはできません。代わりに、 に準拠した識別子(og_updated_timeなど)を使用し、siteSearchMetatagNameの値をog:updated_timeに設定します。CUSTOM_ATTRIBUTEmetaタグのname属性が 除外されたmetaタグ名である。
たとえば、タグ
<meta name="description">がある場合、descriptionをCUSTOM_ATTRIBUTEとして使用することはできません。代わりに、 に準拠した識別子(meta_tag_descriptionなど)を使用し、siteSearchMetatagNameの値をmeta_tag_descriptionに設定します。CUSTOM_ATTRIBUTEsiteSearchMetatagNameを使用してスキーマを更新する場合は、v1 エンドポイントではなく v1alpha エンドポイントを使用してschemaメソッドを呼び出す必要があります。STRUCTURED_DATA_SOURCE_N:CUSTOM_ATTRIBUTE属性が見つかる次の構造化データソースの 1 つまたは両方で構成される配列。- カスタム属性が
metaタグとして見つかる場合は、METATAGSを指定します。 - カスタム属性が PageMap 属性として見つかる場合は、
PAGEMAPを指定します。 - カスタム属性が schema.org データとして見つかる場合は、
SCHEMA_ORGを指定します。 siteSearchStructuredDataSourcesフィールドが存在しない場合、または空白のままの場合は、3 つのデータソースの値がすべて配列に統合されます。
- カスタム属性が
IDENTIFIER_FOR_SCHEMA_ORG_FIELD: schema.org フィールドを示すカスタム識別子。ウェブページの schema.org アノテーションのフィールド名と完全に同じである必要はありません。 たとえば、フィールドのパスが_root.nutrition.caloriesの場合、識別子はcalorific_valueまたはnutrition_valueになります。DATA_TYPE_SCHEMA_ORG_FIELD: schema.org フィールドのデータ型。文字列、数値 または 日時である必要があります。例:- "calories":"240 calories" として定義された schema.org フィールドの場合は、
stringを使用します。 - "calories": 240 として定義された schema.org フィールドの場合は、
numberを使用します。 - "foundingDate": "1991-05-01" として定義された schema.org フィールドの場合は、
datetimeを使用します。
詳細については、
FieldTypeをご覧ください。- "calories":"240 calories" として定義された schema.org フィールドの場合は、
PATH_TO_THE_SCHEMA_ORG_FIELD: アクセスする必要がある schema.org フィールド内の単一フィールドへのパス。ネストされたレベルごとにドット区切り文字を使用して指定します。必要なフィールドにアクセスするために必要な完全なパスを指定する必要があります。たとえば、フィールドratingValueがaggregateRatingフィールドにネストされている場合は、パスを_root.aggregateRating.ratingValueとして指定できます。
ウェブサイトのスキーマを更新すると、ウェブサイトのインデックスが自動的に再作成されます。 これは長時間実行オペレーションであり、数時間かかることがあります。
次のステップ
インデックスに登録されたメタデータを次の目的で使用します。
- サービス提供コントロール(ブースト、非表示、フィルタなど)
- 検索結果でファセットとして表示する
- 検索結果を絞り込む
- 検索結果をブーストする