Comment fonctionne l’e-reputation ?

Lancer une activité ou créer votre société n’est pas toujours facile. En effet, outre sa création, il est aussi essentiel de maintenir la réputation et la notoriété de votre société. Cela permettra de vous faire connaître davantage afin d’attirer plus de clients. Depuis quelque temps, les outils digitaux ne cessent de connaître des évolutions si bien que les notions de notoriété et de réputation d’une entreprise se propagent aussi dans le monde virtuel. Alors, comment cela fonctionne et pourquoi est-ce si important ?

Qu’est-ce que l’e-réputation ?

Souvent confondue avec l’e-notoriété, l’E-réputation se concentre surtout sur l’opinion publique en ligne. Une entreprise peut être connue (c’est-à-dire avoir une certaine notoriété), mais l’E-réputation permettra de savoir si elle a une bonne image ou non.

En général, votre e-réputation est déterminée par les contenus diffusés par les utilisateurs sur des blogs, des réseaux sociaux ou des forums. Elle constitue plus de 75% des informations sur une marque ou une entreprise. C’est-à-dire que la majorité de ce qui est dit à propos d’une marque ne vient pas de la marque elle-même, mais des internautes.

Ainsi, gérer votre e-réputation est indispensable, car, combinée avec l’E-notoriété, elles formeront votre identité numérique. En général, avant de pratiquer un achat de service ou avant de consommer une marque, les prospects vérifient tout d’abord sur les différents moteurs de recherche. Ils auront alors un aperçu général des avis des internautes et pourront décider si oui ou non, ils vont s’en tenir à la marque.

Comment améliorer votre e-réputation ?

User du SEO pour assurer votre e-réputation

Le référencement naturel peut jouer grandement sur votre e-réputation. En fait, lorsque la visibilité de votre marque ou votre société est plus claire au niveau des moteurs de recherche, cela aura un impact sur votre image. Donc, plus votre site ou page web monte en visibilité, plus votre image sera consultée par les internautes.

Effectivement, les internautes ont souvent tendance à faire des recherches et ne lire que les liens en première page des résultats de recherche. Les contenus en tête joueront donc sur la construction de l’image d’une entreprise ou d’une marque. Voilà pourquoi il est essentiel d’assurer le référencement naturel de vos contenus.

Gérer les clients mécontents

Généralement, les clients satisfaits sont les plus silencieux sur internet. Les clients mécontents, quant à eux, sont les plus actifs et font des retours par rapport à leur mésaventure. Ainsi, afin de mieux gérer les avis négatifs des clients, la réactivité est de mise.

Pour assurer une réactivité instantanée de votre marque, nous vous conseillons de former une équipe chargée de la veille. Cette dernière effectuera alors les veilles digitales pour votre marque afin que vous puissiez réagir rapidement aux commentaires désagréables des internautes. Il est essentiel de savoir que : plus vite vous réagissez, moindre sera le risque que le client en fasse une tonne.

Bref, comme tout se passe actuellement en ligne, garder une certaine E-réputation est important pour assurer une bonne image de la marque. Il est à savoir qu’une E-réputation est principalement basée sur vos clients. Ainsi, outre les activités web que vous pouvez réaliser, bien gérer les clients constitue un point clé pour garder une bonne image de votre société.

Développer rapidement votre activité grâce au webmarketing

Le développement de votre activité est votre finalité. Créer votre entreprise a été assez facile, mais pour la faire grandir le chemin se révèle compliqué. Faire évoluer votre business plus rapidement nécessite ainsi des plans d’action bien pensés. Je vais donc attirer votre attention sur le webmarketing aujourd’hui, un outil indispensable au fleurissement de votre boîte.

La visibilité sur internet, un levier de croissance à ne pas négliger

Pour faire grandir votre activité à Bordeaux, vous devez être visible et connu. Internet peut vous aider à atteindre cet objectif. D’où le webmarketing. Ce dernier regroupe tous les dispositifs mis en œuvre pour faire la promotion en ligne de votre activité. Pour booster la réussite de votre entreprise, vous devrez penser à vous faire accompagner par une agence de référencement naturel de votre ville, que vous trouverez par exemple sur https://www.adf-referencement-bordeaux.com/ .

Le marketing est incontournable pour promouvoir votre entreprise, vos produits et services auprès des consommateurs. Il est aussi nécessaire pour construire l’image et la notoriété de votre marque. Le marketing vous permet de vous faire connaître, de stimuler vos ventes et d’augmenter vos profits. Ce qui vous conduit au succès de votre activité.

Avec une évolution constante du marché, l’e-marketing s’avère être plus performant que le marketing traditionnel. À travers un affichage publicitaire par exemple, il vous est difficile de connaître avec exactitude le nombre de personnes ayant montré de l’intérêt pour votre offre. Le webmarketing permet en revanche d’atteindre efficacement une cible plus large grâce aux différents canaux pouvant être déployés . Il vous donne la possibilité de mesurer l’impact de vos campagnes publicitaires. C’est également un atout face à la concurrence.

