gpt4 book ai didi

javascript - Google 的抓取工具无法理解自己的 map 。如何解决?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:04 26 4
gpt4 key购买 nike

我发现奇怪的词,(有,这里,图像,抱歉)不应该出现在我的网站上,被谷歌的抓取工具当作关键字

first site

Google 在抓取使用 Google map 的页面时似乎出现了错误,因此它将错误字符串作为重要关键字!

我正在使用 openlayers 在两个站点中显示 map 。代码是这样的

<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 抓取工具可以从我的网站中获取好的内容?

Bonus Google Search(显示错误已编入索引)

Google search

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

我网站的每个页面都有一张不同的 map ,我最终将所有 map 都转换为图像,只保留一张交互式 map ,我确实需要用户与坐标和 map 相关的交互。我使用的解决方案让我创建并开源了 osm-static-maps 。希望对大家有帮助!

网站有几处改进:

  • 在 google 网站管理员中摆脱了这个尴尬的词。
  • 使用具有“alt”html img 属性而不是“unindexable”js 映射的静态图像来获得更相关的 SEO。
  • 页面加载速度更快(摆脱了所有映射库和图 block 加载)。
  • 更快的 js 性能(客户端处理的 js 更少)
  • 改进的用户体验:滚动页面导致 map 缩放而不是实际滚动(你可以认为这可以通过禁用 map 滚动缩放来解决,但它导致用户期望在滚动时缩放 map ,两种方式都是 ok and wrong at the same time ).

在不利方面,我发现:

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

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

编辑2

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

最佳答案

不幸的是我也看到了很多...

我的假设是 googlebot 不会完全评估页面上的所有 js 代码,但也会使用试探法。因此没有图像(被索引)。基于这个假设,我做了以下事情:

  1. 使用“随机”ID(用于 map )和 style="display: none;"创建一个 div

  2. 创建一个带有相同“随机”ID 的 img 标签的 noscript 标签(我在这里使用静态 map 图像作为后备,这也可以作为 no-js 后备)

  3. 创建一个(自定义)javascript 函数,其中必须传递唯一 ID 以初始化您的 map 并将显示样式切换为在 map 元素上阻塞。

到目前为止,没有一张“抱歉我们没有图像”的 map 被编入索引。

希望对你有帮助

关于javascript - Google 的抓取工具无法理解自己的 map 。如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com