Geavanceerd opwarmen

Opwarmvensters, multi-region opwarming, browser-/SSR-rendering en mobiele user agents.

12 min read

Vier mogelijkheden voor opstellingen die een gewone HTTP-crawl per uur niet dekt. Alle vier zijn planafhankelijk — ontbreekt er een op je formulier, dan zit die niet in je abonnement.

Opwarmvensters

Standaard start een actieve warmer elk auto-startinterval een nieuwe run, de klok rond. Opwarmvensters beperken dat tot uren die jij kiest.

Buiten een venster worden geplande auto-starts overgeslagen. Handmatige starts, deploy-triggers en CDN purge-rewarm-acties werken gewoon — het venster regelt het schema, niet de warmer als geheel.

Waarom je dit zou willen

  • Hard opwarmen vóór de piek. Voer op in de uren voor je drukste periode, zodat alles heet is als het verkeer komt.
  • 's Nachts terugschalen. Bespaar requestbudget en origin-belasting als er niemand langskomt.
  • Onderhoudsvensters beschermen. Stop het opwarmen tijdens back-ups, migraties of batchjobs.
  • Aansluiten op een redactioneel ritme. Nieuwsredacties warmen vaak zwaar op vóór het ochtendmoment.

Het JSON-formaat

Het veld opwarmschema verwacht een JSON-object met een tijdzone en een lijst vensters:

Werkdagen, 08:00–20:00, Amsterdamse tijd
json
{
  "timezone": "Europe/Amsterdam",
  "windows": [
    { "days": [1, 2, 3, 4, 5], "startHour": 8, "endHour": 20, "intensity": 1 }
  ]
}
VeldBetekenis
timezoneEen IANA-tijdzonenaam zoals Europe/Amsterdam, America/New_York of UTC. Vensters worden in deze zone beoordeeld, dus zomertijd wordt voor je afgehandeld.
windowsEen lijst tijdvensters. Runs zijn toegestaan binnen elk van deze vensters.
daysWeekdagen waarop het venster geldt, waarbij 1 maandag is en 7 zondag.
startHourUur waarop het venster opent, 0–23.
endHourUur waarop het venster sluit, 0–23.
intensityRelatieve opwarminspanning binnen het venster. 1 is normaal; een lagere waarde warmt rustiger op.
Twee vensters — hard vóór de piek, rustig 's nachts
json
{
  "timezone": "Europe/Amsterdam",
  "windows": [
    { "days": [1, 2, 3, 4, 5], "startHour": 6, "endHour": 10, "intensity": 1 },
    { "days": [1, 2, 3, 4, 5, 6, 7], "startHour": 0, "endHour": 5, "intensity": 0.3 }
  ]
}

Controleer of het venster breed genoeg is om af te ronden

Duurt een volledige ronde drie uur en is je venster twee uur, dan worden runs afgekapt en latere URL's nooit opgewarmd. Verbreed het venster, verhoog de rate limit, of beperk de omvang van de warmer.

Tip

Laat het veld leeg om de klok rond op te warmen. Dat is voor de meeste sites de juiste keuze — voeg alleen vensters toe als je daar een specifieke reden voor hebt.

Multi-region opwarming

De meeste CDN's cachen onafhankelijk per point of presence. Een pagina die vanuit Europa is opgewarmd vult de Europese edge — dat doet niets voor een bezoeker in Singapore die een andere POP raakt die die pagina nooit geleverd heeft.

Multi-region opwarming draait een warmer vanaf een gekozen regionale crawler, zodat geografisch verspreide caches ook echt gevuld worden waar je publiek zit. Je stelt dit in met het veld Crawlerregio, en het is een Business-mogelijkheid.

Wanneer je het nodig hebt

  • Je hebt noemenswaardig verkeer op meer dan één continent.
  • Je CDN cachet per POP of per regio in plaats van wereldwijd.
  • Je levert gelokaliseerde content vanaf regiospecifieke origins.
  • Je draait een multi-CDN-opzet waarin het gedrag per geografie verschilt.

