javascript - 有没有一种简单的方法可以使 Javascript 应用程序 SEO 友好?

标签 javascript angularjs gruntjs yeoman

我一直在考虑使用新的工作流程进行 Web 开发。 Yemoan、Grunt 和 Bower 与 AngularJS 似乎是前端开发的绝佳解决方案。唯一的缺点是 SEO 非常糟糕。这似乎是插入这些服务采用的业务决策的重要组成部分,但我找不到任何解决方案。

制作 SEO 友好的 JavaScript 应用程序的可靠解决方案是什么?

最佳答案

当前使 ajax 密集型网站/应用程序 SEO 友好的标准做法是使用快照。请参阅此处的谷歌教程:https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot在这里:https://developers.google.com/webmasters/ajax-crawling/docs/specification

总而言之,您添加此标签 <meta name="fragment" content="!">到你的 DOM。爬虫会看到这一点并从www.example.com重定向自己。至www.example.com?_escaped_fragment_=它将期待页面快照。

您可以在所有ajax完成后手动从您的站点复制html,并自己创建快照文件。然而,这可能会很麻烦。相反,您可以使用 PhantomJS为您自动化此过程。就我个人而言,我将使用 .htaccess发送escaped_fragment请求单个 php 文件,该文件缓存了编辑时从内容管理器创建的标记。这允许它重新创建标记供爬虫查看(但对人类没有功能)。

关于javascript - 有没有一种简单的方法可以使 Javascript 应用程序 SEO 友好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20434187/

相关文章:

javascript - 如何将元组从 javascript 传递到 ASP.NET MVC Controller 操作

javascript - 如何重置在整个页面中应用的 jQuery 切换类? ( Angular 元素)

gruntjs - 如何让 livereload.js 在本地主机上工作,错误 -> ERR_CONNECTION_REFUSED

node.js - 如何设置 grunt 文件来监视和编译 less 文件

javascript - 收到 AJAX 响应时引发事件

javascript - setTimeout 传递参数问题

javascript - 在 Angular 项目中迭代 JSON 响应以创建我可以在应用程序中使用的新 $scope 对象

javascript - 如何警告 Angular ui 网格导入文件失败?

javascript - 为什么在 AngularJS 中调用未定义的函数没有错误?

gruntjs - grunt-contrib-clean 任务不会删除具有网络 src 路径的文件