Zendeskの横串検索を設定すると、エンドユーザーのヘルプセンターの検索結果に、外部のナレッジベース、学習管理ソフトウェア、ブログ、Webサイトのページなど、ヘルプセンター以外のコンテンツを含めることができます。横串検索は、Zendesk横串検索APIまたは検索クローラーを使用して実装することができます。
検索クローラーはヘルプセンターの検索設定で利用でき、開発者リソースを使わずにヘルプセンターに横串検索を実装できます(「検索クローラーの設定」を参照)。この記事は、アプリケーションで検索クローラーを設定する際に遭遇する可能性のある、クローラーの設定エラーやページエラーをトラブルシューティングするときに参考にしてください。
この記事では、次のトピックについて説明します。
クローラーの設定エラー
クローラーの設定エラーは、ドメインのオーナーの確認やサイトマップの処理でエラーが発生し、検索クローラーが正常に動作しない場合に発生します。クローラーの設定エラーは、検索クローラーを設定したクローラーのオーナーにメールで通知されます。
Domain ownership could not be verified
検索クローラーは、実行されるたびにドメインの所有権の確認を試みますが、確認されるまで最大で24時間かかる場合があります。ドメインの確認に失敗した場合、クローラーのオーナーにメールで通知されますが、検索クローラーの編集ページでただちに確認することができます。詳しくは、「検索クローラーの管理」を参照してください。
ドメインの確認エラーのトラブルシューティングを行う際は、以下の点を確認してください。
- Webサイトのホームページ(別名、インデックスページまたはルートページ)が公開されている。このページには、ユーザーログイン、パスワード、IP制限、その他の認証要件がないこと。
- クローラーから正しいタグを実装している。タイプミスがなく、クロールしたいWebサイトのホームページの<head>セクションに実装されていること。クローラーがページのサブセットをクロールするように設定されている場合でも、ドメインの確認タグは常にサイトのホームページに配置する必要があります。クローラーを編集することで、現在のドメインの確認情報を確認できます。詳しくは、「検索クローラーの管理」を参照してください。
メモ:同じドメインにある異なるクローラー用に複数の確認タグを設定することができます。
例
<html>
<head>
<meta name="zd-site-verification" content="crawler-verification-token">
<title>Title</title>
<style>
<!-- style info here -->
</style>
</head>
<body>
<!-- body of the page here -->
</body>
</html>
Sitemap could not be processed
検索クローラーは、実行されるたびにクローラーの設定時に定義したサイトマップを使用します。サイトマップを処理できない場合、クローラーのオーナーに通知メールが届き、クローラーは実行されません。この場合は、以下の点に問題がないことを確認してください。
- 検索クローラーが正しいサイトマップのURLを参照しており、正常に検索できる。クローラーを編集して、現在のサイトマップのURLを表示することができます。詳しくは、「検索クローラーの管理」を参照してください。
- サイトマップが提供され、公開されている。ユーザーのログイン、パスワード、IP制限、その他の認証によってサイトマップページが制限されてないこと。
- サイトマップが、Sitemaps XMLプロトコルに準拠したXML URLサイトマップであること。
レコードエラー
レコードエラーは、設定エラーはないが、検索クローラーがクローラーサイトマップに定義されたページ(「検索クローラーの設定」を参照)を正常にスクレイピングしてインデックスを作成できない場合に発生します。レコードエラーが発生すると、クローラーのオーナーに通知メールが送られます。この通知には、影響を受けるページと関連するエラーをリストアップしたCSVファイルへのリンクが含まれています。
Locale not detected
「Locale not detected」というエラーは、検索クローラーがロケールを検出できなかったか、検出されたロケールが現在のヘルプセンターのロケールと一致しないことを示します。
レコードのロケールを特定するために、クローラーは以下のアプローチを試みます。最初の成功戦略でレコードのロケールを特定します。
- <html>タグのlang属性からロケールを抽出する
- Content-Languageヘッダーからロケールを抽出する
- <meta>タグからロケールを抽出する
- コンテンツのテキスト解析を行う(CLD:Compact Language Detection)
「Locale not detected」エラーは、次のいずれかの原因によって発生します。
- 特定されたロケールまたは言語が、アカウント内のどのヘルプセンターで設定されているロケールとも言語とも一致しない。アカウントの各ヘルプセンターで設定されている言語を確認するには、「ヘルプセンターの多言語対応設定」を参照してください。設定されている言語のロケールコードは、「Zendeskの製品別言語サポート」でご確認ください。
- 検索クローラーがロケールまたは言語を特定できない。
この問題を解決するには、以下の点を確認してください。
- htmlタグのlang属性が、ヘルプセンターのロケールと一致する。
- HTTP Content-Languageヘッダーがヘルプセンターのロケールと一致する。
- http-equiv属性にContent-Languageが設定されているmeta要素が、ヘルプセンターのロケールと一致する。
詳しくは「検索クローラーのロケールについて」を参照してください。
Title not detected
「Title not detected」というエラーは、検索クローラーがレコードのタイトルを検出できなかったことを示します。検索クローラーは次のような方法でレコードのタイトルを特定します。
- <title>タグのコンテンツを抽出する
- <h1>タグのコンテンツを抽出する
- <body>タグのテキストコンテンツを抽出する。
最初の成功戦略でレコードのロケールを特定します。最初の2つの方法のいずれかが成功した場合、クローラーは抽出された内容の最初の255文字をレコードのタイトルとしてインデックス付けを行います。これらの戦略でタイトルが特定されない場合、レコードはインデックス付けされません。
この問題を解決するには、エラーが生じたページに上記のタグのいずれかがあることを確認します。
Body not found
「Body not found」は、検索クローラーがページの本文を検出できなかったことを示すエラーです。このエラーを解決するには、エラーが生じたページに<body>タグが適切に記述されていることを確認してください。
HTTP [ステータスコード]
あるレコードのCSVのエラーコードフィールドにHTTPとステータスコードが表示されている場合は、ページにアクセスできなかったため、インデックスを作成できなかったことを意味します。ページのインデックスが正常に作成された場合(HTTP 2xx)、HTTPステータスのエラーコードは表示されません。
最も一般的なエラーコードには次のものがあります。
- 404 - Page not found:ページが存在しないか、別のURLに移動されました。この問題を解決するには、クローラーが使用しているサイトマップが最新のものであり、サイトマップ内のすべてのURLが既存のページを参照していることを確認します。
-
403 - Forbidden:ログイン制限やIPアドレス制限など、アクセス制御の仕組みにより、クローラーのページへのアクセスが制限されています。この問題を解決するには、以下の点を確認してください。
- 検索クローラーのユーザーエージェントであるZendesk/External-Contentを許可リストに追加している。
- クローラーはアクセスが制限されたページをクロールできないため、インデックスを作成したいページは一般に公開されている。クロールしてインデックスを作成したいページを一般公開できない場合は、横串検索(外部コンテンツ)APIを使用してインデックスを作成することを検討してください。詳しくは「Zendesk横串検索APIの設定」を参照してください。
- 5xx - Server error :サーバーエラーが発生したため、ページをクロールできませんでした。サイトは一時的に利用できない可能性があります。この問題を解決するには、このエラーが発生したページのいずれかにアクセスし、サイトが稼働していることを確認します。サイトがダウンしている場合は、サイトの管理者に連絡してください。エラーが解消されたら、クローラーが定期的(12〜24時間ごと)に再実行されるのを待ちます。
Invalid URL domain
「Invalid URL domain」のエラーは、サイトマップに掲載されているページのURLが、クローラーの設定時に設定したドメインに含まれていないことを示しています。
この問題を解決するには、エラーが発生したページのドメインが、検索クローラーに定義されているドメインと同じであることを確認します。サイトマップのリンク先が、クローラーの設定時に設定したドメインとは異なるドメインでホストされているページを参照している場合は、次のいずれかの方法で解決できます。
エラーの発生したページに対して別の検索クローラーを設定する
ページを外部のドメインから検索クローラーに設定したドメインに移動させる
Undetermined
「Undetermined」というエラーは、次のような原因が考えられます。
-
インスタンスの外部レコードの制限を超えた:検索クローラーの外部レコードの上限は50,000件です。外部レコードの上限50,000件を超えた場合、それ以降の外部レコードはインデックス化も更新もされません。クローラーが使用した外部レコードの数を確認するには、検索クローラーの情報を確認してください。詳しくは、「検索クローラーの管理」を参照してください。この問題を解決するには、次のいずれかまたは複数の操作を実行します。
- 一部のクローラーを削除する。これにより、それらのページの外部レコードがインスタンスから削除され、上限に達したためにインデックス化されなかったページがインデックス化されるようになります。詳しくは、「検索クローラーの管理」を参照してください。
- 横串検索APIを使用して個々のレコードを削除する。ただし、このページをインデックス化しているクローラーがまだアクティブであるか、このページを追加するカスタムAPIインテグレーションがアクティブである場合、次にクローラーが実行されるかインテグレーションの同期が行われると、このページは再表示されるようになります。
- クローラーが使用しているページをサイトマップから削除する。次回クローラーが実行されたときに、残りのページのインデックスを再作成し、サイトマップから削除したページが削除されます。
- クローラーにページ数の少ないサイトマップを参照させる。次回クローラーが実行されたときに、残りのページのインデックスを再作成し、サイトマップから削除したページが削除されます。
-
ページにJavaScriptのロケーションリダイレクトが使われている:検索クローラーはJavaScriptのロケーションリダイレクトを参照しません。ページにJavaScriptのロケーションリダイレクトが使われている場合、クローラーはページのコンテンツに到達することができません。
この問題を解決するには、次のいずれかを行ってください。
- インデックス化したいページをサイトマップが直接参照するようにする。
- HTTPリダイレクトを実装する。