Panduan PWA SEO

Progressive Web App SEO — mengapa "going PWA" _(terjemahan)_ “going PWA” tidak meningkatkan rankings, mengapa manifest.json adalah SEO-irrelevant, bagaimana sebuah misconfigured service worker dapat sajikan Googlebot sebuah stale cache, dan di mana Core Web Vitals dan HTTPS sebenarnya (dan jangan) overlap dengan SEO.

Pertama kali diterbitkan: 3 Jul 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan

sebuah PWA adalah sebuah situs web enhanced dengan sebuah manifest dan sebuah service worker — ini adalah masih sebuah wajar (biasanya JavaScript/SPA) situs untuk Google, dengan Tidak inherent peringkat advantage. manifest.json adalah SEO-irrelevant (ini controls installability, tidak pengindeksan). satu nyata PWA-spesifik risk adalah service worker: Google's renderer tidak jalankan service workers ketika pengindeksan, so sebuah cache-pertama HTML strategy dapat hand Googlebot sebuah stale atau offline halaman. Perbaiki itu dengan network-pertama untuk HTML, dan rest adalah ordinary JS/SPA SEO.

TL;DR — sebuah PWA adalah sebuah manifest + sebuah service worker layered pada top dari apa adalah hampir selalu sebuah JS/SPA situs — so rendering aturan dari JavaScript/SPA SEO apply unchanged, plus dua PWA-spesifik concerns. Google memberikan PWAs Tidak peringkat advantage (Mueller). manifest.json governs installability, tidak pengindeksan, dan ada Tidak evidence peringkat sistem baca ini. service worker adalah nyata risk: Google’s renderer melakukan tidak jalankan service workers ketika pengindeksan, so sebuah cache-pertama HTML strategy dapat indeks sebuah stale atau offline shell — gunakan network-pertama untuk HTML, cache-pertama untuk static assets. HTTPS adalah sebuah hard requirement untuk service workers dan secara terpisah sebuah tiny sinyal peringkat; jangan chain itu ke “PWAs rank better.” (terjemahan) “PWAs peringkat better.” Core Web Vitals adalah satu-satunya legitimate overlap, dan ini adalah engineering, tidak PWA label.

Bukti untuk klaim ini A progressive web app is still a web application; installability features do not replace indexable HTML and URLs. Cakupan: Current official or standards documentation. Tingkat keyakinan: tinggi · Diverifikasi: web.dev: Progressive web apps Bukti untuk klaim ini JavaScript applications must expose crawlable links, meaningful content, metadata, and status behavior to Google. Cakupan: Current official or standards documentation. Tingkat keyakinan: tinggi · Diverifikasi: Google: JavaScript SEO basics

sebuah PWA adalah sebuah situs web pertama

«The single most useful frame: a Progressive Web App is a normal website with two things added on top. Per Google’s 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.” The three pillars Google names are Capable, Reliable, and Installable — note that none of the three is “rankable.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh dua, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

«Architecturally, that codebase is almost always a JavaScript framework running a single-page-application pattern. Which means: everything that governs JS/SPA indexability governs PWA indexability, with no modification. Real <a href> links and History-API routing (not hash fragments) for addressability; server-side rendering or prerendering for content availability; per-route canonical, title, and meta in the rendered DOM. If you’ve read the JavaScript SEO and SPA SEO material, you already know 90% of PWA SEO — the app-shell failure mode, in particular, is one 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.” A PWA that ships an empty shell with no SSR/prerender inherits that problem directly. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh tiga, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

So honest cakupan dari sebuah PWA-spesifik SEO artikel adalah kecil: manifest, dan service worker. Semuanya else adalah JS/SPA SEO wearing sebuah manifest.

core myth: “going PWA” (terjemahan) “going PWA” melakukan tidak meningkatkan rankings

ini adalah headline. Google memiliki telah unusually direct tentang ini. John Mueller, di sebuah Penelusuran Central office-hours session, mengatakan PWAs “saat ini jangan memiliki any advantage di Google Search, dan sebagai far sebagai I know, di sana adalah Tidak plans untuk ubah ini,” (terjemahan) “saat ini jangan memiliki apa pun advantage di Google Search, dan sebagai far sebagai I know, tidak ada plans untuk perubahan ini,” dan — ditanyakan apakah converting untuk sebuah PWA akan help — “Oleh default, saying going untuk a PWA akan membuat Anda rankings better — I jangan think itu adalah itu case.” (terjemahan) “oleh default, saying going untuk sebuah PWA akan membuat Anda rankings better — I jangan think itu adalah case.”

