最終更新日: 2025年8月22日
HubSpotのCMSには、探しているコンテンツを訪問者が簡単に見つけられるように、サイト検索機能が組み込まれています。貴社の全てのHubSpotコンテンツはHubSpotの検索エンジンによって自動的にインデックス登録されるため、ウェブサイト向けにサードパーティー検索ツールを設定する労力はなくなります。
コンテンツの検索
検索エンジンにはサイト検索APIからアクセスできます。このAPIは、高度にカスタマイズされた検索機能をウェブサイト上で提供するための多数のフィルタリングオプションをサポートしています。例えば、ブログに検索機能を組み込む場合は、type=BLOG_POST
を問い合わせるとブログ記事のみが返されます。また、ウェブサイトのスペイン語バージョンに検索を組み込む場合は、language=es
を問い合わせるとスペイン語のページのみが返されます。
このAPIではJavaScriptで解析しやすいJSONが返されるので、ウェブサイトに結果を表示できます。全てのコンテンツタイプから、ページドメイン、タイトル、URL、言語が返されます。説明として返されるのは、検索語に最も一致するコンテンツのテキストのサンプルです。完全一致テキストを囲む<span class="hs-search-highlight hs-highlight-html">
要素では、CSSを使用して一致テキストを強調表示できます。
検索対象のコンテンツのタイプによって返される結果の情報は多少異なるため、コンテンツタイプに応じて結果の表示を変えることができます。例えばブログ記事では、記事に付けられているタグ、執筆者、公開日の情報が返されます。
ウェブサイトへの検索の実装
サイト検索APIを使用する2つの既定のモジュール(search_input
およびsearch_results
)を使用すると、簡単にウェブサイトに検索を実装できます。
サイト検索入力
訪問者が検索語を入力するフィールド。このモジュールは、ウェブサイト上の任意の場所に配置できます。{% module "search_input" path="@hubspot/search_input" %}
を使用してこのモジュールをテンプレートに含めることができます。
サイト検索結果
検索語に基づいてコンテンツのリストを返します。このモジュールは、ウェブサイト上の任意の場所に配置できます。このモジュールは、次のようにテンプレートに含めることができます。hs fetch @hubspot/search_input.module
またはhs fetch @hubspot/search_results.module
を実行してローカル環境に取り込むことができます。

検索結果テンプレート
全てのドメインには、既定で固有の検索結果ページがあります。このページのテンプレートとパスは、特定のドメインの[システムページ]タブにある[設定]>[ウェブサイト]>[ページ]で設定します。例として、CMSテーマボイラープレート検索結果テンプレートを参照してください。検索結果ページに設定されたドメインは、自動的に既定の検索モジュールに接続されます。ただし、サイト検索APIを使用すると、ウェブサイトの任意のページ上で独自の検索結果を作成できます。検索優先順位の決定方法
検索結果の順位は、訪問者の検索語に対して重み付けられたページコンテンツの比較によって決まります。ページコンテンツは、ページのHTML内でのコンテンツの位置に基づいて、さまざまな重みの比較フィールドとして分類されます。比較フィールドは重みの順にグループ化されます。- HTMLタイトル
- メタディスクリプション
- H1 HTML要素
- H2 HTML要素
- H3 HTML要素
- その他のHTML要素
hs-search-keyword
クラスで囲みます。
開発中のインデックスの制御
新しいサイトを開発中は、Google などの検索エンジンによってサイトがインデックス登録されることを心配することなく、サイト検索をテストできると便利です。robots.txt
では、全てをクローリングするようHubSpotに指定しながら、他のボットをブロックすることが可能です。
登録しないことを示すメタタグがあるページは、
robots.txt
で許可されていてもインデックス登録されません。また、サイトを公開する前にrobots.txt
を確認して、全てのインデックス登録が意図したとおりに設定されていることを確かめてください。既定のインデックス登録動作
CMSでは特定のタイプのページの意図が認識されるため、コンテンツ検索によってコンテンツタイプのページが適切に登録されるように、インデックス登録が安全に制御されます。コンテンツタイプのページの例:- サイトページ
- ランディングページ
- ナレッジ記事
- ブログ記事
ページが検索結果で返されないように除外するには?
ウェブサイトのrobots.txt
ファイルまたはmeta
タグを使用して検索エンジンへの登録をブロックしたページは、サイト検索のためのインデックス登録が行われません。
robots.txt
にdisallow
を追加します。
<head>
にNOINDEX, NOFOLLOW
メタタグを追加することもできます。
robots.txt
とメタタグの両方を使用してロボットをブロックする必要はありません。後でページのインデックス登録を許可することにした場合に混乱が生じる可能性があるからです。ページの一部を検索によるインデックス登録から除外する方法
ページによっては、検索結果として返される必要がない領域が含まれています。例えば、ヘッダー、フッター、サイドバーなどのコンテンツです。このような領域のHTMLにはhs-search-hidden
クラスを追加すると、領域内のコンテンツが検索によって無視されます。