【问题标题】:SEO and crawling: UI-Router ui-sref VS ng-clickSEO 和爬取:UI-Router ui-sref VS ng-click
【发布时间】:2016-05-25 09:36:20
【问题描述】:

看了一圈后,我对这件事没有任何结论:谷歌和其他搜索引擎是否会抓取只能通过 ng-click 访问的页面,没有锚标签?或者是否总是需要存在锚标记才能使抓取成功?

我必须构建以通用方式链接到其他页面的各种元素,就灵活性而言,ng-click 对我来说是最好的解决方案,但我想 Google 不会“点击”这些元素,因为它们没有锚点标签。

除了明显的ui-sref 标签外,我还有其他解决方案,例如:

<a ng-click = 'controller.changeToLink()'>Link name</a>

虽然我也不确定这是否是一个好习惯。

有人可以为我澄清这个问题吗?谢谢。

【问题讨论】:

    标签: javascript html angularjs seo angular-ui-router


    【解决方案1】:

    单页应用程序通常对 SEO 非常不友好,不关注 ng-click 是最小的问题。

    应用程序不会在服务器端呈现,因此搜索引擎爬虫很难正确索引内容。

    根据最新的recommendation,Google 爬虫可以呈现和索引大多数动态内容。

    它的工作方式是等待 Javascript 启动并呈现应用程序,并且仅在将内容注入页面后进行索引。这个过程不是 100% 证明的,单页应用程序直到最近才能与静态应用程序竞争。

    这是大多数网站将它们用于菜单系统的主要原因,因为这将提供比整页重新加载更好的用户体验。单页应用对 SEO 不友好。

    这种情况正在慢慢改变,因为现在 Angular Universal、Ember Fast Boot 和 React 正在增加将服务器端呈现为 SEO 友好页面的可能性,但仍然让它在客户端接管为 SPA。

    我认为尝试改进 SEO 的最佳选择是使用他们的网站管理员工具向 google 提交站点地图文件。这会让谷歌知道你通过 ng-click 触发的那些页面。

    请注意,这只有在您为路由器使用 HTML5 模式而不使用书签(网址使用 #)时才有可能工作,因为 Google 不会索引书签。

    一般来说,Angular 1 应用程序很难获得良好的 SEO,这就是为什么它大多不用于公共可索引内容的原因。 AngularJs 的甜蜜点是构建应用程序的“仪表板”私有部分,用户可以在登录后访问。

    【讨论】:

      【解决方案2】:

      尝试使用 prerender.io 预渲染这些 angularge 页面并过滤掉机器人请求并从页面缓存中提供这些预渲染页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-22
        • 1970-01-01
        • 2015-03-18
        • 1970-01-01
        • 2015-01-02
        • 2015-03-19
        • 2019-03-22
        相关资源
        最近更新 更多