Skip to content

Speculative Navigation

Speculative Navigation bereitet wahrscheinliche interne Zielseiten vor, wenn der Browser eine Navigationsabsicht erkennt. FG Performance verwendet dafür ab WordPress 6.8 die native Speculation-Rules-Integration von WordPress Core.

Wenn das Modul aktiv ist, verändert FG Performance eine vorhandene Core-Konfiguration nur gezielt:

  • eagerness wird auf moderate gesetzt,
  • im Modus auto bleibt der von WordPress gewählte mode unangetastet,
  • im Modus prerender wird mode = prerender gesetzt,
  • ein null-Wert von WordPress wird unverändert respektiert.

Zusätzlich ergänzt das Plugin Ausschlusspfade und eine eigene Regel für den exakten Startseitenpfad ohne abschließenden Slash. Diese Regel ist insbesondere für WordPress-Installationen in Unterverzeichnissen relevant, wenn das verlinkte Logo auf genau diesen Pfad zeigt.

Im aktuellen Code sind unter anderem folgende Pfade vorgesehen:

/cart/*
/checkout/*
/my-account/*
/account/*
/download/*

Wenn WooCommerce-Funktionen verfügbar sind, werden Warenkorb-, Checkout- und My-Account-URLs dynamisch ergänzt. Das ist eine technische Berücksichtigung sensibler WooCommerce-Pfade, keine Aussage über eine vollständig getestete WooCommerce-Kompatibilität.

Zusätzliche Pfade können über die Entwickler-API oder Filter registriert werden.

Auf älteren unterstützten WordPress-Versionen verwendet FG Performance assets/js/navigation-prefetch.js.

Der Fallback:

  • reagiert auf Hover nach standardmäßig 120 ms,
  • reagiert sofort auf PointerDown beziehungsweise Touch,
  • hält standardmäßig maximal drei Prefetch-Ziele gleichzeitig,
  • beendet sich bei Save-Data, slow-2g oder 2g,
  • lädt nur interne HTTP-/HTTPS-Ziele,
  • ignoriert Query-Strings, Hash-Ziele und Download-Dateien,
  • ignoriert nofollow, Downloads und Links mit einem anderen target als _self,
  • respektiert .no-prefetch, data-no-prefetch und data-fg-no-prefetch.

Der Legacy-Fallback läuft nicht im Admin, nicht für eingeloggte Benutzer, nicht bei fehlenden Pretty Permalinks sowie nicht in Feeds oder Vorschauen.

Prerender kann eine Zielseite vollständig im Hintergrund vorbereiten. Dadurch kann JavaScript der Zielseite vor der sichtbaren Navigation ausgeführt werden.

FG Performance verschiebt seine eigenen Conditional-Asset-Trigger sowie Service-Worker-Registrierung und -Cleanup bis zum prerenderingchange-Ereignis. Andere Theme- oder Plugin-Scripts werden dadurch nicht automatisch prerender-sicher.

Nach einer Navigation kann ein tatsächlich aktivierter Prerender geprüft werden:

performance.getEntriesByType('navigation')[0].activationStart

Ein Wert größer als 0 zeigt eine zuvor aktivierte Prerender-Navigation.

Siehe auch Konfiguration und Entwicklerschnittstellen.