web-dev-qa-db-ja.com

データベース駆動型Webサイトの検索エンジンインデックス作成

MySQLの行が犬の品種で、列が品種のプロパティ(コートの色など)であるとします。このサイトの目的は、ユーザーが「どの品種が茶色のコートを着ることができますか?」などの質問でデータベースを照会できるようにすることです。次に、サイトはPHPを使用してクエリを作成し、茶色のコートを持つデータベースから品種を表示します。

ユーザーが要求するまでページに情報が存在しないため、検索エンジンはどのようにしてそのようなサイトにインデックスを付けることができますか?理想的には、Google検索で「dog breeds brown coat」のように自分のサイトがポップアップするようにします。

私の唯一のアイデアは、データベースがテキストとして永続的にダンプされる別のページを作成し、そのページをサイトのメインページ(ユーザーがクエリを作成できる場所)にリダイレクトすることです。これは効果的な戦略ですか?もっと良い方法はありますか?

3
Austin Mohr

データベース駆動型サイトは、必ずしも単一のURLを持つ必要はなく、完全に検索ベースである必要もありません。今日のWeb上のほとんどのサイト(SEを含む)はデータベース駆動ですが、個々のURLを持つ異なるページがまだあります。また、検索ベースのサイトでさえ、検索エンジンに優しいものにすることができます。

サイトには、可能な限り RESTful アーキテクチャが必要です。また、これらは idempotent operations ではなく検索結果であるため、GETではなくPOSTを介して完全にアクセスされるステートレスなパブリックアプリケーションを簡単に作成できます。

次のような一般的な検索結果にリンクし、検索エンジンにインデックスを付けても問題はありません。

  • example.com/search.php?coatcolor=brown
  • example.com/search.php?coatcolor=black
  • example.com/search.php?coatcolor=white
  • ...
  • example.com/search.php?coatcolor=black&spots=white
  • example.com/search.php?coatcolor=white&spots=black
  • example.com/search.php?coatcolor=white&spots=brown
  • ...

サイトが現在POSTのフォームを使用して検索しており、結果が独自のURLでアクセスできない場合、ユーザビリティの基本的な規則に違反しています。ユーザーは、履歴ボタンを使用してナビゲートしたり、検索結果をブックマークしたり、他の人に送信するためにリンクすることはできません。

また、別の見方をすれば、データベース駆動型のサイトはすべて検索ベースです。誰かがWordpressブログで特定の投稿をリクエストすると、WPは特定の記事(IDまたはスラッグ)とその記事に結び付けられたコメントを検索します。しかし、それはWPが個々の記事のリンクとURLを持つことができることを止めません。

同様に、ユーザーが犬の種類や異なる犬の属性(コートの色、コートの種類など)でサイトを閲覧できる場合、サイトはおそらくより便利です。結局、ある人は色を茶色と分類し、別の人はそれを黄褐色またはヘーゼルと分類するかもしれません。すべての色のリスト(各色へのリンクを含む)を用意しておくと、あいまいさや試行錯誤をすることなく、ユーザーが必要な情報を簡単に見つけることができます。

その後、URLをルーティングまたは書き換えて、ユーザーフレンドリにする必要があります。の代わりに:

example.com/search.php?coatcolor=black&pattern=spotted
example.com/search.php?coat=long
example.com/search.php?breed=papillon
example.com/search.php?colors=black,white,brown

あなたが持つことができる

example.com/coatcolor/black/spotted
example.com/coat/long
example.com/breed/papillon
example.com/color/black-white-brown

これにより、URLを覚えやすく/入力しやすくなり、ユーザーに次のURLにアクセスできるようになります。

example.com/coatcolor
example.com/coat
example.com/breed
example.com/color
...

各属性カテゴリのディレクトリを表示します。ホームページまたはメインナビゲーションからこれらのカテゴリページにリンクすると、検索エンジンがデータベースのほとんどをクロール/インデックス付けできるようになります。

何らかの理由でサイトの検索が実際にCPU集中型であり、ユーザーが戻る/進むボタンを使用するときにユーザーが不用意に検索を再起動しないように、フォームPOSTの背後に検索機能を配置する必要がある場合でも、引き続き使用できます PRGパターン + POSTフォームを引き続き使用しながら、結果をブックマーク可能/リンク可能にするためのフルページキャッシュ。


編集:

非常に多くの潜在的な検索がある場合、使いやすさの理由とSEOのために、検索結果のユーザーフレンドリーなRESTful URLを持つことは依然として有用です。 SEOに関しては、実際に結果を含む検索に焦点を当てる以外に、最も人気のある/最新の検索にリンクできます。これを行うと、重要な検索ページにリンクしなくなっても、Googleは最終的にすべての重要な検索ページのインデックスを作成します。

常に変化する人気のある検索または最近の検索ページ/セクションまた、コンテンツを定期的に更新/追加しているように見えるため、すべてのコンテンツを徐々にGoogleに公開するための優れた戦略です。

5
Lèse majesté