Hướng dẫn về PWA SEO

Progressive Web App SEO — vì sao "going PWA" không improve thứ hạng, vì sao đó manifest.json là SEO-irrelevant, cách một misconfigured service worker có thể serve Googlebot một stale bộ nhớ đệm, và nơi Core Web Vitals và HTTPS thực ra (và không) overlap với SEO.

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ữ

MỘT PWA là một website enhanced với một manifest và một service worker — đây là vẫn một thông thường (thường JavaScript/SPA) site để Google, với không inherent xếp hạng advantage. Đó manifest.json là SEO-irrelevant (điều này controls installability, không lập chỉ mục). Đó một real PWA-cụ thể risk là đó service worker: Google renderer không chạy service workers khi lập chỉ mục, so một bộ nhớ đệm-đầu tiên HTML strategy có thể hand Googlebot một stale hoặc offline trang. Cách sửa đó với network-đầu tiên cho HTML, và đó rest là ordinary JS/SPA SEO.

TL;DR — MỘT PWA là một manifest + một service worker layered on top of điều gì là gần như luôn một JS/SPA site — so đó kết xuất rules từ JavaScript/SPA SEO apply unchanged, plus hai PWA-cụ thể concerns. Google cho PWAs không xếp hạng advantage (Mueller). Đó manifest.json governs installability, không lập chỉ mục, và có không evidence đó xếp hạng các hệ thống đọc điều này. Đó service worker là đó real risk: Google renderer không chạy service workers khi lập chỉ mục, so một bộ nhớ đệm-đầu tiên HTML strategy có thể chỉ mục một stale hoặc offline shell — dùng network-đầu tiên cho HTML, bộ nhớ đệm-đầu tiên cho static assets. HTTPS là một hard requirement cho service workers riêng một tiny tín hiệu xếp hạng; không chain những vào “PWAs rank better.” (bản dịch) «PWAs xếp hạng tốt hơn.» Cốt lõi Web Chỉ số quan trọng là đó chỉ legitimate overlap, và đây là đó engineering, không đó PWA label.

Evidence for this claim A progressive web app is still a web application; installability features do not replace indexable HTML and URLs. Scope: Current official or standards documentation. Confidence: high · Verified: web.dev: Progressive web apps Evidence for this claim JavaScript applications must expose crawlable links, meaningful content, metadata, and status behavior to Google. Scope: Current official or standards documentation. Confidence: high · Verified: Google: JavaScript SEO basics

PWA là trang web đầu tiên

Đó single hầu hết hữu ích frame: một Progressive Web App là một thông thường website với hai điều đã thêm on top. Theo Google own definition, PWAs “are web apps built and enhanced with modern APIs to provide enhanced capabilities while still reaching any web user on any device with a single codebase.” (bản dịch) «là web apps được xây dựng và enhanced với modern APIs để cung cấp enhanced capabilities trong khi vẫn reaching bất kỳ web người dùng on bất kỳ device với một single codebase.» Đó three pillars Google names là Capable, Reliable, và Installable — note đó none of đó three là “rankable.”

Architecturally, đó codebase là gần như luôn một JavaScript framework đang chạy một single-trang-application pattern. Mà có nghĩa là: mọi thứ đó governs JS/SPA indexability governs PWA indexability, với không modification. Real <a href> links và History-API routing (không hash fragments) cho addressability; máy chủ-side kết xuất hoặc prerendering cho nội dung availability; theo-route canonical, tiêu đề, và meta trong đó được kết xuất DOM. Nếu bạn đã đọc đó JavaScript SEO và SPA SEO material, bạn đã know 90% of PWA SEO — đó app-shell chế độ lỗi, trong particular, là một Google explicitly documents: “Some JavaScript sites may use the app shell model where the initial HTML does not contain the actual content and Google needs to execute JavaScript before being able to see the actual page content that JavaScript generates.” (bản dịch) «Some JavaScript các trang có thể dùng đó app shell model nơi đó ban đầu HTML không contain đó thực tế nội dung và Google cần để execute JavaScript trước đang able để see đó thực tế trang nội dung đó JavaScript generates.» MỘT PWA đó ships an empty shell với không SSR/prerender inherits đó vấn đề trực tiếp.

So honest phạm vi của PWA-cụ thể SEO bài viết là nhỏ: manifest, và service worker. Mọi thứ khác là JS/SPA SEO wearing manifest.

cốt lõi myth: “going PWA” không improve thứ hạng

Này là đó headline. Google đã được unusually trực tiếp về điều này. John Mueller, trong một Tìm kiếm Central office-hours session, đã nói PWAs “currently don’t have any advantage in Google Search, and as far as I know, there are no plans to change this,” (bản dịch) «hiện tại không có bất kỳ advantage trong Google Search, và as far as I know, có không plans để thay đổi này,» và — asked liệu converting để một PWA sẽ help — “By default, saying going to a PWA will make your rankings better — I don’t think that is the case.” (bản dịch) «Theo mặc định, saying going để một PWA sẽ làm của bạn thứ hạng tốt hơn — I không think đó là đó case.»