De nos jours, les gens sont ultra connectés. Ils cherchent des informations (idées de vacances, formations…) sur Google, effectuent leur shopping ou encore d’autres opérations sur le Net, comme la recherche d’un plombier et différents services. La visibilité sur internet n’est donc plus discutable ! La stratégie digitale doit faire partie de la stratégie globale de votre startup.

Les enjeux du référencement naturel

Votre site web est enfin créé. Avant d’utiliser d’autres outils pour le développer, vous devrez vous assurer que les fondations de votre site internet soient solides. C’est là qu’intervient le référencement naturel ou SEO. Celui-ci est une arme indéniable du marketing digital. Un meilleur positionnement durable vous permet d’améliorer votre trafic, la prospection, la conversion et la fidélisation de votre clientèle.

Avec les milliers de sites qui se battent pour apparaître dans la première page des résultats Google, ce moteur de recherche est davantage sévère en matière de référencement. Seuls ceux qu’il juge pertinents obtiennent les meilleurs positionnements. Si vous voulez en faire partie, vous devez travailler votre référencement naturel pour optimiser votre présence sur la toile. Pour ce faire, recourir à une agence spécialisée en référencement naturel reste la décision la plus judicieuse.

Élaborer une stratégie webmarketing efficace

Le marketing numérique est un facteur favorisant la visibilité de votre entreprise. Ce n’est pas parce que tous les entrepreneurs se lancent dans la promotion de leur activité en ligne, que vous aussi, vous allez le faire. Cette attitude est contre-productive. Afin de faire prospérer votre business, misez uniquement sur une stratégie personnalisée . C’est de cette façon que vous foncerez vers votre succès.

Chaque enseigne est différente. Ce qui a marché pour les autres ne fonctionnera pas forcément pour vous. Vos plans d’action doivent être en phase avec la situation de votre entreprise et vos objectifs. L’élaboration de votre stratégie digitale gagnante nécessite l’intervention d’un expert. L’appui d’une agence web vous sera donc d’une grande utilité.

Cocktailand – Ajouter du cache HTTP dans mon symfony

C’est quoi un ESI ?

Les ESI ou Edge Side Includes sont un balisage supporté par Varnish qui permet de gérer des temps de cache différents pour des blocs de la même page.

Dans le cadre de Cocktailand, certains blocs sont actualisés régulièrement comme le « Cocktail du jour » mais d’autres ne changent quasiment jamais comme la liste des catégories.

Voici donc le découpage que j’ai fait sur la page principale. Pour la barre de menu, c’est bien évidemment le contenu du méga menu que j’ai voulu mettre en évidence.

Il est donc intéressant de ne pas avoir à invalider toute la page lorsque le cocktail du jour est changé. Le second avantage en termes de performance est que les blocs peuvent être utilisés sur différentes pages. Cela signifie qu’un ESI présent sur toutes les pages du site ne sera généré qu’une seule fois. Lors des autres appels, Varnish utilisera son cache.

Configuration de varnish

Pour Cocktailand, la configuration de varnish est assez simple car je ne fais pas de purge et parce qu’il n’y a pas d’espace connecté sur le site.

Voici la configuration que j’ai:

vcl 4.0;
import std;
backend default {
// le hostname du nginx dans ma stack
.host = "front";
.port = "80";
}
sub vcl_recv {
set req.http.Surrogate-Capability = "abc=ESI/1.0";
unset req.http.Cookie;
}
//Ensuite, ce block est appelé après la réception des headers de réponse.
//Nous supprimons le header et activons les ESI
sub vcl_backend_response {
if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
unset beresp.http.Surrogate-Control;
set beresp.do_esi = true;
}
if (bereq.url ~ "\.(jpe?g|png|gif|pdf|tiff?|css|js|ttf|woff2?|otf|eot|svg)$") {
set beresp.ttl = std.duration(beresp.http.age+"s",0s) + 24h;
}
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
view raw varnish vcl hosted with ❤ by GitHub

La mise en place dans Symfony 4

ESI

Le support des ESI dans Symfony est intégré nativement dans le framework.

Dans le fichier config/packages/framework.yaml il faut activer les ESIs.

framework:
esi: { enabled: true }
fragments: { path: /_fragment }
view raw framework.yaml hosted with ❤ by GitHub

Toutes vos routes qui servent des ESI devront commencer par _fragment.

Dans vos vues twig, vous avez des helpers à disposition pour poser vos tags.

{{ render_esi(url('popular_cocktails')) }}
view raw render_esi hosted with ❤ by GitHub

Cache http

En utilisant le package sensio/framework-extra-bundle on peut gérer le cache sur les controller avec des annotations.

