在看了一下后,我对这个问题一无所知:谷歌和其他搜索引擎是否抓取只能通过ng-click访问的页面,而没有锚标签?或者是否总是需要一个锚标记才能使爬网成功运行?
我必须构建以通用方式链接到其他页面的各种元素,并且在灵活性方面,ng-click对我来说是最好的解决方案,但我认为Google赢了"点击"这些元素,因为它们没有锚标记。
除了明显的POST /api/monitoring/temperatures/collection
GET /api/monitoring/temperatures/cnew
标签,我还有其他解决方案,如:
ui-sref
Altough我不确定这是不是一个好习惯。
有人可以帮我解释一下这个问题吗?感谢。
答案 0 :(得分:3)
单页应用程序通常非常不友好,不点击任何问题都不会出现问题。
应用程序无法呈现服务器端,因此搜索引擎抓取工具很难正确索引内容。
根据最新的recommendation,Google抓取工具可以呈现和索引大多数动态内容。
它的工作方式是它将等待Javascript踢和渲染应用程序,并且仅在页面中注入内容后进行索引。此过程不是100%证明,单页应用程序直到最近才能与静态应用程序竞争。
这是大多数网站将其用于菜单系统的主要原因,因为与完整页面重新加载相比,这将带来更好的用户体验。单页应用程序不是SEO友好。
现在正在慢慢改变,因为现在Angular Universal,Ember Fast Boot和React增加了将服务器端呈现为SEO友好页面的可能性,但仍然将其作为客户端的SPA接管。
我认为,尝试改善搜索引擎优化的最佳方法是使用网站管理员工具向Google提交网站地图文件。这将让谷歌了解您通过ng-click触发的那些页面。
请注意,如果您使用路由器的HTML5模式而不使用书签(使用#的网址),这只有可能工作,因为Google不会为书签编制索引。
一般来说,很难为Angular 1应用程序获得良好的SEO,这就是为什么它主要不用于公共可索引内容。 AngularJs的甜点用于构建应用程序的“仪表板”私有部分,用户可以在登录后访问。
答案 1 :(得分:-1)
尝试使用prerender.io预渲染这些角度页面并过滤掉bot请求并从页面缓存中提供这些预渲染页面。