我有一个由Express提供的简单Angular4项目。当我尝试使用Googlebot获取我的网站时,它只显示一个空白页面(AppRoot的innerHTML)。我以为Google声称其机器人支持Angular4/JS网站?如果这仍然是问题,那么使用AngularUniversal的服务器端渲染真的是最好的解决方案吗?就像除了为普通客户端呈现的应用程序提供服务的主服务器之外,我还必须设置另一台服务器来为服务器端呈现的应用程序提供服务吗?如果是,我如何告诉googlebot转到服务器端呈现的应用程序的端口和正常的http流量转到客户端呈现的应用程序的端口?爬虫不是http流量吗?
例如,如果内容动态加载并具有像“mysite.com/#/some/page”这样的散列URL,那么它是否对SEO友好,或者它不会被Google和Bing编入索引? 最佳答案 由于搜索引擎不运行javascript,您需要为您的页面制作静态html版本,以便它们可以被它们索引,您还应该有一个站点地图。有一个库可以帮助使用phantomjs完成此操作:https://github.com/steeve/angular-seo这在此处进一步解释:http://www.yearofmoo.com/2012/11/angularjs-and
我们有一个使用angular-translate提供中文和英文版本的网站。前端确定语言设置。从客户端来看没问题,但是当googlebot出于SEO目的抓取我们的内容时,他们无法抓取内容。相反,他们在翻译之前抓取语法{{'CONTENT_1'|translate}}也如下图所附!GoogleBotsearchresult我们目前正在使用ajaxsnapshots为谷歌机器人提供快照。想知道是否有人知道如何使用AngularJS和Angular翻译正确地提供国际化内容! 最佳答案 当前的问题与angular-translate无关,而是
这是一个关于Angular2选择器、自定义标签与自定义属性、搜索引擎优化和浏览器渲染的问题。当我第一次开始查看Angular2时,我按照他们的快速入门所做的第一件事就是将我的选择器更改为'[my-component]'(属性选择器)而不是'my-component'(标签选择器),所以我可以有在我的html中而不是,这不是有效的html。所以我会根据标准编写html。好吧,至少非常接近标准(因为my-component不是有效的html属性,但我只能忍受该html验证错误)然后,在youtube上的某个视频中,angular团队的某个人提到我们应该使用标签选择器,至少在性能方面是明智的
可能是重复的问题Bestwaytosetup404pagesinaangularSPA?但我没有为我的问题找到可靠的答案。我很想知道是否有办法告诉googlebot关于404页面的信息?为此目的,有一个名为prerender-status-code的标签,但我没有找到GoogleSeo团队的任何官方文章来确认他们尊重这个元标签。这足以遵循here中指定的最佳实践吗??还是我应该做更多的事情?(也许与Google网站管理员工具有关?)我对一些知名的SPA进行了研究,我注意到SoundCloud在他们的404页面上添加了一个nofollow标签,如下所示:googlebot是否尊重后来由j
在Angular设置中,我选择了AngularUI-router来在View之间切换。我的配置如下:.config(function($stateProvider,$urlRouterProvider){$urlRouterProvider.otherwise('/app/home');$stateProvider//Nav.state('app',{url:'/app',templateUrl:'templates/navbar.html',abstract:true,controller:'AppCtrlasapp',})//Home.state('app.home',{url:'
我正在开发基于Angular2的网络应用程序。我使用AngularCLI生成应用程序,然后为产品构建它。我在AWSS3和Cloudfront上托管了网站。当我使用网站管理员提供的“FetchasGoogle”工具时,它只显示Loading...。Googlebot无法抓取我的网站吗? 最佳答案 有类似的问题。我相信Google-Bot不支持现代JS。我只是激活了angular.io推荐的所有垫片,请参阅https://angular.io/docs/ts/latest/guide/browser-support.html并在脚本头中
我正在使用$routeProvider和$locationProvider来处理单页应用程序(SPA)中的pushstateURLS,如下所示:angular.module('pets',[]).config(function($routeProvider,$locationProvider){$locationProvider.html5Mode(true);$routeProvider.when('/pet/:petId',{controller:'petController'});}).controller('petController',function($scope,petS
google中的搜索结果通过TitleTag和显示标签。-标签可通过Angular2编辑howtochangepagetitleinangular2router剩下的就是描述了。是否可以在angular2中编写一个指令来操作中的元标记?我页面的一部分。因此,根据所选路线,元描述会发生如下变化: 最佳答案 从Angular4开始,您可以使用AngularMetaservice.import{Meta}from'@angular/platform-browser';//[...]constructor(privatemeta:Meta)
我有一个AngularSPA,它根据一些餐厅数据的不同裁剪(请参阅m.amsterdamfoodie.nl)提供各种推荐列表和位置的Googlemap。我希望每个列表都有自己的URL。为了让Google抓取不同的列表,我使用Canvas导航的标签。目前标记会导致View刷新,这在map上非常明显。我可以使用ng-click来防止这种情况发生和$event.preventDefault()(请参阅下面的代码片段),但我需要实现一种更新浏览器URL的方法。但是在尝试Angular的$state或浏览器的history.pushstate,我最终触发了状态更改和View刷新...!因此我的问