/**
* @Route("/cocktail/recette/{name}-{id}", name="cocktail_detail", requirements={"id"="\d+", "name"="[0-9a-z-]+"})
* @Cache(public=true, maxage=86400, mustRevalidate=false, maxStale=86400)
**/
public function index($name, $id)
{
// …
}
view raw @Cache hosted with ❤ by GitHub

Temps de réponse

Une fois les ESIs et le cache HTTP mis en place, on peut analyser les performances avec Webpagetest.

L’outil va nous donner des informations sur le temps de réponse de l’application et surtout des indications sur ce qu’il faudrait améliorer.

Par exemple, sur ce test, il me dit que je peux potentiellement améliorer la gestion des fonts et des images.

// @todo activer gzip sur les fonts

Ce que l’on peut remarquer, c’est que le site commence à envoyer le HTML après 231ms. Dans ce temps il y a en moyenne 40ms de DNS Lookup, 30ms de connexion et 80ms de négociation SSL. Malheureusement sur cette partie je n’ai pas la main, c’est donc l’overhead de base pour toute page du site. Mais comme j’utilise HTTP2 je vais mutualiser toute cette partie pour les images assets servies sur le même domaine.

Les nouvelles problématiques

Tout mettre en cache, c’est bien pour les performances, mais malheureusement certaines informations ont besoin de « temps réel ».

Quand un visiteur ajoute une note sur une recette, il est nécessaire que cette note mise à jour si le visiteur rafraîchit la page.

Il y a plusieurs solutions:

  • Faire des bans de cache lors de l’ajout d’une note
  • Afficher les données du cache et rafraîchir les données en AJAX

Bien évidemment, la première solution est celle qui devrait être implémentée. Maintenant, c’est pas mal de code et de configuration sur varnish. C’est d’autant plus compliqué que, dans sa version gratuite, Varnish ne permet pas de faire un ban sur plusieurs instances.

Faire les bans impliquerait de maintenir une liste des varnishs qui tournent (si jamais je fais scaller cette brique) et de faire n appels curl pour faire un ban partout.

Pour le moment, j’ai fait le choix de la requête AJAX non cachée. Si jamais le site gagne en popularité, il faudra retravailler sur ce point.

Conclusion

Sur un blog ou un site dans lequel le visiteur ne peut quasiment pas interagir avec vos données, c’est très simple de mettre en place du cache varnish et le gain de performance est énorme. Maintenant, si vous avez des besoins plus complexes (site transactionnel, forum,…) vous allez devoir mettre en place une mécanique d’invalidation de cache.

Charger vos scripts en asynchrone

Le chargement de vos fichiers Javascript ralentit le chargement de page. Ceci est logique car le navigateur doit télécharger les fichiers avant de faire l’affichage. Grâce à Require.js vous allez pouvoir charger vos JavaScript en asynchrone. C’est-à-dire charger le texte, les images, les styles puis seulement une fois que la page est affichée correctement, et que le lecteur peut commencer à lire le contenu, le JavaScript. Require.js permet aussi de détecter les fichiers qui ont déjà été chargés afin de ne pas les recharger.

L’utilisation du script est très simple, dans un premier temps, il faut inclure le fichier contenant require.js :

Puis à la fin du body il faut dire à require.js de charger les autres scripts :

require([
            "scripts/underscore.js",
            "scripts/jquery.js",
            "scripts/backbone.js"
        ], function(){
            $('#exemple').html('Jquery loaded!')
        })

Le gain au chargement de la page est assez intéressant, surtout depuis la refonte complète de la librairie.

Spriter

Pour faire suite à l’article sur l’optimisation, voici comment gagner du temps sur le chargement des images de vos pages web.

En général, les développeurs débutants, ou peu soucieux du temps de chargement de la page, utilisent un nombre conséquent d’images différentes. Chaque image est donc téléchargée une à une lors de l’affichage de la page web. Donc s’il y a 100 images sur la page il faudra 100 requêtes HTTP pour toutes les afficher.

Maintenant, il y a une solution alternative, le spriter, qui permet d’afficher les 100 images simultanément et en une seule requête. La page en question s’affiche donc très rapidement. Les grands sites Internet comme Google, Facebook, Amazon, … utilisent cette technique.

Voici par exemple le spriter de Google

outweb-spriter

La solution, c’est de réunir toutes les images en une seule grande et de n’afficher que la portion dont nous avons besoin grâce au css.

Voici un exemple simple de spriter

Source: https://www.pixelcrea.com/blog/sprites-css/

Nous allons utiliser cette image pour afficher seulement une icône à la fois.

Ici, je vous présente un exemple simple d’utilisation de spriter. Seulement les quatre icônes sélectionnées sont affichées, elles apparaissent toutes en même temps.

