我刚刚上传了我的第一个有Angular的网站。当我在Google上查看它是否被编入索引时,我看到了:它是设置动态标题/描述的动态Angular代码..我怎样才能避免这种情况?! 最佳答案 为了使没有散列片段的页面可抓取,您需要包含标记在页面HTML的头部。但是,您的情况的完整解决方案可能是https://prerender.io/ThePrerender.iomiddlewarethatyouinstallonyourserverwillcheckeachrequesttoseeifit'sarequestfromacrawler.
我正在开发一个动态的angular网站(使用html5mode删除#)。它使用Elasticsearch获取一些数据并呈现内容。nginx负责映射到Elasticsearch和我的网站根目录。为了让整个网站具备SEO功能,我正在尝试整合prerender,使用本地实例(http://localhost:3000)。我拼命尝试将预渲染魔法与nginxlocation/angular_test结合使用。默认的nginxprerender中间件配置不适用于location。在下面找到我的nginx配置:upstreamelasticsearch{zoneelasticsearch64K;se
我有一个Angular7应用程序,我在其中尝试预呈现页面以支持网络爬虫/搜索引擎优化。我已经决定要使用prerender.io来促进预渲染、缓存和为这些爬虫提供静态HTML,但我正在努力将它们的中间件安装到我的Angular7应用程序中。我想弄清楚我是否可以以纯粹的客户端方式使用prerender.io,因为我不是从节点服务器提供Angular服务,我只是在CDN中托管静态文件。根据theirdocs,有一个我可以安装的中间件,它会检测网络爬虫何时发出页面请求,并将请求重定向到预渲染服务器。但是,我找到的所有示例都涉及修改某些后端节点服务器。我不能全部在客户端执行此操作吗?我的问题是:
我有一个有Angular的SPA并生成了静态html页面,以便网络爬虫能够找到并抓取该网站。我将以下代码片段添加到我的nginx站点配置中。if($args~"_escaped_fragment_=/?(.+)"){set$path$1;rewrite^/snapshots/$pathlast;}虽然这对像/abc这样像?_escaped_fragment_=abc这样被抓取的页面的所有子文件夹都有效,但在根url/在?_escaped_fragment_=为空的地方抓取。在这种情况下,nginx会回退到/并提供.js应用程序而不是静态内容。知道正确的重写语句是什么样子的吗?或者我到底
我当前的html如下所示:Loadingangular.js配置:$locationProvider.html5Mode(true);$locationProvider.hashPrefix('!');我认为让googlebot正确索引站点就足够了。但是不,它没有采用正确的标题或描述。如果我运行“fetchasgooglebot”网站正确呈现。我该怎么办? 最佳答案 我认为您不再需要为Google抓取工具预呈现您的页面。不久前,它开始注意到javascript的变化。我实际上已经回答了关于AngularJSseothatwillhe
我有一个单页AngularJS应用程序,我希望初始页面呈现包含所有相关信息作为HTML,以便在禁用JavaScript的情况下抓取它。为简单起见,我考虑只添加一个替代的HTML版本,它会在Angular应用程序加载时隐藏。这种方法(提供完整的预渲染副本)有什么缺点?Angular应用程序从呈现为页面一部分的JavaScript对象中提取数据,我很高兴能够忍受数据被发送两次。 最佳答案 Google定义了一个规范,允许您在所有必要的Javascript都运行到搜索引擎之后提供页面HTML的快照。这得到了Google、Bing、Yand
Angular应用程序索引的现状如何?有很多谣言说谷歌了解Angular客户端编译。但我们仍在努力让它理解我们的动态标题。可以看看here.UPD:也在GoogleForums上询问.UPD2:现在它不存在了,但这只是因为我将默认文本放入其中并使用了ng-attr-,如下所示: 最佳答案 Google在SPA上花费的时间似乎比在标准网站上花费的时间更多。当我插入我的投资组合时,我也有同样的想法。推送后大约两周,结果是“人类可读的”,这是当前结果的屏幕截图: 关于angularjs-SEO
我即将启动一个Angular应用程序,我正在研究如何使其对SEO友好。我一直在阅读thisarticle其中讨论了保存动态生成的HTML的静态版本(通过AJAX等)并让机器人扫描它。这篇文章讨论了Google/Bing如何找到像这样的hashbangURLhttp://somesite.com/#!/some_token...重定向并抓取http://somesite.com/?_escaped_fragment_=/some_token出现两个问题:1)_escaped_fragment_=到底是什么东西-应该是字面意思还是我应该用...替换它?文章没有解释它的性质。2)我应该如何以
我正在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
我正在构建一个具有以下url结构的网络应用程序:/isthelandingpage,notangularbased/chooseusesAngular,itbasicallycontainssearch/fund/alsowithAngular,containsspecificdataforacertainfund索引没有问题/,它只是一个简单明了的html,已经过SEO优化。但我都需要/choose和/fund/...被Google抓取,这就是问题所在。我的应用程序使用HTML5模式,我们从不使用像foo.com#!/choose这样的hashbangs指向应用程序url。,总是fo