He juga pre-empted biasa counter-argument, itu “our pesaing went PWA dan mereka rankings jumped.” (terjemahan) “kami pesaing went PWA dan mereka rankings jumped.” His jawaban: “So sekadar itu fact itu satu dari Anda pesaing memiliki moved dari satu kerangka kerja untuk another, dan memiliki seen an improvement di penelusuran, itu kerangka kerja ubah dari my point dari view tidak akan menjadi responsible untuk itu.” (terjemahan) “So hanya fact itu satu dari Anda pesaing memiliki moved dari satu kerangka kerja untuk lainnya, dan memiliki seen sebuah improvement di penelusuran, itu kerangka kerja perubahan dari my poin dari view tidak akan menjadi responsible untuk itu.” dan pada mengapa: “Ini adalah essentially berbeda ways dari membuat a website… untuk itu paling part, we see ini sebagai wajar HTML halaman.” (terjemahan) “ini adalah essentially berbeda cara dari membuat sebuah situs web… untuk paling bagian, kami see ini sebagai wajar HTML halaman.”

Di mana PWA relaunches melakukan correlate dengan peringkat lifts, ini adalah confounds itu come dengan apa pun big rebuild: modernized internal linking, refreshed dan expanded konten, genuine speed improvements, dan biasanya sebuah marketing push tied untuk relaunch. None dari itu memerlukan PWA label. jika Anda rebuild sebuah 10-untuk-15-tahun-old organically-grown situs, Anda perubahan sebuah dozen hal di setelah — attributing hasil untuk “PWA” (terjemahan) “PWA” adalah sebuah correlation error.

Mueller’s office-hours statements di atas adalah relayed oleh mesin pencari Journal dan independently oleh mesin pencari Roundtable covering yang sama Nov 2021 session; I memiliki tidak replayed original video, so treat them sebagai reported-official.

Manifest.json: installability ≠ indexability

manifest.json file ada untuk membuat Anda app installable. -nya fields — name, short_name, icons, start_url, display, theme_color — drive install prompt, home-screen icon, splash screen, dan apakah app opens standalone atau di sebuah browser tab. itu’s entire job.

ada Tidak evidence Google’s peringkat atau pengindeksan sistem baca manifest sebagai sebuah sinyal. paling bersih external konfirmasi adalah Google’s own PWA checklist, yang lists “Adalah installable” (terjemahan) “adalah installable” dan “Discoverable in search” (terjemahan) “Discoverable di penelusuran” sebagai dua terpisah, independent checklist categories — di mana discoverability adalah didefinisikan sebagai ordinary SEO fundamentals: “Enable penelusuran engine discovery melalui unique URLs, descriptive titles, meta descriptions, dan structured data.” (terjemahan) “Enable mesin pencari penemuan melalui unique URLs, descriptive judul, meta deskripsi, dan data terstruktur.” Installability (manifest-driven) dan discoverability (classic SEO) adalah treated sebagai parallel concerns, tidak satu feeding lainnya. So: pertahankan sebuah valid manifest karena ini adalah apa membuat app installable — hanya jangan file ini di bawah SEO.

«Google doesn’t publish a page stating in exact words that manifest.json is excluded from ranking; this is a well-supported inference from the “no advantage” statement, the checklist’s separation of the two categories, and the manifest’s total absence from Google’s ranking-factor docs — phrase it as “no evidence it’s read,” not “confirmed ignored.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian tiga puluh tiga, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

Service workers: satu nyata PWA-spesifik SEO risk

Di sini’s fact itu penting sebagian besar, dan ini adalah PWA-spesifik: Google’s rendering service melakukan tidak jalankan Anda service worker ketika ini renders sebuah halaman untuk pengindeksan. reasoning, dari 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.” (terjemahan) “sebagai kami memiliki untuk assume itu seseorang clicking pada Anda halaman dari sebuah SERP adalah sebuah pertama-time pengunjung, berjalan sebuah service worker adalah biasanya tidak going untuk melakukan banyak baik.” sebuah service worker’s seluruh poin adalah speeding up repeat visits dari sebuah cache — dan Googlebot adalah, oleh design, selalu treated sebagai sebuah pertama-time pengunjung, so ada tidak ada apa pun untuk ini untuk speed up. Splitt again: “We’re not supporting that because users clicking onto your page from the search result might never have been there beforehand.” (terjemahan) “kami’re tidak supporting itu karena pengguna clicking onto Anda halaman dari penelusuran hasil mungkin tidak pernah memiliki telah di sana beforehand.” Mueller memiliki confirmed ini adalah stable policy, tidak sebuah temporary state: “I wouldn’t expect it to change — it’s computationally expensive to run service-workers in the background like this for indexing.” (terjemahan) “I tidak akan expect ini untuk perubahan — ini adalah computationally expensive untuk jalankan service-workers di background like ini untuk pengindeksan.”

