Skip to main content
Back to blog

Guide SEO Etape 7: Sécurité — La Base Que Google Attends en 2026

·14 min read·by LANGR SEO

Guide SEO Etape 7: Sécurité

Voici l'étape 7 du Guide SEO en 13 Étapes. La sécurité ne concerne pas seulement la protection des utilisateurs — elle impacte directement vos classements de recherche. Google utilise HTTPS comme signal de classement depuis 2014, et les attentes n'ont fait qu'augmenter.


La plupart des propriétaires de sites considèrent la sécurité comme binaire : "Nous avons SSL, donc nous sommes sécurisés." En réalité, Google évalue des dizaines de signaux de sécurité. Les sites avec de bons en-têtes de sécurité, des certificats valides et pas de contenu mixte surpassent ceux qui ont juste un certificat SSL de base — tout le reste étant égal.

La bonne nouvelle : la plupart des corrections de sécurité sont des configurations uniques. Réglez-les une fois, et elles protègent vos classements de manière permanente.

Configuration SSL

SSL (techniquement TLS) chiffre la connexion entre votre serveur et les visiteurs. Depuis 2014, Google a confirmé explicitement HTTPS comme un signal de classement. En 2026, ne pas avoir HTTPS n'est pas seulement un problème de classement — Chrome marque les sites HTTP comme "Non Sécurisés" dans la barre d'adresse, détruisant ainsi la confiance des utilisateurs.

Exigences pour un SSL correct :

| Exigence | Pourquoi | Comment vérifier | |----------|----------|------------------| | Certificat valide | Expiré = avertissement du navigateur = utilisateurs perdus | Vérifiez la date d'expiration | | Chaîne complète | Chaînes incomplètes échouent sur certains appareils | Test SSL Labs | | TLS 1.2+ | Les versions antérieures ont des vulnérabilités connues | Test SSL Labs | | Pas de SHA-1 | Obsolète, les navigateurs le refusent | Détails du certificat | | Couverture SAN | www et non-www doivent être couverts | Détails du certificat | | Renouvellement automatique | Empêche les catastrophes d'expiration | Configuration Let's Encrypt / fournisseur |

Évaluation de SSL :

100% = Certificat valide + Chaîne complète + TLS 1.3 + Chiffre solide + Renouvellement auto
  0% = Certificat expiré ou manquant

Erreurs courantes de SSL :

  1. Le certificat expire sans avis — Configurez une surveillance (Étape 6) au minimum 30 jours avant l'expiration
  2. Chaîne de certificat incomplète — Le serveur doit envoyer des certificats intermédiaires, pas seulement ceux de la feuille
  3. Contenu mixte — La page HTTPS charge des ressources HTTP (images, scripts, feuilles de style)
  4. Boucles de redirection — HTTP → HTTPS → HTTP causées par un CDN/proxy mal configuré
  5. Mismatch non-www vs www — Le certificat couvre l'un mais pas l'autre

Gagnez du temps : Testez votre domaine avec SSL Labs (ssllabs.com/ssltest). Tout ce qui est en dessous d'une note "A" présente des problèmes à résoudre. La plupart des hébergeurs corrigent cela d'un clic.

En-têtes de Sécurité

Les en-têtes de sécurité sont des en-têtes de réponse HTTP qui indiquent aux navigateurs comment se comporter lors du chargement de votre site. Ils préviennent des catégories entières d'attaques — et les robots de Google les vérifient.

Les en-têtes de sécurité essentiels :

Politique de Sécurité du Contenu (CSP)

CSP est l'en-tête de sécurité le plus puissant. Il indique aux navigateurs exactement quelles ressources (scripts, styles, images, polices) sont autorisées à se charger sur vos pages.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

