我在前端使用angularjs框架,在后端使用aspnetmvc来开发我的网络应用程序。如您所知,angularjs在SEO方面有一个重大缺陷。有一些解决方案,例如使用phantomjs创建网站快照并将其服务于搜索机器人而不是原始网站。但我不喜欢那样。我最近介绍了同构网络应用程序的概念,如果我没记错的话,可以在服务器上预渲染angularjs应用程序,然后将渲染的html提供给客户端。我找到的所有解决方案都是针对其他框架的。像Rendr(https://github.com/rendrjs/rendr)或angularjs-server(https://github.com/sayme
我使用AngularJS创建了一个网站,因为我认为它会加快这个过程。现在它变成了一个彻底的头痛。SEO对于网站来说是必不可少的,显然,尽管AngularJS网站是由Google创建的,但它是不可抓取的。我阅读了这篇解释解决方法的文章:http://www.yearofmoo.com/2012/11/angularjs-and-seo.html我的问题是:如何在没有sudo访问权限的情况下安装或运行PhantomJS(或任何其他headless浏览器)?如果是这样,我该怎么做?我在1and1上以少量预算托管网站。 最佳答案 一些网络托
我正在尝试让启用了html5模式的AngularJS被谷歌索引。在我的app.js中有以下代码片段:$locationProvider.html5Mode(true);在我的index.htmlhead中,我有以下内容:我希望收到格式为/?_escaped_fragment_=support的url请求。相反,我在/support?_escaped_fragment_=上收到请求。是我的配置有问题还是我预料到了一些奇怪的事情? 最佳答案 根据yearofmooSEO文章你应该得到这个:http://yourwebsite.com/?
我正在尝试在我们的应用程序中为google+和facebook+1启用元数据,但我什么也得不到,页面的url或帖子中的{{pageDesc}}。现在我正在使用动态设置元描述的指令:HTML:指令:app.directive('metaDescription',['metaData',function(metaData){return{restrict:'A',replace:true,template:'',link:function(scope,element){scope.metaData=metaData;scope.description=scope.metaData.page
我开发了一个Angularjs网络应用程序并托管在IIS服务器中。我的网络应用程序仅使用javascript、css和html开发。但问题是我的网页不是Google搜索中的抓取工具。我已经使用javascript为每个页面设置了元标记。谁能解释一下如何为IIS托管网站配置预呈现中间件。 最佳答案 您将要使用Prerender在其网站上缓存您的页面,它缓存html快照,然后将这些快照发送给google以供google在SEO期间使用,现在,您说您已经完成了元标记在每个页面上,这意味着您可以继续进行Angular预渲染设置,我建议thi
我正在使用prerender.io使我的AngularJS网站可抓取。但是,自从我开始使用prerender.io以来,我的大部分CRUD请求(例如更新、删除)都会返回nginx405NotAllowed响应。原始(工作)nginx位置block(在使用prerender.io之前):location/{try_files$uri$uri//index.php?$query_string;}当前位置block(由于Google正确显示静态html,CRUD不起作用):location/{try_files$uri@prerender;}当前预渲染blocklocation@preren
我有一个AngularJS1.0.7网络应用程序。几个月前,我向谷歌发送了一个sitemap.xml文件,因此url被编入索引。现在,我想上传一个新的站点地图文件,其中包含对这些URL的一些更新。我的意思是,页面是一样的,但url有一点变化。当谷歌索引我的新网址时,我猜它会有很多具有相同重复代码的网址,对吧?我有点担心,因为我读过谷歌对这种情况的惩罚。我已经阅读了一些相关内容,但我对所有这些SEO内容还是个新手。所以,我不是100%清楚我应该做什么。最适合我的是Google可以“删除”或以某种方式忘记旧网址并为新网址编制索引。我已阅读有关规范网址和重定向301的内容。这些方法正确吗?我
我有一个有Angular的应用程序,现在正在考虑为SEO目的进行微调。看了很多文档和教程,我很困惑!我知道在过去您必须使用预渲染服务。但随后谷歌更新了它的机器人以更好地抓取JavaScript。鉴于此,我不太了解现在改进爬虫和索引的最佳实践是什么?我目前的设置是我有一个站点地图并将我的URL从!转换为#!。而且,我还没有启用html5模式. 最佳答案 只要按照这三个参数,就可以了。1)遵循这篇文章中关于使用Phantom.js和自定义缓存层生成页面快照的建议。确保每个页面都有一个友好的URL,并在sitemap.xml文件中提供所有
我正在开发一个带有AngularJS前端和LaravelAPI后端的应用程序。Laravel后端只是监听请求,处理它们并返回一个答案。前端和后端是不同的独立应用程序......到目前为止。我这样做是为了以后能够开发一个可以使用API的移动应用程序。我还使用JWT对用户进行身份验证,所以我根本没有使用Laravel的session。此时我只需要一个webapp。我构建了一个使用angularui-router的webapp。到目前为止一切顺利。前端和后端运行良好。然而,一些前端View将是公开的并且需要共享按钮,它们还需要被谷歌索引。我读过有一些替代方案。Makesomehack使用ap
我有一个使用AngularJS构建的单页应用程序。所有请求都通过index.html提供,Angular从那里进行路由并查询一组API端点以获取要显示的数据。网站的标题和SEO元数据以及描述的获取方式相同。问题是API端点位于不同的域中,因此SPA实际上是在执行跨源请求以获取数据。从用户的Angular来看,一切正常。然而,当谷歌抓取该网站时,它不会获取任何元数据或标题,而只会显示Angular标签。查看站点日志,我可以看到Google机器人的请求仅执行OPTIONS请求,而不是实际的GET。我怎样才能让谷歌正确地索引页面?这是它的截图:站点是https://www.careercon