He cũng pre-empted đó thông thường counter-argument, đó “our competitor went PWA and their rankings jumped.” (bản dịch) «của chúng ta đối thủ went PWA và của họ thứ hạng jumped.» His câu trả lời: “So just the fact that one of your competitors has moved from one framework to another, and has seen an improvement in search, that framework change from my point of view wouldn’t be responsible for that.” (bản dịch) «So chỉ đó fact đó một of của bạn các đối thủ có moved từ một framework để một sản phẩm khác, và có seen an improvement trong tìm kiếm, đó framework thay đổi từ my point of view sẽ không là responsible cho đó.» Và on vì sao: “These are essentially different ways of making a website… for the most part, we see these as normal HTML pages.” (bản dịch) «Những là essentially khác nhau ways of đang làm một website… cho đó hầu hết part, we see những as thông thường HTML các trang.»

nơi PWA relaunches làm correlate với xếp hạng lifts, nó confounds đó come với bất kỳ big rebuild: modernized liên kết nội bộ, refreshed và expanded nội dung, genuine speed improvements, và thường marketing push tied để relaunch. None của đó requires PWA label. nếu bạn rebuild 10-để-15-năm-old organically-grown trang web, bạn thay đổi dozen điều tại sau khi — attributing kết quả để “PWA” là correlation lỗi.

Mueller office-hours statements trên là relayed by công cụ tìm kiếm Journal và independently by công cụ tìm kiếm Roundtable covering giống nhau Nov 2021 session; I có không replayed gốc video, so treat them as reported-chính thức.

Manifest.json: installability ≠ indexability

manifest.json file tồn tại để làm của bạn app installable. Của nó các trường — name, short_name, icons, start_url, display, theme_color — drive install prompt, home-screen icon, splash screen, và liệu app opens standalone hoặc trong trình duyệt tab. đó đểàn bộ job.

có không evidence Google xếp hạng hoặc lập chỉ mục các hệ thống đọc đó manifest as một tín hiệu. Đó sạch nhất external xác nhận là Google own PWA checklist, mà lists “Is installable” (bản dịch) «Là installable»“Discoverable in search” (bản dịch) «Discoverable trong tìm kiếm» as hai tách biệt, independent checklist categories — nơi discoverability là được định nghĩa as ordinary SEO fundamentals: “Enable search engine discovery through unique URLs, descriptive titles, meta descriptions, and structured data.” (bản dịch) «Enable công cụ tìm kiếm phát hiện qua unique URLs, descriptive các tiêu đề, meta các mô tả, và dữ liệu có cấu trúc.» Installability (manifest-driven) và discoverability (classic SEO) là treated as parallel concerns, không một feeding đó other. So: giữ một hợp lệ manifest vì đây là điều gì làm đó app installable — chỉ không file điều này dưới SEO.

Google không publish một trang stating trong chính xác words đó manifest.json là excluded từ xếp hạng; này là một well-supported inference từ đó “no advantage” (bản dịch) «không advantage» statement, đó checklist separation of đó hai categories, và đó manifest total absence từ Google xếp hạng-factor tài liệu — phrase điều này as “no evidence it’s read,” (bản dịch) «không evidence đây là đọc,» không “confirmed ignored.” (bản dịch) «confirmed đã bỏ qua.»

Service workers: một thực PWA-cụ thể SEO risk

Ở đây đó fact đó matters hầu hết, và đây là PWA-cụ thể: Google kết xuất service không chạy của bạn service worker khi điều này renders một trang cho lập chỉ mục. Đó reasoning, từ Martin Splitt: “As we have to assume that someone clicking on your page from a SERP is a first-time visitor, running a service worker is usually not going to do much good.” (bản dịch) «As we có để assume đó ai đó clicking on trang của bạn từ một SERP là một đầu tiên-time khách truy cập, đang chạy một service worker là thường không going để làm nhiều good.» MỘT service worker toàn bộ point là speeding lên repeat visits từ một bộ nhớ đệm — và Googlebot là, by design, luôn treated as một đầu tiên-time khách truy cập, so có không có gì cho điều này để speed lên. Splitt again: “We’re not supporting that because users clicking onto your page from the search result might never have been there beforehand.” (bản dịch) «chúng ta là không supporting đó vì người dùng clicking onto trang của bạn từ đó tìm kiếm kết quả có thể không bao giờ đã được ở đó beforehand.» Mueller có confirmed này là ổn định policy, không một tạm thời state: “I wouldn’t expect it to change — it’s computationally expensive to run service-workers in the background like this for indexing.” (bản dịch) «I sẽ không expect điều này để thay đổi — đây là computationally expensive để chạy service-workers trong đó background như này cho lập chỉ mục.»

