PWA, sitenizin üzerine bir manifest dosyası ve birkaç teknik koşul eklenmiş hâlidir; bunlar birlikte telefonun onu kurmasına ve ona bir simge vermesine izin verir. Bu kısmı herkes yazıyor. Kimsenin bakmadığı şey, o manifest dosyalarının gerçekten çalışıp çalışmadığıydı: 111 İran sitesinden yirmi tanesini topladık ve hepsini tek tek açtık. Altısı Chrome'un kurulabilirlik koşullarını geçemedi, altıdan biri de 404 döndürdü.
En öğreticisi sonuncusu. "PWA nedir" sorgusunda Google'da üçüncü sırada oturan ve okuyucuya PWA'nın ne olduğunu anlatan bir site, kendi sayfa başlığında var olmayan bir manifest dosyasına bağlantı veriyor.

Chrome aslında ne istiyor
web.dev üzerindeki kurulabilirlik kriterleri sayfası, son güncellemesi 19 Eylül 2024, kısa bir liste taşıyor. Dosyanın name ya da short_name alanı olmalı. 192 piksellik ve 512 piksellik birer simge gerekiyor. start_url gerekiyor. display değeri fullscreen, standalone, minimal-ui veya window-controls-overlay olmalı. prefer_related_applications anahtarı true olmamalı.
Aynı sayfa sayfanın HTTPS üzerinden sunulmasını ve kullanıcının onunla en az bir kez etkileşime girip yaklaşık otuz saniye kalmasını da şart koşuyor. İkinci koşul, "sayfayı açıp hemen kapatıyorum ama kurulum düğmesi çıkmıyor" sorusunun bilinen sebebidir.
Service worker bir kurulum koşulu değil
O listede olmayan, ama PWA yazılarının çoğunda bulunan bir unsur var: service worker. Resmî kriter sayfası onu kurulum koşulları arasında saymıyor.
Ayrım göründüğünden önemli. Ekipler bir service worker yazıyor, sonra kurulum isteminin neden çıkmadığını merak ediyor; oysa hata genellikle manifest dosyasında üç satır yukarıdadır.
Bu, service worker'ı gereksiz kılmaz. Onun işi, siteyi bağlantı yokken ya da kötü bir şebekede kullanılabilir tutmaktır. Yani service worker PWA'yı faydalı yapan şeydir, kurulabilir yapan şey değil. İkisini birbirinin yerine koymak, bu alandaki en yaygın yanlış anlamadır.
Yirmi manifest neye benziyordu
Yöntem sadeydi. Google'da yedi ayrı sorgu için sıralanan 111 İran sayfasını okuduk, bulduğumuz her <link rel="manifest"> etiketinden adresi çıkardık, her dosyayı ayrı ayrı çektik ve değerlerini yukarıdaki listeyle sınadık.
Yirmi benzersiz dosyadan on dördü beş manifest koşulunun tamamını sağladı. Kalan altısı şöyle dağılıyor: üç dosyada ne name ne start_url vardı, ikisinde yalnızca start_url eksikti, biri 404 ile yanıt verdi. Rakamlardan sonra geriye kalan asıl nokta şu: bu altı arızanın hiçbiri sitede görünmüyor. Sayfa kusursuz açılıyor. Yalnızca kurulum düğmesi hiç ortaya çıkmıyor.
Konu hakkında yazan alt küme ise daha rahatsız edici. Sorguda sıralanan 18 sayfanın 5'i manifest sunuyor, 6'sı service worker kaydediyor. Yani size PWA yapmayı öğreten sayfaların üçte ikisi bir tane yapmamış.
Gerçekten yaşanan arızalar
- Manifest yolu yanlış. Dosya taşınmış ya da başka bir dizine geçmiş, baştaki bağlantı güncellenmemiş. Tarayıcı hata vermez, sadece kurulum önermez.
start_urlyok. Hazır eklentiler çoğu zaman favicon için yeterli, kurulum için yetersiz bir site.webmanifest üretir.- 512 piksellik simge yok. 192'lik zaten Android istediği için duruyor, ama açılış ekranı büyüğünü istiyor.
displaybrowser değerinde bırakılmış. Tamamen geçerli bir değer ve kurulum önerisinin çıkmamasını garanti eden tek değer.- Dosya bir giriş ekranının ya da güvenlik duvarı kuralının arkasında. Nadir, ve biri dosyayı anonim ziyaretçi olarak çekene kadar tamamen görünmez.
- Simge dosyaları 404. Manifest geçerli, işaret ettiği görseller yok.
Hepsi iki dakikada görünür. Chrome'da DevTools'u açın, Application sekmesine gidin, Manifest'e tıklayın. Dosya bulunamıyorsa ya da bir alan eksikse orada düz bir dille yazar. Bu, yazılımcı olmayan bir site yöneticisinin gerçekten kendi başına yapabileceği ender teknik kontrollerden biridir.
PWA'ya ihtiyacınız var mı
Biz uygulama geliştirme satıyoruz ve yine de söylüyoruz: bizimle konuşan işletmelerin çoğu için cevap hayır. PWA, kullanıcı geri dönen bir kullanıcıysa masrafını çıkarır. Müşterisi ayda bir uğrayan bir mağaza, ana ekrandaki simgeden hiçbir şey kazanmaz; o müşteri zaten Google üzerinden geri gelir.
Gerçekten işe yaradığı yerler başkadır: müşteri paneli, tekrar sipariş sistemi, personelin kullandığı iç araç, haftada birkaç kez açılan her şey. Orada PWA yerel uygulamayı ekonomik olarak geçer, çünkü ne mağaza yayın süreci ne de güncelleme döngüsü taşır.
Karar öncesi bilinmesi gereken bir sınır var. iOS'ta kurulum Safari'nin Ana Ekrana Ekle akışıyla olur ve bildirimler dahil bazı yetenekler farklı davranır. PWA gerekçeniz baştan sona bildirim göndermekse, kimse kod yazmadan önce bunu müşterilerinizin taşıdığı cihazlarda test edin.
Paketlemeden önce siteyi düzeltin
Yavaş bir sitenin üstündeki PWA, simgeli yavaş bir sitedir. Yukarıdaki koşulların hiçbiri performansa dokunmaz, dolayısıyla tarayıcı itiraz etmeden kurar ve kullanıcı eskisi kadar bekler. LCP'niz iki buçuk saniyenin üzerindeyse iş sırası şudur: önce Core Web Vitals eşikleri, sonra manifest.
Gördüğümüz projelerde siteyi uygulamaya çevirmeye harcanan bütçe, site hızı çalışmasında genellikle kat kat fazlasını satın alırdı. Asıl karar hangisinin daha iyi olduğu değil, hangisinin önce geldiğidir.
Android uygulamasından farkı ne?
Android uygulaması, mağazadan veya APK'dan gelen ayrı bir kurulum paketidir ve donanıma erişimi daha geniştir. PWA ise tarayıcının kendi penceresinde açtığı sitenizdir: ayrı paket yok, yayın süreci yok.
SEO'ya faydası var mı?
Doğrudan yok. Manifest bir sıralama sinyali değil. Dolaylı etki, hız ve kararlılık çalışmasının genellikle PWA projesiyle birlikte yürümesinden gelir; asıl etkisi olan onlardır.
WordPress bunu yapar mı?
Evet, bir eklentiyle ya da temaya birkaç satırla. İşin püf noktası, eklenti çıktısının da yukarıdaki kontrolden geçmesi gerektiğidir. Örneklemimizde eklentiyle üretilmiş bir manifest'in start_url alanı yoktu.
Benimkinin çalıştığını nasıl doğrularım?
Manifest için Chrome DevTools'taki Application sekmesi, genel rapor için Lighthouse. İkisinden sonra gerçek bir telefonda deneyin; masaüstü öykünücüsü kurulum davranışını sadakatle üretmez.
Web sürümü ile uygulama sürümünün tek bir şey olması isteniyorsa, bu altıncı ayın değil mimari aşamasının kararıdır. Uygulamanın işini görecek şekilde kurulan bir site baştan başka türlü bir araya getirilir ve site kurma sürecimiz bu kararın zaman çizelgesinde nereye düştüğünü gösteriyor.
Yöntem: yedi ilgili sorgu için Google'da organik sıralanan 111 İran sayfası, 16 Ağustos 2026'da Helsinki'deki bir sunucudan okundu. Her <link rel="manifest"> adresi çıkarıldı ve her dosya ayrıca çekildi; 20 benzersiz manifest elde edildi. Manifest'i JavaScript ile ekleyen sayfalar bu sayıma girmiyor, dolayısıyla 20 bir taban rakamıdır, tavan değil.
Kriterler web.dev kurulabilirlik kriterleri sayfasından, alan tanımları MDN manifest referansından alındı.
Yorumlar ve Sorular
Bu yazı hakkında bir sorunuz mu var? Sorun, yanıtlayalım.
Henüz yorum yok; ilk olun.