# Speculative Loading dans WordPress 6.8 : préchargement spéculatif expliqué

> WordPress 6.8 intègre nativement la Speculation Rules API pour précharger ou prérendre les pages probables. Réglages conservative, moderate, eager passés au crible.

- Auteur : Clément Hadrot
- Publié le : 2025-05-20
- Mis à jour le : 2025-05-20
- Catégorie : Performance
- URL : https://wpmoderne.dev.wordpress-developpement.fr/performance/speculative-loading-wordpress-6-8/

## L’essentiel

- Le cœur devine la prochaine page cliquée et la précharge avant le clic
- Trois niveaux d'agressivité : conservative, moderate, eager
- Fonctionne nativement sur Chrome et les navigateurs Chromium, dégradation propre ailleurs

WordPress 6.8, sorti le 15 avril 2025, introduit une fonctionnalité qui change discrètement la façon dont les pages se chargent : le Speculative Loading, ou chargement spéculatif. L'idée n'est pas nouvelle côté navigateur — elle s'appuie sur la Speculation Rules API portée par Chrome depuis plusieurs versions — mais son intégration native au cœur de WordPress, sans plugin, marque une étape importante pour la performance perçue du CMS.

Le principe est simple à énoncer et redoutablement efficace en pratique : au lieu d'attendre qu'un visiteur clique sur un lien pour commencer à charger la page suivante, le navigateur anticipe les clics probables et précharge, voire prérend, ces pages à l'avance. Quand le clic arrive vraiment, la page s'affiche quasi instantanément, parfois même avant que l'utilisateur n'ait relâché le bouton de la souris.

## La Speculation Rules API en une minute

La Speculation Rules API est une fonctionnalité des navigateurs basés sur Chromium qui permet de déclarer, via un bloc JSON inséré dans la page, des règles de préchargement (`prefetch`) ou de prérendu (`prerender`) de documents. Contrairement à l'ancien `<link rel="prefetch">`, cette API permet de cibler des URL par motif plutôt qu'une par une, et de choisir entre un simple préchargement réseau ou un rendu complet de la page en arrière-plan, invisible, prêt à être affiché instantanément.

Un bloc de règles ressemble à ceci :

```
<script type="speculationrules">
{
  "prerender": [{
    "source": "document",
    "where": { "href_matches": "/*" },
    "eagerness": "moderate"
  }]
}
</script>
```

C'est exactement ce type de bloc que WordPress 6.8 génère automatiquement, sans que le développeur ait à l'écrire à la main.

## Ce que WordPress 6.8 active par défaut

Sur une installation fraîche ou après mise à jour, le Speculative Loading est activé par défaut avec un mode de fonctionnement prudent : préchargement (`prefetch`) plutôt que prérendu complet, et un niveau d'agressivité modéré. Le réglage se trouve dans **Réglages → Lecture**, dans une section dédiée qui propose deux choix combinés : le mode de chargement (prefetch ou prerender) et le niveau d'anticipation.

> L'essentiel à retenir : Le cœur devine la prochaine page cliquée et la précharge avant le clic ; Trois niveaux d'agressivité : conservative, moderate, eager ; Fonctionne nativement sur Chrome et les navigateurs Chromium, dégradation propre ailleurs

Les trois niveaux d'eagerness disponibles correspondent directement aux valeurs définies par la Speculation Rules API :

- **Conservative** : le navigateur ne précharge qu'au moment où l'utilisateur commence son geste de clic (pointerdown ou survol prolongé). C'est le mode le plus sûr, quasiment sans risque de gaspillage de bande passante.
- **Moderate** (par défaut) : le préchargement démarre dès qu'un lien est survolé, un compromis équilibré entre réactivité et consommation de ressources.
- **Eager** : le navigateur précharge de façon beaucoup plus large, dès qu'un lien entre dans le viewport ou avec un simple survol bref, au prix d'un nombre de préchargements « inutiles » plus élevé pour les pages jamais cliquées.

## Prefetch ou prerender : quelle différence pratique

Le mode `prefetch` télécharge le document HTML de la page cible en arrière-plan, mais ne l'exécute pas : pas de JavaScript lancé, pas de rendu. Le gain porte essentiellement sur le temps réseau. Le mode `prerender` va plus loin : il charge et rend réellement la page dans un onglet invisible, JavaScript compris, si bien qu'au clic, le navigateur n'a plus qu'à basculer l'affichage. Le gain perçu est spectaculaire, proche de l'instantané, mais le coût en ressources (CPU, mémoire, bande passante) est nettement plus élevé.

WordPress 6.8 choisit `prefetch` par défaut, un choix raisonnable pour ne pas surcharger les sites à fort trafic ou les visiteurs sur connexion limitée. Le passage à `prerender` reste possible mais demande d'évaluer l'impact, en particulier si des scripts de tracking ou d'analytics se déclenchent au chargement : un prérendu déclenche ces scripts même si l'utilisateur ne clique jamais sur le lien, ce qui peut fausser les statistiques si rien n'est prévu pour le gérer.

### Ajuster les règles par filtre

Pour les cas où les réglages de l'interface ne suffisent pas, WordPress 6.8 expose le filtre `wp_speculation_rules_configuration`, qui permet d'ajuster mode et eagerness par code, et `wp_speculation_rules_href_exclude_paths` pour exclure certains chemins du préchargement spéculatif — typiquement les pages de panier, de paiement ou de déconnexion, où précharger par erreur pourrait déclencher des effets de bord indésirables.

```
add_filter( 'wp_speculation_rules_href_exclude_paths', function( $excluded_paths ) {
    $excluded_paths[] = '/panier/';
    $excluded_paths[] = '/mon-compte/deconnexion/';
    return $excluded_paths;
} );
```

## Ce qu'il faut vérifier avant d'activer le mode eager

Avant de pousser le curseur sur **Eager**, quelques vérifications s'imposent sur un site en production :

1. S'assurer qu'aucune action à effet de bord (ajout au panier, déconnexion, suppression) n'est déclenchable par une simple requête GET préchargée par erreur.
2. Vérifier la configuration des outils d'analytics, pour éviter de comptabiliser des pages vues fantômes issues d'un prérendu jamais affiché à l'utilisateur.
3. Surveiller la consommation de bande passante côté hébergement si le trafic est important : un mode eager multiplie le nombre de requêtes serveur, même si elles restent invisibles pour l'utilisateur.

Sur les navigateurs qui ne supportent pas la Speculation Rules API — Firefox et Safari à ce jour — la dégradation est propre : le bloc de règles est simplement ignoré, sans erreur ni comportement dégradé visible pour l'utilisateur.

> Sur un site e-commerce, je commence toujours par exclure explicitement les URL de panier et de compte avant même de toucher au niveau d'eagerness. C'est la vérification la plus rapide à faire et celle qui évite le plus de mauvaises surprises.

## En résumé

Le Speculative Loading de WordPress 6.8 rend accessible, sans plugin ni ligne de code, une technique de préchargement spéculatif jusque-là réservée aux sites qui l'implémentaient manuellement via la Speculation Rules API. Le réglage par défaut (prefetch, modéré) constitue un bon compromis pour la majorité des sites. Les sites à fort trafic ou avec des actions sensibles au clic devraient vérifier leurs exclusions avant d'envisager un mode plus agressif, tandis que les sites éditoriaux simples ont tout intérêt à tester le mode eager, qui peut faire gagner une réactivité perçue considérable entre deux pages consultées.
