Does WordPress prefetch pages, and does it affect SEO?

Yes. Since version 6.8, WordPress prints speculation rules that let supporting browsers fetch a same-site page the moment a visitor presses down on its link, so it opens faster. Search engine crawlers ignore these rules, so nothing about crawling, indexing or ranking signals changes directly.

What core adds to your pages

Near the end of each front-end page, WordPress outputs a script block of type speculationrules. It is a JSON instruction for the browser, not executable code. In its default configuration it says, in effect: for links to other pages on this site, prefetch the HTML with conservative eagerness.

  • Prefetch means the browser downloads the next page's HTML document in advance. It does not load that page's images, run its scripts or render it. The heavier option, prerender, is available to developers through a filter but is not the default.
  • Conservative means the browser waits until the visitor presses the mouse button or touches the link, a fraction of a second before the click completes. It does not prefetch on hover or for links merely visible on screen.

Core only prints the rules when the visitor is logged out and the site uses pretty permalinks. Logged-in users, and sites on Plain permalinks, get nothing.

Browser support comes from Chromium-based browsers. Others skip the block without error.

What is excluded

The rules deliberately leave out anything where an early request could have side effects or waste a fetch:

ExcludedReason
/wp-admin/ and wp-*.php files such as wp-login.phpNot content pages
Anything under uploads, the content folder, plugins and theme foldersFiles, not pages
Any URL with a query string (on sites with pretty permalinks)Often actions: add to cart, filters, nonces
Links with rel="nofollow"Some plugins mark action links this way
Links with the class no-prefetch, or inside an element with itManual opt-out

The query string rule is why add-to-cart links, logout links and filtered listings are not fetched early. If a specific link should never be prefetched, add the no-prefetch class to it or to its container.

Does it change anything for search engines?

Not for crawling or indexing. Googlebot discovers pages by following href links and reading sitemaps. Speculation rules are a hint about navigation speed for a person's browser; they add no links, change no content and send no signals to a crawler.

The indirect effect is on real-user performance. Google's Core Web Vitals are measured from Chrome users in the field. A page that was prefetched starts loading with its HTML already in hand, which removes most of the server wait from that navigation and can improve Largest Contentful Paint for visitors moving between your pages. It does nothing for the first page of a visit, which is where most search traffic lands, so treat it as a modest gain for multi-page sessions, not a fix for a slow site. The basics in improving Core Web Vitals still come first.

Two side effects to know about:

  • Server load. Each prefetch is a real request. With conservative eagerness it happens only when a click has already begun, so nearly every prefetch becomes a visit. Extra load is minimal.
  • Analytics. A prefetch downloads HTML without running scripts, so JavaScript-based analytics do not count it. Server logs will show the request, with a Sec-Purpose: prefetch header.

Should you change the defaults?

For most sites, no. The default was chosen to be safe everywhere.

More aggressive settings (moderate eagerness, which fetches on hover, or prerender mode) make navigation feel instant but multiply requests for pages nobody ends up visiting, and prerendering runs the target page's scripts early. Consider them only on well-cached sites after testing analytics, consent banners and anything that reacts to a page view.

Turning it off makes sense if you already run a plugin that does its own link prefetching, to avoid doing the work twice, or if your pages change state on a plain GET request without a query string. Developers can return null from the wp_speculation_rules_configuration filter:

php
add_filter( 'wp_speculation_rules_configuration', '__return_null' );

To check what your site prints, view the source of a post in a private window and search for speculationrules. In Chrome's developer tools, the Application panel has a Speculative loads section that lists which URLs were prefetched and why others were not.

Common questions

Does prefetching count as a pageview?

Not in script-based analytics, since a prefetched page's JavaScript does not run until the visitor actually navigates. It does appear in server access logs.

Will speculative loading improve my PageSpeed Insights score?

The lab test loads one page from scratch, so it does not benefit. Any gain shows in field data for visitors who move between pages.

Does Googlebot use speculation rules to find pages?

No. The rules contain patterns, not links, and are meant for browsers. Crawlers rely on ordinary links and sitemaps.