10 Kasım 2026 | Kendi geliştirmemiz | Odoo, performans ve arama motorları
Bir Odoo web sitesi her sayfayı her çağrıda yeniden oluşturur: veritabanı sorguları, şablonlar, çeviriler, fiyatlar. Tek bir ziyaretçi için bu fark edilmez. Ancak arama motorları ve yapay zekâ dizinleyicileri birçok dilde yüzlerce veya binlerce sayfayı çağırdığında bu sürekli bir yüke dönüşür ve gerçek müşteriler de bekler. Bunun için Odoo 19 modülü website_page_cache modülünü geliştirdik ve GitHub'da açık kaynak (LGPL-3) olarak yayımladık: Anonim olarak çağrılan mağaza ve blog sayfaları neredeyse statik olarak bir önbellekten sunulur; ya dosyalardan ya da çalışma belleğinden (RAM). Her değişiklik – bir çeviride bile – etkilenen sayfaları otomatik olarak önbellekten çıkarır.
Bulunmak isteyen herkes için önemli: Modül hiçbir arama motorunu ve hiçbir yapay zekâ tarayıcısını engellemez. Tüm dizinleyiciler, her ziyaretçiyle aynı içeriği alır; yalnızca daha hızlı. Bu yazı, önbelleğin nasıl çalıştığını, panonun nasıl göründüğünü (ekran görüntüleriyle), sayfalarınızın çalışma belleğine sığıp sığmadığını ve ek olarak ne kadar RAM gerekeceğini nasıl anlayacağınızı, hangi güvenlik kurallarının geçerli olduğunu ve modülü nasıl kuracağınızı açıklıyor.
Bu yazının içeriği
- Kısa özet
- Sorun: Odoo web sitelerinde tarayıcı yükü
- Sayfa önbelleği nasıl çalışır
- Dosya mı RAM mi: depolama yerini seçin
- Web sitesi çalışma belleğine sığıyor mu? Ve ne kadar RAM eksik?
- Değişiklikler ve çeviriler önbelleği temizler
- Pano ve istatistik
- Güvenlik: Önbellekten asla gelmeyenler
- Arama motorları ve yapay zekâ dizinleyicileri: hiçbir şey engellenmez
- HTML'yi küçültme ve sıkıştırılmış sunma
- Kurulum ve ayarlar
- Bilmeniz gereken sınırlar
- Sık sorulan sorular
- Biricon IT Services desteği
Kısa özet
| Konu | Geçerli olan |
|---|---|
| Modül | website_page_cache, Odoo 19 için, LGPL-3 lisanslı, GitHub'da herkese açık |
| Ne önbelleğe alınır? | Her web sitesinin her dilindeki herkese açık mağaza ve blog sayfaları (listeler, kategoriler, ürünler, yazılar) |
| Kimler için? | Yalnızca anonim ziyaretçiler, yalnızca arama parametresi içermeyen GET çağrıları, yalnızca HTML içeren 200 durumu |
| Depolama yeri | Diskte dosyalar veya RAM (tmpfs, tüm çalışan süreçlerce paylaşılır); yer ihtiyacına göre otomatik |
| Güncellik | Her değişiklik (çeviriler, içe aktarmalar, betikler dâhil) veritabanı tetikleyicileri aracılığıyla bir günlük kaydı oluşturur ve etkilenen sayfaları geçersiz kılar |
| Pano | Ayarlar, durum, istatistik (isabetler, ıska sayısı, tasarruf edilen sunucu süresi) ve “gerekli ek RAM” bilgisi dâhil “Çalışma belleğine sığıyor mu?” denetimi |
| Arama motorları ve yapay zekâ | Hiçbir şey engellenmez veya kısıtlanmaz; herkes aynı sayfaları alır, yalnızca daha hızlı |
| Acil fren | Tek bir anahtar (enabled = 0), önbelleği tüm çalışan süreçlerde 30 saniye içinde kapatır |
Sorun: Odoo web sitelerinde tarayıcı yükü
Odoo eksiksiz bir ERP sistemidir, web sitesi ise birçok modülden yalnızca biridir. Bir ziyaretçinin veya robotun çağırdığı her sayfa aynı yolu izler: isteği işleme, veritabanını sorgulama, ürün ve fiyat verilerini yükleme, QWeb şablonunu oluşturma, çevirileri yerleştirme ve sonucu sunma. Sayfaya bağlı olarak bu birkaç yüz milisaniye sürer ve bu sürede az sayıdaki çalışan süreçten birini meşgul eder.
Arama motorları ve yapay zekâ dizinleyicileri için bu sürekli bir sorundur:
- Çok dil, çok adres: 46 dilde mevcut bir sayfa, bir tarayıcı için 46 farklı adres demektir.
- Her adres ayrı ayrı çağrılır, çoğu zaman çok sayıda dağıtık gönderici tarafından aynı anda. Klasik bir tarayıcı önbelleği burada işe yaramaz, çünkü her çağrı yeni bir adrese yöneliktir.
- Az sayıda çalışan süreç: Bir Odoo hizmeti genellikle bir avuç süreçle çalışır. Bunlar tarayıcı istekleriyle doluysa gerçek ziyaretçiler kuyrukta bekler.
- Aynı içerik, tekrar tekrar yeniden: Bir blog yazısı nadiren değişir, ancak her çağrıda baştan zahmetle oluşturulur.
Akla gelen çıkış yolu – tarayıcıları dışarıda bırakmak – bulunmak isteyen bir şirket için seçenek değildir. Arama motorlarında ve yapay zekâ yanıtlarında görünürlük değerlidir. Daha iyisi, sayfaları yükün neredeyse hissedilmeyeceği kadar hızlı sunmaktır. Sayfa önbelleği tam olarak bunu yapar.
Sayfa önbelleği nasıl çalışır
Modül, Odoo'nun istek girişine bağlanır. Her sayfa çağrısında sayfanın önbellekten gelip gelemeyeceğine milisaniyenin kesrinde karar verir ve geliyorsa veritabanı, şablon ve oluşturma olmadan sunar (ir.http).
- Denetim: Yalnızca izin verilen bir yolda (mağaza, kategoriler, ürünler, blog) arama parametresi içermeyen anonim bir
GETçağrısı söz konusu olabilir. Diğer her şey her zamanki gibi Odoo'dan geçer. - Önbellek anahtarı: Web sitesi, ana makine sınıfı, dil, yol, fiyat listesi, mali pozisyon ve çerez onay durumundan oluşur. Bu nedenle farklı bir şey görecek ziyaretçiler hiçbir zaman aynı kaydı paylaşmaz. Ana makine bu sırada normalleştirilir: Odoo mutlak adresleri her zaman isteğin değil, web sitesinin alan adından yazar; istek adresi yalnızca sayfanın ana adres sayılıp sayılmayacağına (dil bağlantıları) ve dizinlenip dizinlenmeyeceğine karar verir. Bu nedenle tüm yabancı ana makine adları, her biri kendi kopyasını kaplamak yerine
noindexipucu dâhil tek bir kaydı paylaşır. - İsabet: Güncel bir kayıt varsa sunulur. Sayfadaki CSRF belirteci bu sırada her istek için yeniden ayarlanır. Blog yazılarının görüntülenmeleri saymaya devam eder.
- Iska: Kayıt yoksa veya eskimişse Odoo sayfayı her zamanki gibi oluşturur. Sonuç önbelleğe alınabilirse (durum 200, HTML, çerez yok, metinde oturum kimliği yok) kaydedilir; bir sonraki çağrı isabet olur.
- Başlıkta görünür: Her yanıt
X-Page-Cache: HITveyaMISSbaşlığını taşır. Böylece ne olduğu herhangi bir araçla denetlenebilir.
Ne kadar daha hızlı?
Test sistemimizde (web sitelerimizin bir kopyası, birkaç yüz sayfa) bir sayfanın ortalama oluşturma süresi yaklaşık 490 milisaniye, önbellekten sunum ise yaklaşık 23 milisaniye idi: kabaca yirmi kat. Sayfa ne kadar karmaşıksa kazanç o kadar büyüktür. Pano ayrıca bu iki değerden tahmini tasarruf edilen sunucu süresini hesaplar.
Dosya mı RAM mi: depolama yerini seçin
Önbelleğin iki depolama yeri vardır. İkisi de tüm Odoo çalışan süreçleri tarafından ortak görülür; yani her sayfa süreç başına bir kez değil, yalnızca bir kez bulunur.
| Ayar | Sayfalar nerede durur? | Özellikler |
|---|---|---|
| Dosyalar | Odoo veri klasöründe, veritabanı başına bir dizin | yeniden başlatmalardan etkilenmez; işletim sistemi sık kullanılan sayfaları zaten bellekte tutar |
| Çalışma belleği | /dev/shm altında tmpfs | en hızlı sunum; sunucu yeniden başlatıldığında kaybolur ve yeniden oluşturulur |
| Otomatik | Her şey sığdığı sürece RAM; aksi hâlde dosyalar | Bir bakım işi (10 dakikada bir) tahmine göre karar verir; seçim sürekli değişmesin diye “sığıyor” ve “sınırda” durumlarında RAM'de kalır |
Çoğu kurulum için Otomatik doğru seçimdir: Yer varsa RAM hızını alırsınız, yoksa müdahale gerekmeden dosyalara geri dönülür.
Web sitesi çalışma belleğine sığıyor mu? Ve ne kadar RAM eksik?
Bir RAM önbelleğinin mümkün olup olmadığı üç şeye bağlıdır: sayfa sayısına, ortalama boyutuna ve kullanılabilir belleğe. Pano bunu sizin için hesaplar:
- Sayfa sayısı: Her web sitesi için yayımlanmış ürünleri, mağaza liste sayfalarını, kategorileri, blog yazılarını ve blog listelerini sayar ve dil sayısıyla çarpar.
- Sayfa boyutu: Önbellekte sayfalar bulunur bulunmaz gerçek ortalama ölçülür; o zamana kadar bir varsayım değeri geçerlidir.
- Önbellek için yer: ayarlanan RAM bütçesi, tmpfs boyutu ve kullanılabilir çalışma belleğinin yarısı değerlerinin en küçüğü. Sunucu, önbellek yüzünden asla bellek sıkıntısına düşmemelidir.
- Karar: “yedekle sığıyor”, “sınırda”, “çok büyük” veya “RAM önbelleği kullanılamıyor”. İhtiyaç, kullanılabilir yerin en fazla yüzde 80'i ise “sığıyor” geçerlidir.
Yeni: Ne kadar ek RAM gerekir?
Önbellek sığmıyorsa neyin değişmesi gerektiğini bilmek istersiniz. Bu nedenle pano, kararın altında somut bir satır verir: “RAM önbelleği için ek RAM: bu sunucuda yaklaşık … daha fazla çalışma belleği” – yer zaten yetiyorsa “yok”. Sunucu yerine yalnızca bir ayar çok küçükse, altında hangisi olduğu yazar: modülün RAM bütçesi veya tmpfs boyutu (/dev/shm).
Arkasındaki hesap basit ve izlenebilirdir:
- İhtiyaç = sayfalar × ortalama sayfa boyutu.
- Yedekli = ihtiyacın 0,8'e bölünmesi. Kararın “sığıyor” olması için bu değerin RAM bütçesine ve tmpfs'ye sığması gerekir.
- Boş bellek: Önbellek kullanılabilir çalışma belleğinin en fazla yarısını kullanabildiğinden, sunucunun serbestçe kullanılabilir bellek olarak 2. adımdaki değerin en az iki katına ihtiyacı vardır. Bir şey eksikse aradaki fark gereken ek RAM'dir.
Görseldeki örnek (her biri 25 KB olan 12.000 sayfa) bir hesaplama yardımıdır, sayfalarımızın ölçümü değildir. Küçük web siteleri için birkaç düzine megabayt yeterlidir; ekran görüntülerindeki örnek veriler yaklaşık 13 MB ile yetindi.
Değerlendirme için önemli: Tahmin fiyat listesi veya ülke bazlı ek sürümleri saymaz. Bunlardan çok kullananlar biraz yedek planlamalıdır. Ayrıca: Otomatiğin dosyalarda kalmasının en sık nedeni, çalışma belleği eksikliği değil, çok küçük bir RAM bütçesidir. Pano bu durumda tam olarak bu satırı gösterir.
Değişiklikler ve çeviriler önbelleği temizler
Bir önbellek ancak asla eskimiş sayfa sunmuyorsa kullanışlıdır. Salt zaman sınırı (“her on iki saatte bir at”) çok kaba olurdu: Değişen bir fiyat veya düzeltilen bir yazım hatası on iki saate kadar beklemek zorunda kalırdı. Bu nedenle modül içeriğe dayalı çalışır.
- Veritabanı tetikleyicileri: Bir sayfayı etkileyebilecek tüm tablolarda (ürünler, varyantlar, görseller, stok, öznitelikler, kategoriler, fiyatlar, vergiler, fiyat listeleri, blog yazıları ve etiketleri, iş ortağı ve şirket verileri, görünümler, varlıklar, menüler, diller, web sitesi ayarları) PostgreSQL tetikleyicileri bulunur. Her değişikliği bir değişiklik günlüğüne yazarlar.
- Bağımlılıklar ve veritabanı durumu: Önbelleğe alınan her sayfa hangi kayıtları gösterdiğini ve hangi veritabanı durumuyla oluşturulduğunu hatırlar.
- Karşılaştırma: Bu durumdan sonra oluşmuş ve bu kayıtlardan birini ilgilendiren bir günlük kaydı varsa sayfa eskimiştir.
- Yeniden önbelleğe alma: Bir sonraki çağrıda eskimiş sayfa atılır, yeniden oluşturulur ve yeniden kaydedilir.
Çeviriler de kapsanır
Odoo 19, çevrilmiş metinleri özgün metinle aynı kayıtta (JSON alanı olarak) saklar. Değiştirilen bir çeviri, veritabanı için tamamen olağan bir satır değişikliğidir – ve tetikleyici bunu görür. Bu; arayüz üzerinden düzenleme, içe aktarmalar, arayüzler (API) ve doğrudan veritabanına yazan betikler için aynı şekilde geçerlidir. Dolayısıyla 46 dile otomatik çeviri, metni değişen sayfaları ve yalnızca onları geçersiz kılar.
- Toptan değil, hedefli: Değiştirilen bir ürün, kendi sayfalarını, içinde yer aldığı listeleri ve ilgili kategoriyi geçersiz kılar. Geri kalanı önbellekte kalır.
- Genel değişiklikler (şablonlar, varlıklar, diller, menüler, vergiler, para birimleri) her sayfayı etkileyebileceğinden her şeyi bir anda geçersiz kılar.
- Sayaçlar dışarıda bırakılır: Blog yazılarının görüntülenme sayacı her ziyarette değişir; bilinçli olarak geçersiz kılmayı tetiklemez, aksi hâlde popüler yazılarda önbellek etkisiz kalırdı.
- Güvenlik ağı: Ayrıca sayfa başına bir azami yaş vardır (varsayılan 12 saat).
- Önbellek yüzünden kayıt hatası olmaz: Bir tetikleyici içindeki hata uyarı olarak günlüğe yazılır ve asıl kaydetme işleminin başarısız olmasına yol açmaz.
Pano ve istatistik
İşletim için gereken her şey tek bir yerde: Odoo'da Web sitesi → Raporlar → Sayfa önbelleği altında. Genel bakış bölümü panodur (ayarlarla birlikte), Geçmiş bölümü ise gün ve web sitesi başına rakamları gösterir.
Web sitelerimizin kopyalarının bulunduğu bir test sisteminden ekran görüntüsü; web sitesi adları yer tutucularla değiştirilmiştir.
Ayarlar
| Ayar | Anlamı |
|---|---|
| Etkin | Ana anahtar. Kapatıldığında Odoo her sayfayı eskisi gibi sunar; tüm süreçlerde en geç 30 saniye sonra. |
| Depolama yeri | Otomatik, Dosyalar veya Çalışma belleği |
| Azami yaş (saat) | Güvenlik ağı; sayfalar değişikliklerden bağımsız olarak bu süreden sonra yenilenir |
| RAM bütçesi (MB) | RAM önbelleğinin kaplayabileceği azami çalışma belleği; aynı zamanda “sığıyor” kararının sınırı |
| Disk sınırı (MB) | Dosya önbelleğinin azami boyutu; önce en eski kayıtlar kaldırılır |
Durum ve istatistik
Durum; etkin depolama yerini sınırıyla, önbelleğe alınan sayfaların sayısını ve boyutunu ve değişiklik izlemeyi gösterir: son 24 saatte kaç değişikliğin kaydedildiğini ve kaç tablonun izlendiğini. Bir izleme eksikse pano açıkça uyarır, çünkü o zaman önbelleğe güvenilmemelidir. Üstteki düğmelerle bakım hemen çalıştırılabilir, önbellek boşaltılabilir veya tetikleyiciler denetlenip gerekirse yeniden oluşturulabilir.
İstatistik (Bugün, 7 gün, 30 gün) şunları içerir:
- Önbellekten ve Oluşturulan: isabetler ve ıskalar, bunlardan isabet oranı
- Kaldırılan (değişen/süresi dolan): kaç sayfanın değişiklik veya süre dolması nedeniyle atıldığı
- Oluşturma süresi ve önbellek süresi: sayfa başına ortalamanın karşılaştırması
- Tahmini tasarruf edilen sunucu süresi ve önbellekten sunulan veri miktarı
Rakamları her çalışan süreç kendi başına toplar ve dakikada bir yazar; 90 günden eski satırları bakım işi temizler.
Geçmiş: grafik, pivot ve liste olarak
Geçmiş altında web sitesi başına günlük değerler bulunur – grafik, pivot tablo veya liste olarak. Böylece isabet oranının yeniden başlatmadan veya büyük bir değişiklikten sonra tekrar yükselip yükselmediğini ve hangi web sitesinin önbellekten en çok trafik aldığını görürsünüz.
Güvenlik: Önbellekten asla gelmeyenler
Bir sayfa önbelleği, hiç kimsenin bir başkasının içeriğini görmesine yol açmamalıdır. Bu nedenle modül şu ilkeyle çalışır: Şüphede önbelleğe alma.
- Yalnızca anonim ziyaretçiler: Oturum açmış olan, sepeti bulunan veya başka bir oturum durumu taşıyan herkes her zaman normal şekilde oluşturulmuş sayfayı alır.
- Yalnızca arama parametresiz
GET: Aramalar, filtreler, sıralamalar, formlar, sepet ve ödeme etkilenmez. - Yalnızca durum 200 ve HTML: Hata sayfaları, yönlendirmeler ve dosyalar kaydedilmez.
- Önbellekte oturum kimliği yok: Oturum kimliği içeren veya çerez ayarlayan bir sayfa kaydedilmez (ve uyarı olarak günlüğe yazılır).
- İstek başına CSRF belirteci: Önbellekteki sayfada bulunan belirteç bir yer tutucudur ve her sunumda yeniden yerleştirilir.
- İnce anahtar: Web sitesi, dil, fiyat listesi, mali pozisyon ve çerez onayı önbellek anahtarının parçasıdır; farklı bir şey gören farklı bir kayıt alır.
- Birden çok veritabanı: Her veritabanının kendi kayıtları, kendi günlüğü ve kendi istatistiği vardır.
- Veri sızıntısı yok: Önbellek sunucuda yerel olarak durur (dosya veya RAM). Üçüncü taraflara hiçbir veri aktarılmaz.
Arama motorları ve yapay zekâ dizinleyicileri: hiçbir şey engellenmez
Bazı işletmeciler tarayıcı yüküne engellemelerle karşılık verir. Bu sunucuyu korur ama görünürlüğe mal olur. Modül tersini seçer:
- Herkese aynı içerik: Arama motorları, yapay zekâ dizinleyicileri ve ziyaretçiler aynı sayfayı alır. Ayrı bir “tarayıcı sürümü” ve tarayıcı kimliğine göre tanıma yoktur.
- Daha hızlı yanıtlar dizinlemeye yardımcı olur: 500 yerine 20 milisaniyede yanıt veren bir sayfa tarama bütçesini daha az yorar ve tarayıcılar aynı sürede daha fazla sayfa tarayabilir.
- Güncel içerik: Değişiklikler sayfaları anında geçersiz kıldığından tarayıcılar hiçbir zaman eskimiş bir sürüm görmez – arama ve yapay zekâ yanıtları için içerik yönetiyorsanız önemlidir.
- Yapılandırılmış veriler korunur: JSON-LD, meta bilgileri ve
hreflangbağlantıları önbelleğe alınan sayfanın parçasıdır; site haritalarına ve dosyalara önbellek dokunmaz.
Ayrıca yükü sınırlamak isterseniz bu ayrı bir karardır ve bilinçli olarak verebilirsiniz – modül bunu size dayatmaz.
HTML'yi küçültme ve sıkıştırılmış sunma
Önbellek yalnızca hesaplama süresinden değil, veri hacminden de tasarruf sağlar. Modül HTML'yi kaydetmeden önce küçültür ve tarayıcı ya da tarayıcı robotu destekliyorsa sıkıştırılmış olarak sunar:
- Küçültme (parametre
website_page_cache.minify): HTML yorumları kaldırılır, boşluklar birleştirilir. Boşluklar yalnızca tarayıcının zaten yok saydığı yerlerde, örneğin blok öğeler arasında tamamen kaldırılır. Satır içi öğeler arasındaki boşluklar kalır,pre,textareave betikler değişmeden kalır, yapılandırılmış veriler (JSON-LD) kompakt biçimde yeniden yazılır. Sayfaya bağlı olarak sayfalar %10 ile %30 arasında küçülür. Yedi gerçek sayfayla yapılan testte metin, öğe sayısı, tüm öğelerin konumu ve ekran görüntüsü orijinalle aynıydı. İlk sunum (MISS) sonrakiler (HIT) kadar küçültülmüştür. - Sıkıştırma (parametre
website_page_cache.compress): Önbellekteki sayfalar gzip ile gönderilir (Content-Encoding: gzip,Vary: Accept-Encoding). Büyük varlık paketlerini (CSS ve JavaScript, birkaç MB'a kadar) Odoo kendisi sıkıştırılmadan sunar; modül bunları bir kez sıkıştırır, kopyayı diske koyar ve sonrasında doğrudan sunar. Böylece 2,1 MB CSS 0,27 MB'a, 4,8 MB JavaScript 1,1 MB'a düştü. Eski kopyaları bakım işi temizler. - Bilgisayar yeniden başlatıldıktan sonra: RAM önbelleği Odoo'nun yeniden başlatılmasında korunur, sunucunun yeniden başlatılmasında korunmaz. Bu nedenle bakım işi onu kademeli olarak diske yansıtır (parametre
website_page_cache.persist) ve başlangıçta geri yükler. Geri yüklenen bir kaydın hâlâ geçerli olup olmadığını her zamanki mekanizma denetler: yaş ve değişiklik günlüğü. Küçültme bu sırada yeniden hesaplanmaz.
Kurulum ve ayarlar
- Modülü edinin: Kaynak kodunu GitHub'dan indirin ve Odoo 19 kurulumunuzun bir addons yoluna koyun: github.com/Alex0176/odoo-website-page-cache
- Kurun:
odoo-bin -d <Datenbank> -i website_page_cache --stop-after-init. Bu sırada değişiklik günlüğü, tetikleyiciler ve bakım işi (10 dakikada bir) oluşturulur. - Hizmeti yeniden başlatın ki tüm çalışan süreçler modülü yüklesin.
- Panoyu açın: Web sitesi → Raporlar → Sayfa önbelleği. Değişiklik izlemenin eksiksiz olup olmadığını denetleyin ve depolama yerini seçin (varsayılan: otomatik).
- Denetleyin: Bir mağaza veya blog sayfasını iki kez çağırın ve
X-Page-Cachebaşlığına bakın: ilkindeMISS, sonrasındaHIT.
Ayarlar sistem parametreleri olarak bulunur (website_page_cache.enabled, .backend, .ttl_hours, .max_mb_file, .max_mb_ram) ve normalde panoda yönetilir. Modül Almancaya çevrilmiştir. Kaldırma tetikleyicileri, günlüğü ve önbelleğe alınan tüm sayfaları yeniden tamamen siler.
RAM önbelleği için ipucu: Panodaki RAM bütçesi ve tmpfs boyutu (/dev/shm, bağlama seçeneği size=) ihtiyaca uymalıdır. İkisini de “Çalışma belleğine sığıyor mu?” denetimi somut değerlerle bildirir.
Bilmeniz gereken sınırlar
- Değişikliklerden sonra kısa gecikme: Değişiklik günlüğünün dizini iki saniyede bir yenilenir. O zamana kadar değişen bir sayfa hâlâ eski sürümüyle sunulabilir.
- Stoğa bağlı metinler stok değişiklikleri ve azami yaş aracılığıyla güncellenir.
- Yer ihtiyacı tahmini: Fiyat listesi veya ülke bazlı ek sürümler hesaba katılmaz; biraz yedek planlayın.
- Her şeyin yerine geçmez: Önbellek, karşılayabileceği istekleri hafifletir. Oturum açmış kullanıcılar, aramalar ve formlar yine Odoo'dan geçer.
- İlk çağrı yavaş kalır: Sunucu yeniden başlatıldıktan (RAM) veya genel bir değişiklikten sonra her sayfa önbelleğe girmeden önce bir kez normal şekilde oluşturulur.
Sık sorulan sorular
Odoo için sayfa önbelleği nedir?
Herkese açık mağaza ve blog sayfalarını, her çağrıda yeniden oluşturmak yerine anonim ziyaretçilere bir önbellekten sunan açık kaynaklı bir modüldür (website_page_cache, Odoo 19, LGPL-3). Önbellek isteğe göre dosyalarda veya çalışma belleğinde tutulur.
Modül arama motorlarını veya yapay zekâ tarayıcılarını engeller mi?
Hayır. Arama motorları ve yapay zekâ dizinleyicileri diğer tüm ziyaretçilerle aynı sayfaları alır, yalnızca daha hızlı. Engelleme, kısıtlama ve ayrı bir tarayıcı sürümü yoktur.
Değişen sayfalar ve çeviriler otomatik olarak yeniden önbelleğe alınır mı?
Evet. PostgreSQL tetikleyicileri ilgili tablolardaki her değişikliği bir günlüğe bildirir; etkilenen sayfalar atılır ve bir sonraki çağrıda yeniden oluşturulup kaydedilir. Odoo 19 çevirileri aynı kayıtta sakladığı için çeviriler de kapsanır.
Dosya mı RAM mi seçmeliyim?
Genellikle Otomatik: Modül, tüm sayfalar sığdığı sürece RAM'i kullanır, aksi hâlde dosyalara geçer. Önbelleğin yeniden başlatmalardan etkilenmemesi gerekiyorsa veya RAM kısıtlıysa dosyalar uygundur; en hızlı seçenek RAM'dir.
Web sitemin çalışma belleğine sığıp sığmadığını nasıl öğrenirim?
Panoda Web sitesi → Raporlar → Sayfa önbelleği altında. “Çalışma belleğine sığıyor mu?” bölümü sayfaları web sitesi ve dil başına sayar, sayfa boyutunu ölçer ve ihtiyacı RAM bütçesi, tmpfs boyutu ve kullanılabilir bellekle karşılaştırır.
RAM önbelleği için ne kadar ek RAM gerekir?
Pano bunu ayrı bir satır olarak bildirir. Hesap şöyledir: İhtiyaç = sayfalar × sayfa boyutu; güvenlik yedeğiyle 0,8'e bölünür. Önbellek kullanılabilir belleğin en fazla yarısını kullanabildiğinden bunun iki katı, serbest olması gereken bellektir; aradaki fark ek RAM'dir. Yalnızca RAM bütçesi veya tmpfs çok küçükse pano ayarı hedef değeriyle birlikte belirtir.
Önbellek birine başkasının içeriğini gösterebilir mi?
Hayır. Yalnızca arama parametresi içermeyen anonim GET çağrıları için önbelleğe alınır. Oturum açmış kullanıcılar, sepetler, formlar ve aramalar asla önbellekten gelmez; dil, fiyat listesi, mali pozisyon ve çerez onayı anahtarın parçasıdır.
Önbelleği acil durumda nasıl kapatırım?
Panoda “Etkin” anahtarını kapatın veya website_page_cache.enabled sistem parametresini 0 olarak ayarlayın. Bu, tüm çalışan süreçlerde en geç 30 saniye sonra geçerli olur. Ayrıca kaldırma işlemi tetikleyicileri, günlüğü ve önbelleğe alınan sayfaları siler.
Bir sayfanın önbellekten gelip gelmediğini nasıl anlarım?
X-Page-Cache yanıt başlığından: HIT önbellekten geldiğini, MISS yeni oluşturulup kaydedildiğini gösterir.
Modül HTML'yi küçültür ve sıkıştırır mı?
Evet. Önbelleğe alınan sayfalar ihtiyatlı biçimde küçültülür (yorumlar ve gereksiz boşluklar kaldırılır, içerik ve görünüm aynı kalır) ve önbellek isabetlerinde gzip ile sunulur; varlık paketleri bir kez sıkıştırılır ve diskten sunulur. İkisi de website_page_cache.minify ve website_page_cache.compress parametreleriyle kapatılabilir.
Biricon IT Services desteği
Odoo web siteniz tarayıcı yükünde ağır mı çalışıyor, yoksa mağaza ve blogunuzu daha hızlı ve daha görünür kılmak mı istiyorsunuz? Odoo web siteniz için yük analizi, sayfa önbelleğinin kurulumu, çalışma belleği ve çalışan süreçlerin boyutlandırılması ve çok dilli arama motoru optimizasyonu konularında destek veriyoruz. Modülün kaynak kodunu GitHub'da bulabilirsiniz.
Tarih: 10 Kasım 2026. Ölçüm değerleri örnek verilerin bulunduğu bir test sisteminden gelir ve diğer kurulumlar için bir taahhüt değildir.