草庐IT

AngularJS2

全部标签

ajax - AngularJS/AJAX 应用程序和搜索引擎爬虫

我有一个大量使用AngularJS/AJAX的网络应用程序,我希望它可以被Google和其他搜索引擎抓取。我的理解是我需要做一些特别的事情才能让它工作,如下所述:https://developers.google.com/webmasters/ajax-crawling不幸的是,这看起来很讨厌,我不想引入散列标签。我想做的是直接或通过向其发送302重定向向Googlebot(基于用户代理)提供静态页面。这样,Web应用程序就可以相同,并且整个Googlebot变通办法都很好地隔离,直到不再需要它为止。我担心的是Google可能会错误地认为我在试图欺骗Googlebot,而我的目标是帮助

angularjs - nginx escape_fragment 重写 Angular SPA 的静态内容

我有一个有Angular的SPA并生成了静态html页面,以便网络爬虫能够找到并抓取该网站。我将以下代码片段添加到我的nginx站点配置中。if($args~"_escaped_fragment_=/?(.+)"){set$path$1;rewrite^/snapshots/$pathlast;}虽然这对像/abc这样像?_escaped_fragment_=abc这样被抓取的页面的所有子文件夹都有效,但在根url/在?_escaped_fragment_=为空的地方抓取。在这种情况下,nginx会回退到/并提供.js应用程序而不是静态内容。知道正确的重写语句是什么样子的吗?或者我到底

angularjs - 对于 SEO,我可以在我的 Angular 应用程序旁边提供一个静态 HTML 替代版本吗?

我有一个单页AngularJS应用程序,我希望初始页面呈现包含所有相关信息作为HTML,以便在禁用JavaScript的情况下抓取它。为简单起见,我考虑只添加一个替代的HTML版本,它会在Angular应用程序加载时隐藏。这种方法(提供完整的预渲染副本)有什么缺点?Angular应用程序从呈现为页面一部分的JavaScript对象中提取数据,我很高兴能够忍受数据被发送两次。 最佳答案 Google定义了一个规范,允许您在所有必要的Javascript都运行到搜索引擎之后提供页面HTML的快照。这得到了Google、Bing、Yand

angularjs - 如何在 AngularJS 单页应用程序中返回 http 状态代码?

我有一个AngularJS单页应用程序,用于显示短期资源,其url类似于/auction/103。但是,当资源不再可用时,我希望从搜索引擎的索引中删除该页面。因此,当搜索引擎爬虫经过时,我需要返回状态码410或404。但是,对于页面未在服务器上呈现的单页面应用程序,我该如何做到这一点? 最佳答案 当您使用Prerender进行SEO时,您可以指定一个元标记,使Prerender向搜索引擎爬虫返回一个http状态代码:https://prerender.io/server#http-headers.我创建了一个Plunker来使用An

angularjs - SEO:Google 如何索引 Angular 应用程序 2016

Angular应用程序索引的现状如何?有很多谣言说谷歌了解Angular客户端编译。但我们仍在努力让它理解我们的动态标题。可以看看here.UPD:也在GoogleForums上询问.UPD2:现在它不存在了,但这只是因为我将默认文本放入其中并使用了ng-attr-,如下所示: 最佳答案 Google在SPA上花费的时间似乎比在标准网站上花费的时间更多。当我插入我的投资组合时,我也有同样的想法。推送后大约两周,结果是“人类可读的”,这是当前结果的屏幕截图: 关于angularjs-SEO

angularjs - AngularJS 自定义指令对搜索引擎来说是否类似于 HTML5 语义标签?

我们都知道HTML5语义标签的最大优势之一是SEO。但是SEO是否认为所有(阅读自定义、非HTML5)标签都是语义的?假设我正在制作一个电子商务门户网站,它使用AngularJS前端销售鞋子,并使用如下自定义Angular指令:我知道shoeClass对Google机器人来说是不可见的,因为在编译AngularJS之前它不存在,但DOM本身确实存在于静态HTML中。因此,标签肯定对机器人可见。但是机器人会理解这个标签吗?这会给我加分吗(考虑到SEO的所有其他方面都得到了照顾,并且我使用Meteor或PhantomJS提供静态预渲染页面)?或者机器人会将标签丢弃为乱码?

angularjs - 如何捕捉 Angular 1.x 网站上的出站链接点击?

我正在trycatch指向外部网站的链接点击,以便稍后跟踪它们。类似于foo但跨越所有DOM树。大部分内容来自外部REST服务器,因此我无法使用ng-click那里。谢谢。 最佳答案 你可以做的是写一个名为a的指令angular.module('tracking',[]).directive('a',function(){return{restrict:'E'link:function(scope,element,attrs){element.on('click',function(){if(attrs.target==outsid

javascript - Google 更新和 AngularJS/JavaScript 网站

谷歌今天(2014年5月28日)宣布,JavaScript内容将由谷歌机器人呈现。哇好消息!因此,无需为抓取目的提供一些预呈现的页面。在http://googlewebmastercentral.blogspot.de/2014/05/understanding-web-pages-better.html上阅读更多相关信息可是我高兴得太早了。我关闭了我的预呈现服务,让谷歌使用网站管理员工具抓取我的网站。在查看呈现的HTML代码后,我发现:很明显,Google没有正确呈现ng-view(希望目前)。所以我打开我的预呈现服务并再次抓取网站。这是第二个问题:Google不会自动将URL中的h

angularjs - SEO - 如何要求爬虫在爬行之前等待数据加载?

我正在使用mvvc框架(Angular),但在为站点数据编制索引时遇到了一些问题。所有静态数据都可以正常抓取,但云数据库中的动态数据会丢失。有什么方法可以礼貌地要求爬虫在开始之前等待几百毫秒? 最佳答案 没有办法告诉蜘蛛等待。这会适得其反,因为他们的工作是尽快索引数据,每次等待都会累积成几天/几周/几个月的延迟。(请注意,Google已经探索了一些javascript渲染,但这对XHR内容没有帮助)。正确答案是探索MakingAJAXApplicationsCrawlable.这种方法的要点是您在部署过程中使用prerender.i

javascript - 如何影响 AngularJS 的 HTML 呈现优先级?

我正在通过PhantomJS通过Selenium为搜索引擎机器人预呈现我的HTML页面,以便他们可以看到完全加载的内容。目前,在PhantomJS到达页面后,我等待5秒,以确保所有内容都已加载。与其每次都等待这5秒,我考虑的一种解决方案是等到属性html-ready在上标签设置为真:.......controller("AnyController",function($scope,$rootScope,AnyService){$rootScope.htmlReady=false;AnyService.anyLongAction(function(anyData){$scope.anyD