web-dev-qa-db-fra.com

Chargement asynchrone du contenu secondaire; Google dit "lent", les utilisateurs voient ce qu'ils veulent plus rapidement

Nous avons un problème de performances sur notre site et nous nous attelons à corriger quelques problèmes plutôt fondamentaux - nous savons que nous avons de nombreuses possibilités d’améliorer les performances - cette question concerne en particulier un.

Notre cas particulier est que nous différons intentionnellement le chargement d’une partie de notre page qui est intrinsèquement lente jusqu’à ce que le contenu souhaité par les utilisateurs soit terminé et rendu. Mais des outils comme NewRelic et Google PageSpeed ​​voient tous cela comme une page à chargement lent - plus de 5 secondes.

Vous pouvez voir le cas à l'adresse suivante ( pubget.com ), où nous affichons les résultats de la recherche d'articles de recherche. Nous permettons aux utilisateurs d'obtenir un article complet et d'afficher les boutons "Visualiser" ou "Acheter" en fonction de règles assez compliquées (par exemple, si leur société/université est abonnée au journal, mais il y en a beaucoup plus) - ces règles prennent du temps à calculer. Donc, nous chargeons les résultats de la recherche, puis après la page est affichée, nous faisons une demande AJAX pour obtenir le View/Buy boutons.

Le travail réel consistant à déterminer quels boutons afficher (et où ils doivent être reliés) prend environ une seconde, plus ou moins. Il semble que ce soit la bonne chose à faire du point de vue de l'expérience utilisateur, mais je me demande si cela affecte la façon dont les utilisateurs et Google voient notre site.

(Si vous regardez la page, vous verrez un certain nombre d'autres choses d'égale importance que nous faisons mal. Je sais à ce sujet et nous allons les corriger.)

2
Tom Harrison Jr

On dirait que vous prenez la bonne approche pour vos utilisateurs en différant le chargement du bouton s'il s'agit d'une partie particulièrement lente. Mais cela n'accélère pas le chargement global de la page, cela améliore simplement l'expérience utilisateur; de sorte que les outils que vous avez mentionnés signalent correctement vos temps de chargement lents.

Vous avez dit que vous êtes au courant d'autres domaines que vous devez améliorer, je voudrais me concentrer sur ceux-ci. D'un coup d'œil rapide sur votre site, je dirais que le principal problème est le nombre de requêtes HTTP et le peu de temps dont vous disposez pour passer au premier octet. Travaillez donc sur celles-ci.

1
Tim Fountain

Cela ressemble à la bonne approche alors que Tim Fountain écrit. Après avoir jeté un œil sur l'outil Page Speed ​​de Google et sur webapagetest.org, je verrais les problèmes ailleurs qu'à ces boutons:

Google Page Speed

webpagetest.org

Les deux outils montrent que la première demande prend déjà plus d'une seconde. La publicité ralentit également la page.

Pour revenir à votre question sur les boutons - pourquoi ne pas renommer les boutons en "Obtenir un fichier PDF" et prendre la décision en cliquant ou en survolant la souris? De cette façon, votre page principale sera plus rapide et Google l'aimera probablement un peu mieux.

0
Patrick

Vraisemblablement, seuls les utilisateurs connectés seraient en mesure de télécharger sans acheter. Vous pouvez donc couper entièrement le calcul pour de nombreux visiteurs (et robots) avec une règle simple telle que:

if (loggedIn!=yes) then displayButton(buy) else calcRules(buyOrSell)

De cette façon, les robots d'exploration et les visiteurs externes n'auront pas à attendre que vous exécutiez des requêtes qui ne les concerneront jamais. Cela n'aidera pas autant les utilisateurs connectés, mais il semble que vous ayez déjà été adapté à cela avec votre AJAX.

0
Andrew Lott