10. marraskuuta 2026 | Oma kehitystyö | Odoo, suorituskyky ja hakukoneet
Odoo-verkkosivusto renderöi jokaisen sivun uudelleen jokaisella kutsulla: tietokantakyselyt, mallipohjat, käännökset, hinnat. Yksittäiselle kävijälle tämä ei ole havaittavaa. Kun hakukoneet ja tekoälyindeksoijat kuitenkin hakevat satoja tai tuhansia sivuja monella kielellä, siitä tulee jatkuva kuormitus, ja myös oikeat asiakkaat joutuvat odottamaan. Kehitimme tätä varten Odoo 19 -moduulin website_page_cache ja julkaisimme sen GitHubissa avoimena lähdekoodina (LGPL-3): nimettömänä avatut verkkokaupan ja blogin sivut tulevat välimuistista lähes staattisina, joko tiedostoista tai keskusmuistista (RAM), ja jokainen muutos – myös käännöksen – poistaa asianomaiset sivut automaattisesti takaisin välimuistista.
Tärkeää kaikille, jotka haluavat tulla löydetyiksi: moduuli ei estä yhtään hakukonetta eikä tekoälyn indeksointirobottia. Kaikki indeksoijat saavat samat sisällöt kuin jokainen kävijä, vain nopeammin. Tässä artikkelissa kerrotaan, miten välimuisti toimii, miltä koontinäyttö näyttää (kuvakaappauksin), miten tunnistatte, mahtuvatko sivunne keskusmuistiin ja kuinka paljon lisää RAM-muistia tarvittaisiin, mitkä turvallisuussäännöt ovat voimassa ja miten moduuli asennetaan.
Tämän artikkelin sisältö
- Tiivistelmä
- Ongelma: hakurobottien kuormitus Odoo-verkkosivustoilla
- Näin sivuvälimuisti toimii
- Tiedosto vai RAM: tallennuspaikan valinta
- Mahtuuko verkkosivusto keskusmuistiin? Ja kuinka paljon RAM-muistia puuttuu?
- Muutokset ja käännökset siivoavat välimuistin
- Koontinäyttö ja tilastot
- Turvallisuus: mikä ei koskaan tule välimuistista
- Hakukoneet ja tekoälyindeksoijat: mitään ei estetä
- HTML:n minimointi ja pakattu toimitus
- Asennus ja asetukset
- Rajoitukset, jotka kannattaa tuntea
- Usein kysyttyä
- Biricon IT Servicesin tuki
Tiivistelmä
| Aihe | Näin se toimii |
|---|---|
| Moduuli | website_page_cache Odoo 19:lle, lisenssi LGPL-3, julkisesti GitHubissa |
| Mitä välimuistiin tallennetaan? | Julkiset verkkokaupan ja blogin sivut (luettelot, kategoriat, tuotteet, artikkelit) kaikilla kielillä jokaisella verkkosivustolla |
| Kenelle? | Vain nimettömille kävijöille, vain GET-kutsut ilman hakuparametreja, vain tila 200 ja HTML |
| Tallennuspaikka | Tiedostot levyllä tai RAM (tmpfs, kaikkien työprosessien yhteiskäytössä); automaattisesti tilantarpeen mukaan |
| Ajantasaisuus | Jokainen muutos (myös käännökset, tuonnit, skriptit) luo tietokantatriggerin kautta lokimerkinnän ja mitätöi asianomaiset sivut |
| Koontinäyttö | Asetukset, tila, tilastot (osumat, ohitukset, säästetty palvelinaika) ja tarkistus ”Mahtuuko keskusmuistiin?” sisältäen ”tarvittavan lisä-RAM-muistin” |
| Hakukoneet ja tekoäly | Mitään ei estetä eikä hidasteta; kaikki saavat samat sivut, vain nopeammin |
| Hätäjarru | Yksi kytkin (enabled = 0) poistaa välimuistin käytöstä kaikissa työprosesseissa 30 sekunnissa |
Ongelma: hakurobottien kuormitus Odoo-verkkosivustoilla
Odoo on täydellinen ERP-järjestelmä, ja verkkosivusto on yksi sen monista moduuleista. Jokainen sivu, jonka kävijä tai robotti avaa, käy läpi saman reitin: pyynnön käsittely, tietokantakysely, tuote- ja hintatietojen lataus, QWeb-mallipohjan renderöinti, käännösten lisääminen ja tuloksen toimitus. Sivusta riippuen tähän kuluu muutama sata millisekuntia, ja sinä aikana yksi harvoista työprosesseista on varattuna.
Hakukoneille ja tekoälyindeksoijille tämä on pysyvä aihe:
- Monta kieltä, monta osoitetta: sivu, joka on olemassa 46 kielellä, on robotille 46 eri osoitetta.
- Jokainen osoite haetaan erikseen, usein monelta hajautetulta lähettäjältä samanaikaisesti. Perinteinen selainvälimuisti ei auta, koska jokainen haku koskee uutta osoitetta.
- Vähän työprosesseja: Odoo-palvelu toimii tyypillisesti kourallisella prosesseja. Kun ne ovat robottien pyyntöjen varaamia, oikeat kävijät odottavat jonossa.
- Sama sisältö, yhä uudelleen: blogiartikkeli muuttuu harvoin, mutta se kootaan työläästi uudelleen jokaisella haulla.
Ilmeinen ratkaisu – robottien sulkeminen pois – on yritykselle, joka haluaa tulla löydetyksi, ei vaihtoehto. Näkyvyys hakukoneissa ja tekoälyn vastauksissa on arvokasta. Parempi on toimittaa sivut niin nopeasti, ettei kuormitus enää juuri paina. Juuri sen sivuvälimuisti tekee.
Näin sivuvälimuisti toimii
Moduuli kytkeytyy Odoon pyyntöjen vastaanottoon (ir.http). Jokaisella sivunhaulla se päättää sekunnin murto-osassa, saako sivun toimittaa välimuistista, ja toimittaa sen silloin ilman tietokantaa, mallipohjaa ja renderöintiä.
- Tarkistus: Vain nimetön
GET-kutsu ilman hakuparametreja sallitulle polulle (kauppa, kategoriat, tuotteet, blogi) tulee kyseeseen. Kaikki muu kulkee Odoon läpi kuten ennenkin. - Välimuistiavain: Se koostuu verkkosivustosta, isäntäluokasta, kielestä, polusta, hinnastosta, verokannasta ja evästesuostumuksen tilasta. Kävijät, jotka näkisivät jotain muuta, eivät siksi koskaan jaa samaa merkintää. Isäntä normalisoidaan: Odoo kirjoittaa absoluuttiset osoitteet aina verkkosivuston verkkotunnuksesta, ei pyynnöstä; pyynnön osoite ratkaisee vain, katsotaanko sivu pääosoitteeksi (kieliviittaukset) ja indeksoidaanko se. Kaikki vieraat isäntänimet jakavat siksi yhden merkinnän
noindex-vihjeineen sen sijaan, että kukin varaisi oman kopionsa. - Osuma: Jos ajantasainen merkintä on olemassa, se toimitetaan. Sivun CSRF-token asetetaan silloin uudelleen pyyntökohtaisesti. Blogiartikkelien katselut lasketaan edelleen.
- Ohitus: Jos merkintä puuttuu tai on vanhentunut, Odoo renderöi sivun kuten tavallisesti. Jos tulos kelpaa välimuistiin (tila 200, HTML, ei evästettä, ei istuntotunnusta tekstissä), se tallennetaan; seuraava haku on osuma.
- Näkyy otsakkeessa: Jokaisessa vastauksessa on otsake
X-Page-Cache: HITtaiMISS. Näin mikä tahansa työkalu voi tarkistaa, mitä tapahtui.
Kuinka paljon nopeampi?
Testijärjestelmässämme (kopio verkkosivustoistamme, muutama sata sivua) sivun keskimääräinen renderöintiaika oli noin 490 millisekuntia ja toimitus välimuistista noin 23 millisekuntia: noin kaksikymmenkertainen ero. Mitä raskaampi sivu, sitä suurempi hyöty. Koontinäyttö laskee molemmista arvoista lisäksi arvioidun säästetyn palvelinajan.
Tiedosto vai RAM: tallennuspaikan valinta
Välimuistilla on kaksi tallennuspaikkaa. Molemmat ovat kaikkien Odoo-työprosessien yhteisesti nähtävissä, joten jokainen sivu on olemassa vain kerran, ei kerran prosessia kohden.
| Asetus | Missä sivut sijaitsevat? | Ominaisuudet |
|---|---|---|
| Tiedostot | Hakemisto Odoon datakansiossa, tietokantakohtaisesti | säilyy uudelleenkäynnistyksissä; käyttöjärjestelmä pitää usein käytetyt sivut joka tapauksessa muistissa |
| Keskusmuisti | tmpfs polussa /dev/shm | nopein toimitus; katoaa palvelimen uudelleenkäynnistyksessä ja rakennetaan yksinkertaisesti uudelleen |
| Automaattinen | RAM niin kauan kuin kaikki mahtuu; muuten tiedostot | Huoltotehtävä (10 minuutin välein) päättää arvion perusteella; pysyy RAM-muistissa tuloksilla ”mahtuu” ja ”niukasti”, jotta valinta ei vaihdu jatkuvasti |
Useimmissa asennuksissa Automaattinen on oikea valinta: saatte RAM-nopeuden, kun tilaa on, ja palaatte muuten itsestään tiedostoihin.
Mahtuuko verkkosivusto keskusmuistiin? Ja kuinka paljon RAM-muistia puuttuu?
Se, onko RAM-välimuisti mahdollinen, riippuu kolmesta asiasta: sivujen määrästä, niiden keskimääräisestä koosta ja käytettävissä olevasta muistista. Koontinäyttö laskee tämän puolestanne:
- Sivumäärä: Se laskee verkkosivustoa kohden julkaistut tuotteet, kaupan luettelosivut, kategoriat, blogiartikkelit ja blogiluettelot ja kertoo ne kielten lukumäärällä.
- Sivun koko: Kun sivuja on välimuistissa, todellinen keskiarvo mitataan; siihen asti käytetään oletusarvoa.
- Tila välimuistille: pienin arvo seuraavista: asetettu RAM-budjetti, tmpfs:n koko ja puolet käytettävissä olevasta keskusmuistista. Palvelin ei saa koskaan joutua muistipulaan välimuistin takia.
- Arvio: ”mahtuu varalla”, ”niukasti”, ”liian suuri” tai ”RAM-välimuisti ei käytettävissä”. ”Mahtuu” pätee, kun tarve on enintään 80 prosenttia käytettävissä olevasta tilasta.
Uutta: kuinka paljon lisä-RAM-muistia tarvittaisiin?
Jos välimuisti ei mahdu, haluaa tietää, mitä on muutettava. Koontinäyttö näyttää siksi arvion alla konkreettisen rivin: ”Lisä-RAM RAM-välimuistia varten: noin … lisää keskusmuistia tällä palvelimella” – tai ”ei tarvita”, jos tila riittää jo. Jos palvelimen sijasta vain jokin asetus on liian pieni, sen alla kerrotaan, mikä: moduulin RAM-budjetti tai tmpfs:n koko (/dev/shm).
Laskelma on yksinkertainen ja helppo seurata:
- Tarve = sivut × keskimääräinen sivun koko.
- Varalla = tarve jaettuna luvulla 0,8. Tämän arvon on mahduttava RAM-budjettiin ja tmpfs:ään, jotta arvio on ”mahtuu”.
- Vapaa muisti: Koska välimuisti saa käyttää enintään puolet käytettävissä olevasta keskusmuistista, palvelin tarvitsee vapaana käytettävissä olevaa muistia vähintään kaksinkertaisesti vaiheen 2 arvoon nähden. Jos jotain puuttuu, erotus on tarvittava lisä-RAM.
Kuvan esimerkki (12 000 sivua á 25 kt) on laskentaapu, ei mittaus sivustoistamme. Pienillä verkkosivustoilla riittää muutama kymmenen megatavua; kuvakaappausten esimerkkitiedot tulivat toimeen noin 13 Mt:lla.
Tärkeää tulkinnan kannalta: arvio ei laske mukaan ylimääräisiä hinnasto- tai maaversioita. Jos käytätte niitä paljon, varatkaa hieman puskuria. Ja vielä: liian pieni RAM-budjetti on yleisin syy siihen, että automatiikka pysyy tiedostoissa – ei keskusmuistin puute. Koontinäyttö näyttää tässä tapauksessa juuri tämän rivin.
Muutokset ja käännökset siivoavat välimuistin
Välimuisti on käyttökelpoinen vain, jos se ei koskaan toimita vanhentuneita sivuja. Pelkkä aikaraja (”hylkää kahdentoista tunnin välein”) olisi liian karkea: muuttunut hinta tai korjattu kirjoitusvirhe joutuisi odottamaan jopa kaksitoista tuntia. Moduuli toimii siksi sisältöpohjaisesti.
- Tietokantatriggerit: Kaikissa taulukoissa, jotka voivat vaikuttaa sivuun (tuotteet, variantit, kuvat, varasto, attribuutit, kategoriat, hinnat, verot, hinnastot, blogiartikkelit ja avainsanat, kumppani- ja yritystiedot, näkymät, assetit, valikot, kielet, verkkosivuston asetukset), on PostgreSQL-triggerit. Ne kirjaavat jokaisen muutoksen muutoslokiin.
- Riippuvuudet ja tietokannan tila: Jokainen välimuistiin tallennettu sivu muistaa, mitä tietueita se näyttää, ja minkä tietokannan tilan perusteella se luotiin.
- Vertailu: Jos on lokimerkintä, joka syntyi tämän tilan jälkeen ja koskee jotakin näistä tietueista, sivu on vanhentunut.
- Uudelleen välimuistiin: Seuraavalla haulla vanhentunut sivu hylätään, renderöidään uudelleen ja tallennetaan taas.
Myös käännökset katetaan
Odoo 19 tallentaa käännetyt tekstit samaan tietueeseen kuin alkuperäisen tekstin (JSON-kenttänä). Muuttunut käännös on tietokannalle siksi aivan tavallinen rivin muutos – ja trigger näkee sen. Tämä pätee yhtä lailla käyttöliittymän kautta tehtävään muokkaukseen, tuonteihin, rajapintoihin ja skripteihin, jotka kirjoittavat suoraan tietokantaan. 46 kielen automaattinen käännös mitätöi siis täsmälleen ne sivut, joiden teksti on muuttunut, eikä enempää.
- Kohdennetusti, ei yleisesti: Muuttunut tuote mitätöi sen omat sivut, luettelot, joissa se on, ja siihen kuuluvan kategorian. Loput pysyvät välimuistissa.
- Globaalit muutokset (mallipohjat, assetit, kielet, valikot, verot, valuutat) mitätöivät kaiken kerralla, koska ne voivat vaikuttaa jokaiseen sivuun.
- Laskurit jäävät ulkopuolelle: Blogiartikkelien katselulaskuri muuttuu jokaisella käynnillä; se ei tarkoituksella aiheuta mitätöintiä, muuten välimuisti olisi tehoton suosituilla artikkeleilla.
- Turvaverkko: Lisäksi jokaiselle sivulle on enimmäisikä (oletus 12 tuntia).
- Välimuisti ei aiheuta tallennusvirhettä: Triggerin sisäinen virhe kirjataan varoituksena eikä estä varsinaista tallennusta.
Koontinäyttö ja tilastot
Kaikki, mitä käyttö vaatii, on yhdessä paikassa: Odoossa kohdassa Verkkosivusto → Raportit → Sivuvälimuisti. Osio Yleiskatsaus on koontinäyttö (asetuksineen), osio Historia näyttää luvut päivittäin ja verkkosivustoittain.
Kuvakaappaus testijärjestelmästä, jossa on kopiot verkkosivustoistamme; verkkosivustojen nimet on korvattu paikkamerkeillä.
Asetukset
| Asetus | Merkitys |
|---|---|
| Aktiivinen | Pääkytkin. Pois kytkettynä Odoo toimittaa jokaisen sivun taas entiseen tapaan, kaikissa prosesseissa viimeistään 30 sekunnin kuluttua. |
| Tallennuspaikka | Automaattinen, tiedostot tai keskusmuisti |
| Enimmäisikä (tunteina) | Turvaverkko; sivut uusitaan tämän ajan kuluttua muutoksista riippumatta |
| RAM-budjetti (Mt) | Näin paljon keskusmuistia RAM-välimuisti saa enintään varata; samalla arvion ”mahtuu” raja |
| Levyraja (Mt) | Tiedostovälimuistin enimmäiskoko; vanhimmat merkinnät poistetaan ensin |
Tila ja tilastot
Tila näyttää aktiivisen tallennuspaikan rajoineen, välimuistissa olevien sivujen määrän ja koon sekä muutosten seurannan: kuinka monta muutosta on rekisteröity viimeisten 24 tunnin aikana ja kuinka monta taulukkoa valvotaan. Jos valvonta puuttuu, koontinäyttö varoittaa selvästi, sillä silloin välimuistiin ei voi luottaa. Yläreunan painikkeilla voi suorittaa huollon heti, tyhjentää välimuistin tai tarkistaa triggerit ja tarvittaessa luoda ne uudelleen.
Tilasto (Tänään, 7 päivää, 30 päivää) sisältää:
- Välimuistista ja Renderöity: osumat ja ohitukset sekä niistä osumasuhde
- Poistettu (muuttunut/vanhentunut): kuinka monta sivua hylättiin muutoksen tai vanhenemisen vuoksi
- Renderöintiaika ja välimuistiaika: sivukohtainen keskiarvo vertailtuna
- Arvioitu säästetty palvelinaika ja välimuistista toimitettu datamäärä
Luvut kerää jokainen työprosessi erikseen ja kirjoittaa ne kerran minuutissa; yli 90 päivää vanhat rivit huoltotehtävä siivoaa pois.
Historia kaaviona, pivot-taulukkona ja luettelona
Kohdassa Historia ovat käytettävissä päiväarvot verkkosivustoittain – kaaviona, pivot-taulukkona tai luettelona. Näin näette, nouseeko osumasuhde uudelleenkäynnistyksen tai suuren muutoksen jälkeen, ja mikä verkkosivusto saa eniten liikennettä välimuistista.
Turvallisuus: mikä ei koskaan tule välimuistista
Sivuvälimuisti ei saa koskaan johtaa siihen, että joku näkee toisen sisällöt. Moduuli noudattaa siksi periaatetta: epäselvässä tapauksessa ei välimuistiin.
- Vain nimettömät kävijät: Kirjautunut käyttäjä, käyttäjä jolla on ostoskori tai jolla on muu istuntotila, saa aina normaalisti renderöidyn sivun.
- Vain
GETilman hakuparametreja: Haut, suodattimet, lajittelut, lomakkeet, ostoskori ja kassa pysyvät koskemattomina. - Vain tila 200 ja HTML: Virhesivuja, uudelleenohjauksia ja tiedostoja ei tallenneta.
- Ei istuntotunnuksia välimuistissa: Sivua, joka sisältää istuntotunnuksen tai asettaa evästeen, ei tallenneta (ja siitä kirjataan varoitus).
- CSRF-token pyyntökohtaisesti: Välimuistissa olevan sivun token on paikkamerkki, joka korvataan uudella jokaisessa toimituksessa.
- Hienojakoinen avain: Verkkosivusto, kieli, hinnasto, verokanta ja evästesuostumus kuuluvat välimuistiavaimeen; joka näkee jotain muuta, saa toisen merkinnän.
- Useita tietokantoja: Jokaisella tietokannalla on omat merkinnät, oma loki ja omat tilastot.
- Ei tietovuotoa: Välimuisti sijaitsee paikallisesti palvelimella (tiedosto tai RAM). Tietoja ei siirretä kolmansille osapuolille.
Hakukoneet ja tekoälyindeksoijat: mitään ei estetä
Jotkut ylläpitäjät vastaavat robottien kuormitukseen estoilla. Se suojaa palvelinta mutta maksaa näkyvyyttä. Moduuli valitsee päinvastaisen tien:
- Samat sisällöt kaikille: Hakukoneet, tekoälyindeksoijat ja kävijät saavat saman sivun. Erillistä ”robottiversiota” ei ole, eikä selaintunnisteeseen perustuvaa tunnistusta.
- Nopeammat vastaukset auttavat indeksointia: Sivu, joka vastaa 20 eikä 500 millisekunnissa, kuormittaa indeksointibudjettia vähemmän, ja robotit voivat kerätä samassa ajassa enemmän sivuja.
- Ajantasaiset sisällöt: Koska muutokset mitätöivät sivut heti, robotit eivät koskaan näe vanhentunutta versiota – tärkeää, jos ylläpidätte sisältöjä haun ja tekoälyvastausten varalle.
- Jäsennellyt tiedot säilyvät: JSON-LD, metatiedot ja
hreflang-viittaukset ovat osa välimuistissa olevaa sivua; sivustokarttoihin ja tiedostoihin välimuisti ei koske.
Jos haluatte lisäksi rajoittaa kuormitusta, se on erillinen päätös, jonka voitte tehdä tietoisesti – moduuli ei pakota sitä teille.
HTML:n minimointi ja pakattu toimitus
Välimuisti säästää laskenta-ajan lisäksi myös tiedonsiirtomäärää. Moduuli minimoi HTML:n ennen tallennusta ja toimittaa sen pakattuna, jos selain tai robotti sitä tukee:
- Minimointi (parametri
website_page_cache.minify): HTML-kommentit poistetaan, tyhjät merkit yhdistetään. Kokonaan ne poistetaan vain siellä, missä selain ohittaa ne muutenkin, esimerkiksi lohkoelementtien välillä. Rivinsisäisten elementtien välit säilyvät,pre,textareaja skriptit pysyvät muuttumattomina, jäsennellyt tiedot (JSON-LD) kirjoitetaan uudelleen tiiviisti. Sivusta riippuen sivut ovat 10–30 % pienempiä. Seitsemällä oikealla sivulla tehdyssä testissä teksti, elementtien määrä, kaikkien elementtien sijainti ja kuvakaappaus olivat identtiset alkuperäisen kanssa. Ensimmäinen toimitus (MISS) on minimoitu täsmälleen samoin kuin jokainen seuraava (HIT). - Pakkaus (parametri
website_page_cache.compress): Välimuistin sivut lähtevät gzip-pakattuina (Content-Encoding: gzip,Vary: Accept-Encoding). Suuret asset-paketit (CSS ja JavaScript, jopa muutaman Mt:n kokoiset) Odoo toimittaa itse pakkaamattomina; moduuli pakkaa ne kerran, tallentaa kopion levylle ja toimittaa ne sen jälkeen suoraan. 2,1 Mt:n CSS:stä tuli näin 0,27 Mt ja 4,8 Mt:n JavaScriptistä 1,1 Mt. Vanhat kopiot huoltotehtävä siivoaa pois. - Tietokoneen uudelleenkäynnistyksen jälkeen: RAM-välimuisti säilyy Odoon uudelleenkäynnistyksissä mutta ei palvelimen uudelleenkäynnistyksessä. Siksi huoltotehtävä peilaa sen vaiheittain levylle (parametri
website_page_cache.persist) ja palauttaa sen käynnistyksessä. Sama mekanismi tarkistaa kuten muulloinkin, onko palautettu merkintä vielä voimassa: ikä ja muutoslokki. Minimointia ei lasketa tällöin uudelleen.
Asennus ja asetukset
- Hae moduuli: lataa lähdekoodi GitHubista ja aseta se Odoo 19 -asennuksenne addons-polkuun: github.com/Alex0176/odoo-website-page-cache
- Asenna:
odoo-bin -d <Datenbank> -i website_page_cache --stop-after-init. Samalla syntyvät muutosloki, triggerit ja huoltotehtävä (10 minuutin välein). - Käynnistä palvelu uudelleen, jotta kaikki työprosessit lataavat moduulin.
- Avaa koontinäyttö: Verkkosivusto → Raportit → Sivuvälimuisti. Tarkista, että muutosten seuranta on täydellinen, ja valitse tallennuspaikka (oletus: automaattinen).
- Tarkista: Hae kaupan tai blogin sivu kahdesti ja katso otsaketta
X-Page-Cache: ensimmäisellä kerrallaMISS, sen jälkeenHIT.
Asetukset ovat järjestelmäparametreina (website_page_cache.enabled, .backend, .ttl_hours, .max_mb_file, .max_mb_ram), ja niitä ylläpidetään tavallisesti koontinäytössä. Moduuli on käännetty saksaksi. Asennuksen poisto poistaa triggerit, lokin ja kaikki välimuistissa olevat sivut täydellisesti.
Vinkki RAM-välimuistille: koontinäytön RAM-budjetin ja tmpfs:n koon (/dev/shm, liitosvalitsin size=) on vastattava tarvetta. Molemmat kertoo teille tarkistus ”Mahtuuko keskusmuistiin?” konkreettisin arvoin.
Rajoitukset, jotka kannattaa tuntea
- Lyhyt viive muutosten jälkeen: Muutoslokin indeksi päivitetään kahden sekunnin välein. Muuttunut sivu voidaan siihen asti vielä toimittaa vanhassa versiossa.
- Varastosta riippuvat tekstit päivittyvät varastomuutosten ja enimmäisiän kautta.
- Tilantarpeen arvio: Hinnastokohtaisia tai maakohtaisia lisäversioita ei ole laskettu mukaan; varatkaa hieman puskuria.
- Ei korvaa kaikkea: Välimuisti keventää pyyntöjä, joita se saa palvella. Kirjautuneet käyttäjät, haut ja lomakkeet kulkevat edelleen Odoon läpi.
- Ensimmäinen haku pysyy hitaana: Palvelimen uudelleenkäynnistyksen (RAM) tai globaalin muutoksen jälkeen jokainen sivu renderöidään kerran normaalisti, ennen kuin se on välimuistissa.
Usein kysyttyä
Mikä on Odoon sivuvälimuisti?
Avoimen lähdekoodin moduuli (website_page_cache, Odoo 19, LGPL-3), joka toimittaa julkiset kaupan ja blogin sivut nimettömille kävijöille välimuistista sen sijaan, että ne renderöitäisiin uudelleen jokaisella haulla. Välimuisti sijaitsee valinnan mukaan tiedostoissa tai keskusmuistissa.
Estääkö moduuli hakukoneita tai tekoälyrobotteja?
Ei. Hakukoneet ja tekoälyindeksoijat saavat samat sivut kuin kuka tahansa muu kävijä, vain nopeammin. Estoa, hidastusta tai erillistä robottiversiota ei ole.
Tallentuvatko muuttuneet sivut ja käännökset automaattisesti uudelleen välimuistiin?
Kyllä. PostgreSQL-triggerit ilmoittavat jokaisesta olennaisten taulukoiden muutoksesta lokiin; asianomaiset sivut hylätään ja renderöidään ja tallennetaan uudelleen seuraavalla haulla. Käännökset katetaan, koska Odoo 19 tallentaa ne samaan tietueeseen.
Pitäisikö valita tiedosto vai RAM?
Yleensä Automaattinen: moduuli käyttää RAM-muistia niin kauan kuin kaikki sivut mahtuvat siihen, ja siirtyy muuten tiedostoihin. Tiedostot sopivat, kun välimuistin on säilyttävä uudelleenkäynnistyksissä tai RAM on niukalla; RAM on nopein vaihtoehto.
Mistä tiedän, mahtuuko verkkosivustoni keskusmuistiin?
Koontinäytössä kohdassa Verkkosivusto → Raportit → Sivuvälimuisti. Osio ”Mahtuuko keskusmuistiin?” laskee sivut verkkosivustoa ja kieltä kohden, mittaa sivun koon ja vertaa tarvetta RAM-budjettiin, tmpfs:n kokoon ja käytettävissä olevaan muistiin.
Kuinka paljon lisä-RAM-muistia RAM-välimuisti tarvitsee?
Koontinäyttö ilmoittaa sen omalla rivillään. Laskenta: tarve = sivut × sivun koko; turvavaralla jaettuna luvulla 0,8. Koska välimuisti saa käyttää enintään puolet käytettävissä olevasta muistista, sen kaksinkertainen arvo on vapaana tarvittava muisti; erotus on lisä-RAM. Jos vain RAM-budjetti tai tmpfs on liian pieni, koontinäyttö ilmoittaa asetuksen ja tavoitearvon.
Voiko välimuisti näyttää jollekulle toisen sisältöjä?
Ei. Välimuistiin tallennetaan vain nimettömät GET-kutsut ilman hakuparametreja. Kirjautuneet käyttäjät, ostoskorit, lomakkeet ja haut eivät koskaan tule välimuistista; kieli, hinnasto, verokanta ja evästesuostumus kuuluvat avaimeen.
Miten poistan välimuistin käytöstä hätätilanteessa?
Kytke koontinäytössä kytkin ”Aktiivinen” pois tai aseta järjestelmäparametri website_page_cache.enabled arvoon 0. Tämä pätee kaikissa työprosesseissa viimeistään 30 sekunnin kuluttua. Asennuksen poisto poistaa lisäksi triggerit, lokin ja välimuistissa olevat sivut.
Mistä tunnistan, tuliko sivu välimuistista?
Vastausotsakkeesta X-Page-Cache: HIT tarkoittaa välimuistista, MISS tarkoittaa juuri renderöityä ja tallennettua.
Pienentääkö ja pakkaako moduuli HTML:n?
Kyllä. Välimuistin sivut minimoidaan varovaisesti (kommentit ja tarpeeton tyhjä tila poistetaan, sisältö ja ulkoasu pysyvät samoina) ja toimitetaan välimuistiosumissa gzip-pakattuina; asset-paketit pakataan kerran ja toimitetaan levyltä. Molemmat voi kytkeä pois parametreilla website_page_cache.minify ja website_page_cache.compress.
Biricon IT Servicesin tuki
Reagoiko Odoo-verkkosivustonne hitaasti robottikuormituksen aikana, tai haluatteko tehdä kaupastanne ja blogistanne nopeamman ja näkyvämmän? Autamme kuormituksen analysoinnissa, sivuvälimuistin käyttöönotossa, keskusmuistin ja työprosessien mitoituksessa sekä Odoo-verkkosivustonne monikielisessä hakukoneoptimoinnissa. Moduulin lähdekoodin löydätte GitHubista.
Tilanne: 10. marraskuuta 2026. Mittausarvot ovat peräisin testijärjestelmästä, jossa on esimerkkitietoja, eivätkä ne ole lupaus muille asennuksille.