«These three rep statements are relayed by SearchViu (Splitt at Google I/O 2019/2020; Mueller reported July 2023); I’ve confirmed the Splitt and Mueller quotes as exact substrings on that page but they’re a third-party relay, not a Google-owned URL. Note also that “never runs” is slightly too absolute — Google’s Splitt has indicated web workers can sometimes execute; the safe framing is “the rendering service doesn’t run service workers by design,” not “under no circumstance.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian tiga puluh enam, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

So mengapa adalah itu sebuah risk? Karena Anda service worker melakukan jalankan di pengguna nyata’ browser, dan jika Anda told ini untuk sajikan HTML cache-pertama — mengembalikan saved copy, skip network — lalu sebuah nyata repeat pengunjung sees sebuah fast cached halaman, tetapi itu’s sebuah strategy Googlebot tidak pernah executes. danger adalah reverse case: sebuah caching pattern itu, di bawah apa pun error atau fallback condition, hands back sebuah stale document atau offline-fallback halaman. Karena rendering adalah stateless dan WRS memperlakukan setiap fetch sebagai fresh, sebuah misconfigured caching strategy adalah bagaimana sebuah PWA ends up dengan Googlebot pengindeksan sebuah outdated atau empty offline shell alih-alih langsung konten.

** caching-strategy aturan dari thumb:**

  • HTML documents → network-pertama (atau stale-sementara-revalidate dengan sebuah pendek TTL). Mendapatkan langsung halaman; gunakan cache hanya sebagai sebuah offline fallback, dan pastikan itu fallback adalah tidak pernah apa sebuah fresh crawl akan indeks.
  • Static assets (JS, CSS, images, fonts) → cache-pertama adalah fine dan desirable — mereka jangan perubahan per permintaan dan tidak dapat diindeks document.

cara audit ini: bandingkan apa Googlebot sees terhadap apa sebuah repeat pengunjung’s browser menyajikan dari cache. gunakan pemeriksaan URL di Search Console (pengujian langsung) untuk see dirender HTML Google sebenarnya mendapatkan, dan periksa ini terhadap langsung halaman. jika mereka diverge, Anda service worker atau SSR setup adalah pertama suspect. dan watch rendering timeouts pada hybrid setups — sebagai Hamlet Batista noted dari dynamic-rendering era, “Rendering services won’t wait forever for a page to finish loading.” (terjemahan) “rendering services tidak akan tunggu forever untuk sebuah halaman untuk finish memuat.” (itu spesifik artikel adalah tentang dynamic rendering, yang Google now discourages di favor dari SSR — cite timeout principle, tidak pattern.)

HTTPS: sebuah service-worker requirement, dan secara terpisah sebuah tiny sinyal peringkat

Anda’ll see PWA SEO posts imply “PWAs perlu HTTPS, dan HTTPS boosts rankings, karena itu PWAs adalah lebih SEO-friendly.” (terjemahan) “PWAs perlu HTTPS, dan HTTPS boosts rankings, karena itu PWAs adalah lebih SEO-friendly.” Dua benar facts, wrongly chained.

Fact satu: service workers hanya jalankan di sebuah secure context. Per MDN: “Service workers adalah hanya tersedia di secure contexts: ini berarti itu mereka document adalah served over HTTPS, although browsers juga treat http://localhost sebagai a secure context, untuk facilitate local development.” (terjemahan) “Service workers adalah hanya tersedia di secure contexts: ini berarti itu mereka document adalah disajikan di atas HTTPS, although browser juga treat tidak terdefinisi sebagai sebuah secure context, untuk facilitate local development.” itu’s sebuah browser platform aturan, tidak sebuah SEO tactic — Tidak HTTPS, Tidak service worker, penuh berhenti.

«Fact two: HTTPS is a real Google ranking signal, but a minuscule one. Google’s 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.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian empat puluh empat, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

poin: apa pun HTTPS situs mendapatkan itu sama tiny sinyal — PWA atau tidak. sebuah PWA tidak mendapatkan extra SEO credit untuk HTTPS; ini hanya dapat’t function tanpa ini. jangan sell HTTPS sebagai sebuah PWA SEO benefit.

Core Web Vitals: satu legitimate overlap

jika ada sebuah nyata place di mana “good PWA” (terjemahan) “baik PWA” dan “good SEO” (terjemahan) “baik SEO” memenuhi, ini adalah performa. Google’s PWA guidance leads dengan reliability — “A reliable Progressive Web App feels fast dan dependable regardless dari itu network” (terjemahan) “sebuah reliable Progressive Web App feels fast dan dependable regardless dari network” — dan Core Web Vitals adalah sebuah confirmed (jika modest) peringkat factor. sebuah well-engineered PWA itu memuat fast dan tetap responsive akan tend untuk score well pada Vitals.

