12

Google のクローラーがキーワードとして取得した、自分のサイトにあるはずのない奇妙な単語 (have、here、imagery、sorry) を見つけました

最初のサイト

Google マップを使用するページをクロールするときに Google でエラーが発生しているようです。そのため、エラー文字列を優れたキーワードとして採用しています。

両方のサイトでマップを表示するために openlayers を使用しています。コードはこんな感じ

<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://maps.google.com/maps/api/js?v=3&amp;sensor=false"></script>
<script type="text/javascript">
$(function() {
  $("#mapOuter").html('<div class="thumbnail"><div id="map" style="height:250px"></div></div>')
  map = new OpenLayers.Map("map")
  //map.addLayer( new OpenLayers.Layer.OSM   ("OpenStreeetMap") )
  map.addLayer( new OpenLayers.Layer.Google("Google v3"     ) )
  vectors = new OpenLayers.Layer.Vector("vector")
  map.addLayer( vectors )

  map.addControl( new OpenLayers.Control.LayerSwitcher() );
  map.addControl( new OpenLayers.Control.Navigation({documentDrag:true}) );
  map.addControl( new OpenLayers.Control.PanZoom() );
  var in_options = {
      'internalProjection': map.baseLayer.projection,
      'externalProjection': new OpenLayers.Projection("EPSG:4326")
  };

    var lon=-57.954900
    var lat=-34.917000

  map.setCenter(new OpenLayers.LonLat(lon, lat) // Center of the map
    .transform(
      new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
      new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
    ), 15 // Zoom level
  )

});
</script>

この「エラー」を修正して、Google クローラーがサイトから適切なコンテンツを取得できるようにするにはどうすればよいですか?

おまけの Google 検索(エラーがインデックスに登録されていることを示すため)

Google検索

更新、「解決策」が適用されました:

サイトの各ページごとに 1 つの異なるマップがありました。最終的にすべてのマップを画像に変換し、座標とマッピングに関するユーザーの操作が本当に必要なインタラクティブなマップを 1 つだけ保持しました。私が使用したソリューションにより、osm-static-mapsを作成してオープンソース化することができました。それが誰かに役立つことを願っています!

このサイトにはいくつかの改良が加えられました。

  • Google Webmasters でこの厄介な言葉を取り除きました。
  • 「インデックス不可」の js マップの代わりに「alt」html img 属性を持つ静的画像を使用して、より関連性の高い SEO。
  • ページの読み込みが高速化されました (すべてのマッピング ライブラリとタイルの読み込みがなくなりました)。
  • js パフォーマンスの高速化 (クライアントが処理する js が少ない)
  • ユーザー エクスペリエンスの向上: ページをスクロールすると、実際にスクロールする代わりにマップがズームされていました (これは、マップのスクロールを無効にしてズームすることで解決できると考えられますが、スクロール時にマップをズームすることをユーザーが期待するようになります。同時に)。

欠点として、次のことがわかりました。

  • ユーザーの対話性が低い (退屈なページ)。
  • マップ上のコンテキストが少ない (情報が少ないマップ)。

この 2 つのことは、ユーザーがマップ イメージをクリックしたときにマップを読み込むことを「修正」することができます。悪い面は、ユーザーが意図せずにマップ イメージをクリックすると、マップの読み込みがユーザーにとって予期しない動作として表示される可能性があることです。

編集2

私はこれからオープンソース プロジェクトを作成しました。チェックアウト!https://github.com/jperelli/osm-static-maps

4

6 に答える 6

3

残念ながら、私もこれをたくさん見ました...

私の推測では、googlebot はページ上のすべての js コードを完全に評価するわけではありませんが、ヒューリスティックも使用します。したがって、画像は取得されません (インデックスが作成されます)。この仮定に基づいて、次のことを行いました。

  1. 「ランダムな」ID (マップ用) と style="display: none;" を使用して div を作成します。

  2. 同じ「ランダム」ID を使用して、img タグを含む noscript タグを作成します (ここでは静的マップ イメージをフォールバックとして使用しましたが、これは no-js フォールバックとしても優れています)。

  3. 一意の ID を渡してマップを初期化し、表示スタイルをマップ要素でブロックするように切り替える (カスタム) JavaScript 関数を作成します。

これまでのところ、「申し訳ありませんが、画像がありません」というマップはどれもインデックスに登録されていません。

それが役に立てば幸い

于 2013-10-24T14:26:40.353 に答える
2

この回答は、クロールされたページの単語を削除するのには役立ちませんが、次のクロール後にそれらが追加されなくなる可能性があります.

問題は、クローラーが有効なマップを読み込めないことに関連している可能性があるためです。できない理由ははっきりとはわかりません。マップ プロバイダーが Googlebot をブロックしている可能性があります。

とにかく、それほど難しくない場合は、ここを見てください。

https://support.google.com/webmasters/answer/1061943?hl=ja

ここに書かれたユーザー エージェントのリストを作成します。

例として「Googlebot」を使用しますが、ブロックされたすべてのユーザー エージェントのリストを使用する必要があります。

if (navigator.userAgent !== 'Googlebot') {
   // load the map and other stuff
} else {
   // show a picture where the map should be or do nothing.
}

Google ボットは JS を実行するため、Google ボットがロードできない場合にエラーを防ぐように動作するはずです。

できることの 1 つは、ブラウザのユーザー エージェントを「Googlebot」に変更して、ページを読み込むことです。マップ プロバイダーがこのユーザー エージェントを使用するブラウザーをブロックしている場合は、Googlebot が見ているものとまったく同じように表示されるはずです。もう 1 つの問題は、googlebot が大量のデータをロードするのを防ぐためにタイムアウトが発生し、画像がロードされないことです。

ガードを追加すると、問題が実際にマップにある場合に、Google ボットが実際にマップをロードするのを防ぐのに役立つ場合があります。

于 2013-07-17T02:23:29.693 に答える
0

適用された「ソリューション」:

サイトの各ページごとに 1 つの異なるマップがありました。最終的にすべてのマップを画像に変換し、座標とマッピングに関するユーザーの操作が本当に必要なインタラクティブなマップを 1 つだけ保持しました。私が使用したソリューションは、[osm-static-maps][3] を作成してオープンソース化することにつながりました。それが誰かに役立つことを願っています!

このサイトにはいくつかの改良が加えられました。

  • Google Webmasters でこの厄介な言葉を取り除きました。
  • 「インデックス不可」の js マップの代わりに「alt」html img 属性を持つ静的画像を使用して、より関連性の高い SEO。
  • ページの読み込みが高速化されました (すべてのマッピング ライブラリとタイルの読み込みがなくなりました)。
  • js パフォーマンスの高速化 (クライアントが処理する js が少ない)
  • ユーザー エクスペリエンスの向上: ページをスクロールすると、実際にスクロールするのではなく、マップがズームされていました (これは、マップのスクロールを無効にしてズームすることで解決できると考えられますが、スクロール時にマップをズームすることをユーザーが期待するようになります。同時に][4])。

欠点として、次のことがわかりました。

  • ユーザーの対話性が低い (退屈なページ)。
  • マップ上のコンテキストが少ない (情報が少ないマップ)。

この 2 つのことは、ユーザーがマップ イメージをクリックしたときにマップを読み込むことを「修正」することができます。悪い面は、ユーザーが意図せずにマップ イメージをクリックすると、マップの読み込みがユーザーにとって予期しない動作と見なされる可能性があることです。

編集2

私はこれからオープンソース プロジェクトを作成しました。チェックアウト!https://github.com/jperelli/osm-static-maps

于 2015-07-08T19:20:05.110 に答える