En cas de refonte de site Web, la question se pose souvent du passage au HTTPS. Est-ce un passage obligatoire et quelles sont les principales Ă©tapes Ă prendre en compte afin que ce changement de protocole ne pĂ©nalise pas le SEO et lâexpĂ©rience utilisateur ? Voici les diffĂ©rents Ă©lĂ©ments Ă prendre en compte sur ce sujet, afin de profiter de la refonte dâun site pour passer au HTTPS dans les meilleures conditions possibles.
Pourquoi passer au HTTPS ?
Lâutilisation du protocole sĂ©curisĂ© HTTPS est une pratique de plus en plus frĂ©quente sur le Web, et bien que celui-ci Ă©tait auparavant rĂ©servĂ© aux sites bancaires ou aux interfaces de paiement dans les tunnels de conversion, il se gĂ©nĂ©ralise maintenant pour devenir la nouvelle norme.
En parallĂšle, Google pousse Ă utiliser ce protocole aprĂšs avoir largement communiquĂ© sur le sujet via son blog et ses consignes relatives aux webmasters, afin de proposer des sites sĂ©curisĂ©s dans les pages de rĂ©sultats de son moteur de recherche. Pour pousser les webmasters Ă adopter ce protocole, Google avait mĂȘme indiquĂ© un boost de ranking potentiel avec le passage en HTTPS (https://webmaster-fr.googleblog.com/2014/08/le-protocole-https-en-tant-que-facteur.html).
Bien que ce boost semble trĂšs mineur, cela peut Ă©galement permettre une meilleure adhĂ©sion des internautes puisque les navigateurs Web poussent eux aussi Ă lâadoption de ce protocole sĂ©curisĂ©, certains ayant mĂȘme dĂ©clarĂ© que quelques-unes de leurs fonctionnalitĂ©s ne seraient supportĂ©es qu'en HTTPS : https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/.
Les versions de Chrome les plus rĂ©centes affichent de plus une icĂŽne « Not secure » Ă cĂŽtĂ© de lâURL des sites Web qui ne sont pas en HTTPS. Bien que cela ne concernait dans un premier temps que les sites ayant des champs de saisies dâinformations confidentielles (ex : mot de passe, codes de CB, etc.), cela va sâĂ©tendre Ă la totalitĂ© des sites en HTTP.
Fig. 1. Message indiquant les site Web en HTTP comme Ă©tant "Not secure".
Il y a donc un rĂ©el intĂ©rĂȘt Ă passer en HTTPS, pour rester dans les rangs des sites conviviaux et sĂ©curisĂ©s aux yeux des moteurs, des navigateurs, mais Ă©galement pour la sĂ©curitĂ© des utilisateurs afin de chiffer la connexion client-serveur.
Dans le cadre dâune refonte
Si vous prĂ©voyez de refondre votre site, il est prĂ©fĂ©rable de passer au protocole HTTPS en mĂȘme temps que la mise en production de la nouvelle mouture de votre site, pour Ă©viter de multiples migrations (migration vers HTTPS, puis migration vers le nouveau site avec changement dâURL).
Nous avons eu lâoccasion dâeffectuer un passage en HTTPS, puis une migration SEO vers une nouvelle version dâun site de e-commerce Ă 15 jours dâintervalle (contrainte client), cela a rĂ©duit la visibilitĂ© du site dans les pages de rĂ©sultats avec diffĂ©rentes versions dâURL dans lâindex pour une mĂȘme page, et ce avec de nombreuses redirections 301 Ă gĂ©rer. Autant donc faire dâune pierre deux coups !
Impact SEO
Le passage en HTTPS est considĂ©rĂ© comme un changement de site (en effet, un site peut servir un contenu diffĂ©rent entre HTTP et HTTPS, et ce sur la mĂȘme URL). Il est donc important de tenir compte du SEO lors de ce changement de protocole : un site qui passerait en HTTPS, sans envoyer de signaux Ă Google de cette modification (ex : absence de redirections 301) se retrouverait donc dupliquĂ© dans les pages de rĂ©sultats.Â
D'autre part, le crawler de Google peut tester lâaccessibilitĂ© dâun site en HTTPS, mĂȘme si ce dernier nâa pas Ă©tĂ© complĂštement configurĂ© pour le HTTPS. Si votre page dâaccueil rĂ©pond en HTTPS malgrĂ© vous, Google pourra indexer cette page, et mĂȘme la faire remonter sur la principale requĂȘte marque relative Ă votre site dans ses rĂ©sultats de recherche.
Mixed content
Cela peut avoir des consĂ©quences catastrophiques : dans le cas oĂč votre site serait configurĂ© pour le protocole HTTP, la version qui rĂ©pondrait en HTTPS pourrait contenir du « Mixed content » (Ă©lĂ©ments JS, CSS appelĂ©s en HTTP sur une page rĂ©pondant en HTTPS) ce qui provoquerait le non-chargement de ces ressources, ou lâaffichage dâun message dâalerte.
Fig. 2. Alerte du navigateur avec des éléments HTTP appelés sur un document en HTTPS.
Lâinternaute pourrait se retrouver avec lâaffichage de votre page dâaccueil, texte noir sur fond blanc, sans aucuns Ă©lĂ©ments de style, de quoi augmenter le taux de rebond et le faire fuir rapidement. Exemple :
Fig. 3. Exemple du site yapasdequoi.com qui proposerait du mixed content en HTTPS.
Il est donc primordial dâĂ©viter le « Mixed content » et dâenvoyer un maximum de signaux permettant Ă Google de comprendre le passage (ou non) au protocole sĂ©curisĂ©. Pour rappel, lâoutil de changement dâadresse proposĂ© par Google (https://support.google.com/webmasters/answer/83106?hl=fr) nâaccepte pas le changement de protocole.
Baisse de trafic ?
Dans certains cas, une baisse temporaire du trafic SEO peut ĂȘtre provoquĂ©e par le passage au HTTPS. Plusieurs raisons Ă cela :
- DĂ©lai de la prise en compte des redirections 301 par Google ;
- Duplication temporaire entre lâancien site en HTTP vs HTTPS :
- Nouvelle URL A crawlée sur le site en HTTPS suite à la découverte de celui-ci par Google ;
- Ancienne URL A pas encore recrawlée avec la redirection 301.
Cette baisse de trafic SEO (de 5 Ă 15% en moyenne quand elle se produit dâaprĂšs quelques constats) survient surtout sur les sites ayant un fort volume dâURL. Elle peut durer de quelques jours Ă quelques semaines en fonction du volume dâURL du site connues. Mais dans la majeure partie des cas, la baisse nâest pas forcĂ©ment visible.
LâidĂ©al est de faire en sorte que Google dĂ©couvre au maximum les nouvelles URL en HTTPS via les redirections 301. On Ă©vitera donc de soumettre trop tĂŽt le nouveau sitemap XML de la version en HTTPS.
Certificat et mise en place
Il sera nĂ©cessaire dâacheter un certificat de sĂ©curitĂ© auprĂšs dâune AutoritĂ© de Certification, pour augmenter le niveau de cryptage, vous pourrez opter pour un certificat wildcard (*.votredomaine.com) si vous souhaitez Ă terme utiliser dâautres sous-domaines en HTTPS (autres que « www ») sur votre domaine principal.
Il vous faudra faire installer le certificat sur votre serveur et le configurer : votre service IT peut utiliser ce gĂ©nĂ©rateur de configuration SSL en fonction du serveur Web utilisĂ© et du niveau de compatibilitĂ© souhaitĂ© : https://mozilla.github.io/server-side-tls/ssl-config-generator/ Â
Pour tester la bonne configuration du domaine en HTTPS, voici un outil en ligne qui permet de vĂ©rifier un certain nombre de points : https://www.ssllabs.com/ssltest/  Â
Il existe plusieurs types de certificats :
- Certificat DV (Domain Validated) pour un seul nom de domaine ;
- Certificat OV (Organisation Validated) pour plusieurs noms de domaine ;
- Certificat EV (Extended Validation) proposant dâautres fonctionnalitĂ©s.
Les certificats OV et EV permettent dâafficher le nom de lâentreprise dans la barre dâadresse. Exemple :
Fig. 4. Affichage du nom de l'entreprise dans la barre d'adresse.
Chacun de ces certificats dispose de ses propres spécificités, mais dans la majeure partie des cas, les certificats de type « Domain Validated » sont amplement suffisants.
Vous pouvez Ă©galement vous tourner vers des certificats gratuits avec « Letâs Encrypt », mais ce dernier comporte quelques inconvĂ©nients (valable 90 jours uniquement, et identification incomplĂšte puisque lâidentitĂ© du titulaire du site Internet nâest pas vĂ©rifiĂ©e).
Modifications à prévoir
Voici les modifications Ă effectuer sur le futur site HTTPS (en prĂ©production), avant la phase dâouverture du site en HTTPS Ă lâindexation. Le principal point dâattention concerne le Mixed Content, Ă savoir lâappel dâĂ©lĂ©ments en HTTP Ă lâintĂ©rieur dâune page HTTPS.
Ressources internes
Liens internes
Les liens internes en absolu (ex : <a href= « http://www.votredomaine.com/url »>Lien</a>) devront ĂȘtre mis Ă jour afin quâils pointent vers le HTTPS, cela favorisera la transmission du PageRank ainsi que le crawl vers les URL en HTTPS. Vous pouvez Ă©galement utiliser dâautres formes de liens absolus :
⹠Protocole de la page en cours utilisé : <a href="//votredomaine.com/url">Lien</a> ;
âą Protocole + domaine de la page en cours : <a href="/url">Lien</a>.
Les liens de type « Menu » souvent prĂ©sents dans un template pour toutes les pages du site seront a priori simples Ă modifier. Cependant, la tĂąche peut sâavĂ©rer plus compliquĂ©e pour les liens en HTTP insĂ©rĂ©s au sein des contenus, ils devront ĂȘtre vĂ©rifiĂ©s et modifiĂ©s : un crawl du site en prĂ©-production peut ĂȘtre utile afin de remonter les pages contenant encore des liens en HTTP si besoin (fonction « Search » du crawler Screaming Frog SEO Spider).
Astuce : Un rechercher/remplacer directement dans la table des contenus de la base de donnĂ©es pourra Ă©galement vous permettre dâeffectuer la tĂąche plus rapidement.
Appel des ressources statiques
Tous les fichiers qui composent vos documents doivent ĂȘtre appelĂ©s en HTTPS. Il sera nĂ©cessaire de modifier les URL de ces fichiers dans le code source de toutes les pages du site. Une page HTML en HTTPS appelant des ressources statiques en HTTP peut dĂ©clencher une alerte sur le navigateur de lâinternaute, pouvant aboutir Ă une sortie du site comme nous lâavons vu prĂ©cĂ©demment.
Balise Canonical
Pour permettre Ă Google de mieux comprendre ce passage au HTTPS, nous vous recommandons lâutilisation dâune balise Canonical sur lâensemble des pages en HTTPS, vers elles-mĂȘmes.
Exemple : dans la page https://www.votredomaine.com/url, il doit y avoir dans la partie <head> du code source la balise suivante :
<link rel="canonical" href="https://www.votredomaine.com/url">
Lâutilisation de ce signal est recommandĂ©e par les Ă©quipe de Google.
Balisages spécifiques
Il sera nĂ©cessaire de mettre Ă jour les balises relatives aux diffĂ©rents langages de marquage (Opengraph Facebook, TwitterCards, âŠ) prĂ©sents sur le site. Les balises utilisant les microdonnĂ©es (schema.org) peuvent Ă©galement ĂȘtre passĂ©es en HTTPS.
Redirections 301
Des redirections 301 peuvent dĂ©jĂ exister sur le site actuel. Nous vous recommandons de mettre Ă jour les anciennes redirections 301 pour que celles-ci redirigent directement vers la version HTTPS, et ainsi Ă©viter des chaines de redirections (exemple : redirections anciennes URL en HTTP Ă nouvelles URL en HTTPS, ou inversement). Les chaĂźnes de redirections sont souvent frĂ©quentes et doivent ĂȘtre limitĂ©es dans la mesure du possible.
Ressources externes
Les URL des scripts partenaires/ tiers pouvant ĂȘtre prĂ©sents dans le code HTML des pages doivent ĂȘtre modifiĂ©es afin de passer ces derniĂšres en HTTPS si cela est possible. Cela peut concerner plusieurs types de fichiers : tracking (Google Analytics, Xiti), rĂ©seaux sociaux, retargeting, publicitĂ©, A/B testing, etc. Tous les appels vers ces scripts externes doivent ĂȘtre faits en HTTPS pour Ă©viter le « mixed content ».
Mise en production
Redirections 301
Afin de rediriger toutes les URL appelĂ©es en HTTP vers leur Ă©quivalent en HTTPS, il est recommandĂ© dâutiliser une rĂšgle dynamique, qui peut varier en fonction des serveurs. Il peut ĂȘtre nĂ©cessaire de supprimer les restrictions qui avaient Ă©tĂ© faites sur le HTTPS (robots.txt, noindex) avant dâactiver les redirections 301.
Serveur Apache (.htaccess ou apache.conf) :
RewriteCond %{HTTPS}Â off
RewriteRule ^(.*)$ https://www.votredomaine.com /$1 [R=301,L]
Serveur Nginx (nginx.conf)Â :
listen 80 default_server;
listen [::]:80 default_server;
server_name www.votredomaine.com;
return 301 https://$server_name$request_uri;
}
Il est également recommandé de placer les rÚgles relatives au passage en HTTPS en fin de fichier, pour ainsi éviter les chaines de redirections avec les redirections déjà en place (ex : ancienne URL en HTTP -> ancienne URL en HTTPS -> nouvelle URL en HTTPS).
HSTS
Si le site passe au HTTPS de façon dĂ©finitive et sans retour en arriĂšre potentiel, vous pouvez activer HSTS qui permettra aux navigateurs dâappeler directement la version HTTPS de votre site aprĂšs une premiĂšre visite (https://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security).
Pour cela vous devrez renvoyer lâen-tĂȘte http suivante : Strict-Transport-Security "max-age=15768000; includeSubDomains"
Vous pourrez Ă©galement soumettre votre domaine pour quâil soit inclus Ă la liste des sites en HTTPS de Chrome sur https://hstspreload.org.
La mise en place du HSTS vous permettra dâĂ©viter les attaques de type « MITM » (man-in-the-middle) https://news.netcraft.com/archives/2016/03/17/95-of-https-servers-vulnerable-to-trivial-mitm-attacks.html qui peuvent intervenir lors des redirections 301 du protocole HTTP vers HTTPS.
Outils externes
Une fois la mise en ligne effectuĂ©e, il sera nĂ©cessaire de sâassurer que la version HTTPS est bien paramĂ©trĂ©e dans les diffĂ©rents outils externes. Pour Google Analytics, il faudra mettre Ă jour l'URL de base par dĂ©faut dans les paramĂštres de propriĂ©tĂ© et de vue. Il faudra Ă©galement dĂ©clarer la nouvelle version du site en HTTPS dans Google Search Console (nouvelle propriĂ©tĂ© / compte) pour remonter le plus rapidement possible des informations dans lâinterface.
Fichier robots.txt
Le fichier robots.txt de la version HTTP doit Ă©galement ĂȘtre prĂ©sent sur la version HTTPS.
Sitemap.xml
Le sitemap.xml doit ĂȘtre mis Ă jour avec les URL en HTTPS. Attention toutefois de ne pas soumettre ce sitemap juste aprĂšs la mise en ligne. Il sera prĂ©fĂ©rable de permettre Ă Google de dĂ©couvrir les URL en HTTPS via les redirections 301, afin dâĂ©viter la duplication de contenu temporaire : page indexĂ©e en HTTP mais pas encore recrawlĂ©e vs page dĂ©couverte en HTTPS et indexĂ©e.
AprĂšs la migration
Une fois la migration effective, il sera nĂ©cessaire de suivre les principaux KPI pour sâassurer que la migration vers HTTPS sâest bien dĂ©roulĂ©e (crawl, statistiques Google Analytics, erreurs Search Console, exploration et indexation, analyse de logs, positions, etc.). Vous lâaurez compris, les refontes sont souvent lâoccasion de passer au HTTPS si ça nâest pas dĂ©jĂ le cas, avec un certain nombre dâĂ©lĂ©ments Ă prendre en compte pour conserver son trafic SEO. Ce type de migration ne pose pas de souci majeur en gĂ©nĂ©ral, si tout est fait « dans les rĂšgles de l'art ». Encore faut-il que cela soit le cas...
Aymeric Bouillat
Consultant SEO Senior, SEO Hackers (https://seohackers.fr/)
Â