# 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.

- Type: PHP
- Runs: Frontend only
- Category: [Performance](https://wpide.com/library/category/performance/)
- Tags: speculative-loading, prefetch, woocommerce
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/perf-speculation-exclude-action-links/

## Code

```php
// 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 use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Keep Speculative Loading Away From Cart, Checkout and Account Pages" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
