6.8 prefetches links on hover by default, which is free performance except where a link has a side effect.
add_filter( 'wp_speculation_rules_configuration', function ( $config ) {
if ( is_admin() ) {
return null; // no speculation in the admin
}
return $config;
} );
add_filter( 'wp_speculation_rules_href_exclude_paths', function ( $paths ) {
$paths[] = '/basket/remove/*';
$paths[] = '/*?action=*';
return $paths;
} );
A GET request that changes state is the anti-pattern this feature punishes, and every codebase has one — ours was a basket removal link from 2019. Prefetching on hover means a user who moves the mouse across a link removes the item, which is a bug that has existed since 2019 and became visible in April.