1750766319
2025-06-18 14:16:00
Optimizely Graphは、強力で柔軟な検索機能を箱から出して提供するため、ヘッドレスの実装に人気のある選択肢となっています。ただし、堅牢なシステムと同様に、注意しないとあなたをつまずかせることができるニュアンスが付属しています。
この投稿では、カバーしようとします 一般的な落とし穴開発者は、最適化のグラフで検索を使用する際に遭遇する可能性があります、特にコンテンツの複製、意図しない露出、コンテンツプロバイダーの取り扱いを中心に、それらを回避する方法を示します。
検索結果のコンテンツを複製します
最もイライラする問題の1つは、それを見ることです 同じコンテンツアイテムが複数回インデックス付けされました または、予期しない複製を返す検索結果。
誤った認証モード
Optimizely Graphは、公開されたバージョンのコンテンツだけでなく、 ドラフトおよびその他の未発表のバージョン。これは、ヘッドレスセットアップでカスタムオンページ編集エクスペリエンスを構築するのに特に役立ちます。ただし、潜在的なリスクも導入します。 未発表のコンテンツは、検索結果に意図せずに表示される場合があります アクセス制御が正しく構成されていない場合。
推奨ソリューション
これを緩和するには、編集と検索機能の間で認証モードを分離することが重要です。
-
オンページの編集では、認証されたアクセスを使用して、ドラフトと進行中のコンテンツを取得する必要があります。
-
パブリック検索は、公開されたコンテンツに厳密に制限され、別の読み取り専用コンテキストの下で動作する必要があります。
これらのユースケース間のトークンまたは認証フローの再利用は、厳密に回避する必要があります。
これは、適切に処理されない場合、潜在的なセキュリティ上の懸念事項である可能性がありますが、それは別の記事に値するトピックです。
実装ガイダンスとベストプラクティスについては、公式ドキュメントを参照してください。
認証 – Optimizelyグラフ
ショートカットページが誤ってインデックスされました
Optimizely CMSでは、ページを使用しています ショートカット (例、「別のページからコンテンツを取得する」、参照してください ドキュメント) は デフォルトでは、スタンドアロンページとしてインデックス付けされています、他のコンテンツを指していても。この動作は生じる可能性があります 予期しない複製エントリ 検索結果では、コンテンツの関連性とSEOに悪影響を与える可能性があります。
推奨ソリューション
これを防ぐためには重要です ショートカットページを除外します インデックスまたは検索の実行中のクエリレベルで。
より堅牢で保守可能な解決策は、次のことです。
-
excludefromsearchなどのカスタムプロパティを紹介します (ブール)。
-
このプロパティをショートカットページ(コンテンツイベントなど)に自動的に設定します。
-
任意のページを除外して、検索クエリでこのプロパティを尊重します excludefromsearch == true。
このアプローチは、ショートカットページを優雅に処理するだけでなく、編集者が検索可能なページについて微調整された制御を提供します。
インデックス作成してはならない技術コンテンツを公開します
それは珍しいことではありません 非公開コンテンツ – 設定ページ、コンテナページ、またはシステムレベルのコンテンツがグラフ検索結果に誤って表示されるなど。これらのアイテムは、公開されていることを意図したものではなく、検索体験を乱用したり、内部情報を公開したりすることができます。
一般的な原因
-
特別コンテンツまたは制限付きコンテンツの除外フラグがありません。
-
グラフスキーマのセットアップ中の可視性レビューの欠如。
-
コンテンツの目的やタイプでフィルタリングしない非常に広いクエリ。
それを防ぐ方法
グラフフィルターを使用して、明示的に除外します。
-
指定されたフォルダーのコンテンツ(例: /設定、 /ユーティリティ))
-
excludefromsearch = trueのようなフラグを持つコンテンツ
-
検索専用の特定のコンテンツタイプ(例: SitesettingSpage、 RedirectPage))
ベストプラクティス
すべてのコンテンツタイプに除外されたFromsearchプロパティを実装します。これは提供されます 低カップリング 検索ロジックとCMS構造の間で、編集者または開発者は、フォルダパスまたはコンテンツタイプのチェックに緊密にバインディングされたフィルタリングルールなしで可視性を簡単に管理できます。
Optimizelyグラフの多言語コンテンツ
ほとんどの場合、私たちのコンテンツは複数の言語で存在します。ただし、グラフクエリの基本言語フィルターは、現在選択されているサイト言語の翻訳がないコンテンツを意図せず除外する場合があります。
例のシナリオ:
-
ユーザーがドイツ語でサイトを閲覧しています( “de”)。
-
CMSには、英語に設定されたフォールバック言語があります( “en”)。
-
一部の製品ページはまだドイツ語に翻訳されていません。
-
言語のような基本的なグラフフィルター:{name:{eq: “de”}}は、製品名のようなフィールドが言語に依存していても、それ以外の場合は検索基準と一致する場合でも、これらの翻訳されていないページを除外します。
なぜこれが重要なのか:
ビジネスのニーズに応じて、フォールバックのコンテンツを表示することは受け入れられるか、好まれる場合があります。ただし、表示しないことを選択したとしても、デフォルトの動作ではなく、その決定を意識的に行うことが重要です。
推奨アプローチ:
検索結果でフォールバック言語をサポートするには、次のグラフフィールドを活用してください。
これらのプロパティを使用することにより、ローカリゼーション戦略を尊重しながら、より良いユーザーエクスペリエンスを促進するクエリにフォールバックコンテンツをインテリジェントに含めることができます。
検索結果の関連性とランキングが不十分です
きれいなインデックスと適切に設計されたグラフスキーマであっても、検索結果が表示される可能性があります 騒々しい、無関係、または誤解を招く クエリが思慮深く構築されていない場合。のような一般的な問題 欠落しているフィールドブースト、フィルタリングされていない関連コンテンツ、 そして 一般的なクエリロジック 高品質のコンテンツさえも、関連性の低い試合の下に埋められる可能性があります。
フィールドブーストがありません
デフォルトでは、すべてのフィールドは、明示的にブーストされない限り、最適化のグラフで等しく扱われます。これは、多くの場合、低優先度フィールド(説明など)が優先度の高いもの(タイトルや製品名など)と同じくらい強く一致する状況につながります。
おすすめ:
フィールドレベルのブーストを使用して、タイトル、名前、タグなどの意味のあるフィールドにより大きな重みを与えます。もっと詳しく知る: Optimizelyグラフのブースト
関連するコンテンツの意図しないインデックス
しばしば製品ページや記事が埋め込まれます 関連コンテンツ (例、「関連製品」ブロックまたは参照)。このコンテンツがメインページに直接インデックス付けされている場合、それはできます 検索可能なコンテンツに流れ込みます 親の – 誤検知、混乱を招く一致、および検索の関連性を低下させました。
例:
関連するキーボード製品が同じコンテンツの一部として埋め込まれ、インデックス付けされている場合、ワイヤレスマウスの製品ページがメカニカルキーボードの検索結果に表示される場合があります。
おすすめ:
関連するアイテムは次のとおりです。
-
インデックスから除外、 または
-
個別にインデックス化され、きれいに参照されます、メインアイテムの検索可能なボディにマージされるのではなく。
パブリック検索に漏れているアクセス制御コンテンツ
多くのCMS実装では、ような特定のコンテンツ ゲートリソース、サブスクライバーのみのページ、 または 内部ドキュメント 特定のユーザーグループにのみアクセスできる必要があります。 a 重大なセキュリティリスク この制限されたコンテンツが意図せずに表示されたときに発生します パブリック検索結果、不正なユーザーに機密情報または有料情報を公開します。
一般的な原因:
それを防ぐ方法:
適切なアクセス制御を確保するには:
-
Optimizelyグラフに認証する場合は、常に含めます 現在のユーザーコンテキスト そして彼ら 役割/許可。
-
ユーザーレベルのコンテンツの制限を反映する機能には、システム全体のトークンまたは匿名アクセスを使用しないでください。
Optimizelyグラフは、認証されたクエリを介して明示的に要求された場合にのみ、アクセス制御を強制します。省略した場合、すべてのコンテンツが制限されたアイテムを含むすべてのものが返されます。
制限付きコンテンツを安全に取得する方法(最適化ドキュメント)
最終的な考え
Optimizelyグラフは強力なツールですが、柔軟なシステムと同様に、乱雑な検索結果やコンテンツの露出の問題を回避するために、意図的なセットアップとガバナンスが必要です。
一般的な落とし穴を認識し、積極的なフィルター、スキーマ衛生、プロバイダーの規律を適用することで、クリーンで正確で効率的な検索エクスペリエンスを実現するために、自分自身(および編集者!)を設定します。
生産中にトリッキーなグラフの問題に遭遇しましたか?私に知らせてください – 他の人がこれらの課題をどのように解決しているかを常に学びたいと思っています。
2025年6月18日
#Optimizelyグラフで検索する一般的な落とし穴