{"id":4968,"date":"2026-02-11T15:51:03","date_gmt":"2026-02-11T12:51:03","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/cok-dilli-ve-cok-para-birimli-woocommerce-siteleri-icin-cdn-cache-key-mimarisi\/"},"modified":"2026-02-11T15:51:03","modified_gmt":"2026-02-11T12:51:03","slug":"cok-dilli-ve-cok-para-birimli-woocommerce-siteleri-icin-cdn-cache-key-mimarisi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/cok-dilli-ve-cok-para-birimli-woocommerce-siteleri-icin-cdn-cache-key-mimarisi\/","title":{"rendered":"\u00c7ok Dilli ve \u00c7ok Para Birimli WooCommerce Siteleri \u0130\u00e7in CDN Cache\u2011Key Mimarisi"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><p>\u00c7ok dilli ve \u00e7ok para birimli bir WooCommerce ma\u011fazas\u0131 kurdu\u011funuz anda, klasik \u201cCDN a\u00e7, \u00f6nbelle\u011fi bas\u201d yakla\u015f\u0131m\u0131 bir anda yetersiz kal\u0131r. Ayn\u0131 URL&#039;yi ziyaret eden farkl\u0131 kullan\u0131c\u0131lar\u0131n farkl\u0131 dil, para birimi, vergi ve kargo se\u00e7enekleri g\u00f6rmesi gerekir. Yanl\u0131\u015f tasarlanm\u0131\u015f bir CDN cache\u2011key mimarisi ise tam tersini yapar: bir kullan\u0131c\u0131n\u0131n TL fiyat\u0131yla olu\u015fturdu\u011fu sayfa, ba\u015fka bir kullan\u0131c\u0131n\u0131n EUR kurunda kar\u015f\u0131s\u0131na \u00e7\u0131kabilir. Hem d\u00f6n\u00fc\u015f\u00fcm hem g\u00fcven alg\u0131s\u0131 zedelenir.<\/p>\n<p>Bu yaz\u0131da DCHost ekibi olarak, pratikte s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z \u00e7ok dilli \/ \u00e7ok para birimli WooCommerce senaryolar\u0131 \u00fczerinden, <strong>CDN cache\u2011key tasar\u0131m\u0131n\u0131 ba\u015ftan sona<\/strong> ele alaca\u011f\u0131z. Sadece \u201c\u015fu header&#039;\u0131 ekleyin\u201d seviyesinde kalmay\u0131p; dil ve para birimi nas\u0131l belirleniyor, hangi cookie ve query parametreleri ger\u00e7ekten gerekli, hangileri cache hit oran\u0131n\u0131z\u0131 gereksiz yere d\u00fc\u015f\u00fcr\u00fcyor, bunlar\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<p>Ayr\u0131ca CDN katman\u0131n\u0131; taray\u0131c\u0131 \u00f6nbelle\u011fi, tam sayfa (page cache) ve nesne \u00f6nbelle\u011fi (Redis\/Memcached) ile birlikte d\u00fc\u015f\u00fcnerek, <strong>u\u00e7tan uca bir mimari<\/strong> \u00e7izece\u011fiz. Amac\u0131m\u0131z: yanl\u0131\u015f dil\/para birimi g\u00f6stermeden, sepet ve \u00f6deme sayfalar\u0131n\u0131 bozmadan, istikrarl\u0131 bir \u015fekilde y\u00fcksek cache hit oran\u0131na ula\u015fmak.<\/p>\n<div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Cok_Dilli_Cok_Para_Birimli_WooCommerce_Neden_Ozel_CacheKey_Ister\"><span class=\"toc_number toc_depth_1\">1<\/span> \u00c7ok Dilli \/ \u00c7ok Para Birimli WooCommerce Neden \u00d6zel Cache\u2011Key \u0130ster?<\/a><\/li><li><a href=\"#WooCommerce_Trafigini_Katmanlara_Ayirmak_Nerede_Ne_Onbelleklenir\"><span class=\"toc_number toc_depth_1\">2<\/span> WooCommerce Trafi\u011fini Katmanlara Ay\u0131rmak: Nerede Ne \u00d6nbelleklenir?<\/a><\/li><li><a href=\"#CacheKey_Nedir_CDN039ler_Nasil_Olusturur\"><span class=\"toc_number toc_depth_1\">3<\/span> Cache\u2011Key Nedir, CDN&#039;ler Nas\u0131l Olu\u015fturur?<\/a><\/li><li><a href=\"#Cok_Dilli_WooCommerce_Icin_CacheKey_Tasarimi\"><span class=\"toc_number toc_depth_1\">4<\/span> \u00c7ok Dilli WooCommerce \u0130\u00e7in Cache\u2011Key Tasar\u0131m\u0131<\/a><ul><li><a href=\"#1_Her_Dil_Icin_Ayri_Alan_Adi_ccTLD_veya_alt_alan\"><span class=\"toc_number toc_depth_2\">4.1<\/span> 1) Her Dil \u0130\u00e7in Ayr\u0131 Alan Ad\u0131 (ccTLD veya alt alan)<\/a><\/li><li><a href=\"#2_Dil_Icin_Alt_Dizin_Kullanimi_tr_en_vb\"><span class=\"toc_number toc_depth_2\">4.2<\/span> 2) Dil \u0130\u00e7in Alt Dizin Kullan\u0131m\u0131 (\/tr\/, \/en\/ vb.)<\/a><\/li><li><a href=\"#3_Dil_Query_Parametresi_ile_Belirleniyorsa_langtr\"><span class=\"toc_number toc_depth_2\">4.3<\/span> 3) Dil Query Parametresi ile Belirleniyorsa (?lang=tr)<\/a><\/li><li><a href=\"#4_Dil_Cookie_ile_Belirleniyorsa\"><span class=\"toc_number toc_depth_2\">4.4<\/span> 4) Dil Cookie ile Belirleniyorsa<\/a><\/li><\/ul><\/li><li><a href=\"#Cok_Para_Birimli_WooCommerce_Icin_CacheKey_Tasarimi\"><span class=\"toc_number toc_depth_1\">5<\/span> \u00c7ok Para Birimli WooCommerce \u0130\u00e7in Cache\u2011Key Tasar\u0131m\u0131<\/a><ul><li><a href=\"#1_Para_Birimi_Alan_Adi_veya_Alt_Dizinle_Ayriliyorsa\"><span class=\"toc_number toc_depth_2\">5.1<\/span> 1) Para Birimi Alan Ad\u0131 veya Alt Dizinle Ayr\u0131l\u0131yorsa<\/a><\/li><li><a href=\"#2_Query_Parametresi_ile_Para_Birimi_Secimi\"><span class=\"toc_number toc_depth_2\">5.2<\/span> 2) Query Parametresi ile Para Birimi Se\u00e7imi<\/a><\/li><li><a href=\"#3_Cookie_ile_Para_Birimi_Belirleniyorsa\"><span class=\"toc_number toc_depth_2\">5.3<\/span> 3) Cookie ile Para Birimi Belirleniyorsa<\/a><\/li><\/ul><\/li><li><a href=\"#Pratik_CacheKey_Tasarimi_Hangi_Boyutlar_Zorunlu_Hangileri_Luks\"><span class=\"toc_number toc_depth_1\">6<\/span> Pratik Cache\u2011Key Tasar\u0131m\u0131: Hangi Boyutlar Zorunlu, Hangileri L\u00fcks?<\/a><\/li><li><a href=\"#WooCommerce039de_Hangi_Sayfalar_CDN039de_Tam_Sayfa_Cache_Olmamali\"><span class=\"toc_number toc_depth_1\">7<\/span> WooCommerce&#039;de Hangi Sayfalar CDN&#039;de Tam Sayfa Cache Olmamal\u0131?<\/a><\/li><li><a href=\"#CDN_Origin_Uyumlu_Mimarisi_Vary_TTL_ve_stale-_Ayarlari\"><span class=\"toc_number toc_depth_1\">8<\/span> CDN + Origin Uyumlu Mimarisi: Vary, TTL ve stale-* Ayarlar\u0131<\/a><\/li><li><a href=\"#Ornek_Senaryo_TR_AB_Pazari_icin_Cok_Dilli_Cok_Para_Birimli_Magaza\"><span class=\"toc_number toc_depth_1\">9<\/span> \u00d6rnek Senaryo: TR + AB Pazar\u0131 i\u00e7in \u00c7ok Dilli \/ \u00c7ok Para Birimli Ma\u011faza<\/a><\/li><li><a href=\"#DCHost_Altyapisinda_Bu_Mimarileri_Nasil_Kuruyoruz\"><span class=\"toc_number toc_depth_1\">10<\/span> DCHost Altyap\u0131s\u0131nda Bu Mimarileri Nas\u0131l Kuruyoruz?<\/a><\/li><li><a href=\"#Test_Log_Analizi_ve_Geri_Alma_Rollback_Stratejisi\"><span class=\"toc_number toc_depth_1\">11<\/span> Test, Log Analizi ve Geri Alma (Rollback) Stratejisi<\/a><\/li><li><a href=\"#Sonuc_Dogru_CacheKey_ile_Hiz_ve_Dogrulugu_Ayni_Anda_Yakalamak\"><span class=\"toc_number toc_depth_1\">12<\/span> Sonu\u00e7: Do\u011fru Cache\u2011Key ile H\u0131z ve Do\u011frulu\u011fu Ayn\u0131 Anda Yakalamak<\/a><\/li><\/ul><\/div>\n<h2><span id=\"Cok_Dilli_Cok_Para_Birimli_WooCommerce_Neden_Ozel_CacheKey_Ister\">\u00c7ok Dilli \/ \u00c7ok Para Birimli WooCommerce Neden \u00d6zel Cache\u2011Key \u0130ster?<\/span><\/h2>\n<p>WooCommerce temelli basit tek dilli bir ma\u011fazada, CDN taraf\u0131nda cache\u2011key genellikle \u015fu kadard\u0131r:<\/p>\n<ul>\n<li>\u015eema (http\/https)<\/li>\n<li>Host (www.example.com)<\/li>\n<li>Path (\/kategori\/urun-adi\/)<\/li>\n<li>Se\u00e7ili baz\u0131 query parametreler (\u00f6rn. sayfalama)<\/li>\n<\/ul>\n<p>Bu, \u00e7o\u011fu i\u00e7erik sitesi i\u00e7in yeterlidir. Ancak \u00e7ok dilli ve \u00e7ok para birimli yap\u0131 devreye girdi\u011finde, ayn\u0131 <strong>path<\/strong> alt\u0131nda \u015fu farkl\u0131l\u0131klar\u0131n olu\u015ftu\u011funu g\u00f6r\u00fcr\u00fcz:<\/p>\n<ul>\n<li>Farkl\u0131 dilde \u00fcr\u00fcn ad\u0131, a\u00e7\u0131klama, buton metinleri<\/li>\n<li>Farkl\u0131 para birimi (TL, EUR, USD vb.)<\/li>\n<li>Farkl\u0131 KDV oranlar\u0131 veya fiyat dahil\/dahil de\u011fil g\u00f6sterimi<\/li>\n<li>Lokasyona g\u00f6re de\u011fi\u015fen kargo ve kampanya kurallar\u0131<\/li>\n<\/ul>\n<p>E\u011fer cache\u2011key i\u00e7inde <strong>dil ve para birimi boyutlar\u0131n\u0131 do\u011fru temsil etmezseniz<\/strong> \u015fu problemlerle kar\u015f\u0131la\u015f\u0131rs\u0131n\u0131z:<\/p>\n<ul>\n<li>Yanl\u0131\u015f para birimiyle fiyat g\u00f6sterimi (\u00f6zellikle reklam kampanyalar\u0131nda b\u00fcy\u00fck g\u00fcven kayb\u0131)<\/li>\n<li>TR ziyaret\u00e7inin Almanca i\u00e7erik, DE ziyaret\u00e7inin T\u00fcrk\u00e7e i\u00e7erik g\u00f6rmesi<\/li>\n<li>Sepete eklenen \u00fcr\u00fcnle vitrinde g\u00f6r\u00fclen fiyat\u0131n uyu\u015fmamas\u0131<\/li>\n<li>KDV ve kargo hesaplar\u0131n\u0131n ger\u00e7ek tutarla e\u015fle\u015fmemesi<\/li>\n<\/ul>\n<p>\u00d6zetle: \u00c7ok dilli \/ \u00e7ok para birimli WooCommerce projelerinde <strong>performans ile do\u011fruluk<\/strong> aras\u0131ndaki dengeyi, cache\u2011key mimariniz belirler.<\/p>\n<h2><span id=\"WooCommerce_Trafigini_Katmanlara_Ayirmak_Nerede_Ne_Onbelleklenir\">WooCommerce Trafi\u011fini Katmanlara Ay\u0131rmak: Nerede Ne \u00d6nbelleklenir?<\/span><\/h2>\n<p>Sadece CDN taraf\u0131na odaklanmadan \u00f6nce, WooCommerce&#039;de tipik bir \u00f6nbellekleme y\u0131\u011f\u0131n\u0131na bakal\u0131m:<\/p>\n<ul>\n<li><strong>Taray\u0131c\u0131 \u00f6nbelle\u011fi:<\/strong> CSS, JS, g\u00f6rseller i\u00e7in uzun TTL; HTML i\u00e7in k\u0131sa veya hi\u00e7.<\/li>\n<li><strong>CDN \u00f6nbelle\u011fi:<\/strong> Statik dosyalar + m\u00fcmk\u00fcnse HTML i\u00e7in tam sayfa cache.<\/li>\n<li><strong>Origin tam sayfa \u00f6nbellek:<\/strong> Nginx FastCGI cache, LiteSpeed Cache, Varnish vb.<\/li>\n<li><strong>Nesne \u00f6nbelle\u011fi:<\/strong> Redis\/Memcached ile veritaban\u0131 sorgular\u0131n\u0131 hafifletme.<\/li>\n<\/ul>\n<p>Bu katmanlar\u0131n birlikte nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 daha genel a\u00e7\u0131dan g\u00f6rmek i\u00e7in, <a href='https:\/\/www.dchost.com\/blog\/wordpresste-tam-sayfa-onbellekleme-nasil-kurulur-nginx-fastcgi-cache-varnish-ve-litespeed-cache-ile-woocommercee-nazikce-dokunmak\/'>WordPress&#039;te tam sayfa \u00f6nbellekleme rehberimizi<\/a> ve <a href='https:\/\/www.dchost.com\/blog\/wordpress-ve-woocommerce-icin-redis-mi-memcached-mi-kalici-nesne-onbellegi-ttl-ve-eviction-ayarlarini-ne-zaman-nasil-yaparsin\/'>WooCommerce i\u00e7in Redis\/Memcached nesne \u00f6nbelle\u011fi yaz\u0131m\u0131z\u0131<\/a> da incelemenizi \u00f6neririz.<\/p>\n<p>Bu yaz\u0131da \u00f6zellikle <strong>CDN cache\u2011key boyutu<\/strong>na odaklanaca\u011f\u0131z; ama unutmay\u0131n: CDN ne kadar ak\u0131ll\u0131 olursa olsun, arka tarafta iyi tasarlanmam\u0131\u015f bir origin cache stratejisi varsa, depremi sadece bir kat yukar\u0131 ta\u015f\u0131m\u0131\u015f olursunuz.<\/p>\n<h2><span id=\"CacheKey_Nedir_CDN039ler_Nasil_Olusturur\">Cache\u2011Key Nedir, CDN&#039;ler Nas\u0131l Olu\u015fturur?<\/span><\/h2>\n<p>Cache\u2011key, k\u0131saca \u201c<strong>bu istek, \u00f6nbellekte hangi kayd\u0131n kar\u015f\u0131l\u0131\u011f\u0131 olsun?<\/strong>\u201d sorusunun cevab\u0131d\u0131r. \u00c7o\u011fu CDN i\u00e7in varsay\u0131lan cache\u2011key \u015fu bile\u015fenlerden olu\u015fur:<\/p>\n<ul>\n<li>\u015eema: http \/ https<\/li>\n<li>Host: www.site.com<\/li>\n<li>Path: \/urun\/kirmizi-elbise\/<\/li>\n<li>Query string: T\u00fcm parametreler veya se\u00e7ili olanlar<\/li>\n<li>Belirli header&#039;lar (\u00f6rn. Accept-Encoding, bazen User-Agent)<\/li>\n<\/ul>\n<p>Geli\u015fmi\u015f senaryolarda cache\u2011key i\u00e7ine <strong>cookie de\u011ferleri<\/strong> ve <strong>\u00f6zel header&#039;lar<\/strong> da eklenir. \u0130\u015fte tam bu noktada \u00e7ok dilli \/ \u00e7ok para birimli WooCommerce devreye girer:<\/p>\n<ul>\n<li>Farkl\u0131 dil i\u00e7in kullan\u0131lan query parametresi (lang, locale vb.)<\/li>\n<li>Para birimini ta\u015f\u0131yan cookie veya query parametresi<\/li>\n<li>\u00dclke bilgisini ta\u015f\u0131yan header (X-Country gibi) veya GeoIP sonucu<\/li>\n<\/ul>\n<p>Ama\u00e7, sadece ger\u00e7ekten i\u00e7erik fark\u0131 yaratan boyutlar\u0131 cache\u2011key&#039;e almak; di\u011fer her \u015feyi <strong>ya yok saymak ya da normalize etmek<\/strong>tir. Aksi h\u00e2lde her UTM parametresi, her A\/B test ID&#039;si i\u00e7in yeni bir cache girdisi olu\u015fur ve hit oran\u0131n\u0131z dramatik \u015fekilde d\u00fc\u015fer.<\/p>\n<h2><span id=\"Cok_Dilli_WooCommerce_Icin_CacheKey_Tasarimi\">\u00c7ok Dilli WooCommerce \u0130\u00e7in Cache\u2011Key Tasar\u0131m\u0131<\/span><\/h2>\n<p>Dil mimarisi, cache\u2011key tasar\u0131m\u0131n\u0131 do\u011frudan etkiler. WooCommerce projelerinde en s\u0131k g\u00f6rd\u00fc\u011f\u00fcm\u00fcz dil yap\u0131lar\u0131n\u0131 tek tek inceleyelim.<\/p>\n<h3><span id=\"1_Her_Dil_Icin_Ayri_Alan_Adi_ccTLD_veya_alt_alan\">1) Her Dil \u0130\u00e7in Ayr\u0131 Alan Ad\u0131 (ccTLD veya alt alan)<\/span><\/h3>\n<ul>\n<li>tr.site.com \u2192 T\u00fcrk\u00e7e<\/li>\n<li>en.site.com \u2192 \u0130ngilizce<\/li>\n<li>site.de \u2192 Almanca<\/li>\n<\/ul>\n<p>Bu mimaride dil zaten <strong>host<\/strong> \u00fczerinden ayr\u0131lm\u0131\u015ft\u0131r. Yani:<\/p>\n<ul>\n<li>tr.site.com\/urun\/ayakkabi\/ \u2192 T\u00fcrk\u00e7e<\/li>\n<li>en.site.com\/product\/shoes\/ \u2192 \u0130ngilizce<\/li>\n<\/ul>\n<p>CDN cache\u2011key&#039;inde <strong>ekstra bir dil boyutu eklemenize gerek yoktur<\/strong>; host zaten dil ayr\u0131m\u0131n\u0131 yapar. \u00d6nemli nokta, kullanmak istedi\u011finiz <strong>hreflang ve uluslararas\u0131 SEO stratejisi<\/strong>nin bu domain mimarisiyle uyumlu olmas\u0131d\u0131r. Bu konuda daha geni\u015f bir \u00e7er\u00e7eve i\u00e7in <a href='https:\/\/www.dchost.com\/blog\/hreflangi-dogru-kurmanin-sirlari-cctld-alt-dizin-alt-alan-ve-x-default-ile-uluslararasi-seoyu-rayina-oturt\/'>hreflang yap\u0131land\u0131rma rehberimizi<\/a> ve <a href='https:\/\/www.dchost.com\/blog\/cok-dilli-web-siteleri-icin-hosting-ve-seo-mimarisi\/'>\u00e7ok dilli web siteleri i\u00e7in hosting ve SEO mimarisi yaz\u0131m\u0131z\u0131<\/a> inceleyebilirsiniz.<\/p>\n<h3><span id=\"2_Dil_Icin_Alt_Dizin_Kullanimi_tr_en_vb\">2) Dil \u0130\u00e7in Alt Dizin Kullan\u0131m\u0131 (\/tr\/, \/en\/ vb.)<\/span><\/h3>\n<ul>\n<li>site.com\/tr\/urun\/ayakkabi\/<\/li>\n<li>site.com\/en\/product\/shoes\/<\/li>\n<\/ul>\n<p>Burada dil bilgisi path i\u00e7inde ta\u015f\u0131n\u0131yor. CDN cache\u2011key zaten path&#039;i i\u00e7erdi\u011fi i\u00e7in, yine <strong>ekstra bir dil parametresine ihtiya\u00e7 yok<\/strong>. \u00d6nemli olan:<\/p>\n<ul>\n<li>Rewrite kurallar\u0131yla dil alt dizinlerinin tutarl\u0131 olmas\u0131,<\/li>\n<li>404 ve y\u00f6nlendirmelerin dil ba\u011f\u0131ms\u0131z \u00e7\u0131lg\u0131nl\u0131klar yapmamas\u0131.<\/li>\n<\/ul>\n<p>Dil switcher butonlar\u0131n\u0131z da do\u011frudan bu alt dizinleri kullan\u0131yorsa, CDN taraf\u0131nda dil i\u00e7in ekstra vary tan\u0131m\u0131 gerekmeyebilir.<\/p>\n<h3><span id=\"3_Dil_Query_Parametresi_ile_Belirleniyorsa_langtr\">3) Dil Query Parametresi ile Belirleniyorsa (?lang=tr)<\/span><\/h3>\n<ul>\n<li>site.com\/urun\/ayakkabi\/?lang=tr<\/li>\n<li>site.com\/urun\/ayakkabi\/?lang=en<\/li>\n<\/ul>\n<p>Bu senaryoda <strong>kritik hata<\/strong> \u015fudur: CDN varsay\u0131lan olarak query parametrelerini g\u00f6rmezden gelecek \u015fekilde ayarlan\u0131rsa, <code>?lang=tr<\/code> ve <code>?lang=en<\/code> istekleri <strong>ayn\u0131 cache girdisini payla\u015f\u0131r<\/strong>. Bu da dil kar\u0131\u015f\u0131kl\u0131\u011f\u0131na neden olur.<\/p>\n<p>\u00c7\u00f6z\u00fcm:<\/p>\n<ul>\n<li>Cache\u2011key i\u00e7ine sadece belirli query parametrelerini (\u00f6rn. <code>lang<\/code>) dahil edin.<\/li>\n<li>UTM, kampanya, takip parametrelerini ise cache\u2011key d\u0131\u015f\u0131na \u00e7\u0131kar\u0131n.<\/li>\n<\/ul>\n<p>Bunu yaparken, <a href='https:\/\/www.dchost.com\/blog\/cdn-ve-tarayici-onbelleginde-cache-busting-stratejileri\/'>CDN ve taray\u0131c\u0131 \u00f6nbelle\u011finde cache\u2011busting stratejileri yaz\u0131m\u0131zda<\/a> anlatt\u0131\u011f\u0131m\u0131z gibi, hangi parametrelerin ger\u00e7ekten i\u00e7erik de\u011fi\u015ftirdi\u011fini, hangilerinin sadece analitik ama\u00e7l\u0131 oldu\u011funu netle\u015ftirmek kritik.<\/p>\n<h3><span id=\"4_Dil_Cookie_ile_Belirleniyorsa\">4) Dil Cookie ile Belirleniyorsa<\/span><\/h3>\n<p>Baz\u0131 \u00e7ok dilli eklentiler, URL\u2019de dil belirtmek yerine <code>language<\/code> veya benzeri bir cookie kullan\u0131r. E\u011fer URL yap\u0131n\u0131zda dil g\u00f6r\u00fcnm\u00fcyor, sadece cookie de\u011fi\u015fiyorsa, CDN i\u00e7in \u015fu se\u00e7enekleriniz var:<\/p>\n<ul>\n<li>Ya cookie tabanl\u0131 vary tan\u0131mlay\u0131p cache\u2011key&#039;e <code>language<\/code> de\u011ferini eklersiniz,<\/li>\n<li>Ya da HTML seviyesinde tam sayfa cache&#039;i devre d\u0131\u015f\u0131 b\u0131rak\u0131p sadece statik dosyalar i\u00e7in CDN kullan\u0131rs\u0131n\u0131z.<\/li>\n<\/ul>\n<p>\u0130lk se\u00e7enek m\u00fcmk\u00fcn ama risklidir: \u00e7ok say\u0131da farkl\u0131 cookie birle\u015fimi (A\/B testleri, sepet, oturum vb.) varsa, cache\u2011key explode olur, hit oran\u0131n\u0131z ciddi \u015fekilde d\u00fc\u015fer. Genellikle <strong>dil bilgisini URL&#039;ye ta\u015f\u0131mak<\/strong> (alt dizin veya alt alan ad\u0131) hem SEO hem cache\u2011key basitli\u011fi a\u00e7\u0131s\u0131ndan daha sa\u011fl\u0131kl\u0131 bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h2><span id=\"Cok_Para_Birimli_WooCommerce_Icin_CacheKey_Tasarimi\">\u00c7ok Para Birimli WooCommerce \u0130\u00e7in Cache\u2011Key Tasar\u0131m\u0131<\/span><\/h2>\n<p>Para birimi boyutu, dil kadar hatta bazen daha kritik. \u00c7\u00fcnk\u00fc <strong>yanl\u0131\u015f kur veya yanl\u0131\u015f k\u00fcsuratla fiyat g\u00f6stermek<\/strong>, ziyaret\u00e7inin saniyeler i\u00e7inde siteden ayr\u0131lmas\u0131na sebep olur. WooCommerce taraf\u0131nda para birimi genellikle \u015fu yollardan biriyle belirlenir:<\/p>\n<ul>\n<li>GeoIP ile \u00fclkeye g\u00f6re otomatik (\u00f6rn. DE \u2192 EUR, TR \u2192 TRY)<\/li>\n<li>Kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi bir para birimi switcher&#039;\u0131 (header veya footer men\u00fcs\u00fcnde)<\/li>\n<li>Alt alan \/ alt dizin ile ayr\u0131lm\u0131\u015f vitrin (eu.site.com, site.com\/eu\/ vb.)<\/li>\n<li>Query parametresi (\u00f6rn. <code>?currency=EUR<\/code>)<\/li>\n<li>Cookie (\u00f6rn. <code>currency=EUR<\/code>)<\/li>\n<\/ul>\n<h3><span id=\"1_Para_Birimi_Alan_Adi_veya_Alt_Dizinle_Ayriliyorsa\">1) Para Birimi Alan Ad\u0131 veya Alt Dizinle Ayr\u0131l\u0131yorsa<\/span><\/h3>\n<p>Dilde oldu\u011fu gibi, e\u011fer her para birimi i\u00e7in farkl\u0131 host\/path kullan\u0131yorsan\u0131z:<\/p>\n<ul>\n<li>site.com\/tr\/ \u2192 TRY<\/li>\n<li>site.com\/eu\/ \u2192 EUR<\/li>\n<\/ul>\n<p>Bu durumda para birimi zaten URL seviyesinde kodlanm\u0131\u015f oldu\u011fundan, cache\u2011key i\u00e7in ekstra bir \u015fey yapman\u0131za gerek yoktur. Yine de WooCommerce eklentilerinizin <strong>ekstra currency cookie&#039;leri<\/strong> olu\u015fturup olu\u015fturmad\u0131\u011f\u0131n\u0131 kontrol etmeli, bunlar\u0131 gereksiz yere vary olarak eklememelisiniz.<\/p>\n<h3><span id=\"2_Query_Parametresi_ile_Para_Birimi_Secimi\">2) Query Parametresi ile Para Birimi Se\u00e7imi<\/span><\/h3>\n<ul>\n<li>site.com\/urun\/ayakkabi\/?currency=EUR<\/li>\n<li>site.com\/urun\/ayakkabi\/?currency=TRY<\/li>\n<\/ul>\n<p>Bu, cache\u2011key a\u00e7\u0131s\u0131ndan en temiz \u00e7\u00f6z\u00fcmlerden biridir. Yapman\u0131z gereken:<\/p>\n<ul>\n<li>CDN \u00fczerinde cache\u2011key i\u00e7ine <strong>sadece<\/strong> <code>currency<\/code> (ve gerekiyorsa <code>lang<\/code>) parametrelerini dahil etmek,<\/li>\n<li>Di\u011fer t\u00fcm tracking parametrelerini cache\u2011key d\u0131\u015f\u0131nda b\u0131rakmak.<\/li>\n<\/ul>\n<p>B\u00f6ylece her dil\/para birimi kombinasyonu i\u00e7in tek bir HTML kopyas\u0131 saklar, gereksiz varyant \u00fcretmezsiniz.<\/p>\n<h3><span id=\"3_Cookie_ile_Para_Birimi_Belirleniyorsa\">3) Cookie ile Para Birimi Belirleniyorsa<\/span><\/h3>\n<p>Bir\u00e7ok WooCommerce \u00e7oklu para birimi eklentisi, kullan\u0131c\u0131n\u0131n se\u00e7imini <strong>cookie<\/strong> i\u00e7ine yazar; URL genellikle de\u011fi\u015fmez. \u00d6rne\u011fin:<\/p>\n<ul>\n<li>Cookie: <code>currency=EUR<\/code> veya <code>currency=TRY<\/code><\/li>\n<li>URL: site.com\/urun\/ayakkabi\/<\/li>\n<\/ul>\n<p>Bu durumda CDN, ayn\u0131 URL i\u00e7in farkl\u0131 HTML d\u00f6n\u00fc\u015fleri alacakt\u0131r. \u0130ki temel strateji vard\u0131r:<\/p>\n<ol>\n<li><strong>Cookie tabanl\u0131 vary:<\/strong> Cache\u2011key i\u00e7ine sadece <code>currency<\/code> cookie&#039;sini eklersiniz. Di\u011fer WooCommerce cookie&#039;lerini (sepet, oturum vb.) cache\u2011key d\u0131\u015f\u0131 b\u0131rak\u0131r ya da bu cookie&#039;ler var oldu\u011funda cache&#039;i tamamen bypass edersiniz.<\/li>\n<li><strong>HTML i\u00e7in CDN cache&#039;ini devre d\u0131\u015f\u0131 b\u0131rakma:<\/strong> CDN sadece statik dosyalar\u0131 cache&#039;ler, HTML tamamen origin&#039;den gelir. Basit ama performans potansiyelini s\u0131n\u0131rlayan bir \u00e7\u00f6z\u00fcm.<\/li>\n<\/ol>\n<p>Biz DCHost taraf\u0131nda genellikle \u015fu yakla\u015f\u0131m\u0131 tercih ediyoruz:<\/p>\n<ul>\n<li>Para birimi cookie&#039;sini cache\u2011key i\u00e7ine dahil et.<\/li>\n<li>Sepet ve oturum cookie&#039;leri (\u00f6rn. <code>woocommerce_cart_hash<\/code>, <code>woocommerce_items_in_cart<\/code>, <code>wp_woocommerce_session_*<\/code>) varsa, iste\u011fi <strong>bypass<\/strong> et.<\/li>\n<\/ul>\n<p>B\u00f6ylece hem vitrin sayfalar\u0131nda g\u00fc\u00e7l\u00fc bir HTML cache elde ediyor, hem de sepet\/checkout ak\u0131\u015f\u0131nda ki\u015fiselle\u015fmi\u015f i\u00e7eri\u011fi koruyorsunuz.<\/p>\n<h2><span id=\"Pratik_CacheKey_Tasarimi_Hangi_Boyutlar_Zorunlu_Hangileri_Luks\">Pratik Cache\u2011Key Tasar\u0131m\u0131: Hangi Boyutlar Zorunlu, Hangileri L\u00fcks?<\/span><\/h2>\n<p>\u00c7ok dilli ve \u00e7ok para birimli bir WooCommerce i\u00e7in ideal cache\u2011key tasla\u011f\u0131 a\u015fa\u011f\u0131daki gibi olabilir:<\/p>\n<ul>\n<li><strong>Her zaman:<\/strong> \u015eema + host + path<\/li>\n<li><strong>Opsiyonel:<\/strong> Sadece i\u00e7erik fark\u0131 yaratan query parametreler (<code>lang<\/code>, <code>currency<\/code>, <code>page<\/code> gibi)<\/li>\n<li><strong>Gerekliyse:<\/strong> Para birimi cookie&#039;si (<code>currency<\/code>) veya dil cookie&#039;si (<code>language<\/code>)<\/li>\n<li><strong>Genellikle gerekmez:<\/strong> User-Agent, cihaz tipi (responsive tema kullan\u0131yorsan\u0131z)<\/li>\n<li><strong>Kesinlikle gerekmez:<\/strong> UTM, kampanya, fbclid, gclid ve di\u011fer tracking parametreleri<\/li>\n<\/ul>\n<p>CDN taraf\u0131nda bu mant\u0131\u011f\u0131, <a href='https:\/\/www.dchost.com\/blog\/cdn-onbellekleme-cache-control-ve-edge-kurallari-wordpress-ve-woocommercede-tam-isabet-ayarlar\/'>CDN cache-control ve edge kurallar\u0131 rehberimizde<\/a> anlatt\u0131\u011f\u0131m\u0131z gibi, \u015fu \u015fekilde ifade edebilirsiniz (temsil\u00ee pseudo-konfig\u00fcrasyon):<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># Temsili mant\u0131k, ger\u00e7ek sentaks CDN&amp;#039;e g\u00f6re de\u011fi\u015fir\ncache_key = scheme + host + path\ninclude_query = [&amp;#039;lang&amp;#039;, &amp;#039;currency&amp;#039;, &amp;#039;paged&amp;#039;]\ninclude_cookies = [&amp;#039;currency&amp;#039;]\nignore_query = [&amp;#039;utm_source&amp;#039;, &amp;#039;utm_medium&amp;#039;, &amp;#039;utm_campaign&amp;#039;, &amp;#039;fbclid&amp;#039;, &amp;#039;gclid&amp;#039;]\n<\/code><\/pre>\n<p>Bu sayede:<\/p>\n<ul>\n<li>URL \u00fczerindeki ger\u00e7ek i\u00e7erik de\u011fi\u015ftiriciler (dil, para birimi, sayfa numaras\u0131) cache\u2011key i\u00e7inde yer al\u0131r.<\/li>\n<li>Takip parametreleri y\u00fcz\u00fcnden ayn\u0131 sayfan\u0131n onlarca kopyas\u0131 tutulmaz.<\/li>\n<\/ul>\n<h2><span id=\"WooCommerce039de_Hangi_Sayfalar_CDN039de_Tam_Sayfa_Cache_Olmamali\">WooCommerce&#039;de Hangi Sayfalar CDN&#039;de Tam Sayfa Cache Olmamal\u0131?<\/span><\/h2>\n<p>CDN ve tam sayfa \u00f6nbellekleme konu\u015furken en \u00e7ok bozulan yerler, elbette WooCommerce&#039;in dinamik ak\u0131\u015f sayfalar\u0131d\u0131r. Genel prensip \u015fu:<\/p>\n<ul>\n<li><strong>G\u00fcvenle cache&#039;lenebilir:<\/strong> Anasayfa, kategori ar\u015fivleri, \u00fcr\u00fcn sayfalar\u0131 (oturum a\u00e7mam\u0131\u015f kullan\u0131c\u0131lar i\u00e7in), blog yaz\u0131lar\u0131, statik kurumsal sayfalar.<\/li>\n<li><strong>Cache <em>edilmemesi<\/em> gerekenler:<\/strong> Sepet, \u00f6deme (checkout), hesap (my-account) sayfalar\u0131, kullan\u0131c\u0131ya \u00f6zel dashboard&#039;lar.<\/li>\n<\/ul>\n<p>Bir\u00e7ok CDN veya page cache eklentisi, <strong>URL pattern<\/strong> veya <strong>cookie varl\u0131\u011f\u0131<\/strong>na g\u00f6re kural yazman\u0131za izin verir. \u00d6rne\u011fin:<\/p>\n<ul>\n<li>Path <code>\/sepet<\/code>, <code>\/cart<\/code>, <code>\/checkout<\/code>, <code>\/my-account<\/code> i\u00e7eriyorsa cache bypass.<\/li>\n<li><code>woocommerce_cart_hash<\/code> veya <code>wp_woocommerce_session_*<\/code> cookie&#039;si varsa cache bypass.<\/li>\n<\/ul>\n<p>Bu b\u00f6l\u00fcmde anlatt\u0131klar\u0131m\u0131z\u0131, daha derin pratik \u00f6rneklerle g\u00f6rmek isterseniz <a href='https:\/\/www.dchost.com\/blog\/woocommerce-icin-cdn-ve-onbellek-ayarlari-sepet-ve-odeme-sayfalarini-bozmadan-hizlanmak\/'>WooCommerce i\u00e7in CDN ve \u00f6nbellek ayarlar\u0131<\/a> yaz\u0131m\u0131z\u0131 mutlaka okuman\u0131z\u0131 tavsiye ederiz.<\/p>\n<h2><span id=\"CDN_Origin_Uyumlu_Mimarisi_Vary_TTL_ve_stale-_Ayarlari\">CDN + Origin Uyumlu Mimarisi: Vary, TTL ve stale-* Ayarlar\u0131<\/span><\/h2>\n<p>CDN cache\u2011key tasar\u0131m\u0131n\u0131z, origin taraf\u0131ndaki header ve cache kurallar\u0131yla uyumlu olmal\u0131d\u0131r. Aksi h\u00e2lde:<\/p>\n<ul>\n<li>Origin, <code>Vary: Cookie<\/code> g\u00f6nderirken CDN sadece URL&#039;yi cache\u2011key yapar ve tutars\u0131z davran\u0131r.<\/li>\n<li>CDN, currency cookie&#039;sine g\u00f6re vary tan\u0131mlar; ama origin taraf\u0131ndaki page cache bu cookie&#039;yi dikkate almaz.<\/li>\n<\/ul>\n<p>\u0130deal senaryoda:<\/p>\n<ul>\n<li>Origin tam sayfa cache, <strong>dil ve para birimi boyutlar\u0131n\u0131<\/strong> zaten biliyor olur.<\/li>\n<li>CDN ise bu boyutlar\u0131 cache\u2011key&#039;e ekleyip, TTL ve <code>stale-while-revalidate<\/code> gibi geli\u015fmi\u015f direktifleri uygular.<\/li>\n<\/ul>\n<p>\u00d6rne\u011fin, origin&#039;den a\u015fa\u011f\u0131daki gibi bir header \u00e7\u0131kt\u0131s\u0131 almak isteyebilirsiniz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">Cache-Control: public, max-age=60, s-maxage=600, \n  stale-while-revalidate=30, stale-if-error=300\nVary: Accept-Encoding, Cookie\n<\/code><\/pre>\n<p>Burada <code>Vary: Cookie<\/code> \u00e7ok geni\u015ftir; WooCommerce cookie&#039;lerinin bir k\u0131sm\u0131n\u0131 CDN taraf\u0131nda <strong>yok sayarak<\/strong> sadece dil\/para birimi cookie&#039;lerini cache\u2011key&#039;e dahil etmek \u00f6nemlidir. <a href='https:\/\/www.dchost.com\/blog\/kesinti-caninizi-sikmasin-stale-while-revalidate-ve-stale-if-error-nasil-hayat-kurtarir\/'>stale-while-revalidate ve stale-if-error direktiflerini<\/a> de do\u011fru kurarak, k\u0131sa s\u00fcreli origin kesintilerinde bile sitenizi ayakta tutabilirsiniz.<\/p>\n<h2><span id=\"Ornek_Senaryo_TR_AB_Pazari_icin_Cok_Dilli_Cok_Para_Birimli_Magaza\">\u00d6rnek Senaryo: TR + AB Pazar\u0131 i\u00e7in \u00c7ok Dilli \/ \u00c7ok Para Birimli Ma\u011faza<\/span><\/h2>\n<p>Diyelim ki WooCommerce ma\u011fazan\u0131z hem T\u00fcrkiye hem de Avrupa Birli\u011fi m\u00fc\u015fterilerine hitap ediyor:<\/p>\n<ul>\n<li>T\u00fcrk\u00e7e + TRY: <code>site.com\/tr\/<\/code><\/li>\n<li>\u0130ngilizce + EUR: <code>site.com\/en\/<\/code><\/li>\n<\/ul>\n<p>Ek olarak, kullan\u0131c\u0131 para birimini header&#039;daki bir switcher ile TRY\/EUR aras\u0131nda de\u011fi\u015ftirebiliyor; se\u00e7imi <code>currency<\/code> cookie&#039;si ile tutuluyor. Cache\u2011key mimarisini \u015f\u00f6yle kurabilirsiniz:<\/p>\n<ol>\n<li><strong>Dil:<\/strong> Zaten alt dizinle ayr\u0131lm\u0131\u015f (tr\/en), dolay\u0131s\u0131yla cache\u2011key i\u00e7in host + path yeterli.<\/li>\n<li><strong>Para birimi:<\/strong> <code>currency<\/code> cookie&#039;sini cache\u2011key i\u00e7ine dahil edin.<\/li>\n<li><strong>Tracking parametreleri:<\/strong> UTM, fbclid, gclid vb. parametreleri cache\u2011key d\u0131\u015f\u0131nda b\u0131rak\u0131n.<\/li>\n<li><strong>Kritik sayfalar:<\/strong> \/sepet, \/checkout, \/my-account gibi path&#039;ler i\u00e7in CDN tam sayfa cache&#039;ini kapat\u0131n.<\/li>\n<\/ol>\n<p>B\u00f6ylece:<\/p>\n<ul>\n<li>site.com\/en\/product\/shoes\/ + <code>currency=EUR<\/code> \u2192 ayr\u0131 cache girdisi<\/li>\n<li>site.com\/en\/product\/shoes\/ + <code>currency=TRY<\/code> \u2192 ayr\u0131 cache girdisi<\/li>\n<li>Ayn\u0131 URL + farkl\u0131 UTM parametreleri \u2192 <strong>ayn\u0131 cache girdisini payla\u015f\u0131r<\/strong><\/li>\n<\/ul>\n<p>Bu mimariyi hem CDN hem de origin cache taraf\u0131nda ayn\u0131 mant\u0131kla kurarsan\u0131z, dil\/para birimi kar\u0131\u015f\u0131kl\u0131\u011f\u0131n\u0131 engellerken, cache hit oran\u0131n\u0131z\u0131 da y\u00fcksek tutars\u0131n\u0131z.<\/p>\n<h2><span id=\"DCHost_Altyapisinda_Bu_Mimarileri_Nasil_Kuruyoruz\">DCHost Altyap\u0131s\u0131nda Bu Mimarileri Nas\u0131l Kuruyoruz?<\/span><\/h2>\n<p>DCHost taraf\u0131nda y\u00f6netti\u011fimiz WooCommerce projelerinde genellikle \u015fu yolu izliyoruz:<\/p>\n<ul>\n<li>\u00d6nce <strong>dil ve domain mimarisini<\/strong> netle\u015ftiriyoruz (ccTLD, alt alan, alt dizin).<\/li>\n<li>Ard\u0131ndan se\u00e7ilen \u00e7oklu para birimi eklentisinin <strong>dil\/para birimi sinyallerini<\/strong> (cookie, query param, path) harital\u0131yoruz.<\/li>\n<li>Origin taraf\u0131nda Nginx\/LiteSpeed veya Varnish ile <strong>dil\/para birimi fark\u0131ndal\u0131\u011f\u0131 olan bir page cache<\/strong> katman\u0131 kuruyoruz.<\/li>\n<li>CDN \u00fczerinde ise bu boyutlar\u0131 cache\u2011key i\u00e7inde minimum ama yeterli olacak \u015fekilde tan\u0131ml\u0131yoruz.<\/li>\n<\/ul>\n<p>Daha ileri seviyede, yo\u011fun trafi\u011fe sahip ma\u011fazalarda <a href='https:\/\/www.dchost.com\/blog\/geodns-ve-cok-bolgeli-hosting-mimarisi-ile-global-ziyaretcilere-yakinlasmak\/'>GeoDNS ve \u00e7ok b\u00f6lgeli hosting mimarisi<\/a> ile farkl\u0131 co\u011frafyalara yak\u0131n origin sunucular konumland\u0131r\u0131yor, CDN katman\u0131yla birlikte \u00e7al\u0131\u015facak \u015fekilde kurguluyoruz. B\u00f6ylece hem TTFB d\u00fc\u015f\u00fck kal\u0131yor hem de dil\/para birimi taraf\u0131nda tutarl\u0131l\u0131\u011f\u0131 koruyoruz.<\/p>\n<p>Altyap\u0131 taraf\u0131nda NVMe diskli <a href=\"https:\/\/www.dchost.com\/tr\/vps\">VPS<\/a> veya <a href=\"https:\/\/www.dchost.com\/tr\/fiziksel-sunucu\">dedicated sunucu<\/a>lar, Redis\/Memcached nesne \u00f6nbelle\u011fi, optimize edilmi\u015f PHP-FPM ve veritaban\u0131 ayarlar\u0131yla, CDN katman\u0131n\u0131n size sundu\u011fu kazan\u0131m\u0131 maksimuma \u00e7\u0131karmak m\u00fcmk\u00fcn.<\/p>\n<h2><span id=\"Test_Log_Analizi_ve_Geri_Alma_Rollback_Stratejisi\">Test, Log Analizi ve Geri Alma (Rollback) Stratejisi<\/span><\/h2>\n<p>Cache\u2011key mimarisini k\u00e2\u011f\u0131t \u00fczerinde ne kadar do\u011fru tasarlasan\u0131z da, mutlaka <strong>kontroll\u00fc bir test s\u00fcreci<\/strong> kurgulaman\u0131z gerekir:<\/p>\n<ol>\n<li><strong>Staging ortam\u0131:<\/strong> Canl\u0131ya ge\u00e7meden \u00f6nce CDN ve cache kurallar\u0131n\u0131 staging&#039;de deneyin.<\/li>\n<li><strong>Debug header&#039;lar\u0131:<\/strong> CDN&#039;in g\u00f6nderdi\u011fi <code>cache-status<\/code> (HIT\/MISS), kullan\u0131lan cache\u2011key, vary bilgilerini g\u00f6r\u00fcn\u00fcr k\u0131l\u0131n.<\/li>\n<li><strong>Farkl\u0131 senaryolar\u0131 test edin:<\/strong> TR\/EU IP, farkl\u0131 dil\/para birimi kombinasyonlar\u0131, s\u0131f\u0131rdan gelen ziyaret\u00e7i vs. daha \u00f6nce sepet olu\u015fturmu\u015f kullan\u0131c\u0131.<\/li>\n<li><strong>Log analizi:<\/strong> Yanl\u0131\u015f dil\/para birimi ile g\u00f6r\u00fcnt\u00fclenen sayfa \u015fikayetleri i\u00e7in access log ve CDN loglar\u0131n\u0131 inceleyin.<\/li>\n<\/ol>\n<p>\u00d6zellikle e-ticaret taraf\u0131nda log analizi, d\u00f6n\u00fc\u015f\u00fcm kayb\u0131n\u0131 fark etmek i\u00e7in kritik. Bunun i\u00e7in <a href='https:\/\/www.dchost.com\/blog\/e-ticaret-siteleri-icin-log-analizi-donusum-kaybi-4xx-5xx-ve-odeme-hatalarini-yakalamak\/'>e-ticaret siteleri i\u00e7in log analizi rehberimizden<\/a> yararlanabilirsiniz.<\/p>\n<p>Son olarak, CDN taraf\u0131nda yapt\u0131\u011f\u0131n\u0131z her kural de\u011fi\u015fikli\u011finin <strong>geri alma plan\u0131<\/strong> olmal\u0131. \u00d6rne\u011fin yeni bir cache\u2011key stratejisini \u00f6nce belirli bir path veya \u00fclke segmentinde deneyip, sorun g\u00f6rmezseniz kademeli olarak t\u00fcm siteye yayabilirsiniz.<\/p>\n<h2><span id=\"Sonuc_Dogru_CacheKey_ile_Hiz_ve_Dogrulugu_Ayni_Anda_Yakalamak\">Sonu\u00e7: Do\u011fru Cache\u2011Key ile H\u0131z ve Do\u011frulu\u011fu Ayn\u0131 Anda Yakalamak<\/span><\/h2>\n<p>\u00c7ok dilli ve \u00e7ok para birimli WooCommerce projelerinde performans sorunlar\u0131 s\u0131kl\u0131kla \u201csunucu yetersiz\u201d san\u0131lsa da, ger\u00e7ek sebep \u00e7o\u011fu zaman <strong>yanl\u0131\u015f kurgulanm\u0131\u015f CDN ve cache\u2011key mimarisi<\/strong> oluyor. Dil ve para birimi bilgisi URL, cookie ve header seviyesinde netle\u015ftirilmedi\u011finde; ayn\u0131 sayfan\u0131n onlarca gereksiz varyant\u0131 saklan\u0131yor veya tam tersi, farkl\u0131 i\u00e7erikler ayn\u0131 cache girdisini payla\u015f\u0131yor.<\/p>\n<p>Do\u011fru yakla\u015f\u0131m; \u00f6nce bilgi mimarisini ve URL yap\u0131s\u0131n\u0131 sadele\u015ftirip, ard\u0131ndan sadece ger\u00e7ekten i\u00e7erik fark\u0131 yaratan <strong>dil ve para birimi sinyallerini<\/strong> cache\u2011key i\u00e7ine almakt\u0131r. Sepet ve \u00f6deme ad\u0131mlar\u0131n\u0131 g\u00fcvenle cache d\u0131\u015f\u0131na \u00e7\u0131kar\u0131rken, vitrin ve i\u00e7erik sayfalar\u0131nda agresif ama kontroll\u00fc bir cache politikas\u0131 kurabilirsiniz. Bu noktada <a href='https:\/\/www.dchost.com\/blog\/wordpress-icin-cdn-onbellek-kurallari-nasil-kurulur-woocommercede-html-cache-bypass-ve-edge-ayarlariyla-uctan-uca-hiz\/'>WordPress i\u00e7in CDN \u00f6nbellek kurallar\u0131 rehberimiz<\/a> de size pratik bir kontrol listesi sunacakt\u0131r.<\/p>\n<p>E\u011fer WooCommerce ma\u011fazan\u0131z \u00e7ok dilli ve \u00e7ok para birimli yap\u0131da b\u00fcy\u00fcyorsa ve CDN taraf\u0131nda hangi y\u00f6nden ba\u015flayaca\u011f\u0131n\u0131z net de\u011filse, DCHost ekibi olarak hem <strong>altyap\u0131 (VPS, dedicated, colocation)<\/strong> hem de <strong>CDN ve cache mimarisi<\/strong> taraf\u0131nda yan\u0131n\u0131zday\u0131z. Mevcut trafi\u011finizi, eklentilerinizi ve URL yap\u0131n\u0131z\u0131 birlikte analiz edip, h\u0131zl\u0131 ama do\u011fru sonu\u00e7 veren bir cache\u2011key stratejisini ad\u0131m ad\u0131m hayata ge\u00e7irebiliriz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u00c7ok dilli ve \u00e7ok para birimli bir WooCommerce ma\u011fazas\u0131 kurdu\u011funuz anda, klasik \u201cCDN a\u00e7, \u00f6nbelle\u011fi bas\u201d yakla\u015f\u0131m\u0131 bir anda yetersiz kal\u0131r. Ayn\u0131 URL&#039;yi ziyaret eden farkl\u0131 kullan\u0131c\u0131lar\u0131n farkl\u0131 dil, para birimi, vergi ve kargo se\u00e7enekleri g\u00f6rmesi gerekir. Yanl\u0131\u015f tasarlanm\u0131\u015f bir CDN cache\u2011key mimarisi ise tam tersini yapar: bir kullan\u0131c\u0131n\u0131n TL fiyat\u0131yla olu\u015fturdu\u011fu sayfa, ba\u015fka bir [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4969,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-4968","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/4968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=4968"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/4968\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/4969"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=4968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=4968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=4968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}