J'utilise Ember 3.0.0 pour créer un site de réservation. Les balises de titre et méta sont gérées via ember-cli-meta-tags
et semblent être restituées correctement lorsque les pages sont ouvertes dans le navigateur Web.
Cependant, Googlebot refuse de rendre l'application normalement. Quoi que je fasse, il restitue une page index.html vide. J'ai essayé de réduire le temps de chargement du modèle, mais même les pages non dynamiques (sans Ember Demandes de données dans le modèle) ne sont pas rendues.
Voici un exemple de mon site web:
<!-- 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 -->
Lorsque je teste cette page sur un autre site de simulation, le rendu est identique à celui de index.html, ainsi que dans les résultats de recherche Google lorsque googler tandblekning site:muntra.se
.
Nous avons finalement résolu ce problème en utilisant un pré-rendu:
Avec cette solution, Fetch as Google fonctionne normalement, les titres et les méta-descriptions sont affichés dans les recherches et le contenu de la page est inclus dans les analyses. De plus, nous n’avons apporté aucune modification à l’application originale Ember, ce qui supprime le risque de perturbation de celle-ci.