Ce que CSP empêche :

  • Attaques par script inter-sites (XSS)
  • Attaques par injection de données
  • Clickjacking (via frame-ancestors)
  • Exécution de scripts non autorisés (cryptominers, injecteurs d'annonces)

Stratégie de déploiement CSP :

  1. Commencez avec Content-Security-Policy-Report-Only (enregistre les violations sans bloquer)
  2. Surveillez les rapports pendant 1 à 2 semaines
  3. Mettez en liste blanche les sources légitimes
  4. Passez en mode renforcé
  5. Ajoutez report-uri ou report-to pour l'enregistrement continu des violations

X-Frame-Options

Empêche votre site d'être intégré dans des iframes sur d'autres domaines (protection contre le clickjacking).

X-Frame-Options: DENY

Ou si vous devez autoriser le framing de même origine :

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Empêche les navigateurs de réaliser une analyse de type MIME (interpréter des fichiers comme des types différents de ceux déclarés).

X-Content-Type-Options: nosniff

Cette ligne empêche les attaques où un fichier .jpg contient des JavaScript cachés que le navigateur pourrait exécuter.

Referrer-Policy

Contrôle combien d'informations sur le référent sont envoyées lorsque les utilisateurs cliquent sur des liens de votre site.

Referrer-Policy: strict-origin-when-cross-origin

Cela envoie l'URL complète pour les demandes de même origine mais seulement l'origine (domaine) pour les demandes croisées. Équilibre les besoins analytiques avec la vie privée.

Permissions-Policy

Contrôle quelles fonctionnalités du navigateur (caméra, microphone, géolocalisation, etc.) peuvent être utilisées sur votre site.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Désactiver les fonctionnalités que vous n'utilisez pas empêche les scripts tiers de les exploiter.

Exemple d'implémentation d'en-tête (Next.js) :

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Implémentation d'en-tête (Apache .htaccess) :

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Implémentation d'en-tête (Nginx) :

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Gagnez du temps : Ajoutez les 5 en-têtes ci-dessus à votre configuration de serveur. Cela prend 5 minutes et améliore immédiatement votre posture de sécurité dans tout outil de scan.

HSTS Preload

HTTP Strict Transport Security (HSTS) indique aux navigateurs d'utiliser toujours HTTPS pour votre domaine — même avant la première requête. Sans HSTS, la première visite sur votre site peut toujours utiliser HTTP (vulnérable à l'interception) avant la redirection vers HTTPS.

En-tête HSTS :

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Les trois directives :

| Directive | Signification | |-----------|---------------| | max-age=31536000 | Rappelez ceci pendant 1 an (en secondes) | | includeSubDomains | S'applique aussi à tous les sous-domaines | | preload | Demande l'inclusion dans les listes de preload des navigateurs |

Liste de préchargement HSTS :

La protection HSTS ultime. Les navigateurs livrent avec une liste intégrée de domaines qui doivent toujours utiliser HTTPS. Soumettre votre domaine à hstspreload.org signifie :

  • Les premiers visiteurs obtiennent HTTPS immédiatement (pas de redirection HTTP → HTTPS)
  • Impossible pour les attaquants de rétrograder les connexions
  • Permanent (difficile à enlever une fois soumis)

Exigences pour HSTS preload :

  1. Certificat HTTPS valide
  2. Rediriger tout HTTP vers HTTPS (y compris les sous-domaines)
  3. En-tête HSTS avec max-age >= 31536000
  4. En-tête HSTS incluant includeSubDomains
  5. En-tête HSTS incluant preload
  6. Tous les sous-domaines doivent prendre en charge HTTPS

Avertissement : Ne soumettez à preload que si TOUS vos sous-domaines prennent en charge HTTPS. La directive includeSubDomains signifie qu'un sous-domaine uniquement HTTP deviendra inaccessible.

Gagnez du temps : Si vous avez déjà HTTPS sur tous les sous-domaines, ajoutez l'en-tête HSTS complet et soumettez-le à hstspreload.org. Le traitement prend quelques semaines mais la protection est permanente.

Scan de Vulnérabilités

Le scan de vulnérabilités automatisé identifie les problèmes de sécurité connus dans votre environnement avant que les attaquants ne les exploitent.

Ce que le scan de vulnérabilités vérifie :

  • Logiciels obsolètes : WordPress, plugins, bibliothèques JavaScript avec des CVEs connus
  • Fichiers exposés : .env, .git, wp-config.php, dumps de bases de données
  • Fuites d'information : En-têtes de version de serveur, mode débogage, traces de pile
  • Identifiants par défaut : Pages d'administrateur sans authentification, mots de passe par défaut
  • Ports/services ouverts : Services non nécessaires exposés à Internet
  • Points d'injection : Formulaires sans protection CSRF, entrées non validées

Vulnérabilités communes par plateforme :

| Plateforme | Principale Vulnérabilité | Solution | |------------|--------------------------|---------| | WordPress | Plugins obsolètes | Mise à jour automatique + WAF | | Shopify | Permissions d'applications tierces | Audit de la liste des applications trimestriellement | | Next.js | Routes API exposées | Middleware d'authentification + limitation de taux | | Sites statiques | Mauvaise configuration CDN | Révision des règles de cache | | Personnalisé | Injection SQL | Requêtes paramétrées |