Différents sites Internet vous permettent de fusionner et de récupérer les coordonnées des icônes dans le spriter : Spritemapper , spritegen ou spritecow

Optimisation de pages web

Google tient maintenant compte de la vitesse de chargement des pages pour leur moteur de recherche. Les pages rapides ont tendances remonter dans la liste des résultats, tandis que les autres se perdent dans les fins fonds des listes de résultats… 😛

Tout d’abord, revenons aux fondamentaux. Une page web c’est un texte structuré qui est compris et afficher d’une certaine manière par notre navigateur. Le visiteur demande une page, par le biais de requête HTTP et le serveur construit la page et l’envoie au client.
On remarque que nous pouvons agir sur la construction de la page, en optimisant nos codes PHP, JSP ou autre et sur le temps de transfert de la page au client.
En effet le temps de transfert de la page et dépend entre autre taille de celle-ci, donc au nombre de caractères qu’elle contient. Nous allons donc mener une chasse aux caractères 😛

Minification de code

Pour réduire la taille de nos pages nous pouvons minifier nos codes CSS et JavaScript (faites une sauvegarde avant). Pour cela nous pouvons utiliser le minifieur de css suivant. Celui-ci enlèvera tous les commentaires et les retours la ligne. Ceux-ci ne sont utiles qu’aux développeurs. De mme pour le JavaScript grâce au compresseur JavaScript/ (cocher Shrink variables, mais pas base62 encode).
En moyenne, nous avons gagner 40 50% sur la taille de nos fichiers tout en ayant le mme comportement.

Regroupement du code

Afin de limiter le nombre d’accès des fichiers différents pour afficher une page, il est préférable, dans la limite du possible de limiter le nombre de fichier JavaScript et CSS quitte avoir de plus gros fichiers.

Les images

Tout d’abord, il ne faut jamais redimensionner une image lors de son affichage. Ceci ralentit le temps d’affichage et peu nuire la qualité de celle-ci. Il vaut mieux stocker l’image sous la taille voulue, quitte la stocker plusieurs fois sous plusieurs tailles différentes.

Pour toutes les images que vous utilisez plusieurs fois par pages, le mieux est de créer une classe CSS du type :

.icone-nomimage{
               background:url(images/monimage.png) center right no-repeat;
               padding:0 16px 0 0;
              white-space:nowrap;
}

Pour appliquer l’icone votre span, div ,a il suffit de lui ajouter la classe css icone-nomimage.
Contrairement la balise img le css ne chargera qu’une seule fois l’image depuis le fichier, par conséquent tous les éléments de la classe icone-nomimage verront leur image s’afficher au mme moment et non les un aprs les autres.
Au niveau de l’interface graphique, de plus en plus d’images sont utilises. Le rendu est beau mais plus lent charger. Le logiciel suivant : caesium/ (uniquement pour windows pour le moment) permet de les compresser jusqu’à 80% sans perte visible de qualité. Méfiance toutefois sur la gestion de la transparence.
Voici un exemple sur une photographie :

23kb

Le gain sur une interface complète peut être assez intéressant.
Et enfin voici une des nouvelles librairies donc nous avons parlé en début d’article.
jQuery image Preloader Plus Callbacks est un plugin JQuery qui permet de faire du pres-caching des images de l’application. Son fonctionnement est simple comprendre; Une fois que le visiteur a entièrement chargé la page qu’il visite on va commencer charger les images présentes sur les autres pages du site sans les afficher. Cette action permet de mettre les images dans le cache du navigateur et de les afficher instantanément quand le visiteur en aura besoin. Pour les images hors css il faut préciser lesquelles on veux charger, pour celle du css une fonction permet de toutes les charger.

Chargement différé du JavaScript

Lors du chargement d’une page web les fichiers javascript sont chargés en mme temps que le code HTML, dans l’ordre d’apparition. Par conséquent si vous avez énormément de code JavaScript dans votre header la page va rester blanche pendant un petit moment. La librairie Head js permet de pallier au problème en chargeant le JavaScript en différé, comme une image. Cela permet d’afficher la page avec le style css, et donc de faire croire l’utilisateur que le site est prêt, alors qu’il ne le sera réellement que quelques secondes aprs. (mentir c’est mal :P)
Vous pourrez la tester par vous mme l’adresse suivante http://headjs.com/test/script.html. Pour avoir des résultats concluant actualisez en faisant ctrl+F5 (vide le cache avant d’actualiser).

Compression des pages la volée

Afin de gagner encore un peu sur la taille de vos pages web, si vous utilisez PHP vous pouvez ajouter au début de votre/vos point(s) d’entre la ligne suivante :

          ob_start("ob_gzhandler");

Ceci permet de compresser entre 15 et 30% votre page web. Malheureusement IE 6 sous windows XP SP1 ne comprendra rien, mais bon comme le support est fini on peut imaginer qu’il tend disparaitre