PWA için SEO
Progressive Web App SEO — "PWA'ya geçmek" sıralamaları neden iyileştirmez, manifest.json'ın SEO ile neden ilgisiz olduğu, hatalı yapılandırılmış bir service worker'ın Googlebot'a bayat bir önbellek sunabileceği ve Core Web Vitals ile HTTPS'in SEO ile gerçekte nerede (ve nerede olmadığı) örtüştüğü.
Diller
Bir PWA, manifest ve service worker ile geliştirilmiş bir web sitesidir — Google için hâlâ normal (genellikle JavaScript/SPA) bir sitedir ve doğuştan gelen bir sıralama avantajı yoktur. manifest.json SEO ile ilgisizdir (yüklenebilirliği kontrol eder, dizine eklemeyi değil). Gerçek PWA'ya özgü tek risk service worker'dır: Google'ın işleyicisi dizine eklerken service worker'ları çalıştırmaz, bu nedenle önbellek öncelikli bir HTML stratejisi Googlebot'a bayat veya çevrimdışı bir sayfa sunabilir. Bunu HTML için ağ öncelikli stratejiyle düzeltin; gerisi sıradan JS/SPA SEO'dur.
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 basicsTL;DR — Bir PWA (Progressive Web App), üzerine iki ekstra eklenmiş normal bir web sitesidir: kullanıcıların onu ana ekranına yüklemesini sağlayan bir manifest ve onu çevrimdışı çalıştırabilen bir service worker. Google için hâlâ sadece bir web sitesidir — PWA olmak sıralamanızı yükseltmez. Size gerçekten zarar verebilecek tek şey, Google’a canlı sayfanız yerine eski, önbelleğe alınmış bir sayfa gösteren kötü kurulmuş bir service worker’dır.
PWA gerçekte nedir
Bir Progressive Web App, yerel bir uygulama gibi hissettirecek şekilde geliştirilmiş bir web sitesidir. Onu PWA yapan iki parça vardır:
- Bir web uygulama manifesti (
manifest.json) — tarayıcıya uygulamanızın adını, simgelerini ve renklerini söyleyen küçük bir dosya; böylece ziyaretçi “Ana Ekrana Ekle”ye dokunup uygulama tarzı bir simge ve açılış ekranı alabilir. - Bir service worker — arka planda çalışan ve dosyaları önbelleğe alabilen, böylece site tekrar ziyaretlerde hızlı yüklenen ve hatta çevrimdışı çalışan bir JavaScript parçası.
Hepsi bu. Altında, bir PWA neredeyse her zaman normal bir JavaScript web sitesidir (React, Vue, Angular vb.). Uygulama kostümü giymiş normal bir sitedir.
Yıkılması gereken büyük efsane
İnsanların en çok inandığı şey şudur: “Sitemizi PWA’ya çevirirsek daha iyi sıralanırız.” Google bunun doğru olmadığını açıkça söyledi. Google’dan John Mueller bunu doğrudan ifade etti: PWA’lar “şu anda Google Arama’da herhangi bir avantaja sahip değil.” Sıralama sistemlerinde “PWA bonusu” yoktur.
Manifest dosyası SEO’ya da yardımcı olmaz. Uygulamanın nasıl kurulacağını kontrol eder — simge, ad, açılış ekranı — Google’ın sizi sıralamaya karar verirken okuduğu hiçbir şey değildir.
Gerçekten zarar verebilecek tek şey
Service worker dikkat edilmesi gereken kısımdır. Sayfalarınızın önbelleğe alınmış (kaydedilmiş) bir kopyasını sunabildiği için, kötü bir kurulum Google’a gerçek, güncel sayfa yerine eski veya hatta boş bir “çevrimdışısınız” sürümünü gösterebilir. Bir PWA’nın lansmandan sonra trafik kaybetmesinin yolu budur — “PWA olduğu için” değil, önbelleğe alma yanlış yöne işaret ettiği için.
Gerçekte ne yapmalı
- Gerçek sayfa içeriğinizin arama motorlarına yüklendiğinden emin olun, sadece sonradan JavaScript ile doldurulan boş bir kabuk değil.
- Service worker’ınızı, önce ağdan taze HTML getirecek ve yalnızca görseller ve stil sayfaları gibi şeylerde hız için önbelleğe geri dönecek şekilde ayarlayın.
- Temel şeyleri doğru yapın: gerçek, benzersiz URL’ler; her sayfada iyi bir başlık ve meta açıklama; hızlı, güvenilir bir deneyim.
PWA olmak kullanıcılarınız için harikadır — kurulabilir, hızlı, çevrimdışı dostu. Sadece sizi Google’da yukarı taşımasını beklemeyin ve service worker’ın Google’a yanlış sayfayı beslemesine izin vermeyin. Gelişmiş sekmesinde mekanikler, önbelleğe alma stratejileri ve alıntılar vardır.
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 basicsTL;DR — Bir PWA, neredeyse her zaman bir JS/SPA sitesinin üzerine eklenmiş bir manifest + bir service worker’dır — bu nedenle JavaScript/SPA SEO’daki işleme kuralları değişmeden geçerlidir, artı iki PWA’ya özgü endişe. Google, PWA’lara sıralama avantajı vermez (Mueller).
manifest.jsonkurulabilirliği yönetir, dizine eklemeyi değil ve sıralama sistemlerinin onu okuduğuna dair bir kanıt yoktur. Service worker gerçek risktir: Google’ın işleyicisi dizine eklerken service worker’ları çalıştırmaz, bu nedenle önbellek-öncelikli bir HTML stratejisi eski veya çevrimdışı bir kabuğu dizine ekleyebilir — HTML için ağ-öncelikli, statik varlıklar için önbellek-öncelikli kullanın. HTTPS, service worker’lar için zorunlu bir gereksinimdir ve ayrıca küçük bir sıralama sinyalidir; bunları “PWA’lar daha iyi sıralanır” şeklinde zincirlemeyin. Core Web Vitals tek meşru örtüşmedir ve bu mühendisliktir, PWA etiketi değil.
Bir PWA önce bir web sitesidir
En kullanışlı çerçeve: bir Progressive Web App, üzerine iki şey eklenmiş normal bir web sitesidir. Google’ın kendi tanımına göre, PWA’lar “tek bir kod tabanıyla her cihazda her web kullanıcısına ulaşırken gelişmiş yetenekler sağlamak için modern API’lerle oluşturulmuş ve geliştirilmiş web uygulamalarıdır.” Google’ın adlandırdığı üç sütun Yetenekli, Güvenilir ve Kurulabilir — üçünün de “sıralanabilir” olmadığını unutmayın.
Mimari olarak, bu kod tabanı neredeyse her zaman tek sayfalık uygulama desenini çalıştıran bir JavaScript çerçevesidir. Bu şu anlama gelir: JS/SPA dizine eklenebilirliğini yöneten her şey, PWA dizine eklenebilirliğini de değişiklik yapılmadan yönetir. Adreslenebilirlik için gerçek <a href> bağlantıları ve History-API yönlendirmesi (karma parçalar değil); içerik kullanılabilirliği için sunucu tarafı oluşturma veya ön oluşturma; işlenmiş DOM’da rota başına canonical, başlık ve meta. JavaScript SEO ve SPA SEO materyallerini okuduysanız, PWA SEO’nun %90’ını zaten biliyorsunuzdur — özellikle uygulama kabuğu hatası modu, Google’ın açıkça belgelediği bir durumdur: “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.” (çeviri) «Bazı JavaScript siteleri, ilk HTML’in gerçek içeriği içermediği ve Google’ın JavaScript’in ürettiği gerçek sayfa içeriğini görebilmesi için JavaScript’i çalıştırması gerektiği uygulama kabuğu modelini kullanabilir.» SSR/ön oluşturma olmadan boş bir kabuk gönderen bir PWA, bu sorunu doğrudan devralır.
Dolayısıyla, PWA’ya özgü bir SEO makalesinin dürüst kapsamı küçüktür: manifest ve servis çalışanı. Diğer her şey, manifest giymiş JS/SPA SEO’dur.
Temel efsane: “PWA’ya geçmek” sıralamaları iyileştirmez
Bu manşet. Google bu konuda alışılmadık derecede açık davrandı. John Mueller, bir Search Central ofis saatleri oturumunda, PWA’ların “currently don’t have any advantage in Google Search, and as far as I know, there are no plans to change this,” (çeviri) «şu anda Google Arama’da hiçbir avantajı yok ve bildiğim kadarıyla bunu değiştirme planı da yok» dedi ve — PWA’ya dönüştürmenin yardımcı olup olmayacağı sorulduğunda — “By default, saying going to a PWA will make your rankings better — I don’t think that is the case.” (çeviri) «Varsayılan olarak, bir PWA’ya geçmenin sıralamalarınızı iyileştireceğini söylemek — bence durum böyle değil.»
Ayrıca, “rakibimiz PWA’ya geçti ve sıralamaları fırladı” şeklindeki olağan karşı argümanı da önceden ele aldı. Yanıtı: “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.” (çeviri) «Yani sadece rakiplerinizden birinin bir çerçeveden diğerine geçmesi ve aramada bir iyileşme görmesi, benim açımdan bu çerçeve değişikliği bundan sorumlu olmaz.» Ve nedenine gelince: “These are essentially different ways of making a website… for the most part, we see these as normal HTML pages.” (çeviri) «Bunlar esasen bir web sitesi yapmanın farklı yolları… çoğunlukla bunları normal HTML sayfaları olarak görüyoruz.»
PWA yeniden lansmanlarının sıralama artışlarıyla ilişkili olduğu durumlarda, bunlar her büyük yeniden yapılanmayla gelen karıştırıcı faktörlerdir: modernize edilmiş iç bağlantı, yenilenmiş ve genişletilmiş içerik, gerçek hız iyileştirmeleri ve genellikle yeniden lansmana bağlı bir pazarlama hamlesi. Bunların hiçbiri PWA etiketini gerektirmez. 10-15 yıllık organik olarak büyümüş bir siteyi yeniden inşa ederseniz, aynı anda bir düzine şeyi değiştirirsiniz — sonucu “PWA”ya atfetmek bir korelasyon hatasıdır.
Mueller’ın yukarıdaki ofis saatleri açıklamaları Search Engine Journal ve aynı Kasım 2021 oturumunu kapsayan bağımsız olarak Search Engine Roundtable tarafından aktarılmıştır; orijinal videoyu yeniden izlemedim, bu yüzden bunları raporlanmış-resmi olarak değerlendirin.Manifest.json: kurulabilirlik ≠ dizine eklenebilirlik
manifest.json dosyası, uygulamanızı kurulabilir yapmak için vardır. Alanları — name, short_name, icons, start_url, display, theme_color — kurulum istemini, ana ekran simgesini, açılış ekranını ve uygulamanın bağımsız mı yoksa bir tarayıcı sekmesinde mi açılacağını yönlendirir. Tüm iş budur.
Google’ın sıralama veya dizine ekleme sistemlerinin manifesti bir sinyal olarak okuduğuna dair hiçbir kanıt yok. En net harici doğrulama, Google’ın “Is installable” (çeviri) «Kurulabilir mi» ve “Discoverable in search” (çeviri) «Aramada keşfedilebilir mi» öğelerini iki ayrı, bağımsız kontrol listesi kategorisi olarak listeleyen kendi PWA kontrol listesidir — burada keşfedilebilirlik, sıradan SEO temelleri olarak tanımlanır: “Enable search engine discovery through unique URLs, descriptive titles, meta descriptions, and structured data.” (çeviri) «Benzersiz URL’ler, açıklayıcı başlıklar, meta açıklamalar ve yapılandırılmış veriler aracılığıyla arama motoru keşfini etkinleştirin.» Kurulabilirlik (manifest odaklı) ve keşfedilebilirlik (klasik SEO) paralel konular olarak ele alınır, biri diğerini beslemez. Yani: uygulamayı kurulabilir yapan şey olduğu için geçerli bir manifest tutun — sadece onu SEO altına dosyalamayın.
Google, manifest.json’un sıralamadan hariç tutulduğunu tam kelimelerle belirten bir sayfa yayınlamaz; bu, “avantaj yok” ifadesinden, kontrol listesinin iki kategoriyi ayırmasından ve manifest’in Google’ın sıralama faktörü belgelerinde tamamen bulunmamasından iyi desteklenen bir çıkarımdır — bunu “okunduğuna dair kanıt yok” olarak ifade edin, “yok sayıldığı doğrulandı” değil.Service worker’lar: PWA’ya özgü tek gerçek SEO riski
İşte en önemli olan ve PWA’ya özgü olan gerçek: Google’ın oluşturma hizmeti, bir sayfayı dizinleme için oluştururken service worker’ınızı çalıştırmaz. Bunun nedeni, Martin Splitt’ten: “SERP’ten sayfanıza tıklayan birinin ilk kez gelen bir ziyaretçi olduğunu varsaymamız gerektiğinden, bir service worker çalıştırmak genellikle pek bir işe yaramaz.” Bir service worker’ın tüm amacı, tekrarlanan ziyaretleri bir önbellekten hızlandırmaktır — ve Googlebot, tasarım gereği, her zaman ilk kez gelen bir ziyaretçi gibi ele alınır, bu yüzden hızlandıracak bir şey yoktur. Splitt yine: “Bunu desteklemiyoruz çünkü arama sonucundan sayfanıza tıklayan kullanıcılar daha önce orada bulunmamış olabilir.” Mueller bunun geçici bir durum değil, istikrarlı bir politika olduğunu doğruladı: “Değişmesini beklemiyorum — dizinleme için service worker’ları arka planda bu şekilde çalıştırmak hesaplama açısından pahalıdır.”
Bu üç temsilci ifadesi SearchViu tarafından aktarılmıştır (Splitt, Google I/O 2019/2020’de; Mueller Temmuz 2023’te bildirildi); Splitt ve Mueller alıntılarının o sayfada tam alt dizeler olarak geçtiğini doğruladım, ancak bunlar üçüncü taraf bir aktarım, Google’a ait bir URL değil. Ayrıca “asla çalıştırmaz” ifadesinin biraz fazla mutlak olduğunu unutmayın — Google’dan Splitt, web worker’ların bazen çalışabileceğini belirtmiştir; güvenli çerçeve “oluşturma hizmeti service worker’ları tasarım gereği çalıştırmaz” şeklindedir, “hiçbir koşulda” değil.Peki bu neden bir risk? Çünkü service worker’ınız gerçek kullanıcıların tarayıcılarında çalışır ve ona HTML’i önbellek-öncelikli sunmasını söylediyseniz — kaydedilmiş kopyayı döndür, ağı atla — o zaman gerçek bir tekrar ziyaretçi hızlı bir önbelleklenmiş sayfa görür, ancak bu Googlebot’un asla uygulamadığı bir stratejidir. Tehlike ters durumdur: herhangi bir hata veya geri dönüş koşulunda eski bir belgeyi veya çevrimdışı geri dönüş sayfasını geri veren bir önbellekleme deseni. Oluşturma durumsuz olduğundan ve WRS her getirmeyi taze olarak ele aldığından, yanlış yapılandırılmış bir önbellekleme stratejisi, bir PWA’nın canlı içerik yerine güncel olmayan veya boş bir çevrimdışı kabuğu dizinlemesine neden olur.
Önbellekleme stratejisi temel kuralı:
- HTML belgeleri → ağ-öncelikli (veya kısa TTL ile stale-while-revalidate). Canlı sayfayı al; önbelleği yalnızca çevrimdışı geri dönüş olarak kullan ve bu geri dönüşün taze bir taramanın asla dizinlemeyeceği bir şey olmadığından emin ol.
- Statik varlıklar (JS, CSS, görseller, yazı tipleri) → önbellek-öncelikli uygundur ve arzu edilir — bunlar istek başına değişmez ve dizinlenebilir belge değildir.
Nasıl denetlenir: Googlebot’un gördüğünü, tekrar ziyaret eden bir ziyaretçinin tarayıcısının önbellekten sunduğuyla karşılaştırın. Google’ın gerçekte aldığı oluşturulmuş HTML’yi görmek için Search Console’da URL İnceleme (canlı test) kullanın ve bunu canlı sayfayla kontrol edin. Farklılarsa, service worker’ınız veya SSR kurulumunuz ilk şüphelidir. Ve hibrit kurulumlarda oluşturma zaman aşımlarını izleyin — Hamlet Batista’nın dinamik owuşturma döneminden belirttiği gibi, “Oluşturma hizmetleri bir sayfanın yüklenmesini bitirmesini sonsuza kadar beklemez.” (Bu belirli makale, Google’ın artık SSR lehine caydırdığı dinamik oluşturma hakkındadır — zaman aşımı ilkesini belirtin, deseni değil.)
HTTPS: bir service worker gereksinimi ve ayrıca küçük bir sıralama sinyali
PWA SEO yazılarının “PWA’lar HTTPS gerektirir ve HTTPS sıralamayı artırır, bu nedenle PWA’lar daha SEO dostudur” ima ettiğini göreceksiniz. İki doğru gerçek, yanlış bağlanmış.
Fact one: service workers only run in a secure context. Per 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.” That’s a browser platform rule, not an SEO tactic — no HTTPS, no service worker, full stop.
Gerçek iki: HTTPS gerçek bir Google sıralama sinyalidir, ancak çok küçük bir tanesidir. Google’ın kendi 2014 duyurusu: “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.” (çeviri) «HTTPS’yi bir sıralama sinyali olarak kullanmaya başlıyoruz. Şimdilik bu yalnızca çok hafif bir sinyal — küresel sorguların %1’inden azını etkiliyor ve yüksek kaliteli içerik gibi diğer sinyallerden daha az ağırlık taşıyor.»
Önemli olan: herhangi bir HTTPS sitesi aynı küçük sinyali alır — PWA olsun ya da olmasın. Bir PWA, HTTPS için ekstra SEO kredisi almaz; sadece HTTPS olmadan çalışamaz. HTTPS’i bir PWA SEO avantajı olarak satmayın.
Core Web Vitals: tek meşru kesişim
“İyi PWA” ile “iyi SEO”nun gerçekten buluştuğu bir yer varsa, o da performanstır. Google’ın PWA rehberi güvenilirlikle başlar — “A reliable Progressive Web App feels fast and dependable regardless of the network” (çeviri) «Güvenilir bir Progressive Web App, ağdan bağımsız olarak hızlı ve güvenilir hissettirir» — ve Core Web Vitals, doğrulanmış (mütevazı da olsa) bir sıralama faktörüdür. Hızlı yüklenen ve duyarlı kalan iyi tasarlanmış bir PWA, Vitals’ta iyi puan alma eğiliminde olacaktır.
Ancak nedenselliği dikkatlice okuyun: önemli olan mühendisliktir, PWA olması değil. Şişkin bir PWA — devasa JS paketi, işlemeyi engelleyen hidrasyon, aşırı hevesli bir servis çalışanı — düz sunucu tarafından işlenen bir sayfadan kolayca daha kötü Core Web Vitals sonuçları verebilir. Vitals kazancı, performans işini iyi yapmaktan gelir; bunu manifest ile veya manifest olmadan da yapabilirsiniz. PWA olmak ne iyi Vitals’ı garanti eder ne de onlara kısayol sağlar.
Uygulama benzeri özellikler UX’tir, sıralama faktörü değil
Ana ekrana ekleme, çevrimdışı mod, anlık bildirimler, uygulama benzeri gezinme — tümü gerçek ve değerli PWA avantajlarıdır ve tümü etkileşim/sadakat özellikleridir, dizine ekleme veya sıralama girdileri değil. Google’ın PWA kontrol listesi, “kurulabilir” ve “arama motorunda keşfedilebilir” ifadelerini ayrı kategorilere koyarak bu ayrımı açıkça ortaya koyar.
“Kurulabilir”i tek ve evrensel bir yetenek olarak da ele almayın — tarayıcıya ve işletim sistemine göre değişir; bu da onun bir SEO sinyali olamamasının bir başka nedenidir (Google’ın ödüllendireceği tutarlı, tarayıcılar arası bir davranışı olmazdı). Bir PWA’nın kendi özel kurulum arayüzünü göstermesini sağlayan beforeinstallprompt olayı yalnızca Chromium’a özgü bir mekanizmadır; MDN’nin PWA kurulabilirlik rehberine göre, “not supported on iOS.” (çeviri) «iOS’ta desteklenmez.» iOS Safari’de kurulum yalnızca manuel Paylaş → Ana Ekrana Ekle akışıyla gerçekleşir (iOS 16.4+ üzerinde Chrome, Edge, Firefox ve Orion’a genişletilmiştir; bunların tümü iOS’ta Apple’ın zorunlu WebKit motorunu kullanır ve bu nedenle bu sınırlamayı paylaşır), otomatik bir istemle değil. Bunların hiçbiri SEO tablosunu değiştirmez — sadece “PWA’m kurulabilir mi” sorusunun, ziyaretçinin hangi tarayıcıda ve işletim sisteminde olduğundan bağımsız bir evet/hayır gerçeği olmadığı anlamına gelir.
Twitter Lite, herkesin “PWA’ların SEO’ya yardımcı olduğunun” kanıtı olarak başvurduğu vaka çalışmasıdır — ve belgelenen sonuçları gerçektir (oturum başına sayfada %65 artış, gönderilen Tweet’lerde %75 artış, hemen çıkma oranında %20 azalma) — ancak bunların her biri bir etkileşim metriğidir. Google’ın bu konudaki kendi vaka çalışması SEO’dan, organik aramadan veya sıralamalardan hiç bahsetmez. Harika sonuç; yanlış sütun.
E-ticaret PWA mağaza vitrinleri: kısa bir not
PWA mağaza vitrinleri, SPA risklerini artırdıkları için belirtmeye değer birkaç pürüz ekler. İstemci tarafı yönlendirme ve çok yönlü gezinme, aynı kabuğa çözümlenen taranabilir görünümlü URL’ler veya bir parametre URL patlaması oluşturabilir. Sepet ve ödeme durumu istemci tarafında yaşar ve dizine eklenebilir ürün içeriğini asla engellememelidir. Ve her ürün sayfası bağımsız olarak gerçek, benzersiz HTML döndürmelidir — uygulama kabuğu tuzağı en çok sayfaya sahip olduğunuz yerde en pahalıdır. Çözümler, e-ticaret ve çok yönlü gezinme SEO’sundakiyle aynıdır; PWA katmanı bunları değiştirmez, yalnızca SSR/prerender disiplinini daha önemli hale getirir.
Bing ve PWA’lar
Bir satır değer: Bing, PWA’ya özel hiçbir sıralama veya dizine ekleme kılavuzu yayınlamadı. Web yöneticisi kılavuzları PWA’dan bağımsızdır (genel taranabilirlik, sitemaps, robots.txt, IndexNow) ve Microsoft’un kapsamlı PWA belgeleri tamamen Edge kurulum istemleri, PWABuilder ve Microsoft Store paketlemesiyle ilgilidir — dağıtım ve kurulum, web araması dizine eklemeden ayrı bir yol. Bu nedenle Bing için sıradan JS işleme taranabilirlik kılavuzunu varsayılan alın; öğrenilecek bir PWA istisnası yok.
Sonuç
PWA SEO, JavaScript/SPA SEO artı tam olarak iki eklemedir: manifesti bir SEO girdisi olarak yok sayın (kurulabilirlik içindir) ve hizmet çalışanını Googlebot’u asla bayat veya çevrimdışı bir önbellekte hapsetmeyecek şekilde yapılandırın. Bunları doğru yapın ve bir PWA, diğer iyi yapılandırılmış sitelerle tam olarak aynı şekilde dizine eklenir — bonus yok, ceza yok, sadece aynı kurallar.
AI özeti
Gelişmiş sürümün yoğunlaştırılmış bir değerlendirmesi:
- Bir PWA önce bir web sitesidir. Neredeyse her zaman bir JS/SPA sitesi üzerine katmanlanmış bir
manifest.json(kurulabilirlik) + bir hizmet çalışanıdır (çevrimdışı/önbellekleme). Tüm JavaScript/SPA SEO kuralları değişmeden uygulanır. - Sıralama avantajı yok. Google’dan John Mueller: PWA’lar “şu anda Google Arama’da herhangi bir avantaja sahip değil.” “PWA’ya geçmek” sıralamaları iyileştirmez.
- Manifest.json SEO ile ilgisizdir. Kurulum istemlerini, simgeleri,
start_url’i,display’i kontrol eder — sıralama sistemlerinin bunu okuduğuna dair hiçbir kanıt yok. Google’ın PWA kontrol listesi “kurulabilir” ve “aramada keşfedilebilir”i ayrı kategoriler olarak listeler. - Tek gerçek risk hizmet çalışanıdır. Google’ın işleyicisi dizine eklerken hizmet çalışanlarını çalıştırmaz (her taramayı ilk ziyaret olarak ele alır), bu nedenle önbellek-öncelikli bir HTML stratejisi bayat veya çevrimdışı bir kabuğu dizine ekleyebilir. HTML için ağ-öncelikli, statik varlıklar için önbellek-öncelikli kullanın.
- HTTPS ≠ bir PWA SEO avantajı. Hizmet çalışanları için (güvenli bağlam) zorunlu bir gereksinimdir ve ayrıca her HTTPS sitesinin aldığı “çok hafif” bir sıralama sinyalidir. İkisini birbirine bağlamayın.
- Core Web Vitals tek meşru örtüşmedir — ve bu performans mühendisliğidir, PWA etiketi değil. Şişkin bir PWA daha kötü puan alabilir.
- Uygulama benzeri özellikler (kurulum, çevrimdışı, push) etkileşimdir, sıralama değil. Twitter Lite’ın ünlü kazanımları etkileşim metrikleridir; bu vaka çalışması SEO’dan asla bahsetmez. Kurulabilirlik tarayıcıya/işletim sistemine göre değişir (iOS Safari’de
beforeinstallpromptyoktur, yalnızca manuel Ana Ekrana Ekle vardır) — sıralama sinyali olamamasının bir nedeni daha. - Bing PWA’ya özel bir kılavuza sahip değildir; sıradan JS taranabilirliğini varsayılan alın.
Resmi dokümantasyon
PWA’lar, işleme ve bu makalenin dayandığı gerçekler hakkında birincil kaynak materyali.
Google / web.dev
- Progressive Web Apps nedir? — Google’ın tanımı ve üç sütun (Yetenekli, Güvenilir, Kurulabilir).
- İyi bir Progressive Web App’i ne yapar? (PWA kontrol listesi) — “Kurulabilir” ile “Aramada keşfedilebilir”i ayrı kategoriler olarak ayırır.
- Hizmet çalışanları (Learn PWA) — önbellekleme stratejileri ve hizmet çalışanı yaşam döngüsü.
- JavaScript SEO Temellerini Anlayın — Google’ın belgelediği uygulama kabuğu hata modu.
- Dizine Eklenebilir Progressive Web Apps Oluşturma (2016) — Google’ın orijinal PWA dizine eklenebilirlik yazısı.
- Twitter Lite vaka çalışması — etkileşim metrikleri (not: hiçbir yerinde SEO/organik iddiası yok).
- HTTPS bir sıralama sinyali olarak (2014) — “çok hafif sinyal” ifadesi.
MDN / platform
- Service Worker API — güvenli bağlam (HTTPS) gereksinimi.
- Making PWAs installable — tarayıcı/işletim sistemi kurulabilirlik farklılıkları,
beforeinstallprompt’un iOS’ta neden desteklenmediği dahil.
Bing / Microsoft (PWA’ya özel sıralama rehberi yoktur — bunlar kurulum/dağıtım belgeleridir)
- Bing Webmaster Guidelines — genel taranabilirlik; PWA’dan bağımsız.
- Overview of Progressive Web Apps (PWAs) — Edge kurulum ve dağıtım odaklı.
Kaynaktan alıntılar
Kayıt altına alınmış ifadeler. Bir alıntı, Google’a ait bir URL yerine üçüncü bir tarafça aktarılıyorsa, uyarı bunu belirtir.
Google — PWA sıralama avantajı yok
- “PWAs currently don’t have any advantage in Google Search, and as far as I know, there are no plans to change this.” (çeviri) «PWA’ların şu anda Google Arama’da hiçbir avantajı yok ve bildiğim kadarıyla bunu değiştirme planı da yok.» — John Mueller, Google, Search Central ofis saatleri (Kas 2021). Haberin tamamını okuyun
- “By default, saying going to a PWA will make your rankings better — I don’t think that is the case.” (çeviri) «Varsayılan olarak, bir PWA’ya geçmenin sıralamalarınızı iyileştireceğini söylemek — bence durum böyle değil.» — John Mueller, aynı oturum. Haberin tamamını okuyun
- “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.” (çeviri) «Yani bir rakibinizin bir çerçeveden diğerine geçmesi ve aramada bir iyileşme görmesi, benim açımdan bu çerçeve değişikliği bundan sorumlu olmaz.» — John Mueller, aynı oturum. Haberin tamamını okuyun
Google — PWA nedir ve uygulama kabuğu riski
- “Progressive Web Apps (PWA) 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.” (çeviri) «Progressive Web Apps (PWA), tek bir kod tabanıyla herhangi bir cihazdaki her web kullanıcısına ulaşırken gelişmiş yetenekler sağlamak için modern API’lerle oluşturulmuş ve geliştirilmiş web uygulamalarıdır.» — web.dev. Alıntıya git
- “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.” (çeviri) «Bazı JavaScript siteleri, ilk HTML’in gerçek içeriği içermediği ve Google’ın JavaScript’in ürettiği gerçek sayfa içeriğini görebilmesi için JavaScript’i çalıştırması gerektiği uygulama kabuğu modelini kullanabilir.» — Google Search Central. Alıntıya git
- “Enable search engine discovery through unique URLs, descriptive titles, meta descriptions, and structured data.” (çeviri) «Benzersiz URL’ler, açıklayıcı başlıklar, meta açıklamalar ve yapılandırılmış veriler aracılığıyla arama motoru keşfini etkinleştirin.» — web.dev PWA kontrol listesi, “Aramada keşfedilebilir.” Alıntıya git
Google — service worker’lar ve dizinleme (aktarıldı)
- “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.” (çeviri) «SERP’ten sayfanıza tıklayan birinin ilk kez gelen bir ziyaretçi olduğunu varsaymamız gerektiğinden, bir service worker çalıştırmak genellikle pek bir işe yaramayacaktır.» — Martin Splitt, Google. Haberin tamamını okuyun
- “We’re not supporting that because users clicking onto your page from the search result might never have been there beforehand.” (çeviri) «Bunu desteklemiyoruz çünkü arama sonucundan sayfanıza tıklayan kullanıcılar daha önce orada bulunmamış olabilir.» — Martin Splitt, Google (Google I/O 2019). Haberin tamamını okuyun
- “I wouldn’t expect it to change — it’s computationally expensive to run service-workers in the background like this for indexing.” (çeviri) «Değişmesini beklemiyorum — dizinleme için service worker’ları arka planda bu şekilde çalıştırmak hesaplama açısından pahalıdır.» — John Mueller, Google (Temmuz 2023’te rapor edildi). Haberin tamamını okuyun
HTTPS: platform gereksinimi ve sıralama sinyali
- “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.” — MDN, Service Worker API. Jump to quote
- “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.” — Google, “HTTPS as a ranking signal” (2014). Jump to quote
Kurulabilirlik tarayıcıya/işletim sistemine göre değişir
- “This is not supported on iOS.”
(çeviri) «Bu iOS’ta desteklenmez.»
— MDN,
beforeinstallpromptözel kurulum istemi olayı hakkında. Alıntıya git
beforeinstallprompt kullanımını açıklayan bölümün hemen ardından.İşleme zaman aşımları hakkında (tarihsel bağlam)
- “Rendering services won’t wait forever for a page to finish loading.” (çeviri) «İşleme hizmetleri, bir sayfanın yüklenmesini bitirmesi için sonsuza kadar beklemeyecektir.» — Hamlet Batista, Search Engine Land. Makaleyi oku
PWA’ya geçmeli miyim — ve SEO için ne yapacak?
İnsanların bu konuya gerçekten getirdiği sorulara hızlı bir bakış.
“Bir PWA düşünüyoruz. SEO’muza yardımcı olur mu?”
- Doğal bir sıralama avantajı yok — Google, PWA’ların Arama’da hiçbir avantaj elde etmediğini söylüyor. → Bir PWA’yı kullanıcı yararları için (kurulabilir, çevrimdışı, hızlı tekrar yüklemeler) oluşturun, sıralamalar için değil. → SEO’ya zarar vermez de, sürece işleme ve servis çalışanınız doğru şekilde ayarlanmışsa (aşağıda devam edin).
“Bir PWA oluşturuyoruz/oluşturduk. İçeriğim gerçekten dizine eklenebilir mi?”
- İlk HTML gerçek içeriği içeriyor mu (SSR/ön işleme) yoksa JS tarafından doldurulan boş bir
uygulama kabuğu mu?
- Boş kabuk, SSR yok → bu uygulama kabuğu tuzağıdır. PWA’ya özgü herhangi bir şeyden önce SSR veya ön işleme ekleyin. (Herhangi bir SPA ile aynı düzeltme.)
- SSR/ön işleme yerinde → iyi; servis çalışanına geçin.
“Servis çalışanım sayfaları nasıl önbelleğe almalı?”
- HTML belgeleri → ağ-öncelikli (veya kısa TTL ile bayat-iken-yeniden-doğrula). HTML için asla önbellek-öncelikli değil.
- Statik varlıklar (JS/CSS/görseller/yazı tipleri) → önbellek-öncelikli iyi ve uygundur.
- Çevrimdışı yedek sayfa → taze bir taramanın dizine eklediği sürümün asla bu olmamasını sağlayın.
“PWA’m lansmandan sonra sıralamaları/trafiği kaybetti. Nereye bakmalıyım?”
- Search Console’da URL İnceleme (canlı test) çalıştırın — Google gerçek sayfayı mı yoksa bayat/çevrimdışı/boş bir sayfayı mı görüyor?
- Bayat veya boşsa → servis çalışanı önbelleğe alma stratejisinden (önbellek-öncelikli HTML) veya eksik bir SSR adımından şüphelenin.
- İçerik oradaysa ancak sıralamalar hâlâ düştüyse → yeniden oluşturmanın başka neyi değiştirdiğine bakın: iç bağlantılar, içerik, yönlendirmeler, hız. PWA etiketi nadiren nedendir.
“Manifest için SEO açısından özel bir şey yapmam gerekiyor mu?”
- Hayır. Kurulabilirlik için geçerli tutun; SEO rolü yoktur. Çabayı URL’lere, başlıklara, meta verilere, yapılandırılmış verilere ve Core Web Vitals’a harcayın.
PWA SEO kontrol listesi
Bir Progressive Web App’i taranabilir ve dizine eklenebilir tutmak için hızlı bir kontrol:
- Gerçek içerik sunucu tarafında işlenir veya önceden işlenir — yükleme sonrası JavaScript ile doldurulan boş bir uygulama kabuğu değil.
- Her rota, History API aracılığıyla gerçek, benzersiz bir URL’ye sahiptir (hash/
#!yönlendirme yok). - Her rota, işlenmiş DOM’da kendi canonical, başlık ve meta açıklamasını döndürür.
- Servis çalışanı HTML’i ağ öncelikli (veya bayatken yeniden doğrula, kısa TTL) sunar — HTML belgeleri için asla önbellek öncelikli değil.
- Statik varlıklar (JS/CSS/görseller/yazı tipleri) önbellek öncelikli olabilir; bu sorun değildir.
- Çevrimdışı yedek sayfa, yeni bir taramanın dizine eklediği şey asla olamaz.
- URL İnceleme (canlı test), Google’a gerçek, güncel sayfayı gösterir — canlı sayfayla karşılaştırıldığında.
- Manifest kurulabilirlik için geçerlidir, ancak onu bir SEO kaldıracı olarak görmüyorsunuz.
- Kurulabilirlik tarayıcı/işletim sistemi başına test edilir, evrensel varsayılmaz (iOS Safari’de
beforeinstallpromptyoktur; manuel Ana Ekrana Ekle’dir) — ve bu farklılıkların hiçbiri SEO sorunu olarak ele alınmaz. - HTTPS üzerinden sunulur (servis çalışanları için zaten gereklidir).
- Core Web Vitals sağlıklıdır — JS paketinin ve hidrasyonun LCP/INP’yi düşürmediğini doğrulayın.
- E-ticaret: ürün sayfalarının her biri gerçek benzersiz HTML döndürür; çok yönlü gezinme/istemci yönlendirmesi yalnızca kabuk veya sonsuz parametre URL’leri üretmiyor.
PWA SEO — kopya kağıdı
SEO’yu etkiler mi?
| PWA bileşeni | Ne yapar | SEO etkisi |
|---|---|---|
manifest.json | Kurulum istemi, simgeler, start_url, display | Yok — sıralama sistemleri tarafından okunmaz |
| Servis çalışanı | Çevrimdışı, arka plan önbelleği, push | Yalnızca risk — yanlış yapılandırılırsa Googlebot’a bayat/çevrimdışı HTML sunabilir |
| HTTPS | Servis çalışanları için gereklidir (güvenli bağlam) | Küçük sıralama sinyali — her HTTPS sitesi alır, PWA olsun ya da olmasın |
| Ana ekrana ekle / push / çevrimdışı | Uygulama benzeri UX | Yok — etkileşim, sıralama değil |
| Core Web Vitals | Yükleme/etkileşim/kararlılık | Gerçek (mütevazı) sıralama faktörü — bu mühendisliktir, PWA etiketi değil |
| Altta yatan JS/SPA işleme | Sayfanın nasıl oluşturulduğu | Gerçek savaş alanı — SSR/ön işleme, gerçek URL’ler, rota başına meta veri |
Kaynak türüne göre servis çalışanı önbelleği
| Kaynak | Strateji | Neden |
|---|---|---|
| HTML belgeleri | Ağ öncelikli / bayatken yeniden doğrula | Google SW’nizi asla çalıştırmaz; canlı HTML görmelidir |
| JS / CSS | Önbellek öncelikli | Statik, sürümlü, dizine eklenebilir belge değil |
| Görseller / yazı tipleri | Önbellek öncelikli | Statik, agresif önbelleğe almak güvenli |
| Çevrimdışı yedek | Yalnızca gerçekten çevrimdışıyken sun | Dizine eklenen sürüm asla olmamalı |
Hızlı gerçekler
- Google, PWA’lara sıralama avantajı vermez (Mueller).
- Google’ın işleyicisi, dizine eklerken servis çalışanlarını çalıştırmaz.
- HTTPS sıralama sinyali: “küresel sorguların %1’inden azı” (Google, 2014).
- Bing: PWA’ya özel bir kılavuz yok — herhangi bir JS sitesi gibi ele alın.
Olay çalışma kitabı: PWA sürümünden sonra arama trafiği düştü
- Yayın yolunu dondurun. Hizmet çalışanı ve yönlendirme dağıtımlarını durdurun ve başarısız üretim durumunu ve sürüm tanımlayıcılarını koruyun.
- Kapsamı doğrulayın. Düşüşü şablon, dizin, cihaz ve dağıtım zamanına göre bölümlere ayırın. Tek bir bozuk yoldan PWA genelinde bir arıza varsayılmamalıdır.
- Üç yanıtı karşılaştırın. Ham HTTP yanıtını, depolama temizlenmiş yeni işlenmiş bir sayfayı ve hizmet çalışanı tarafından kontrol edilen geri dönen kullanıcı sayfasını kaydedin. Başlığı, canonical’ı, robots yönergelerini, ana metni, bağlantıları ve durum davranışını kontrol edin.
- Kayıt ve önbellek politikasını inceleyin. DevTools Uygulama bölümünde etkin çalışanı, kapsamını, bekleyen sürümleri, önbellek adlarını ve gezinme işleyicisini tanımlayın. HTML gezintilerinin eski bir önbellek-öncelikli yanıtın arkasında sıkışmadığını doğrulayın.
- Çalışanı atlayın. Çalışanı kaydını silin veya DevTools’un atlama seçeneğini kullanın, yeniden yükleyin ve etkilenen yolu tekrarlayın. Kusur kaybolursa, çalışan veya önbelleği olası sınırdır; kalırsa, sıradan bir JavaScript SEO olayı olarak devam edin.
- Güvenli bir gezinme yolu geri yükleyin. Çalışanı geri alın veya belge isteklerini açık bir çevrimdışı geri dönüşle ağ-öncelikli olarak değiştirin. Kullanıcılar çevrimdışı verilere bağımlıysa tüm önbellekleri körü körüne silmeyin.
- Doğrulayın ve izleyin. Temiz bir tarayıcıyı, güncellenen bir tarayıcıyı ve çevrimdışı bir tarayıcıyı test edin. Ardından temsili URL’leri inceleyin ve normal yeniden tarama penceresi boyunca arama performansını izleyin.
Manifest’i bir SEO dosyası olarak ele almak
name, short_name veya simge meta verilerine anahtar kelime doldurmak sayfaları
daha indekslenebilir yapmaz. Manifest’i kurulum davranışı için kullanın ve arama
ile ilgili içeriği sıradan başlıklar, bağlantılar ve canonical’lar ile taranabilir
HTML’e koyun.
HTML’i sonsuza kadar önbelleğe almak
Gezintileri değişmez varlıklar gibi ele alan önbellek-öncelikli bir kural, bir sürümden sonra eski kopyayı, canonical’ları veya robots yönergelerini canlı tutabilir. Sürümlü JS, CSS ve görselleri agresif bir şekilde önbelleğe alın; HTML’e ağ farkında bir güncelleme stratejisi verin.
Çevrimdışı kabuğu başarılı bir sayfa olarak döndürmek
Kullanılamayan her URL için aynı çevrimdışı uygulama kabuğunu sunmak, birçok farklı URL’nin aynı ince içeriği döndürdüğü gibi görünebilir. Çevrimdışı deneyimi normal gezintiden açıkça ayırın ve eksik bir belgeyi istenen sayfa gibi göstermeyin.
Gezinmeyi bağlantı olmayan kontrollerin arkasına gizlemek
İstemci durumunu değiştiren bir düğme uygulamada çalışabilir, ancak hedefe taranabilir
bir <a href> yolu sağlamaz. Arama motorlarının ve kullanıcıların takip etmesi
gereken rotalar için gerçek bağlantılar kullanın, ardından geçişi JavaScript ile
geliştirin.
Yalnızca sıcak geri dönen kullanıcı olarak test etmek
Kurulu bir çalışanı ve dolu önbelleği olan bir geliştirici tarayıcısı, bozuk bir ilk ziyareti maskeleyebilir. Temiz depolamayı, önceki çalışandan yükseltmeyi ve geri dönen bir ziyareti test edin. Bunlar farklı PWA durumlarıdır.
Örnek: varlık önbelleğe alma ve belge önbelleğe alma farklı kurallar gerektirir
Aşağıdaki basitleştirilmiş hizmet çalışanı mantığı sınırı gösterir. Karma değerli varlıklar önbellek-öncelikli olabilir; belge gezintileri geri dönüşten önce ağı denemelidir.
self.addEventListener('fetch', event => {
const request = event.request;
if (request.mode === 'navigate') {
event.respondWith(
fetch(request).catch(() => caches.match('/offline/'))
);
return;
}
if (['script', 'style', 'image', 'font'].includes(request.destination)) {
event.respondWith(
caches.match(request).then(cached => cached || fetch(request))
);
}
});Kesin üretim politikası güncelleme ve çevrimdışı gereksinimlere bağlıdır, ancak SEO dersi sabittir: HTML, parmak izli bir paketle aynı türde değişmez bir varlık değildir.
Örnek: taranabilir rota ile yalnızca uygulamaya özel durum
<!-- Search engines and users get a real destination. -->
<a href="/products/running-shoes/">Running shoes</a>
<!-- This changes app state but exposes no destination URL. -->
<button onclick="showCategory('running-shoes')">Running shoes</button>Bir PWA, uygulama benzeri bir geçiş için bağlantıyı kesebilir ve taranabilir URL’sini kaldırmadan bunu yapabilir.
İstem: bir hizmet çalışanı önbelleğe alma stratejisini inceleyin
Çalışan kaynağını ve bir rota envanterini yapıştırın. Sırları veya özel API yanıtlarını dahil etmeyin.
Audit this service worker for search and freshness risks. Classify each fetch route as
document navigation, versioned static asset, API response, media, or offline fallback.
For each route, state the current strategy, the stale-content failure mode, and a safer
strategy. Pay special attention to HTML served cache-first, redirect handling, offline
shells returned for real URLs, cache-version cleanup, and worker scope. Quote the exact
code that creates each finding. Do not claim that PWA features provide a ranking boost.
Route inventory:
[PASTE ROUTES AND CONTENT TYPES]
Service worker:
[PASTE SOURCE]İstem: bir PWA sürüm QA matrisi oluşturun
Create a release QA matrix for this PWA. Cover a clean first visit, a returning visit
with the current worker, an upgrade from the previous worker, offline navigation, and a
worker-bypassed visit. For each state, list how to reproduce it and what to compare in
the raw response and rendered page: status behavior, title, canonical, robots, primary
content, internal links, and freshness. Use only the routes and requirements I provide;
flag missing evidence instead of inventing expected results.
Routes and requirements:
[PASTE ROUTE | EXPECTED CONTENT | OFFLINE REQUIREMENT | RELEASE CHANGE] PWA SEO incelemeleri için SHELL çerçevesi
- S: Sunucu yanıtı. Kullanılabilir bir ilk yanıt veya bilinçli bir işleme stratejisi, sayfayı yalnızca boş bir uygulama kabuğu olarak değil, gerçek içeriğiyle sunmalıdır.
- H: Bağlantılar (Hrefs). Önemli rotalar, yalnızca istemci tarafında durum olarak var olan kontroller yerine, taranabilir bağlantılar ve sabit URL’ler kullanır.
- E: Beklenen meta veriler. Başlıklar, canonical’lar, robots yönergeleri ve yapılandırılmış veriler, ham ve işlenmiş durumlarda doğru kalır.
- L: Canlı belgeler. Gezinme istekleri, HTML için uygun bir tazelik politikasına sahiptir; bayat önbelleğe alınmış belgeler, sürümlerin ömrünü sessizce aşmaz.
- L: Yaşam döngüsü testleri. QA, tek bir sıcak geliştirici oturumu yerine kurulum, etkinleştirme, güncelleme, bekleyen işçi, çevrimdışı ve atlama durumlarını kapsar.
Çerçeve, PWA’ya özgü incelemeyi dar tutar. Beşi de geçerse, kalan işlerin çoğu sıradan JavaScript, performans ve dizine eklenebilirlik QA’sıdır.
DevTools Konsolu: etkin işçiyi ve önbellekleri inceleyin
Bunu PWA üzerinde tarayıcı DevTools Konsolu’nda çalıştırın. Kayıtları ve önbellek adlarını, hiçbirini değiştirmeden raporlar.
const registrations = await navigator.serviceWorker.getRegistrations();
console.table(registrations.map(r => ({
scope: r.scope,
active: r.active?.scriptURL || '',
waiting: r.waiting?.scriptURL || '',
installing: r.installing?.scriptURL || ''
})));
console.log('Caches:', await caches.keys());DevTools Konsolu: ağ isteğini önbelleğe alınmış yanıtla karşılaştırın
const path = location.pathname;
const network = await fetch(path, { cache: 'no-store' });
const cached = await caches.match(path);
console.table({
network: { status: network.status, type: network.type },
cache: { found: Boolean(cached), status: cached?.status ?? '' }
});Sonuç, bir yanıtın önbellekte var olduğunu kanıtlar; ancak her gezinme için hangi getirme işleyicisinin kazanacağını kanıtlamaz. Yönlendirmeyi işçi kaynağında ve Ağ panelinde doğrulayın.
Regex: riskli önbellek öncelikli gezinme işleyicilerini bulun
Bunu bir ayrıştırıcı olarak değil, bir inceleme yardımcısı olarak kullanın. Yakınında bir önbellek araması bulunan bir gezinme koşulunu arar.
request\.mode\s*===?\s*['"]navigate['"][\s\S]{0,500}caches\.(?:match|open)\s*\( Bir PWA SEO sürümünü doğrulayın
| Çalıştırılacak test | Beklenen sonuç | Başarısızlık yorumu | İzleme penceresi | Geri alma tetikleyicisi |
|---|---|---|---|---|
| Boş bir tarayıcı profiliyle temsili rotaları getirin | Her rota, ilk ziyarette amaçlanan içeriğini ve meta verilerini yükler | Uygulama, önceden var olan bir işçiye veya önbelleğe bağımlıdır | Her sürüm | Yeni kullanıcılar için kritik rotalar başarısız olursa geri al |
| Önceki üretim işçisinden depolamayı temizlemeden yükseltin | Yeni işçi öngörülebilir şekilde etkinleşir ve belgeler yayınlanan sürüme yenilenir | Yaşam döngüsü veya önbellek sürümü mantığı, kullanıcıları eski HTML’de mahsur bırakır | Sürüm provası ve dağıtım günü | Önceki sürüm güvenli bir şekilde güncellenemezse geri al |
| Ham HTML, işlenmiş DOM ve işçi atlanmış işlemeyi karşılaştırın | Başlıklar, canonical’lar, robots yönergeleri, birincil kopya ve bağlantılar anlam bakımından eşdeğer kalır | İstemci işleme veya işçi müdahalesi, arama açısından kritik çıktıyı değiştirir | Dağıtımdan önce ve dağıtımdan sonra | Sayfalar dizine eklenemez hale gelirse veya birincil içeriği kaybederse geri al |
| Çevrimiçi gezinin, ardından çevrimdışı tekrarlayın | Çevrimiçi istekler canlı belgeler alır; çevrimdışı davranış açıktır ve tasarlanan kapsamıyla sınırlıdır | Çevrimdışı bir kabuk veya bayat önbellek, gerçek rotaları maskeliyor | Her işçi değişikliği | Çevrimiçi kullanıcılar çevrimdışı veya eski içerik alırsa geri al |
| Çevrimiçi var olmayan bir URL isteyin | Yanıt, genel uygulama kabuğuyla geçerli bir içerik sayfası gibi davranmaz | Yakala-her şey yönlendirmesi, yumuşak 404 davranışı oluşturur | Her yönlendirme değişikliği | Rastgele URL’ler dizine eklenebilir kabuk içeriği döndürürse geri al |
Kendinizi test edin: PWA SEO
Progressive Web Apps’ın aramayla nasıl etkileşime girdiğine dair beş hızlı soru. Her biri için bir yanıt seçin, ardından kontrol edin.
Zaman ayırmaya değer kaynaklar
İlgili yazılarım
- JavaScript SEO Sorunları ve En İyi Uygulamalar — her PWA’nın üzerine oturduğu işleme temeli; uygulama kabuğu, SSR ve Google’ın işleyicisinin ne yapıp ne yapmadığı.
- Teknik SEO Başlangıç Rehberi — işleme ve taranabilirliğin büyük resimde nereye oturduğu.
Konuşmalarım
- Arama Nasıl Çalışır (SlideShare) — tarama, işleme, dizine ekleme ve sıralama konusundaki yürüyüşüm; bir PWA’nın geçmesi gereken boru hattı. (Kalıcı feragat: “Bu, sistemlere dair anlayışımdır… %100 eksiksiz veya doğru olmayacak.”)
Sektörden haberler
- Google: Progressive Web Apps, Normal Sitelerden Daha İyi Sıralanmıyor (Search Engine Journal) — efsaneyi çürüten Mueller ofis saatleri kapsamı.
- Google, Progressive Web Apps’lerin (PWA’lar) Aramada Avantajı Olmadığını Söylüyor (Search Engine Roundtable) — aynı oturumun bağımsız yazımı.
- Service Worker – SEO’ların Bilmesi Gerekenler (SearchViu) — Splitt/Mueller’in oluşturucunun service worker’ları neden atladığına dair açıklamaları.
- JavaScript SEO Temellerini Anlayın (Google) — kaynakta belgelenen uygulama kabuğu hata modu.
- İyi bir Progressive Web App’i ne yapar? (PWA kontrol listesi) (web.dev) — kurulabilirlik ve keşfedilebilirlik ayrı kategoriler olarak.
- Twitter Lite vaka çalışması (web.dev) — gerçek etkileşim rakamları ve bunların asla SEO ile ilgili olmadığının kanıtı.
Videolar
- Google Search Central (YouTube) — Martin Splitt’in JavaScript SEO ve oluşturma açıklamaları, bir PWA’nın bağlı olduğu tam ardışık düzeni (tarama → oluşturma → dizinleme) kapsar; durum bilgisi olmayan oluşturucunun JS’yi nasıl işlediği dahil. Kanal
Değişiklik günlüğü
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
18 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.