Fréquence de scan :

  • Quotidien : Scan de surface automatisé (SSL, en-têtes, fichiers exposés)
  • Hebdomadaire : Vérification de vulnérabilités de dépendances (npm audit, scanner de plugins WordPress)
  • Mensuel : Scan approfondi avec tests authentifiés
  • Après chaque déploiement : Vérification de régression

Gagnez du temps : Exécutez npm audit (Node.js) ou vérifiez votre liste de plugins CMS pour des composants obsolètes. Corrigez immédiatement les problèmes de gravité critique/élevée.

Contenu Mixte

Le contenu mixte se produit lorsqu'une page HTTPS charge des ressources (images, scripts, feuilles de style, iframes) par HTTP. Cela brise partiellement le chiffrement et déclenche des avertissements du navigateur.

Types de contenu mixte :

| Type | Gravité | Exemple | Comportement du navigateur | |---------|---------|---------|----------------------------| | Actif | Élevé | Script HTTP, iframe, CSS | Bloqué par défaut | | Passif | Moyen | Image HTTP, vidéo, audio | Chargé avec avertissement |

Le contenu mixte actif est bloqué par les navigateurs modernes — ce qui signifie que vos scripts et styles ne se chargeront tout simplement pas. Le contenu mixte passif se charge mais montre des avertissements de sécurité.

Trouver du contenu mixte :

  1. Ouvrez Chrome DevTools → Console
  2. Recherchez les avertissements "Contenu Mixte"
  3. Alternativement, scannez avec un crawler (Screaming Frog, LANGR)

Sources courantes de contenu mixte :

  • URLs http:// en dur dans le contenu (articles de blog, descriptions de produits)
  • Widgets tiers chargeant des ressources HTTP
  • Contenu intégré (anciens intégrations de YouTube, widgets de médias sociaux)
  • CSS background-image avec des URLs HTTP
  • Polices chargées par HTTP

Correction de contenu mixte :

<!-- Mauvais -->
<img src="http://example.com/image.jpg" />

<!-- Bon -->
<img src="https://example.com/image.jpg" />

<!-- Meilleur (dépendant du protocole, s'adapte au protocole de la page) -->
<img src="//example.com/image.jpg" />

Correction de la base de données (WordPress) :

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

Gagnez du temps : Ouvrez votre page d'accueil dans Chrome, appuyez sur F12, vérifiez l'onglet Console pour les avertissements de contenu mixte. Corrigez ceux qui apparaissent — ceux-ci sont directement visibles par Google.

Risques des Scripts Tiers

Chaque script externe que vous chargez est un potentiel risque pour la sécurité (et la performance). Les scripts tiers peuvent :

  • Être compromis (attaques de la chaîne d'approvisionnement)
  • Suivre vos utilisateurs sans consentement (violation du RGPD)
  • Ralentir votre site (blocage de rendu, latence réseau)
  • Rompre des fonctionnalités (mises à jour de versions, pannes)
  • Injecter un contenu indésirable (scripts publicitaires défectueux)

Auditez vos scripts tiers :

| Script | Nécessaire ? | Niveau de Risque | Alternative | |---------------------|--------------|------------------|-------------------------------| | Google Analytics | Souvent oui | Faible | Suivi côté serveur | | Widgets de chat | Peut-être | Moyen | Solutions auto-hébergées | | Boutons de partage social | Rarement | Moyen | Liens de partage statiques | | Tests A/B | Parfois | Élevé | Tests côté serveur | | Pixels de remarketing | Décision d'affaires | Élevé | Données de première partie | | CDN de polices | Pratique | Faible | Polices auto-hébergées |

Atténuation des risques pour des scripts tiers essentiels :

  1. Intégrité des Sous-Ressources (SRI) : La vérification par hachage empêche le chargement de scripts falsifiés
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. Restrictions CSP : Autorisez uniquement les scripts provenant de domaines connus
  2. Iframes isolées : Isolez les widgets tiers
  3. Audits réguliers : Revue trimestrielle de toutes les ressources externes
  4. Surveillance : Alerte sur des nouveaux domaines externes apparaissant dans vos pages

Gagnez du temps : Listez chaque balise