Những three rep statements là relayed by SearchViu (Splitt tại Google I/O 2019/2020; Mueller reported July 2023); I’ve confirmed đó Splitt và Mueller quotes as chính xác substrings on đó trang nhưng họ là một bên thứ ba relay, không một Google-owned URL. Note cũng đó “không bao giờ chạy” là slightly cũng absolute — Google Splitt có indicated web workers có thể sometimes execute; đó safe cách diễn đạt là “the rendering service doesn’t run service workers by design,” (bản dịch) «đó kết xuất service không chạy service workers by design,» không “under no circumstance.” (bản dịch) «dưới không circumstance.»

So Vì sao là đó risk? vì của bạn service worker làm chạy trong thực người dùng’ các trình duyệt, và nếu bạn told nó để phục vụ HTML bộ nhớ đệm-đầu tiên — trả về bản sao đã lưu, skip network — sau đó thực repeat khách truy cập sees fast được lưu đệm trang, nhưng đó strategy Googlebot không bao giờ executes. danger là reverse case: bộ nhớ đệm pattern đó, dưới bất kỳ lỗi hoặc fallback condition, hands lại stale document hoặc offline-fallback trang. vì kết xuất là stateless và WRS xử lý mỗi fetch as fresh, misconfigured bộ nhớ đệm strategy là Cách PWA ends lên với Googlebot lập chỉ mục outdated hoặc rỗng offline shell thay vì trực tiếp nội dung.

** bộ nhớ đệm-strategy rule của thumb:**

  • HTML documents → network-đầu tiên (hoặc stale-trong khi-revalidate với ngắn TTL). Nhận trực tiếp trang; sử dụng bộ nhớ đệm chỉ as offline fallback, và hãy đảm bảo đó fallback là không bao giờ Điều gì fresh crawl sẽ chỉ mục.
  • Static assets (JS, CSS, images, fonts) → bộ nhớ đệm-đầu tiên là fine và desirable — họ không thay đổi theo yêu cầu và không phải indexable document.

Cách audit điều này: so sánh điều gì Googlebot sees so với điều gì một repeat khách truy cập trình duyệt serves từ bộ nhớ đệm. Dùng URL Inspection trong Search Console (trực tiếp kiểm thử) để see đó được kết xuất HTML Google thực ra nhận, và kiểm tra điều này so với đó trực tiếp trang. Nếu they diverge, của bạn service worker hoặc SSR setup là đó đầu tiên suspect. Và watch kết xuất timeouts on hybrid setups — as Hamlet Batista noted từ đó dynamic-kết xuất era, “Rendering services won’t wait forever for a page to finish loading.” (bản dịch) «Kết xuất services sẽ không chờ forever cho một trang để finish loading.» (Đó cụ thể bài viết là về dynamic kết xuất, mà Google hiện tại discourages trong favor of SSR — cite đó timeout principle, không đó pattern.)

HTTPS: service-worker requirement, và riêng tiny tín hiệu xếp hạng

Bạn’ll see PWA SEO posts imply “PWAs need HTTPS, and HTTPS boosts rankings, therefore PWAs are more SEO-friendly.” (bản dịch) «PWAs cần HTTPS, và HTTPS boosts thứ hạng, do đó PWAs là hơn SEO-friendly.» Hai đúng facts, wrongly chained.

Fact một: service workers chỉ chạy trong một secure context. Theo MDN: “Service workers are only available in secure contexts: this means that their document is served over HTTPS, although browsers also treat http://localhost as a secure context, to facilitate local development.” (bản dịch) «Service workers là chỉ khả dụng trong secure contexts: này có nghĩa là đó của họ document là phân phối over HTTPS, although các trình duyệt cũng treat http://localhost as một secure context, để facilitate local development. » đó là một trình duyệt nền tảng rule, không an SEO tactic — không HTTPS, không service worker, đầy đủ dừng.

Fact hai: HTTPS là một real Google tín hiệu xếp hạng, nhưng một minuscule một. Google own 2014 announcement: “we’re starting to use HTTPS as a ranking signal. For now it’s only a very lightweight signal — affecting fewer than 1% of global queries, and carrying less weight than other signals such as high-quality content.” (bản dịch) «chúng ta là starting để dùng HTTPS as một tín hiệu xếp hạng. Cho hiện tại đây là chỉ một very lightweight tín hiệu — affecting ít hơn 1% of global các truy vấn, và carrying ít hơn weight hơn other các tín hiệu such as cao-quality nội dung.»

point: bất kỳ HTTPS trang web nhận đó giống nhau tiny tín hiệu — PWA hoặc không. PWA không nhận extra SEO credit cho HTTPS; nó chỉ có thể’t function không có nó. không sell HTTPS as PWA SEO benefit.

