12

我发现了不应该出现在我的网站上的奇怪词(有,这里,图像,对不起),被谷歌的爬虫当作关键词

第一个站点

似乎谷歌在抓取使用谷歌地图的页面时出错了,所以它把错误字符串当作很好的关键字!

我正在使用 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 搜索(以显示错误已编入索引)

谷歌搜索

更新,“解决方案”应用:

我网站的每个页面都有一张不同的地图,我最终将所有地图转换为图像,并且只保留了一张交互式地图,我真的需要用户与坐标和地图进行交互。我使用的解决方案引导我创建和开源osm-static-maps。希望它可以帮助某人!

该网站有几个改进:

  • 摆脱了谷歌网站管理员中的这些尴尬词。
  • 使用具有“alt”html img 属性而不是“unindexable”js 地图的静态图像进行更相关的 SEO。
  • 更快的页面加载(摆脱了所有映射库和磁贴加载)。
  • 更快的 js 性能(客户端处理的 js 更少)
  • 改进的用户体验:滚动页面导致地图缩放而不是实际滚动(您可以认为这可以通过禁用地图滚动缩放来解决,但它会导致用户期望在滚动时缩放地图,两种方式都可以和错误同时)。

不利的一面是,我发现:

  • 更少的用户交互性(无聊的页面)。
  • 地图上的上下文较少(信息较少的地图)。

当用户单击地图 img 时,这两件事可以“固定”加载地图。不好的一面是,如果用户无意中点击了地图img,地图加载可能会被用户视为意外行为。

编辑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. 创建一个(自定义)javascript 函数,其中必须传递唯一 ID 以初始化您的地图并切换显示样式以阻止地图元素。

到目前为止,“对不起,我们没有图像”的地图都没有被编入索引。

希望能帮助到你

于 2013-10-24T14:26:40.353 回答
2

也许您可以添加一些更具体的元标记,例如

<meta name="geo.region" content="US-WA" />



<meta name="geo.placename" content="Snohomish" />



<meta name="geo.position" content="-57.954900;-34.917000" />

还在 Google 网站管理员中添加了 Matt Rowles 元描述和一些单词过滤器。

于 2013-07-16T20:42:25.403 回答
2

此答案不会帮助您删除已爬网页面的单词,但可能会阻止它们在下次爬网后添加。

由于您的问题可能与爬虫无法加载有效地图有关。目前尚不清楚为什么它不能。地图提供商可能会阻止 googlebots。

无论如何,如果它不是太难,我会在这里看看:

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

创建一个写在这里的用户代理列表:

我将使用“Googlebot”作为示例,但您应该使用一个包含每个被阻止用户代理的列表。

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

Google bot 执行 JS,因此它应该可以防止错误,以防 google bot 无法加载它。

您可以做的一件事是将浏览器的用户代理更改为“Googlebot”并加载您的页面。如果地图提供商阻止任何浏览器使用此用户代理,您应该会看到 googlebot 看到的确切内容。另一个问题是 googlebot 也可能有一些超时来防止加载太多数据并且它不会加载图像。

如果问题确实在地图中,添加警卫可能有助于防止 google bot 实际加载地图。

于 2013-07-17T02:23:29.693 回答
1

1)也许在你的标签中设置你的元描述会取代这个:<head>

<meta name="description" content="This is an example of a meta description. This will often show up in search results.">

2)如果元标记不起作用,我还建议这可能是由于<body>正在呈现的第一件事(或者更确切地说,通过屏幕截图的外观尝试)是地图显示在任何其他内容之前正在加载。

例如,如果您在您的地图之前<div>放置一个或<p>标签,其中包含一些关于您网站的介绍内容,则可以避免这种情况。但是,我不能 100% 确定您必须测试并查看结果(让我们发布)。<body>

如果您打算这样做,并且希望 a) Google 爬虫仍然能够获取它,并且 b) 希望对查看者隐藏实际的词块本身(style="display: none;"style="position: absolute; left:-9999px;"),请自行决定是否这样做(更多信息在这里)。

于 2013-07-10T04:26:18.217 回答
0

您是否尝试添加蜘蛛元标记,在头部尝试这一点真的很有帮助。

<meta name="robots" content="index, follow">

蜘蛛现在将索引您的整个网站,不仅会索引您网站的第一个网页,还会索引您所有其他网页。

也尽量让你的描述更独特!更强大,但不要过量使用这些键。

谢谢

于 2013-07-17T17:38:10.033 回答
0

应用“解决方案”:

我网站的每个页面都有一张不同的地图,我最终将所有地图转换为图像,并且只保留了一张交互式地图,我真的需要用户与坐标和地图进行交互。我使用的解决方案使我创建并开源了 [osm-static-maps][3]。希望它可以帮助某人!

该网站有几个改进:

  • 摆脱了谷歌网站管理员中的这些尴尬词。
  • 使用具有“alt”html img 属性而不是“unindexable”js 地图的静态图像进行更相关的 SEO。
  • 更快的页面加载(摆脱了所有映射库和磁贴加载)。
  • 更快的 js 性能(客户端处理的 js 更少)
  • 改进的用户体验:滚动页面导致地图缩放而不是实际滚动(您可以认为这可以通过禁用地图滚动来缩放来解决,但它会导致用户期望在滚动时缩放地图,两种方式都 [ok and wrong同时][4])。

不利的一面是,我发现:

  • 更少的用户交互性(无聊的页面)。
  • 地图上的上下文较少(信息较少的地图)。

当用户单击地图 img 时,这两件事可以“固定”加载地图。不好的一面是,如果用户无意中点击了地图img,地图加载可能会被用户视为意外行为。

编辑2

我用这个做了一个开源项目。查看!https://github.com/jperelli/osm-static-maps

于 2015-07-08T19:20:05.110 回答