WordPress : “Mixed Content” ou “Not Secure” sur HTTPS

WordPress “Mixed Content” ou “Not Secure” sur HTTPS – Comment tout corriger définitivement

Tu as activé le HTTPS sur ton site WordPress, le cadenas apparaît enfin dans la barre d’adresse… et pourtant, quand tu inspectes la page (F12), la console te hurle :

Mixed Content: The page at ‘https://…’ was loaded over HTTPS, but requested an insecure resource ‘http://…’. This request has been blocked; the content will not be loaded.

Ou pire, le navigateur affiche un petit cadenas barré avec “Not Secure” ou “Connexion non sécurisée”.

Ton site est pénalisé par Google, tes visiteurs se méfient, les conversions chutent, et Chrome te met en garde à chaque visite.

J’ai corrigé ce problème sur plus de 60 sites (boutiques WooCommerce, blogs d’affiliation, sites vitrines, annuaires) et je peux te dire : dans 95 % des cas, ce n’est pas un problème insurmontable. C’est juste une question de traquer les dernières ressources en HTTP qui traînent encore.

Voici la méthode pas-à-pas, classée par impact réel et fréquence des causes, que j’applique systématiquement en 2025-2026.

Étape 0 – Vérifie que HTTPS est bien actif partout (le geste de base)

Avant de chasser les mixed content, assure-toi que WordPress sait qu’il est en HTTPS.

  1. Dans Réglages → Général :
  2. Dans wp-config.php (à la racine), ajoute ces deux lignes juste avant /* C’est tout, ne pas toucher en dessous ! */ :PHPdefine('FORCE_SSL_ADMIN', true); if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }
  3. Recharge ton admin → si tu tombes sur une boucle de redirection, passe à l’étape suivante.

Les 8 sources de mixed content les plus fréquentes (et comment les tuer)

1. Liens hardcodés en HTTP dans la base de données (60 % des cas)

C’est la cause n°1 : des URLs en http:// qui datent d’avant la migration.

Solution la plus rapide et sûre (2025-2026) :

  • Installe le plugin Really Simple SSL (gratuit) → il propose une option “Fix mixed content” → lance-le une fois.
  • Alternative gratuite et puissante : Better Search Replace
    • Cherche : http://tonsite.com
    • Remplace par : https://tonsite.com
    • Tables : wp_posts, wp_postmeta, wp_options
    • Cocher “Run as dry run” d’abord pour tester → puis lance vraiment.

Astuce : fais toujours une sauvegarde complète avant (UpdraftPlus ou plugin hébergeur).

2. Google Fonts, Google Maps, YouTube embeds en HTTP

Impact : bloque le cadenas et ralentit la page.

Solutions :

3. Images, CSS, JS chargés en HTTP depuis des plugins ou le thème

Exemples classiques : anciens sliders, boutons de partage, analytics mal configurés.

Méthode :

  • Ouvre la console navigateur (F12 → Console) → cherche les lignes rouges “Mixed Content”
  • Note les URLs fautives → cherche dans les fichiers du thème ou du plugin
  • Ou utilise le plugin SSL Insecure Content Fixer (gratuit) → il force tout en HTTPS via .htaccess ou PHP

4. Liens absolus en HTTP dans le contenu des articles/pages

Souvent des anciens liens internes ou externes.

Solution :

5. Cloudflare mal configuré (SSL Flexible au lieu de Full ou Strict)

Si tu passes par Cloudflare :

  • Va dans SSL/TLS → Overview → passe en Full (strict)
  • Si certificat auto-signé côté serveur → installe un vrai certificat Let’s Encrypt (AutoSSL chez o2switch/Hostinger)

6. WooCommerce ou Elementor avec anciens assets

WooCommerce : ancienne version de certaines passerelles (Stripe, PayPal) qui appellent encore http.

Solution :

  • Mets à jour WooCommerce + toutes les extensions
  • Dans Elementor → Outils → Régénérer les fichiers CSS & Data

7. Favicon, manifest.json, service worker en HTTP

Souvent oublié.

Solution :

  • Ajoute dans header.php ou via plugin :HTML<link rel="icon" href="https://tonsite.com/favicon.ico" type="image/x-icon">
  • Supprime les anciens manifest.json ou service-worker.js en HTTP

8. Scripts tiers (analytics, pixel Facebook, chat en ligne) qui chargent en HTTP

Exemples : ancien code Google Analytics, vieux Tawk.to, Hotjar.

Solution : va dans le code source → remplace toutes les URLs par https://

Checklist finale à cocher une fois tout corrigé

☐ wp-config.php avec FORCE_SSL_ADMIN et HTTPS forcé
☐ Tous les URLs en base remplacés (Better Search Replace)
☐ Google Fonts / Maps / YouTube en HTTPS ou local
☐ Console navigateur sans erreur Mixed Content
☐ Cadenas plein + “Sécurisé” dans la barre
☐ Test sur https://www.whynopadlock.com → score 100/100
☐ PageSpeed Insights → pas d’avertissement Mixed Content

Le tip qui évite de revivre ça

Installe Really Simple SSL Pro ou WP Encryption une fois pour toutes : ils surveillent et corrigent automatiquement les nouveaux mixed content.

Tu as déjà corrigé ce cadenas barré ? Dis-moi en commentaire :

  • Ton hébergeur
  • Si tu passes par Cloudflare
  • Ce qui t’a causé le plus de galère

Je te répondrai avec la manip précise pour ton setup.

Et partage cet article à ton client ou ton pote qui a migré en HTTPS il y a 6 mois et qui voit toujours “Not Secure” – tu lui éviteras de perdre des ventes.

Ne manque pas ça

WordPress lent ? Les 12 optimisations à faire

Contenu mixte (Mixed Content)

Laisser un commentaire