tetapi baca causation dengan hati-hati: ini adalah engineering, tidak PWA-ness. sebuah bloated PWA — huge JS bundle, render-blocking hydration, sebuah di atas-eager service worker — dapat easily post worse Core Web Vitals daripada sebuah plain server-dirender halaman. Vitals win muncul dari melakukan performa berfungsi well, yang Anda dapat melakukan dengan atau tanpa sebuah manifest. menjadi sebuah PWA neither jaminan baik Vitals nor grants sebuah shortcut untuk them.

App-like fitur adalah UX, tidak peringkat factors

tambahkan-untuk-home-screen, offline mode, push notifications, app-like navigation — semua genuine, valuable PWA benefits, dan semua engagement/retention fitur, tidak pengindeksan atau peringkat inputs. Google’s PWA checklist membuat split jelas oleh putting “installable” (terjemahan) “installable” dan “discoverable in search” (terjemahan) “discoverable di penelusuran” di terpisah buckets.

jangan treat “installable” (terjemahan) “installable” sebagai sebuah single, universal kemampuan either — ini varies oleh browser dan OS, yang adalah satu lebih alasan ini dapat’t menjadi sebuah SEO sinyal (Google akan memiliki Tidak consistent, cross-browser perilaku untuk reward). beforeinstallprompt event itu lets sebuah PWA tampilkan -nya own custom install UI adalah sebuah Chromium-hanya mechanism; per MDN’s PWA installability guide, ini adalah “tidak supported pada iOS.” (terjemahan) “tidak didukung pada iOS.” pada iOS Safari, installation happens hanya melalui manual Share → tambahkan untuk Home Screen flow (extended untuk Chrome, Edge, Firefox, dan Orion pada iOS 16.4+, semua dari yang gunakan Apple’s diperlukan WebKit mesin pada iOS dan so share itu limitation), tidak sebuah automatic prompt. None dari itu perubahan SEO picture — ini hanya berarti “adalah my PWA installable” (terjemahan) “adalah my PWA installable” tidak sebuah Ya/Tidak fact independent dari yang browser dan OS sebuah pengunjung adalah pada.

Twitter Lite adalah case study everyone reaches untuk sebagai “proof PWAs help SEO” (terjemahan) “proof PWAs help SEO” — dan -nya terdokumentasi hasil adalah nyata (sebuah 65% increase di halaman per session, 75% increase di Tweets dikirim, 20% decrease di bounce rate) — tetapi setiap satu dari itu adalah sebuah engagement metric. Google’s own case study dari ini tidak pernah mentions SEO, pencarian organik, atau rankings di semua. Great hasil; wrong column.

Ecommerce PWA storefronts: sebuah pendek callout

PWA storefronts tambahkan sebuah sedikit wrinkles worth naming, karena mereka compound SPA risks. Client-side routing plus faceted navigation dapat generate dapat di-crawl-looking URLs itu semua resolve untuk yang sama shell, atau sebuah explosion dari parameter URLs. Cart dan status checkout lives client-side dan seharusnya tidak pernah gate dapat diindeks product konten. dan setiap product halaman harus independently kembalikan nyata, unique HTML — app-shell trap adalah sebagian besar expensive persis di mana Anda memiliki paling halaman. memperbaiki adalah yang sama ones dari ecommerce dan faceted-navigation SEO; PWA layer tidak perubahan them, ini hanya membuat SSR/prerender discipline lebih penting.

Bing dan PWAs

Worth sebuah line: Bing memiliki published Tidak PWA-spesifik peringkat atau pengindeksan guidance. -nya webmaster guidelines adalah PWA-agnostic (umum crawlability, sitemaps, robots.txt, IndexNow), dan Microsoft’s extensive PWA docs adalah entirely tentang Edge install prompts, PWABuilder, dan Microsoft Store packaging — distribution dan installation, sebuah terpisah track dari web-penelusuran pengindeksan. So untuk Bing, default untuk ordinary JS-rendering crawlability guidance; ada Tidak PWA exception untuk learn.

intinya

PWA SEO adalah JavaScript/SPA SEO plus persis dua additions: ignore manifest sebagai sebuah SEO input (ini adalah untuk installability), dan configure service worker so ini tidak pernah traps Googlebot di sebuah stale atau offline cache. Mendapatkan itu right dan sebuah PWA indeks persis like apa pun lainnya well-dibangun situs — Tidak bonus, Tidak penalty, hanya yang sama aturan.

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.