首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Googlebot拒绝在Ember应用程序中呈现比index.html更多的内容

Googlebot拒绝在Ember应用程序中呈现比index.html更多的内容
EN

Webmasters Stack Exchange用户
提问于 2018-09-03 10:50:15
回答 1查看 177关注 0票数 1

我正在使用Ember 3.0.0创建一个预订网站。标题和元标记是通过ember-cli-meta-tags处理的,当网页在web浏览器中打开时,它们似乎被正确地呈现。

然而,Googlebot拒绝正常呈现应用程序。不管我做什么,它只是呈现一个空白的index.html页面。我试图缩短加载模型的时间,但是即使是非动态页面(在模型中没有Ember数据请求)也不会呈现。

下面是我网站上的一个例子:

代码语言:javascript
复制
<!-- begin snippet: js hide: false console: false babel: false -->

<!-- language: lang-js -->

    import {
      schedule
    } from '@ember/runloop';
    import {
      get,
      set
    } from '@ember/object';
    import ENV from '../config/environment';
    import Route from '@ember/routing/route';

    export default Route.extend({
      title: 'Tandblekning i praktiken: Allt du behöver veta',

      patientPortal: ENV.APP.patientPortal,

      headTags: function() {
        return [{
          type: 'link',
          tagId: 'canonical-link',
          attrs: {
            rel: 'canonical',
            href: get(this, 'patientPortal') + '/tandblekning'
          }
        }, {
          type: 'meta',
          tagId: 'meta-description-tag',
          attrs: {
            name: 'description',
            content: 'Konkret och praktisk guide för tandblekning som gör att du sparar pengar, minskar risk för skador och får vitare tänder.'
          }
        }];
      },

      titleToken: function() {
        return 'Tandblekning i praktiken: Allt du behöver veta';
      },

      setupController(controller, model) {
        this._super(controller, model);
        schedule('afterRender', this, function() {
          set(controller, 'after_render', true);
        });
      }
    });

<!-- end snippet -->

在另一个仿真器站点上测试此页面时,我得到的呈现与在index.html上以及在谷歌搜索结果中搜索tandblekning site:muntra.se的结果相同。

EN

回答 1

Webmasters Stack Exchange用户

回答已采纳

发布于 2018-09-09 08:17:11

我们最终使用预录制解决了这一问题:

  1. 将mod_proxy和mod_proxy_http添加到Apache服务器,以检测流量是来自机器人/刮板还是来自人类。所选的预录制服务应该能够为.htaccess文件提供准确的内容。
  2. 服务静态HTML复制从预录制服务,如果它是一个机器人/刮板。谷歌“预录制”,如果你正在寻找替代品。
  3. 服务原始Javascript版本,如果流量不是来自一个机器人或刮板。

使用此解决方案,当Google正常工作时,在搜索中显示标题和元描述,并在爬行中包含页面内容。此外,我们没有对最初的Ember应用程序做任何修改,这消除了破坏它的风险。

的事情,我们一直在尝试,但没有起作用,

  • 安装Fastboot来实现服务器端呈现(它还没有准备好生产,并导致错误)。
  • 尝试使普通Ember应用程序可爬行的不同修补程序:
    • 确保该应用程序在Chrome 41中工作(目前,Googlebot的web呈现服务是基于该特定版本的)。我们发现了一个错误,导致应用程序没有载入那个版本。但是即使在修复了这个之后,页面仍然没有被正确地爬行。
    • 将Ember资产(例如图像)移动到API服务器。
    • 优化了Ember应用程序的TTFB。
票数 2
EN
页面原文内容由Webmasters Stack Exchange提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webmasters.stackexchange.com/questions/117459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档