SEO骨干js重页

问题描述 投票:16回答:5

我们大量使用骨干来渲染我们的页面。所有数据都作为json从服务器传递,html在客户端上创建,带有主干和小胡子。这对SEO造成了很大的问题。我计划解决这个问题的一种方法是检测请求是否来自机器人,并使用类似HtmlUnit的内容在服务器上呈现页面并将其吐出。会喜欢一些替代想法。还想知道我打算做的是否存在缺陷。

javascript backbone.js seo
5个回答
4
投票

我不一定喜欢你唯一的选择是重做一切以满足广泛的最佳实践。有充分的理由考虑使用一种不引人注目的Javascript方法来做事情,但也许有一个很好的理由你这样做是一个JS所需的网站。让我们假装有。

如果您正在使用动态填充的客户端模板执行Backbone.js应用程序,我想到的最佳方法是在下面的链接中。基本上,它等于告诉无头浏览器运行一组导航命令来查看所有用户/产品/页面,并在每个步骤保存一个静态html文件,以获得SEO原因。

What's the least redundant way to make a site with JavaScript-generated HTML crawlable?


5
投票

使用Progressive EnhancementUnobtrusive JavaScript建立您的网站。

当你做重要的Ajax时,请使用the history API

然后,您拥有所有内容的真实网址,Google也不会成为问题。


3
投票

在我正在尝试覆盖所有基础的项目中,我正在努力工作..骨干驱动的客户端,pushstate uris,可收藏的页面和html后备。我采用的方法是使用Mustache作为模板,将它们分解为我的主干视图的漂亮小组件,并以原始格式将它们提供给客户端。当请求页面时,可以在服务器上处理模板以生成整页和主干附加到它想要控制的元素。

这不是一个简单的设置,但到目前为止,我没有遇到任何障碍,我没有复制任何模板。我必须为每个可用的url创建一个页面包装器模板,因为Mustache不做“包装器”,但我认为我应该能够通过服务器上的一些额外编码来消除这些。

该计划是能够将一些组件作为接口所需的纯js,一些由服务器呈现,并在需要时使用js进行增强。


0
投票

使用谷歌ajax爬行方案有利有弊 - 我用它来做一个混合结果的社交网站(http://beta.playup.com)......

我写了一个宝石来透明地处理这个作为ruby用户的机架中间件(gem install google_ajax_crawler)(https://github.com/benkitzelman/google-ajax-crawler

http://thecodeabode.blogspot.com.au/2013/03/backbonejs-and-seo-google-ajax-crawling.html上阅读它

总结是,尽管我成功地将渲染的dom快照发布到了请求的搜索引擎,并且我可以看到Google使用网站管理员工具抓取了11,000个网站页面,但我发现Google更倾向于将各种状态的应用分类( urls)作为同一页面的版本,而不是单独的索引。尝试搜索beta.playup.com - 即使呈现的内容在URL之间发生根本变化,也只列出一个索引)....


0
投票

如果你正在使用node.js使用rendr

使用Node.js在客户端和服务器上呈现Backbone.js应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.