Pages not preloaded
Pages with a query string (a “?”) in their URL aren’t preloaded by default because they sometimes trigger an action (such as logging out or deleting something).
Whitelisting pages with a query string
If you want to let all pages with a query string be preloaded, add a data-instant-allow-query-string
attribute to the <body>.
If you’d like to allow only select links with a query string to be preloaded, add a data-instant
attribute to them:
<a href="articles?page=2" data-instant>Page 2</a>
Blacklisting pages
To manually blacklist a link that triggers an action add a data-no-instant
attribute to them:
<a href="logout?token=f2d2650ce6" data-no-instant>Log out</a>
This is to be used mainly if you use data-instant-allow-query-string
, otherwise by default links with a query string are already blacklisted.
External links
External links aren’t preloaded by default, to allow them all add a data-instant-allow-external-links
attribute to the <body>.
To allow only some external links, add a data-instant
attribute to them.
Preloading only some links (whitelist mode)
If you’d like to only preload specific links, add a data-instant-whitelist
to the <body> and mark links to preload by adding a data-instant
attribute to them.
Servers sending a Vary: Accept
header and Chromium < 110
Chromium < 110, when encountering a Vary: Accept
header, will not use the preloaded pages, making preloading useless. Add a data-instant-vary-accept
attribute to your <body>
in that case.
Shopify sites notably suffer from this. They are automatically enrolled in having preloading disabled in Chromium < 110 — no need to add the attribute.
Content blockers
For dubious reasons prefetching is considered a privacy violation by some content blockers such as uBlock Origin. Be sure to disable your content blocker on your site to see the preloading requests being made.
uBlock Origin in Firefox totally disables prefetching; if you use it you need to temporarily completely disable the extension, not just turn it off for your site.
This only affects users of content blocker that use the EasyPrivacy list. It works fine with AdBlock; and users of uBlock Origin are a minority. If you’d like to make instant.page work for users of your site that have a privacy content blocker you can self-host the script.