Keep Speculative Loading Away From Cart, Checkout and Account Pages
Tells WordPress's built-in speculative loading (prefetching pages on hover) to skip cart, checkout and account pages, which are personal, never cached and expensive to build, so hovering over their links no longer costs server time.
Opens WPIDE on
Code
// Extra paths (relative to your home URL) that should never be prefetched.
$wpide_no_speculation = array( '/cart/*', '/checkout/*', '/my-account/*' );
add_filter( 'wp_speculation_rules_href_exclude_paths', function ( $paths ) use ( $wpide_no_speculation ) {
if ( function_exists( 'wc_get_page_id' ) ) {
$home = (string) wp_parse_url( home_url( '/' ), PHP_URL_PATH );
foreach ( array( 'cart', 'checkout', 'myaccount' ) as $page ) {
$id = wc_get_page_id( $page );
if ( $id > 0 ) {
$path = (string) wp_parse_url( get_permalink( $id ), PHP_URL_PATH );
$wpide_no_speculation[] = '/' . trim( substr( $path, strlen( $home ) ), '/' ) . '/*';
}
}
}
return array_values( array_unique( array_merge( (array) $paths, $wpide_no_speculation ) ) );
} );
Notes
Needs WordPress 6.8 or later; WooCommerce page addresses are detected automatically, and you can add other paths such as a members area.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.