Articles of seo

Prerender.io不caching页面

我用一个expressJS后端与AngularJS做了一个应用程序。 现在我想让它抓取,我发现prerender.io 。 我想我已经做了一切正确的bur由于某种原因,我没有看到prerenderer仪表板中的任何统计数据。 在我的app.configure函数中,我包含了如下的标记: app.use(require('prerender-node').set('prerenderToken', 'my-token')); 在我的HTML中,我已经包含了meta-fragment标签: <meta name="fragment" content="!"> 我做的最后一件事是告诉AngularJS使用hashprefix: $locationProvider.html5Mode(false); $locationProvider.hashPrefix('!'); 但由于某种原因,如果我参考文档,我不会得到正确的结果。 下面你可以看到它应该做什么: Google会像这样向您的服务器发送请求: http://www.example.com/?_escaped_fragment_=/user/123 你把这个url变成这个: http://www.example.com/#!/user/123 由于某种原因,如果我尝试这个,它仍然添加#! 标志添加URL的末尾,所以如果我请求我的应用程序的URL像谷歌我得到这个: http://www.my-website.com/?_escaped_fragment_=#!/home 所以它不会replaceurl中的散列。 我认为这是我的问题的原因。 提前致谢! 编辑 – 如果我例如添加一个额外的路线,那么它的作品: app.get('/', function (req, res) { res.sendfile('./public/index.html'); }); app.get('/test', function (req, res) { res.sendfile('./public/index.html'); }); '/'路线不起作用, '/test'路线不起作用。

如何制作和存储邮件标题的slu??

我使用MongoDB / mongoose来存储具有以下模式的博客文章: PostSchema = mongoose.Schema({ title: {type: String}, body: {type: String} }); 现在我的posturl如下所示: http://www.example.local/posts/571f78d077b4454bafcfcced 我想我的post包含slu like如下: http://www.example.local/posts/571f78d077b4454bafcfcced/how-to-make-and-store-slug-for-title 所以我的问题是: 我应该生成一次slug和存储PostModel架构或每个post上显示? 如何为标题(现有的节点模块解决这个任务)生成slug basen非ASCII字符? 我应该使用什么地方将查询从http://www.example.local/posts/571f78d077b4454bafcfccedredirect到http://www.example.local/posts/571f78d077b4454bafcfcced/how-to-make-and-store-slug-for-title (nodejs,nginx,客户端)。 谢谢! EIDT:我也发现,在StackOverflow数据库viwer的问题与ID 503429 SO存储non slugged标题。 那么这是否意味着SO在每次请求问题时都会计算出slu g?

angular4和SEO

Express有一个简单的Angular 4项目。 当我尝试使用Googlebot访问我的网站时,它只显示了一个空白页面(AppRoot的innerHTML)。 我以为谷歌声称它的机器人支持Angular 4 / JS网站? 如果这仍然是问题,使用Angular Universal的服务器端渲染真的是最好的解决scheme吗? 就像我必须build立另一台服务器,服务器端提供的应用程序,除了服务于普通的客户端渲染应用程序的主服务器? 如果是这样,我怎么告诉googlebot去端口的服务器端渲染的应用程序和正常的httpstream量去客户端呈现应用程序的端口? 不是抓取工具的HTTPstream量?

如何运行PhantomJS作为服务器并远程调用它?

这可能是一个非常基本的问题。 我想运行一个无头浏览器PhantomJS作为服务器,但不作为命令行工具。 一旦运行,我想通过HTTP远程调用它。 我唯一需要的是发送一个URL并取回HTML输出。 我需要它为AJAX应用程序生成HTML以使其可search。 可能吗 ?

使用node.js服务Backbone.js应用程序的内容来searchsearch引擎优化

要么我的谷歌已经失败了,或者真的没有太多的人这样做呢。 如您所知,Backbone.js有一个致命弱点 – 它不能提供给它的页面抓取工具,比如googlebot,因为它们不运行JavaScript(尽pipeGoogle的资源,V8引擎以及令人清醒的事实JavaScript应用程序正在崛起,我预计这将在某一天发生)。 我知道谷歌有一个hashbang解决方法的政策,但这是一个坏主意。 另外,我正在使用PushState。 这对我来说是一个非常重要的问题,我希望它也适用于其他人。 search引擎优化是不容忽视的,因此不能被认为是需要或依靠它的许多应用程序。 inputnode.js. 我只是刚刚开始进入这种热潮,但似乎有可能有相同的客户端上存在的Backbone.js应用程序在服务器与Node.js握手。 node.js然后将能够提供从Backbone.js应用程序呈现的页面到页面爬虫。 这似乎是可行的,但我正在寻找一个谁更有经验的node.js甚至更好的人,谁已经真正做到这一点,在这方面给我build议。 我需要采取哪些步骤来允许我使用node.js将我的Backbone.js应用程序提供给网页抓取工具? 另外,我的Backbone应用程序使用了一个用Rails编写的API,我认为这会让人头疼。 编辑:我没有提到,我已经有一个生产应用程序写在Backbone.js。 我正在寻找应用这种技术的应用程序。

Angular2 SEO – 如何使angular2应用程序可抓取

我正在使用Angular-Meteor框架构build一个Angular 2应用程序。 我想通过谷歌和其他search引擎实现快速和一致的索引 ,并允许Facebook共享者和其他刮板生成我的JS生成的内容的预览。 通常,SPA使用PhantomJS呈现页面服务器端,并将静态HTML发送给客户端。 当我拦截一个_escaped_fragment_或者当我看到google或者scraper用户代理时,我可以自己产生PhantomJS,但是当在大stream量的网站上直接产生PhantomJS时,我经常遇到内存泄漏和孤立的幻影实例(我使用了NodeJS和这个模块 )。 对于Angular 1应用程序,我曾经使用Angular-SEO等angular度模块来解决这个问题,但是很难将这个模块转换成angular度2。 我还没有find适合的Angular 2模块。 我应该自己创build它,还是有其他的好方法来实现这一点?