web-dev-qa-db-ja.com

クリックがAJAXまたはAngularで処理される場合、JavaScriptでリンククリックを無効にするのはSEOフレンドリーですか?

アンカータグを次のように使用する場合:

<a href="/page1" onclick="return false;">page 1</a>
  • 検索エンジンはそれを見ますか?
  • リンクジュースを渡しますか?
  • SEOには問題ありませんか?

アンカータグを使用してhrefがアプリまたはページをリロードする場合、angle4としてrouterLink属性を使用する場合、アプリはajaxのようにページまたはアプリをリロードせずにページを変更します。また、コンテンツはデータベース、wysiwygエディターからロードされるため、ユーザーがリンクをクリックするたびにサイトをリロードすることはできません。その点で、「リンクジュース」を失うことなく、イベントURLをrouterLink関数に渡すことができます。

2
jcdsr

クリックイベントの処理方法を再検討する必要があります。ほとんどの場合、ユーザーはページをリロードする必要がある場合、気にしません。

別の観察では、インラインイベントハンドラは廃止されます。これらのメソッドは、動作と構造分離の最新のアプローチと互換性がありません。 preventDefault()を使用する必要があります。

しかし、あなたの質問に答えるために、各ブラウザはデフォルトの動作とそれらを防ぐ方法を定義しました。ユーザーがリンクをクリックすると、ブラウザーは<a href=”...”>で指定されたページをロードします。ブラウザーがデフォルトの動作に従う前に、イベントハンドラーを最初に実行する必要があるため、falseを指定した場合、リンクをたどることはありません。

良いニュースは、ボットまたはWebクローラーも独自のデフォルトの動作を持ち、ブラウザーとして動作しないことです。クローラーはすべてのhrefs属性コンテンツを見つけ、デフォルトでリンクをたどることが期待できます。

定義されたhref URLにアクセスでき、リソースにアクセスできる限り、それ自体でロードされ(クリックされたリンクを介さずに)、SEOまたはリンクエクイティの問題が発生しないまったく新しいクロール可能なWebページを作成します。

2
Raul Reyes

リンクのクリックによる新しいページの読み込みを防止することは、次の場合に限りSEOフレンドリーです。

  • ユーザーがそのリンクをクリックすると、ページ1の内容が表示されます。
  • ユーザーとボットが/page1 URLにアクセスすると、ページ1のコンテンツが読み込まれ表示されます。

pushStateを使用して、ユーザーがリンクをクリックしたときに表示されるURLを変更するとさらに便利です。その後、ユーザーはWebアプリでページをリロードせずに、新しいページと新しいURLをすべて表示します。

1