Core Web Vitals: một legitimate overlap

Nếu có một real place nơi “good PWA” và “good SEO” đáp ứng, đây là performance. Google PWA hướng dẫn leads với reliability — “A reliable Progressive Web App feels fast and dependable regardless of the network” (bản dịch) «MỘT reliable Progressive Web App feels fast và dependable regardless of đó network» — và Core Web Vitals là một confirmed (nếu modest) xếp hạng factor. MỘT well-engineered PWA đó loads fast và vẫn giữ responsive sẽ tend để score well on Chỉ số quan trọng.

nhưng đọc causation cẩn thận: nó engineering, không PWA-ness. bloated PWA — huge JS bundle, render-blocking hydration, over-eager service worker — có thể easily post tệ hơn Core Web Vitals hơn đơn giản máy chủ-được kết xuất trang. Chỉ số quan trọng win xuất hiện từ đang làm performance hoạt động well, mà bạn có thể làm với hoặc không có manifest. là PWA neither bảo đảm good Chỉ số quan trọng nor grants shortcut để them.

App-như features là UX, không xếp hạng factors

Thêm-để-home-screen, offline chế độ, push notifications, app-như navigation — all genuine, valuable PWA benefits, và all engagement/retention features, không lập chỉ mục hoặc xếp hạng inputs. Google PWA checklist làm đó split rõ ràng by putting “installable” và “discoverable in search” (bản dịch) «discoverable trong tìm kiếm» trong tách biệt buckets.

không treat “installable” as một single, universal khả năng either — điều này varies by trình duyệt và OS, mà là một hơn reason điều này không thể là an SEO tín hiệu (Google sẽ có không consistent, cross-trình duyệt behavior để reward). Đó beforeinstallprompt event đó lets một PWA cho thấy của nó own custom install UI là một Chromium-chỉ mechanism; theo MDN’s PWA installability hướng dẫn, đây là “not supported on iOS.” (bản dịch) «không supported on iOS.» On iOS Safari, installation happens chỉ qua đó manual Share → Thêm để Home Screen flow (extended để Chrome, Edge, Firefox, và Orion on iOS 16.4+, all of mà dùng Apple bắt buộc WebKit engine on iOS và so share đó limitation), không an tự động prompt. None of đó thay đổi đó SEO picture — điều này chỉ có nghĩa là “is my PWA installable” (bản dịch) «là my PWA installable» không một có/không fact independent of mà trình duyệt và OS một khách truy cập là on.

Twitter Lite là đó case nghiên cứu mọi người reaches cho as “proof PWAs help SEO” (bản dịch) «proof PWAs help SEO» — và của nó được ghi lại kết quả là real (một 65% increase trong các trang theo session, 75% increase trong Tweets đã gửi, 20% decrease trong bounce rate) — nhưng mỗi một of những là an engagement chỉ số. Google own case nghiên cứu of điều này không bao giờ mentions SEO, organic tìm kiếm, hoặc thứ hạng tại all. Great kết quả; sai cột.

Ecommerce PWA storefronts: ngắn callout

PWA storefronts thêm một vài wrinkles worth naming, vì họ compound SPA risks. Client-side routing plus faceted navigation có thể generate crawlable-looking các URL đó all resolve để giống nhau shell, hoặc explosion của parameter các URL. Cart và checkout state lives client-side và nên không bao giờ gate indexable sản phẩm nội dung. và mỗi sản phẩm trang phải independently trả về thực, unique HTML — app-shell trap là phần lớn expensive chính xác nơi bạn có phần lớn các trang. các cách sửa là giống nhau ones từ ecommerce và faceted-navigation SEO; PWA layer không thay đổi them, nó chỉ làm SSR/prerender discipline nhiều hơn quan trọng.

Bing và PWAs

Worth line: Bing có published không PWA-cụ thể xếp hạng hoặc lập chỉ mục hướng dẫn. Của nó quản trị viên web guidelines là PWA-agnostic (chung crawlability, sitemaps, robots.txt, IndexNow), và Microsoft extensive PWA tài liệu là hoàn toàn về Edge install prompts, PWABuilder, và Microsoft Store packaging — distribution và installation, tách biệt track từ web-tìm kiếm lập chỉ mục. So cho Bing, default để ordinary JS-kết xuất crawlability hướng dẫn; có không PWA exception để learn.

bottom line

PWA SEO là JavaScript/SPA SEO plus chính xác hai additions: bỏ qua manifest as SEO input (nó cho installability), và configure service worker so nó không bao giờ traps Googlebot trong stale hoặc offline bộ nhớ đệm. Nhận những điều đó right và PWA indexes chính xác như bất kỳ khác well-được xây dựng trang web — không bonus, không hình phạt, chỉ giống nhau rules.

Add an expert note

Pin an expert quote

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