Hugnews

HugNews Cache Preloader

Le plugin HugNews Cache Preloader est un outil WordPress qui déclenche, depuis l’interface d’administration, l’exécution d’un script Python serveur destiné à précharger intelligemment le cache des pages du site. Il simule des visites en conditions réelles (desktop, mobile…) pour forcer la génération des fichiers cache (WP Rocket, PWA, etc.) et améliorer la réactivité perçue par les utilisateurs.

Fonctionnalités principales

  • Préchargement du cache via navigateur headless
    • Lancement d’un script Python qui visite automatiquement les pages du site avec Selenium + Chrome Headless.
    • Simulation de différents formats d’écran : Desktop (1920×1080), Mobile (375×812), etc.
    • Déclenchement d’une mise en cache réelle côté navigateur, équivalente à une visite humaine.
  • Ciblage intelligent via le sitemap
    • Récupération dynamique des URLs à partir du sitemap XML (sitemap_index.xml) :
      • Pages principales
      • Articles récents
      • Catégories
      • Vidéos (optionnel)
    • Filtrage par date de modification (ex. : articles des dernières 24h).
    • Paramètres configurables via un fichier config.json.
  • Interface WordPress dédiée
    • Formulaire dans l’admin pour configurer et lancer un préchargement :
      • Choix des types de pages à charger.
      • Sélection des appareils à simuler.
      • Définition du nombre d’articles récents à inclure.
    • Exécution du script Python distante depuis l’interface WordPress, avec affichage du log en temps réel.

Architecture technique

  • Backend Python
    • Script principal : preload_cache.py
    • Technologies utilisées :
      • Selenium + ChromeDriver (via webdriver-manager)
      • Lecture du sitemap XML (xml.etree.ElementTree)
      • Exécution multithreadée (ThreadPoolExecutor) avec arrêt propre via SIGINT
      • Configuration dynamique via config.json
  • Intégration WordPress (PHP)
    • Création d’une page d’admin dédiée (admin_menu).
    • Génération et sauvegarde du fichier config.json en PHP.
    • Exécution sécurisée du script Python via shell_exec().
    • Affichage des logs en ligne dans le back-office.

Configuration possible

  • Appareils simulés : desktop, mobile, tablette
  • Cibles à précharger : pages, articles, catégories, vidéos
  • Fenêtre temporelle : articles publiés dans les dernières n heures
  • Mode test : exécution restreinte pour vérifications
  • Nombre de threads : fixe (actuellement 20) pour un traitement parallèle optimisé

Utilisation typique

Ce plugin est particulièrement utile :

  • après une purge complète du cache,
  • lors de déploiements PWA ou avec WP Rocket,
  • pour les sites très dynamiques, où le SEO et le TTI (Time To Interactive) sont critiques.