Zit vrijwel al je bezoek in één land, dan is één regio prima en voegt multi-region kosten toe zonder voordeel.

Vanuit meer regio's opwarmen vermenigvuldigt requests

Elke regio stuurt eigen requests, dus drie regio's dekken verdrievoudigt het requestvolume ruwweg — zowel tegen je origin als tegen je URL-budget. Stel je rate limits daarop af.

Kies regio's op basis van je echte statistieken, niet van ambitie. Een regio opwarmen die twee procent van je verkeer levert is het driedubbele requestbudget zelden waard.

Browser- / SSR-opwarming

Een gewone HTTP-fetch haalt de HTML op die een server teruggeeft. Voor de meeste sites is dat precies wat gecachet wordt, en is het alles wat je nodig hebt.

Sommige stacks zijn anders. Vult de cachelaag waar het jou om gaat zich pas na een volledige render — een JavaScript-zware frontend, of een framework waarvan de cache pas bij een complete navigatie vult — dan warmt een simpele fetch niets nuttigs op.

Browser- / SSR-opwarming gebruikt een echte browserengine om de pagina goed te laden. Het is een Business-mogelijkheid, per warmer aan te zetten.

Gebruik gewone HTTP-opwarming als…Gebruik browseropwarming als…
Je server complete HTML teruggeeftDe pagina client-side wordt samengesteld
Een CDN of paginacache de response opslaatDe cache pas na een volledige render vult
Je goedkoop maximale doorvoer wiltCorrectheid belangrijker is dan volume
De meeste statische en klassieke CMS-sitesSSR/ISR-achtige routes die niet gevuld raken

Browseropwarming is veel zwaarder

Een pagina in een browser renderen kost veel meer tijd en resources dan hem ophalen. Gebruik het selectief voor routes die het echt nodig hebben, en houd lichte HTTP-opwarming voor de rest. Zet een hele grote warmer niet op browsermodus zonder de rate limit te verlagen.

De praktische test: draai eerst een normale HTTP-warmer. Toont Cachegezondheid dat die routes koud blijven terwijl de rest van je site verbetert, dan is browseropwarming het proberen waard.

Mobiel opwarmen

Varieert je CDN de gecachete kopie op user agent, of lever je aparte mobiele templates, dan laat opwarmen met alleen een desktop-agent telefoonbezoekers op een koude cache achter — meestal het merendeel van je verkeer.

Zet Mobiele versie opwarmen aan om ook met mobiele user agents te crawlen. Op plannen die dat toestaan kun je ook eigen mobiele user agents opgeven voor exacte controle.

  • Essentieel als je cachesleutel de user agent of een apparaatklasse bevat.
  • Essentieel als je een apart mobiel thema of een m.-subdomein levert.
  • Onnodig als je aan elk apparaat identieke responsive HTML levert — één gecachete kopie bedient dan iedereen.

Note

Desktop- en mobiele varianten opwarmen verdubbelt het requestvolume ruwweg, omdat elke URL onder beide agents wordt opgehaald. Controleer je rate limits en planbudget voordat je dit op een grote site aanzet.

Eigen user agents

Met het veld User agents bepaal je precies met welke agent-strings requests verstuurd worden. Redenen om dat te doen:

  • Je CDN sleutelt de cache op specifieke agent-strings en je moet die exact matchen.
  • Een botfilter blokkeert onbekende agents en je hebt er één toegestaan.
  • Je wilt warm-requests herkenbaar hebben in je serverlogs, om ze van echt verkeer te scheiden.

Tip

Een kenmerkende, herkenbare user agent voor opwarmen is een goede gewoonte. Het maakt Cache Rocket-verkeer duidelijk zichtbaar in je statistieken en logs, en eenvoudig uit rapportages te filteren.