Google用#!为页面编制索引!虽然我们没有


11

我们公司使用AngularJS及其路由开发了单页应用程序。Google用JavaScript很好地索引了我们的网站,但它对某些页面的索引不好,因此我们开发了HTML版本。

我们遵循此处发布的Ajax爬行规范,并带有<meta name='fragment' content='!'>标签和规范的url。我们希望http://www.example.com/foo/bar可以从中获取http://www.example.com/?_escaped_fragment_=/foo/bar

但是,我们发现,在滚动AJAX规范时,现在所有页面都被索引了两次,一次是JavaScript版本http://www.example.com/foo/bar,一次是新版本http://www.example.com/#!/foo/bar。这对我们来说是有害的,因为它是重复的内容,而且也误导了网站。

我曾尝试在这里和Google产品论坛中寻找类似的问题,但没有提出任何建议。


您是否向Google提出了这个问题?在他们的论坛上?
杰罗姆Verstrynge

@JVerstry是-发布此问题后,我立即完成了此操作:productforums.google.com/forum / ...但是,我的第一个假设是我们没有正确理解协议,而不是他们的产品有问题,因此我有机会除了这个问题与此处的大量目标受众相关之外,这里的帮助也相当不错(每个拥有单个页面应用程序的人都不会在URLS中使用#!并希望Google为它们编制索引)。顺便谢谢你的建议。
本杰明·格林鲍姆

1
您是否通过定义了规范的URLrel="canonical"
kqw 2014年

3
重定向#!url和隐藏丑陋的url似乎不符合您的规范。
Tony McCreath 2014年

1
只是想知道,如果您不使用#!URL,为什么要使用_escaped_fragment_Google AJAX规范?
怀特先生

Answers:


2

如有疑问,请使用rel="canonical"。这可能就像放入<link rel="canonical" href="http://blog.example.com/dresses/green-dresses-are-awesome" />您的文件夹一样简单<head>有关更多信息,请参见Google。

这不会阻止bot爬行两个“版本”,但会告诉Google(和其他SERP)仅对规范文档进行索引。


同样,他可以使用robots.txt文件吗?
eyoung100 2014年

我们有那些,他们在这种情况下没有帮助。
本杰明·格伦鲍姆

1

我不太了解javascript。
Google索引中,我们使用<head>@philtune这样的标准网址。但是,如果您不能期望http://www.example.com/foo/bar从中获取利益http://www.example.com/?_escaped_fragment_=/foo/bar

Google Fetch刚抓取了canonical url

在这种情况下,网址为http://www.example.com/foo/bar,Google也会对其进行索引http://www.example.com/foo/bar

如果您想在页面上使用Google索引,请在中添加此脚本<head>

<meta content ='index,follow'name ='googlebot'/>

然后使用再次获取Google Fetch

Note
谷歌将草率行事,关注并爬行网站,并关注页面上的所有链接。如果在您的页面中有一个类似的链接http://www.example.com/?_escaped_fragment_=/foo/bar并重定向到http://www.example.com/foo/bar,则Google会索引,http://www.example.com/foo/bar因为http://www.example.com/?_escaped_fragment_=/foo/bar它们被重定向到http://www.example.com/foo/bar

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.