我是否需要为AngularJS提供单独的内容页面?

时间:2015-11-10 01:53:04

标签: php angularjs ajax seo

背景:我正致力于创建一个包含公司描述,历史,行业,股价等的股票市场应用程序,并允许用户随意添加新公司。当用户想要阅读关于特定公司的信息时,他/她只需将代码输入到搜索框中,并使用该公司的内容更新该页面。我计划使用MySQL数据库存储静态内容信息,如描述,PHP作为服务器端语言,动态数据API(例如股票价格)和AngularJS用于前端开发,特别是消除不断的页面重新加载和加快开发周期。

问题1(1家公司= 1页?):最初,我正在考虑通过 $ http 创建AJAX请求,然后简单地填充html模板包含该请求生成的 {{content}} ,但之后我听说为每个内容创建一个单独的页面也是一种常见的方法,并且SEO的首选(基本上,URL看起来像这样: www.mysite.com /#/ main / page vs www.mysite.com /main/page/company1.php 分别用于第一种和第二种方法)。如果在这种情况下这些方法都不正确,哪种方法确实是首选方法或最佳实践是什么?

问题2(搜索引擎优化/站点地图):现在,如果我坚持使用第一种方法($ http),我会发现搜索引擎抓取工具难以识别网页,因为从技术上讲,没有&# 39;任何包含内容的页面;它们都是动态生成的。这是真的,搜索引擎无法找到我的网页,如果是这样,有没有办法绕过这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:1)

使用Angular,您可以轻松地为每个内容添加唯一的URL。为此,您可以使用路由器(参见https://docs.angularjs.org/api/ngRoutehttps://angular.github.io/router/getting-started)。它允许您的应用程序:

  • 在用户请求网址时加载并显示正确的内容
  • 在用户浏览网站时更新位置栏中的网址。

因此,您的用户将能够共享链接,书签内容......

对于僵尸程序,您需要提供HTML快照。可以使用SEO4Ajax之类的服务来完成。或者,如果你想自己做,有一个很好的教程here

答案 1 :(得分:0)

Google可以为javascript网站编制索引(由Google宣布,2014年5月),但Google可能无法正确呈现或索引有角度的网站。需要技术搜索引擎优化专业知识,以确保您有一个SEO友好的网站架构,包括页面标题,元标记,h1等,针对正确的关键字。开发人员可能会发现他们的网站只是部分呈现和索引,或根本没有。

您可以采取措施,例如使用$locationProvider.html5Mode(true);删除AngularJS的默认主题标记网址。

通常也接受的是,为爬行器提供角度网站的渲染版本需要获得良好的搜索性能。 (其中一项服务是Prerender.io)。