Ajax 内容索引,谷歌

标签 ajax seo

我已按照 Google 网站上的说明通过添加以下元标记在我的 AngularJS 网站上启用 Ajax 抓取:

<meta name="fragment" content="!">

呈现的内容有一些链接,如:

<a href="/user/1">User 1</a>
<a href="/user/2">User 2</a>
<a href="/user/3">User 3</a>

还有一些呈现动态内容的 Ajax 选项卡,例如:

<a href="#!/popular">Popular</a>
<a href="#!/recent">Recent</a>

查看服务器日志,GoogleBot 确实来了并正确传递了 Uri 中的 _escaped_fragement,这是正确的:

_escaped_fragment_=%2fpopular
_escaped_fragment_=%2frecent

问题是使用 site:www.somesite.com 查看实际的索引内容并在服务器上登录,我看到 GoogleBot 试图索引如下页面:

/user/1/#!/popular
/user/1/#!/recent

考虑到这些 URL 是相对的并且没有 #!在它们上指示 ajax 内容,有没有办法防止这种情况?

最佳答案

如果这些 URL 在所有页面上都可用,它会简单地添加它们。

所以,如果我想去:<a href="/user/1">User 1</a>还有<a href="#!/popular">Popular</a>有页面,那么谷歌加载是合乎逻辑的:/user/1#!/popular

您可能想知道我已经使用 Github 上的脚本解决了这个难题:https://github.com/kubrickology/Logical-escaped_fragment

只需使用以下命令构建您的 AJAX 页面:__init()

关于Ajax 内容索引,谷歌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25440590/

相关文章:

javascript - 如何在链接单击时将 id 从数据库设置为 php session

css - WP 移动样式 css 与 wp_head 功能

php - 获取 Json 返回 true 或 false

php - Ajax 未在实时服务器上加载帖子,但在本地主机上运行

javascript - 如何检测 jQuery Lightslider 是否已实例化,以及如何清除实例(如果已实例化)

.htaccess - 仅通过 HTTP 访问网站,除了 2 个页面

seo - AMP 故事在 Google AMP 验证中被标记为 noindex,但 AMP Story 中没有 noindex 标签

javascript - 将所有代码放在 `$(document).ready` 中是否安全?

php - 使用 htaccess 创建 SEO 友好的 url

php - 如何缓存远程网页资源实现网页超速?