Javascript 谷歌';s crawler赢得';我不懂自己的地图。如何解决?
我发现一些奇怪的单词(这里有,图片,对不起),它们本不应该出现在我的网站上,被谷歌的爬虫当作关键词 谷歌在抓取使用谷歌地图的页面时似乎有错误,所以它将错误字符串作为重要的关键字 我使用openlayers在两个站点中显示地图。代码是这样的Javascript 谷歌';s crawler赢得';我不懂自己的地图。如何解决?,javascript,google-maps,seo,openlayers,Javascript,Google Maps,Seo,Openlayers,我发现一些奇怪的单词(这里有,图片,对不起),它们本不应该出现在我的网站上,被谷歌的爬虫当作关键词 谷歌在抓取使用谷歌地图的页面时似乎有错误,所以它将错误字符串作为重要的关键字 我使用openlayers在两个站点中显示地图。代码是这样的 <script src="http://openlayers.org/api/OpenLayers.js"></script> <script src="http://maps.google.com/maps/api/js?v=
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://maps.google.com/maps/api/js?v=3&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>
$(函数(){
$(“#mapOuter”).html(“”)
map=新的OpenLayers.map(“map”)
//map.addLayer(新的OpenLayers.Layer.OSM(“openstreetmap”))
addLayer(新的OpenLayers.Layer.Google(“googlev3”))
向量=新的OpenLayers.Layer.Vector(“向量”)
map.addLayer(向量)
addControl(新的OpenLayers.Control.LayerSwitcher());
addControl(新的OpenLayers.Control.Navigation({documentDrag:true}));
addControl(新的OpenLayers.Control.PanZoom());
选项中的变量={
“内部投影”:map.baseLayer.projection,
“外部投影”:新的OpenLayers.Projection(“EPSG:4326”)
};
变量lon=-57.954900
var lat=-34.917000
map.setCenter(新OpenLayers.LonLat(lon,lat)//地图的中心
.变换(
新OpenLayers.Projection(“EPSG:4326”),//从WGS 1984转换而来
新OpenLayers.Projection(“EPSG:900913”)//到球形墨卡托投影
),15//缩放级别
)
});
我怎样才能修复这个“错误”,让谷歌爬虫可以从我的网站上获取好的内容
谷歌搜索奖金(显示错误已编入索引)
更新,“解决方案”已应用:
在我的站点中,每个页面都有一张不同的地图,我最终将所有地图转换为图像,并且只保留一张交互式地图,在那里我确实需要用户与坐标和地图进行交互。我使用的解决方案引导我创建和开放源代码。希望它能帮助别人
该网站得到了一些改进:
- 摆脱了谷歌网站管理员中的这些尴尬词语
- 更相关的SEO使用带有“alt”HTMLIMG属性的静态图像,而不是“unindex”js映射
- 更快的页面加载(摆脱了所有映射库和磁贴加载)
- 更快的js性能(客户端处理的js更少)
- 改进的用户体验:滚动页面导致地图缩放,而不是实际滚动(您可以认为这可以通过禁用地图滚动缩放来解决,但这会导致用户希望在滚动时缩放地图,这两种方法都是有效的)
- 减少用户交互(无聊页面)
- 地图上的上下文较少(地图信息较少)
标签中设置您的标签将取代以下内容:
<meta name="description" content="This is an example of a meta description. This will often show up in search results.">
2) 如果meta标记不起作用,我还建议这可能是因为
中呈现的第一件事(或者,通过屏幕截图的外观尝试)是在加载任何其他内容之前显示地图
例如,如果您在
地图中的
之前放置一个
或
标签,其中包含一些有关您网站的介绍内容,则可以避免这种情况。然而,我不是100%肯定这一点,你将不得不测试,并看到结果(让我们张贴)
如果您计划这样做,并且希望a)谷歌爬虫仍能抓起它,b)希望对查看者隐藏实际的单词块本身(
style=“display:none;”“
或style=“position:absolute;left:-9999px;”“
),请自行决定() 也许您可以添加一些更具体的元标记,例如
<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 meta description和一些单词过滤器。此答案不会帮助您删除已爬网页面的单词,但可能会阻止它们在下一次爬网后被添加 因为您的问题可能与爬虫程序无法加载有效地图有关。不清楚为什么不能。地图提供商可能正在阻止谷歌机器人 无论如何,如果不是太难,我会看看这里: 创建用户代理列表,如下所示: 我将以“谷歌机器人”为例,但您应该使用一个列表,列出每个被阻止的用户代理
if (navigator.userAgent !== 'Googlebot') {
// load the map and other stuff
} else {
// show a picture where the map should be or do nothing.
}
GoogleBot执行JS,因此在GoogleBot无法加载的情况下,它应该能够防止错误
您可以做的一件事是将浏览器的useragent更改为“Googlebot”并加载页面。如果地图提供程序阻止使用此用户代理的任何浏览器,您应该确切地看到googlebot看到的内容。另一个问题是googlebot可能还有一些超时,以防止加载太多数据,并且它不会加载图像
如果问题真的存在于地图中,添加防护可能有助于阻止google bot实际加载地图。如果您尝试添加蜘蛛元标记,那么在头部部分尝试一下会有很大帮助
<meta name="robots" content="index, follow">
蜘蛛现在将索引您的整个网站,也将不仅索引您网站的第一个网页,而且索引您的所有其他网页
也试着让你的描述更独特!更强大,但不要过量使用这些钥匙
谢谢不幸的是我也看到了很多 我的假设是googlebot不会完全评估页面上的所有js代码,但也会使用启发式。因此没有图像(被索引)。基于这一假设,我做了以下工作: