Hướng dẫn về Speculation Rules API

Điều gì đó Speculation Rules API (prefetch và prerender) thực ra là, liệu điều này ảnh hưởng SEO, crawling, hoặc thứ hạng, và cách implement điều này không có inflating của bạn analytics.

Xuất bản lần đầu: 3 thg 7, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ

Đó Speculation Rules API là một Chromium trình duyệt feature (Chrome/Edge 109+) đó lets một site tell đó trình duyệt để prefetch (download đó HTML document) hoặc prerender (fully load và render trong an invisible tab) giống nhau-site các trang trước một khách truy cập clicks — so đó tiếp theo navigation feels near-instant. Prefetch pays xuống TTFB; prerender additionally pays xuống FCP và LCP. Điều này không phải một crawling, lập chỉ mục, hoặc xếp hạng mechanism — Googlebot không cần tài nguyên hints như này và Google publishes không Tìm kiếm tài liệu on điều này. Google Search itself dùng đó API để prefetch của nó top kết quả, và Ray-Ban reported lớn conversion và LCP gains từ prerendering, so đó real giá trị là Core Web Vitals và UX cho thực tế khách truy cập. Đó big risk để manage là analytics: một speculated trang đó fires một pageview trước người dùng sees điều này sẽ inflate GA4 trừ khi đó tracking kiểm tra document.prerendering. WordPress 6,8 ships một conservative, prefetch-chỉ version on theo mặc định cho logged-out người dùng.

Evidence for this claim The Speculation Rules API lets supporting browsers prefetch or prerender likely future navigations. Scope: Browser navigation optimization; support and restrictions vary by browser version. Confidence: high · Verified: Chrome Developers: Speculation Rules API Evidence for this claim Prerendering executes a page before activation, so analytics and side effects must account for the prerendering lifecycle. Scope: Supporting browsers and prerendered documents. Confidence: high · Verified: web.dev: Speculation rules

Tóm tắt — Speculation Rules API (Chromium, Chrome/Edge 109+) lets trang web declare — trong JSON, inline hoặc qua Speculation-Rules header — mà giống nhau-trang web các URL trình duyệt nên prefetch (download document; pays xuống TTFB) hoặc prerender (fully fetch, render, và chạy JS trong invisible tab; pays xuống TTFB + FCP + LCP). Eagerness (immediate/eager/moderate/conservative) controls Khi rule fires, tách biệt từ các URL nó targets. nó là không crawling/lập chỉ mục/xếp hạng mechanism — Googlebot không rely on tài nguyên hints như điều này (theo Illyes’ Feb 2026 comments on hints generally) và Google publishes không Tìm kiếm tài liệu on nó. nhưng Google Search itself dùng nó để prefetch của nó top kết quả, và Ray-Ban reported lớn conversion + LCP wins, so payoff là thực cho thực tế khách truy cập qua Core Web Vitals và UX. Biggest gotchas: phân tích double-counting (khắc phục với document.prerendering/prerenderingchange), state-thay đổi GET các URL (logout, thêm-để-cart) bạn phải không bao giờ speculate, và Chromium-chỉ hỗ trợ. Bắt đầu với prefetch broadly; thêm prerender để một hoặc hai cao-confidence các trang tại phần lớn.

Điều gì Speculation Rules API thực ra là

Speculation Rules API là trình duyệt API — Chromium chỉ — đó lets trang web tell trình duyệt mà giống nhau-trang web các trang để prepare trước khi khách truy cập clicks. Theo MDN, API là designed để improve performance cho tương lai navigations, và vì nó targets document các URL thay vì riêng lẻ tài nguyên files, nó làm hợp lý cho multi-trang các trang rather hơn single-trang apps. nó supersedes old, deprecated, Chrome-chỉ <link rel="prerender"> và goes beyond widely-khả dụng <link rel="prefetch"> với nhiều hơn expressive JSON syntax.

Rules là declared as JSON, either inline trong <script type="speculationrules"> block hoặc qua Speculation-Rules HTTP phản hồi header. họ có thể list rõ ràng các URL hoặc auto-match links on trang qua where/href_matches conditions (được gọi là document rules).

có hai speculative actions, và getting phân biệt right là toàn bộ game:

  • Prefetch downloads phản hồi thân phản hồi của referenced trang — nhưng không của nó subresources. nó pays xuống tiếp theo trang TTFB.
  • Prerender fetches, renders, và loads trang vào invisible trong-memory tab: all subresources, all JavaScript, ngay cả dữ liệu fetches kicked off by JS. Theo MDN, tương lai navigations để prerendered trang là near-instant. nó pays xuống TTFB FCP LCP — nhưng nó far nhiều hơn expensive và riskier.

Harry Roberts’ shorthand trong his layered-approach ghi-lên captures nó well: prefetch là cho paying xuống TTFB, prerender là cho LCP.

Một dưới-covered kỹ thuật nuance: speculated các tài nguyên land trong trình duyệt memory bộ nhớ đệm, mà là quicker để retrieve hơn HTTP bộ nhớ đệm older <link rel="prefetch"> hint dùng. và prefetched hoặc prerendered document cũng populates HTTP bộ nhớ đệm, so ngay cả speculation khách truy cập không bao giờ dùng không phải pure waste — sau đó navigation có thể vẫn benefit.

Eagerness: Khi để speculate, tách biệt từ các URL

genuinely clever design lựa chọn ở đây là đó eagerness là tách biệt lever từ targeting. Barry Pollard Chrome blog post on API improvements frames nó as separating Khi để speculate từ các URL để speculate on. có four levels:

  • immediate — speculate as soon as rules là seen (on trang load).
  • eager — bắt đầu on slightest tín hiệu.
  • moderate — khoảng 200ms hover (hoặc pointerdown on touch).
  • conservative — pointer- hoặc touch-xuống, i.e. khách truy cập có all nhưng đã nhấp.

Treat những điều này four trigger definitions as Chrome hiện tại heuristics, không fixed spec — Chrome có changed chính xác mobile triggers nhiều hơn sau khi (nó moved moderate để viewport-based heuristics và adjusted eager’s timing as recently as January 2026), so re-kiểm tra trực tiếp tài liệu trước khi quoting chính xác millisecond hoặc percentage ngưỡng trong của bạn own implementation notes.

Hai related refinements worth knowing: No-Vary-Search lets trình duyệt reuse được lưu đệm document đó differs chỉ by ignorable parameters (e.g. UTM-tagged variants của giống nhau trang), và newer prerender-until-script pattern (covered by CoreWebVitals.io) offers middle ground giữa đơn giản prefetch và đầy đủ prerender — as của điều này writing nó vẫn experimental, không-generally-khả dụng hành động đang chạy trong Chrome origin trial, không shipped default.

Chrome own guardrails

Bạn có thể’t accidentally nuke khách truy cập device với over-rộng rule. Chrome prerender tài liệu sets hard, FIFO caps regardless của bạn configuration: cho immediate-eagerness rules, 50 prefetches và 10 prerenders; cho interaction-based (moderate/ conservative) rules, 2 slots. Chrome cũng xử lý prerender as hint và progressive enhancement, không bảo đảm — nó có thể decline dựa trên người dùng settings hoặc tài nguyên constraints — và nó sẽ không render cross-origin iframes on prerendered trang cho đến khi activation. được xây dựng-trong quyền riêng tư guard cũng chặn cross-trang web prefetches Khi người dùng đã có cookies đặt cho đích trang web.

Cross-origin rules, và Điều gì thực ra happens bên trong prerendered trang

Theo MDN, prerendering là restricted để giống nhau-origin documents theo mặc định. Cross-origin, giống nhau-trang web prerendering là có thể, nhưng chỉ nếu đích trang opts trong với Supports-Loading-Mode: credentialed-prerender phản hồi header — cross-trang web prerendering không phải có thể tại all as của điều này writing. Cross-trang web prefetch là nhiều hơn permissive (giống nhau-trang web và cross-trang web prefetches cả hai hoạt động), nhưng vẫn gated by không-cookies-đặt quyền riêng tư rule trên; rộng hơn cross-trang web prefetch opt-trong qua Supports-Loading-Mode là được ghi lại as planned nhưng không tuy vậy shipped.

Bên trong hidden tab, prerendering trang không phải thông thường trang load: intrusive APIs (alert()/confirm()/prompt(), requestFullscreen(), Navigator.share()) là blocked hoặc đã bỏ qua, async APIs như geolocation và getUserMedia() là deferred cho đến khi activation, và cross-origin iframes và worker scripts không chạy cho đến khi sau đó either. Session storage nhận special xử lý worth knowing nếu của bạn trang đọc nó on load: prerendering trang bắt đầu với clone của tab session storage, và đó clone là discarded trong favor của thực tab storage tại activation — so kiểm thử bất kỳ session-storage-phụ thuộc logic cả hai trước khi và sau khi prerenderingchange event, không chỉ on thông thường load. cho timing, document.prerenderingprerenderingchange tell bạn state và activation moment; PerformanceNavigationTiming.activationStart cho bạn thực tế elapsed time giữa prerender bắt đầu và activation nếu bạn muốn để đo lường nó.

Làm Speculation Rules API ảnh hưởng SEO, crawling, hoặc thứ hạng?

Đây là câu hỏi mỗi SEO wants answered, và phần lớn competing các bài viết wave nó away. precise câu trả lời có hai halves.

Điều gì nó không làm

nó là không crawling, lập chỉ mục, hoặc xếp hạng mechanism. có không Google Search Central tài liệu tying Speculation Rules API để Cách Googlebot crawl hoặc indexes — vì nó không touch đó layer tại all. nó trình duyệt feature cho human khách truy cập trong Chromium.

Đó closest điều để an on-đó-record Google statement là Gary Illyes on Tìm kiếm Off đó Record (sớm 2026), talking về tài nguyên hints nhìn chung — không đó Speculation Rules API by name. As Search Engine Journal reported, Illyes’ point đã là đó Googlebot’s own infrastructure có near-infinite bandwidth và very fast DNS resolution, so hints như DNS-prefetch và preload hold essentially không giá trị cho của nó crawling xử lý — điều này có thể đã talk để các máy chủ fast và không cần để là told để fetch điều trước đó. Treat đó as hỗ trợ cho “this is a browser/visitor feature, not a crawler one,” (bản dịch) «này là một trình duyệt/khách truy cập feature, không một crawler một,» nhưng note đó phạm vi: Illyes đã là addressing đó rộng hơn tài nguyên-hints family, không Speculation Rules cụ thể. Này là đó giống nhau discipline đó sibling tài nguyên hints piece áp dụng.

cũng worth stating plainly vì mọi người ask: Bing có published không có gì on Speculation Rules API Đối với SEO. Edge (Chromium 109+) hỗ trợ nó as trình duyệt feature, nhưng có không bingbot hoặc lập chỉ mục angle — mà là chính xác Điều gì bạn’d expect cho kết xuất-trình duyệt feature thay vì tìm kiếm-engine-crawler một.

Điều gì nó có thể làm

nó có thể improve Core Web Vitals — especially LCP, và indirectly INP by front-loading JavaScript execution trước khi interaction happens — cho thực người dùng. Core Web Vitals là được ghi lại (nếu modest) tín hiệu xếp hạng qua trang experience hệ thống, so có gián tiếp xếp hạng pathway. nhưng stronger case là đơn giản UX và conversion: đang làm tiếp theo trang feel instant là thực business lever independent của thứ hạng.

non-overclaiming way để frame nó: Speculation Rules sẽ không nhận bạn được crawl hoặc được lập chỉ mục differently — nó làm trang feel instant sau khi thực khách truy cập là đã navigating của bạn trang web, mà là UX và Core Web Vitals lever, không crawler một.

thực-world kết quả

Hai proof points làm nặng lifting ở đây, và cả hai come từ Google own publications.

Google Search dùng nó on itself. Theo Chrome team 2025 announcement, một của đầu tiên dùng của speculation rules là để prefetch đầu tiên hai tìm kiếm kết quả. measured gains: on Android Chrome, LCP cho clicks từ Google Search là reduced by 67 milliseconds; on desktop, similar 58,6 millisecond LCP improvement. Hover-based prefetching của remaining kết quả cut desktop FCP by 7,6 milliseconds và LCP by 9,5 milliseconds. cho cross-origin kết quả prefetches, Google Tìm kiếm routes them qua Chrome riêng tư prefetch proxy để anonymize yêu cầu. rất một vài competing các bài viết cite đó Google trusts điều này đủ để chạy nó on Google.com/tìm kiếm tại quy mô — và published chính xác millisecond deltas.

Ray-Ban case nghiên cứu là business-impact proof. Google web.dev case nghiên cứu các báo cáo đó sau khi prerendering sản phẩm các trang, mobile conversion rates on PDPs increased by 101,47% và desktop by 156,16%, với 43% improvement trong LCP on cả hai desktop và mobile. Exit rates dropped khoảng 13% on cả hai, và các trang viewed theo session rose 51,95% on mobile và 65,30% on desktop. implementation split là instructive: desktop được sử dụng moderate eagerness triggered by hovering sản phẩm tiles; mobile (không hover state) được sử dụng immediate eagerness on chỉ đầu tiên four tiles, mà là phần lớn-đã nhấp.

và quy mô là đã lớn: WordPress 6,8 (March 2025) ships điều này theo mặc định, building on feature plugin đó là on tens của thousands của các trang trước khi cốt lõi adoption — meaning có ý nghĩa share của web đã có speculation rules đang chạy không có anyone configuring them.

Cách implement nó safely

consensus adoption order, từ cả hai tài liệu củ Google và independent experts:

  1. Bắt đầu với prefetch, broadly. Theo Chrome implementation hướng dẫn, prefetch là relatively safe cho phần lớn các trang và là ban đầu approach nhiều take.
  2. Thêm prerender narrowly, sau đó. Chrome tài liệu warn so với over-prerendering tại cost của người dùng các tài nguyên, và khuyến nghị giữ prerenders xuống để một hoặc hai các trang tại phần lớn. Harry Roberts reaches giống nhau conclusion independently — wildcard-như match là cũng greedy, và prerendering mọi thứ là thường cũng expensive và cũng risky; opt-trong approach là tốt hơn.
  3. sử dụng document rules để quy mô không có theo-trang config. thay vì hand-listing các URL on mỗi trang, where/href_matches condition sources các URL từ document itself so một rule đặt có thể apply trang web-wide.
  4. Mind của bạn CSP. Inline <script type="speculationrules"> chặn cần rõ ràng allowance trong script-src — qua 'inline-speculation-rules', hash-nguồn, hoặc nonce-nguồn — hoặc họ silently fail Khi nội dung Security Policy là trong place.

Điều gì không để prefetch hoặc prerender

Cả hai MDN và Chrome implementation hướng dẫn là rõ ràng đó some các URL phải không bao giờ là speculated, vì speculative fetch là vẫn thực yêu cầu đó có thể trigger thực side effects. danger list:

  • Sign-out / logout các URL.
  • “Thêm để cart” các URL.
  • Language- hoặc currency-switcher các URL.
  • Sign-trong luồng đó trigger SMS/OTP.
  • các URL đó increment usage allowance hoặc fire quảng cáo-conversion theo dõi.

root khắc phục là design một: state thay đổi — như /logout hành động — không nên là đơn giản GET links đó speculation rule có thể fetch trong đầu tiên place.

Prerender là stricter vẫn. Additionally unsafe để prerender: các trang đó modify client-side storage on load, gửi phân tích hoặc quảng cáo-impressions on load, hoặc nếu không nguyên nhân side effects as nếu người dùng có interacted. MDN’s cách diễn đạt là đó prerendering là riskier hơn prefetching và nên là đã xong sparingly, chỉ nơi nó worth nó.

Sửa phân tích vấn đề

Đây là trap đó catches thực các trang. prerendered trang fully loads trước khi người dùng bao giờ sees nó. nếu page_view (hoặc quảng cáo impression, hoặc Meta Pixel event) fires on load, bạn’ve logged visit đó đã không happen — inflating GA4 sessions và corrupting attribution.

mechanism để khắc phục nó là được ghi lại trong MDN và Chrome các hướng dẫn:

  • document.prerenderingtrue trong khi trang là prerendered.
  • prerenderingchange event fires on activation (Khi người dùng thực ra navigates trong).
  • Các máy chủ có thể cũng detect speculative các yêu cầu qua Sec-Purpose yêu cầu header (prefetch, hoặc prefetch;prerender).

practical reality: theo Chrome implementation hướng dẫn, some phân tích providers (Google phân tích) và quảng cáo providers (Google Publisher Tag) đã hỗ trợ speculation rules và sẽ không log view cho đến khi trang là activated. GA4’s own gtag.js xử lý nó cho bạn. Điều gì typically không xử lý nó theo mặc định: custom GTM tags, Meta Pixel, và homegrown scripts. cho tag-manager setups, một sạch approach là để delay tag manager script itself, hoặc gate cụ thể code cho đến khi trang là activated hoặc đã làm visible. có được ghi lại thực-world version của getting điều này sai — WordPress 6,8 các trang reportedly firing GA4 và Meta Pixel ghost visits sau khi feature auto-enabled; Erwin Hofman covers khắc phục trong depth.

trình duyệt hỗ trợ reality kiểm tra

điều này tempers ROI expectations và phần lớn các bài viết bury nó: Speculation Rules API là Chromium-chỉ (Chrome và Edge 109+). nó là không Baseline. Firefox có positive các tiêu chuẩn position on prefetch portion chỉ và hasn’t shipped nó; Safari có implementation behind flag, off theo mặc định. có ý nghĩa share của bất kỳ trang web traffic — mọi người on Firefox và Safari — nhận zero benefit, so size của bạn expectations accordingly.

Speculation Rules trong WordPress 6,8+

vì so nhiều của tìm kiếm audience là on WordPress và đã nhận điều này theo mặc định: WordPress 6,8 (March 2025) ships được xây dựng-trong Speculative Loading, on theo mặc định cho logged-out khách truy cập, sử dụng conservative, prefetch-chỉ configuration out của box. trang web owners có thể customize behavior — including opting vào prerender cho mấu chốt các URL — qua wp_speculation_rules_configuration filter (Weston Ruter, Google engineer và WordPress cốt lõi contributor, có walkthrough). default là có chủ ý safe, mà là Vì sao phần lớn WordPress các trang có thể leave nó on — nhưng nó cũng Vì sao phân tích gotcha trên surprised lot của trang web owners ai không bao giờ chose để enable bất cứ điều gì.

Myths, debunked

  • “Speculation Rules will help Googlebot crawl my site faster.” (bản dịch) «Speculation Rules sẽ help Googlebot crawl my site nhanh hơn.» Không — đây là một trình duyệt-kết xuất feature cho human khách truy cập trong Chromium; Googlebot’s own infrastructure không cần hints như này, và không Google doc links đó API để crawling.
  • “It’s the same as <link rel="prefetch">/<link rel="prerender">.” (bản dịch) «đây là đó giống nhau as / .» Không quite — điều này supersedes đó deprecated Chrome-chỉ rel="prerender", adds một richer JSON syntax (document rules, eagerness), và stores speculated các tài nguyên trong đó memory bộ nhớ đệm thay vì đó HTTP bộ nhớ đệm.
  • “Prerendering everything makes my whole site instant with no downside.” (bản dịch) «Prerendering mọi thứ làm my toàn bộ site instant với không downside.» Không — Chrome warns so với over-prerendering, enforces hard caps, và cả hai Google và Harry Roberts khuyến nghị nhiều nhất một hoặc hai prerendered các trang.
  • “If I add speculation rules my analytics just works.” (bản dịch) «Nếu I thêm speculation rules my analytics chỉ hoạt động.» Chỉ nếu mỗi analytics và quảng cáo script defers qua document.prerendering/prerenderingchange. GA4 xử lý điều này; nhiều GTM tags và bên thứ ba pixels không.
  • “It’s universally supported, so it’s a safe default for all traffic.” (bản dịch) «đây là universally supported, so đây là một safe default cho all traffic.» Không — Chromium-chỉ, không Baseline; Firefox và Safari không ship điều này theo mặc định.
  • “Prefetch is risk-free, so I can wildcard it.” (bản dịch) «Prefetch là risk-free, so I có thể wildcard điều này.» Overstated — một wildcard-như match là cũng greedy, especially cho state-thay đổi GET URLs đó nên không bao giờ là fetchable links ngay từ đầu.
  • “This will directly move my rankings.” (bản dịch) «Này sẽ trực tiếp move my thứ hạng.» Không established by bất kỳ chính thức nguồn as một trực tiếp xếp hạng factor. Đó credible chain là Speculation Rules → tốt hơn real-người dùng Core Web Vitals / conversion → đó existing, modest trang-experience tín hiệu, plus business wins đó quan trọng regardless of thứ hạng.

nơi điều này sits

Này là một web performance topic, không một crawling một — và giữ đó line sạch là đó point. đây là một close cousin of tài nguyên hints (preload/preconnect/dns-prefetch/prefetch), mà share đó “browser does network work earlier” (bản dịch) «trình duyệt làm network hoạt động trước đó» ý tưởng và đó giống nhau “doesn’t help Googlebot” (bản dịch) «không help Googlebot» caveat; điều này feeds Core Web Vitals (LCP especially); và điều này interacts với bộ nhớ đệm và một CDN since speculated documents populate caches. Cho đó crawler-side analogue of “ask before you re-fetch,” (bản dịch) «ask trước khi bạn re-fetch,» đó conditional-các yêu cầu topic covers cách Googlebot tránh re-downloading unchanged các trang — một khác nhau layer (crawler, không trình duyệt), giống nhau discipline of separating mechanics từ xếp hạng impact.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.