我正在使用React和NodeJS构建通用应用程序()。我还使用react-helmet作为库来处理页面标题、元数据、描述等。但是我在使用ajax动态加载内容时遇到了一些麻烦,谷歌爬虫无法正确获取我的网站,因为内容将被动态加载。有什么建议可以解决这个问题吗?谢谢! 最佳答案 我有过类似的情况,但后端是django,但我认为你使用哪个后端并不重要。首先让我了解一下基础知识,谷歌机器人实际上不会等待您的ajax调用完成。如果你想测试它在谷歌网站管理员工具上注册你的页面并尝试以谷歌方式获取,你会看到你的页面是如何被机器人看到的(我的只是带
我正在使用prerender.io为Angular单页应用程序进行服务器端渲染。添加了ngMeta依赖并动态添加了标题和描述元标记。添加了包含所有URL的sitemap.xml文件在Google网站站长控制台上将网站添加为Assets。使用prerender.io呈现页面标题和描述标签在页面View源中显示如下:但是,呈现的页面显示如下标题和描述:此外,Google搜索中缺少该网站的描述。谁能帮我解决这个问题? 最佳答案 我删除了行我使用了另一个名为“angular-update-meta”的插件'而不是'ngMeta'。现在,谷歌
我刚刚用create-react-app写了一篇博客。除此之外,我还编写了一个小型服务,该服务将在服务器上使用chrome为Google或Facebook等爬虫呈现网站。所以我有http://example.com/path-to-page应该提供给普通用户,还有http://myprerenderer.com/render/http://example.com/path-to-page应提供给爬虫等。这是我的.htacces目前的样子:RewriteEngineon#Don'trewritefilesordirectoriesRewriteCond%{REQUEST_FILENAME
我将AngularJS与SEO4Ajax结合使用。我使用nginx在docker容器中运行我的网站。我将所有nginx配置从SEO4Ajax复制到docker容器。Seo4Ajax已创建快照,但以?_escaped_fragment_=结尾的url不起作用。AngularJSheadermeta(name='fragment',content='!')AngularJS配置$locationProvider.html5Mode(true).hashPrefix('!');Nginx配置server{listen80;sendfileoff;expires0;location/{root
我开发了一个Angularjs网络应用程序并托管在IIS服务器中。我的网络应用程序仅使用javascript、css和html开发。但问题是我的网页不是Google搜索中的抓取工具。我已经使用javascript为每个页面设置了元标记。谁能解释一下如何为IIS托管网站配置预呈现中间件。 最佳答案 您将要使用Prerender在其网站上缓存您的页面,它缓存html快照,然后将这些快照发送给google以供google在SEO期间使用,现在,您说您已经完成了元标记在每个页面上,这意味着您可以继续进行Angular预渲染设置,我建议thi
我使用Yeoman制作了一个网站;grunt,generator-angular,$routeParams...与Node.js只是为了build我的应用程序,如何使用prerender或seo4ajax并为其编制索引?使用Node.js作为应用服务器可以这样设置:在命令行上运行:$npminstallprerender-node--save当您设置Express应用时...:app.use(require('prerender-node'));但是,我只使用Node.js来构建我的应用程序,我没有express这个应用程序,我如何安装和配置nginx(我使用托管Godaddy)来获取
我正在使用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
我想检测请求是来自prerender.io(当请求来自爬虫时用于呈现angularjs应用程序的库)还是来自真实用户。如果请求来自prerender,那么我必须重定向到仅包含专为SEO目的而设计。我尝试设置cookie来检测,但它不起作用,因为prerender.io执行javascript代码,甚至cookie/session存储在prerender.io中工作。经过一些研究,我发现我们可以检测到用户代理,因为prerender.io在headless浏览器(即phantomJS)中调用站点if(/PhantomJS/.test(window.navigator.userAgent)
如果您提供针对SEO优化的精简版页面,如果机器人爬行,并且如果人们来自网络,那么ReactSPA完全是javascript应用程序,这是否有任何好处或缺点。基本上问题是,是否有实践像简短的HTML版本一样实际服务,它只包含SEO重要的东西,并为机器人撕掉所有其他内容,为用户撕掉整个页面。是否有人使用过此技术的任何用例或示例? 最佳答案 这将被视为Cloaking由爬虫并可能使您的网站在搜索结果中受到惩罚。如果您提供预呈现页面,您需要确保它是您的用户在执行javascript后将看到的确切页面,以防止任何隐藏真实内容的问题。
我有一个网站,我正在使用AngularJs。一切正常,但是当我尝试在谷歌上搜索我的网站时,我得到了很多括号:Dobuy.T-shirts.Home.SearchProduct.Designer;[[item.name]];Category;[[item.name]];MyAccount;Cart·Checkout·Login·UserProfile·([[cartItems]]items)...我听说如果我使用prerender.io这将解决我的问题,所以我试了一下,但页面是一样的..没有任何改变。我将django与djangoprerender包一起使用。任何的想法?有什么帮助吗?如