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.

Par Aymeric Bouillat


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) :

#redirection HTTP vers HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.votredomaine.com /$1 [R=301,L]

Serveur Nginx (nginx.conf) :

server {
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/)

Â