Dinamik Sunum

Dinamik sunumun ne olduğu, Vary User-Agent üstbilgisinin iki görevi, neden eski bir kalıp sayıldığı ve duyarlı tasarım ile dinamik oluşturmadan nasıl ayrıldığı.

İlk yayın tarihi: 2 Tem 2026 · Son güncelleme: 22 Ağu 2026 · Advanced
Diller

Dinamik sunumda, istekte bulunan user-agent'a bağlı olarak tek bir URL farklı HTML/CSS döndürür — masaüstüne bir sayfa, mobile başka bir sayfa sunulur — ve önbellekler ile tarama botlarının yanlış sürümü sunmaması için sunucu Vary: User-Agent üstbilgisini göndermelidir. Bu, üç mobil yapılandırmadan biridir (duyarlı tasarım, dinamik sunum, ayrı m-dot URL'leri) ve dinamik sunum hataya açık user-agent algılamasına ve doğru Vary üstbilgilerine bağlı olduğundan Google bunun yerine duyarlı tasarımı önerir. Dinamik oluşturmayla (botlar için JS'yi önceden oluşturma) karıştırmayın; bu farklı bir kavramdır ve farklı bir belgesi vardır. 2026'da bu, sıfırdan kurulacak bir yapıdan çok eski veya kurumsal sitelerde denetlenip terk edilecek eski bir kalıptır: mobile-first indexing, cihaz sunumunu yanlış yapmanın riskini artırır ve Vary: User-Agent CDN önbelleklerini parçalar.

TL;DR — Dinamik sunum = aynı URL, user-agent başına farklı HTML/CSS; sunucu tarafında algılanır ve Vary: User-Agent yanıt üstbilgisiyle bildirilir. Bu, duyarlı tasarım (Google’ın önerisi) ve ayrı URL’lerle (m-dot) birlikte üç mobil yapılandırmadan biridir. Vary üstbilgisinin iki görevi vardır: (1) önbelleklerin yanlış cihaz sürümünü sunmasını engellemek ve (2) geçmişte Googlebot’un mobil sürümü keşfetmesine yardımcı olmak. Ancak gerçek bir maliyeti de vardır: Vary: User-Agent, CDN önbellek anahtarlarını her farklı UA dizesine göre parçalara ayırarak kaynak sunucu yükünü artırır. User-agent algılama hataya açıktır (güncelliğini yitirmiş UA listeleri, telefon sanılan tabletler); bir algılama hatası veya eksik Vary, Google’ın yanlış ya da bozuk sürümü görmesine yol açabilir. Cloaking riski de asıl burada ortaya çıkar. Bunu dinamik oluşturma (tarayıcılar için JS’yi önceden oluşturma — kendine ait belgesi bulunan farklı bir kavram) ile karıştırmayın. 2026’da bu, yeni kurulacak değil, denetlenip terk edilecek eski bir kalıptır.

Evidence for this claim Dynamic serving uses one URL with device-dependent HTML and should send Vary: User-Agent. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile configurations Evidence for this claim Google supports dynamic serving but recommends responsive design because it is easier to implement and maintain. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile-first indexing

Dinamik sunumun kesin tanımı

Google’ın mobile-first indexing en iyi uygulamalar belgesindeki kendi tanımı şöyledir: “Dynamic serving: Uses the same URL regardless of device. This configuration relies on user-agent sniffing and the Vary: user-agent HTTP response header to serve a different version of the HTML to different devices.” (çeviri) “Dinamik sunum, cihazdan bağımsız olarak aynı URL’yi kullanır. Bu yapılandırma, farklı cihazlara farklı HTML sürümleri sunmak için user-agent algılamasına ve Vary: user-agent HTTP yanıt üstbilgisine dayanır.” Artık kullanımdan kaldırılmış özel Google sayfası bunu daha da somut ifade ediyordu: Dinamik sunum, “a setup where the server responds with different HTML (and CSS) on the same URL depending on which user agent requests the page (mobile, tablet, or desktop).” (çeviri) “Sunucu, sayfayı isteyen user-agent’a göre aynı URL’de farklı HTML (ve CSS) döndürür.”

Bu, üç mobil yapılandırmadan biridir ve aralarındaki farkı görmenin en kolay yolu üç satırlı bir tablodur:

YapılandırmaAynı URL mi?Aynı HTML mi?Kullanılan birincil sinyal
Duyarlı tasarımEvetEvetCSS media query’leri (sunucu tarafında işlem yok)
Dinamik sunumEvetHayır (user-agent’a göre)Vary: User-Agent üstbilgisi
Ayrı URL’ler (m-dot)HayırHayırrel=canonical/rel=alternate + Vary

Bu üç yöntemden ikisi Vary üstbilgisine bağlıdır. Google, ayrı URL’ler konusunda şunu açıkça belirtir: “like dynamic serving, this configuration relies on the user-agent and Vary HTTP headers.” (çeviri) “Dinamik sunumda olduğu gibi bu yapılandırma da user-agent ve Vary HTTP üstbilgilerine dayanır.” Yalnızca duyarlı tasarımda senkronizasyondan çıkabilecek bir şey yoktur; Google’ın bunu önermesinin nedeni de tam olarak budur. Ayrıntılar için duyarlı tasarım incelemesine ve üç yöntemin birlikte nasıl çalıştığını açıklayan mobil SEO merkezine bakın.

Nasıl çalışır: user-agent algılama + Vary üstbilgisi

Sunucu, her istemcinin gönderdiği tanımlayıcı olan gelen user-agent dizesini inceler; cihazın mobil, tablet veya masaüstü olup olmadığına karar verir ve eşleşen HTML’yi döndürür. URL herkes için aynı olduğundan sunucu daha sonra yanıtın user-agent’a göre değiştiğini bildirmelidir. Bunu Vary: User-Agent üstbilgisi yapar. Google’ın arşivlenmiş kılavuzu, bunun birbirinden ayrı iki görevi olduğunu açıkça belirtir; bunları tek görevmiş gibi ele almayın:

“Bu üstbilgi, internet servis sağlayıcılarında ve başka yerlerde kullanılan önbellek sunucularına, sayfayı önbellekten sunup sunmayacaklarına karar verirken user-agent’ı dikkate almalarını bildirir. Vary HTTP üstbilgisi olmazsa önbellek, mobil kullanıcılara masaüstü HTML sayfasını veya tersini yanlışlıkla sunabilir. Geçerli bir Vary HTTP üstbilgisi, Googlebot’un mobil için optimize edilmiş içeriğinizi daha hızlı keşfetmesine de yardımcı olur.”

Dolayısıyla birinci görev, arama motorlarından bağımsız bir UX/doğruluk konusu olan önbellek doğruluğu; ikinci görev ise tarama keşfidir. Rakiplerin sözlük sayfalarının çoğu yalnızca ilkinden söz eder veya ikisini birbirine karıştırır. Gerçek bir HTTP yanıtında şöyle görünür:

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710

Sunucunuz zaten bir Vary üstbilgisi gönderiyorsa (örneğin Accept-Encoding için), mevcut değeri değiştirmek yerine listeye User-Agent ekleyin.

Şu ayrımı açıkça yapmak gerekir: Vary, bir SEO icadı değil, sıradan bir HTTP önbelleğe alma mekanizmasıdır. Önbelleğe, doğru varyantı saklayabilmesi için hangi istek üstbilgilerini önbellek anahtarına katması gerektiğini söyler. Cihazları algılamaz ve SEO’yu anlamaz; bunu sunucunuzun user-agent mantığı ayrı olarak yapar. Google’ın üstbilgiyi tarama keşfi için kullanması (yukarıdaki ikinci görev), her önbelleğin aynı şekilde uyguladığı bir önbellek protokolü gereksinimi değil, Google’ın izlediği bir sinyale ilişkin kendi tanımlamasıdır. Belirli bir URL için bunu 304 Not Modified yanıtları ve tüm varsayılan/yedek yanıtlar dâhil tutarlı biçimde gönderin; aksi hâlde önbellek, sakladığı içerikle ilgili tutarsız meta veriler tutabilir.

Çoğu kılavuzun atladığı maliyet: CDN önbellek parçalanması

Neredeyse tüm üst sıralardaki sayfaların kaçırdığı nokta şudur: Vary: User-Agent bedelsiz değildir; önbelleğinizi parçalara ayırır. Bir önbellek girdileri kısmen Vary ile listelenen üstbilgilere göre anahtarlar. Dolayısıyla Vary: User-Agent, siteye ulaşan her farklı user-agent dizesi, yani her tarayıcı sürümü, her işletim sistemi derlemesi ve her bot için ayrı bir önbellek kopyası demektir. Gerçekte yalnızca iki veya üç sürümü bulunan içerik için binlerce varyant oluşur. Bununla birlikte, yeniden kullanım kaybının miktarı CDN’inizin kendi önbellek anahtarı yönetimine bağlıdır (bazıları benzer user-agent dizelerini normalleştirir veya gruplandırır, çoğu bunu yapmaz). Bu nedenle alıntılanabilecek tek bir evrensel isabet oranı kaybı yoktur. Aşağıdaki SiteGround değeri dâhil belirli her çarpanı, kendi altyapınız için garanti edilen bir sayı değil, tek bir sağlayıcının tahmini olarak değerlendirin.

SiteGround pratik maliyeti açıkça şöyle ifade etti: “With the User-Agent [header] enabled, the system will keep different copies for each combination of OS and browser version visiting your site… you will have 5-30 dynamic requests for the same 100 visits. So the very same site will use 5-30 times the resources.” (çeviri) “User-Agent üstbilgisi etkin olduğunda sistem, sitenizi ziyaret eden her işletim sistemi ve tarayıcı sürümü birleşimi için farklı kopyalar tutar; aynı 100 ziyaret için 5–30 dinamik istek oluşur. Dolayısıyla aynı site 5–30 kat kaynak kullanır.” Bu durum tarayıcıları da ağır etkiler: “If such [a] bot starts crawling your site and you have the Vary: User-Agent header, each request it makes to your site would be a dynamic one and will eat up your resources.” (çeviri) “Böyle bir bot sitenizi taramaya başlarsa ve Vary: User-Agent üstbilginiz varsa yaptığı her istek dinamik olur ve kaynaklarınızı tüketir.”

Bu yeni bir sorun değil. Cindy Krum, 2013’te Search Engine Land’de kurumsal CDN’lerin üstbilgiyi, içeriğin “cannot be cached or served from the CDN and must be fetched directly from your server” (çeviri) “CDN’den önbelleğe alınamaz veya sunulamaz ve doğrudan sunucunuzdan alınması gerekir” olduğunu bildiren bir sinyal olarak ele aldığını ve bunun dinamik sunulan sayfalarda CDN’inizi potansiyel olarak “rendering your CDN completely useless” (çeviri) “CDN’inizi tamamen işlevsiz hâle getirebileceğini” belirtti. 2013’teki belirli sağlayıcı davranışları değişmiş olsa da temel gerilim — Vary: User-Agent üstbilgisinin önbellek anahtarlarını parçalaması — teknik olarak hâlâ gerçektir. Bu, SEO konusunda endişesi olmayan sitelerde bile dinamik sunumun gözden düşmesinin başlıca nedenlerinden biridir. SiteGround ayrıca “most of the sites don’t actually serve different HTML for their mobile versions. It’s the responsive CSS that does all the heavy lifting” (çeviri) “sitelerin çoğu mobil sürümlerinde aslında farklı HTML sunmuyor; asıl işi duyarlı CSS yapıyor” diyerek pratik bir noktaya dikkat çeker. Başka bir deyişle, internetteki birçok Vary: User-Agent üstbilgisi aslında duyarlı olan sitelerde kalmış eski yanlış yapılandırmalardır.

Dinamik sunum cloaking midir?

Hayır, doğası gereği değildir. Risk teknikle değil, sonuç ve niyetle ilgilidir. Bir cihazı algılayıp cihaza uygun içerik sunmakta sorun yoktur. Tehlike ya (a) bir algılama hatasının veya eksik Vary üstbilgisinin Googlebot’a yanlış ya da bozuk sürümü kazara sunması ya da (b) arama motorlarına kullanıcıların aldığından anlamlı ölçüde farklı içerik sunulmasıdır. Google’ın arşivlenmiş dinamik sunum kılavuzu bu tuzak konusunda açık sözlüydü:

“User-agent algılarken cloaking konusunda çok dikkatli olun; özellikle Googlebot’u aramayın. Tüm Googlebot user-agent’ları kendilerini belirli mobil cihazlar olarak tanımlar ve bu Googlebot user-agent’larına o cihazlara davrandığınız gibi davranmalısınız.”

Bunun paraleli, Google’ın hâlâ yayında olan dinamik oluşturma belgesidir. Belge, ilgili JS oluşturma durumu için genel ilkeyi şöyle açıklar: “As long as your dynamic rendering produces similar content, Googlebot won’t view dynamic rendering as cloaking,” (çeviri) “Dinamik oluşturmanız benzer içerik ürettiği sürece Googlebot bunu cloaking olarak görmez,” ancak “serving completely different content to users and crawlers can be considered cloaking.” (çeviri) “kullanıcılara ve tarayıcılara tamamen farklı içerik sunmak cloaking sayılabilir.” Aynı mantık dinamik sunum için de geçerlidir: Cihaza göre sunulan ve özünde aynı olan içerik sorun değildir; asıl tehlike, cloaking gibi görünen bir yanlış yapılandırmadır.

Dinamik sunum ve dinamik oluşturma — bunları karıştırmayın

Rakip içeriklerin çoğunun en belirgin biçimde yanlış anlattığı nokta budur; bu nedenle kesin bir ayrım yapmak gerekir:

  • Dinamik sunum = cihaz farklılığı. Mobil ve masaüstü için aynı URL’de farklı HTML sunulur. Bu sayfanın konusu budur. Google, bu konudaki kılavuzunu mobile-first indexing belgesine dâhil etti.
  • Dinamik oluşturma = botlar için JS oluşturma farklılığı. JavaScript ağırlıklı bir sayfanın önceden oluşturulmuş/sunucu tarafında oluşturulmuş sürümü tarayıcılara sunulurken kullanıcılar istemci tarafında oluşturulan sürümü alır. Bunun kendine ait, hâlâ yayında olan bir Google belgesi vardır. Bing de konuyu 2018 bingbot yazısında ele alır (“Dynamic rendering is about detecting user agent and rendering content differently for humans and search engine crawlers” (çeviri) “Dinamik oluşturma, user-agent’ı algılayıp içeriği insanlar ve arama motoru tarayıcıları için farklı oluşturmaktır” — not: Bu ifade bingbot için JS oluşturmayla ilgilidir, cihaz tabanlı sunumla değil).

Her ikisi de user-agent algılama kullandığı ve cloaking sorusunu gündeme getirdiği için bunları karıştırmak kolaydır; ancak farklı belgelere sahip farklı sorunlardır.

User-agent algılama gerçekten hataya açıktır

Google’ın arşivlenmiş kılavuzunda sıralanan yaygın hata biçimleri bugün de geçerlidir: User-agent listelerinin sürekli güncellenmesi gerekir ve bunlar yepyeni aracıları eşleştiremez; yanlış eşleştirme yapmak kolaydır — “sometimes detecting a desktop user agent as a mobile one or detecting a mobile user agent as a desktop” (çeviri) “bazen masaüstü user-agent’ını mobil, mobil user-agent’ını da masaüstü olarak algılamak” — ve belirli bir klasik hata da şudur: “a common mistake for sites is to inadvertently treat tablet devices as smartphones.” (çeviri) “sitelerin tablet cihazları yanlışlıkla akıllı telefon olarak değerlendirmesi yaygın bir hatadır.” Google’ın kendi özeti — “Use the Vary HTTP header to signal your changes depending on the user agent. Detect user agent strings correctly.” (çeviri) “Değişikliklerinizi user-agent’a göre bildirmek için Vary HTTP üstbilgisini kullanın. User-agent dizelerini doğru algılayın.” — basit görünür; ancak tüm bakım yükünü iki cümlede özetler.

Google on yıldır bu hatalarla karşılaşıyor. Ocak 2015’te Google’dan Pierre Far, gördüğü başlıca uygulama sorunlarına dikkat çekti. Bunlar yalnızca Vary üstbilgisiyle değil, JavaScript, CSS ve görsel varyantlarının cihazlar arasında doğru yönetilmesiyle de ilgiliydi. Bu, “üstbilgiyi eklemenin” hiçbir zaman hikâyenin tamamı olmadığını hatırlatır.

Duyarlı tasarım neden artık varsayılan?

İki etken dinamik sunumu eski bir kalıba dönüştürdü. Birincisi, Google en az 2015’ten beri duyarlı tasarımı “because it’s the easiest design pattern to implement and maintain” (çeviri) “uygulanması ve bakımı en kolay tasarım kalıbı olduğu için” diyerek öneriyor: Tek sürüm vardır ve cihaz algılama riski yoktur. İkincisi, mobile-first indexing 2023–2024’te tamamlandı ve cihaz sunumunu yanlış yapmanın önemini artırdı: Google artık öncelikle mobil sürümü tarar, dizine ekler ve sıralar. Dolayısıyla bir dinamik sunum yanlış yapılandırması Googlebot’a yalnızca kötü bir mobil sayfa sunmaz; dizine eklenen birincil içeriğinizi yanlış sunar. Ayrı m-dot URL’leri için geçerli olan, cihaza özgü yapılardan uzaklaşma eğilimi dinamik sunum için de geçerlidir: Tek bir duyarlı URL’de birleştirme yapıldığında bu sorun sınıfının tamamı ortadan kalkar.

Evidence for this claim Google supports dynamic serving but recommends responsive design because it is easier to implement and maintain. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile-first indexing

İçerik eşdeğerliği, mobil Core Web Vitals, kullanılabilirlik, geçiş reklamları ve AMP’nin bugünkü konumu dâhil mobil ortamın tamamı için mobil SEO merkezine ve mobil SEO kontrol listesine bakın.

Bir sitenin dinamik sunum kullanıp kullanmadığı nasıl kontrol edilir?

Somut ve hızlı yöntem şudur: Aynı URL’yi farklı user-agent dizeleriyle iki kez isteyin ve sonuçları karşılaştırın. HTML farklıysa ve yanıtta Vary: User-Agent bulunuyorsa bu dinamik sunumdur. HTML aynıysa ve yalnızca CSS aracılığıyla yeniden düzenleniyorsa duyarlı tasarımdır. Betikler sekmesinde curl, DevTools ve bookmarklet sürümleri bulunur. Dikkat edilmesi gereken işaret, cihaza göre farklı HTML sunulmasına rağmen Vary üstbilgisinin bulunmamasıdır. Bu yanlış yapılandırma, önbelleklerin ve tarayıcıların yanlış sürümü görmesi riskini doğurur.

Evidence for this claim Dynamic serving uses one URL with device-dependent HTML and should send Vary: User-Agent. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile configurations

Add an expert note

Pin an expert quote

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