SEO Playbook · Element

Aanbiedingsboxen: Vervaldatum, Geschiktheid en Dealregels

Bouw een aanbiedingsbox met een echte deadline of geschiktheidsregel, volledige voorwaarden, eerlijke urgentie, toegankelijke status en gestructureerde gegevens die machines kunnen verifiëren.

14 min read

Een aanbiedingsbox presenteert één tijdsgebonden of voorwaardelijk commercieel voordeel samen met de regels die nodig zijn om het te claimen. Het biedt een koper de waarde, geschiktheid, deadline, inwisselmethode en volgende actie in één afgebakende eenheid; het creëert nooit urgentie waar geen echte beperking bestaat.

De weergegeven aanbieding is opzettelijk compleet, zelfs wanneer deze uit de pagina wordt gehaald: het voordeel heeft een eenheid, het publiek is expliciet, de code is tekst, de uitsluitingen staan in de buurt, de deadline bevat een tijdzone en de link zegt wat er daarna gebeurt. Het merk, de code, datums en bedragen zijn illustratief en geen live AmICited-promotie.

Waarom dit element ertoe doet

Een aanbieding verandert de timing of economie van een beslissing. Lezers stellen daarom twee vragen tegelijkertijd: “Is dit waardevol voor mij?” en “Kan ik het daadwerkelijk claimen?” Een box verlaagt de inspanning om beide te beantwoorden, maar alleen wanneer het voordeel en de beperking even zichtbaar zijn. Een grote “40% korting”-regel gevolgd door geschiktheid in kleine lettertjes trekt aandacht door het feit achter te houden dat bepaalt of de belofte van toepassing is. Dat is overtuigen door dubbelzinnigheid, geen nuttige urgentie.

Echte urgentie helpt een lezer voorkomen dat hij een optie verliest. Valse urgentie zet de lezer onder druk terwijl de verkoper de mogelijkheid behoudt om de promotie onbeperkt voort te zetten. Gebruik nooit “alleen vandaag”, “laatste kans”, een resetterende aftelling of “beperkte tijd” tenzij een goedgekeurde bron het daadwerkelijke einde definieert. Wanneer de promotie wordt verlengd, moeten de bron, zichtbare deadline, caches en gestructureerde gegevens als één gecontroleerde wijziging worden bijgewerkt. Het herhaaldelijk verplaatsen van de deadline leert terugkerende bezoekers dat de timer decoratief is.

Machine-extraheerbaarheid is het vermogen van een crawler, winkelagent, zoekmachine of syndicatiesysteem om de relaties tussen de aanbieding, het artikel, het prijseffect, de geschiktheid en de geldigheid vast te houden. “Bespaar 40” is geen compleet feit: de eenheid kan valuta of percentage zijn en de besparing kan per bestelling, per artikel of per maand gelden. Een goed gevormde aanbieding geeft een stabiele verklaring zoals “Nieuwe klanten besparen USD 40 op één jaarlijks Growth-abonnement met code GROW40 tot 31 augustus 2026 om 23:59 Europe/Bratislava.”

Vervaldatum is operationele data, niet alleen tekst. Als een publicatiesysteem de deadline weergeeft maar de actieve status niet kan wijzigen nadat deze is verstreken, zal de pagina uiteindelijk een valse bewering doen. Het contentmodel moet de renderer een machineleesbare tijdstempel en een veilige verlopen status geven voordat de campagne van start gaat.

Wanneer te gebruiken

Gebruik een aanbiedingsbox wanneer één promotie de normale transactie materieel wijzigt en ten minste één grens van toepassing is: een start- of eindtijd, een geschikt publiek, een minimale besteding, een product- of abonnementsbeperking, een geografische limiet, een inwisselingslimiet of een couponvereiste. Veelvoorkomende toepassingen zijn een seizoenskorting, een eerste-bestelling-krediet, gratis verzending boven een drempel, een bonusartikel bij een kwalificerende aankoop of een tijdelijke upgrade voor bestaande klanten.

Gebruik het alleen wanneer de lezer de aanbieding vanaf deze pagina kan gebruiken of precies kan begrijpen waar de inwisseling plaatsvindt. Een redactionele vermelding dat “de verkoper soms kortingen heeft” is geen aanbieding. Een standaardprijs die voor iedereen onbeperkt beschikbaar is, is normale commerciële informatie en hoort thuis in een prijstabel of productprijsregel.

Bijna-raakgevallen komen vaak voor:

  • Een permanente “nieuwe klantenkorting” kan voorwaardelijk zijn zonder tijdsgebonden te zijn. Het heeft nog steeds de kwalificerende definitie, uitsluitingen en controledatum nodig, maar mag geen “haast u” zeggen.
  • Een gratis proefperiode die deel uitmaakt van het normale product is een abonnementsvoorwaarde, geen deal, tenzij een campagne tijdelijk de duur of reikwijdte wijzigt.
  • Een affiliate-voucher hoort alleen in een aanbiedingsbox wanneer de uitgever de huidige voorwaarden heeft geverifieerd en de commerciële relatie duidelijk in de buurt openbaar maakt.
  • Een product dat simpelweg op voorraad is, is beschikbaarheid, geen aanbieding. Maak van voorraadstatus geen urgentie tenzij de voorraad echt beperkt is en de hoeveelheidsclaim afkomstig is van een live bron.
  • Een algemene “Boek een demo”-uitnodiging is een CTA-blok , geen aanbieding. Het toevoegen van een gratis consult creëert geen deal als dat consult altijd inbegrepen is.

De schrijfregels voor elementen hebben voorrang: kies het blok op basis van doel in plaats van rand, kleur, kop of marketinglabel. Als het doel is om één afgebakende commerciële incentive te communiceren, gebruik dan het aanbiedingselement, zelfs als het ontwerp lijkt op een mededeling of CTA.

Waar te plaatsen

Plaats de box nadat de lezer het product, de dienst of het abonnement waarvoor deze geldt kan identificeren, en vóór de normale aankoopactie. Op een productpagina betekent dat meestal naast of direct onder de prijs en variantenselectie. Op een prijspagina plaatst u deze direct boven de actie voor het in aanmerking komende abonnement of onder de tabel met een expliciete lijst van betrokken abonnementen. In een redactionele koopgids of review plaatst u deze na de evaluatie van de relevante optie, niet vóór het bewijs dat de aanbeveling rechtvaardigt.

Houd de aanbiedingsnaam, het voordeel, de geschiktheid, de deadline, uitsluitingen, code en actie in één leeseenheid. Voorwaarden die de geschiktheid wijzigen, kunnen worden geopend in een langere openbaarmaking, maar de doorslaggevende voorwaarden mogen daar niet verborgen zijn. Een lezer mag geen link hoeven te volgen om een minimale besteding, uitgesloten abonnement, automatische verlenging, geografische beperking of limiet van één inwisseling te ontdekken.

Plaats geen aanbiedingsbox naast een andere promotie, een conflicterende standaardprijs, een waarschuwing over veiligheid of geschiktheid, of een formulier dat om een andere actie vraagt. Zet het niet tussen een productnaam en de prijs die het wijzigt. Houd het uit de buurt van foutmeldingen bij het afrekenen, waar urgentie kan concurreren met betalings- of validatieberichten. Eén viewport mag niet twee aftellingen of twee even dominante inwisselacties bevatten.

Plaats op mobiel in deze volgorde: voordeel, artikel, geschiktheid, deadline, code, essentiële uitsluitingen, dan actie. Een sticky-aanbieding mag een reeds bekeken box samenvatten, maar mag geen content verbergen, de timer resetten of de enige plek worden waar voorwaarden verschijnen.

Anatomie

  1. Statuslabel: geeft gepland, actief of verlopen aan op basis van de tijdstippen; gebruikt geen vage urgentie.
  2. Voordeel: vermeldt de exacte besparing of toegevoegde waarde met een valuta, percentage, hoeveelheid of verzendvoorwaarde.
  3. Geschikt artikel: gebruikt de officiële product-, categorie-, service- of abonnementsnaam.
  4. Geschiktheid: definieert wie en wat in aanmerking komt, inclusief regio, klantstatus, minimale besteding en inwissellimiet.
  5. Geldigheidsvenster: toont de start wanneer relevant en het exacte einde met datum, tijd en IANA-tijdzone.
  6. Inwisselmethode: geeft een zichtbare couponcode, een verklaring van automatische korting of een precieze instructie.
  7. Essentiële uitsluitingen: houdt beslissingsveranderende limieten in de box; een langere voorwaardenpagina mag juridische details geven, maar kan deze niet ongedaan maken.
  8. Actie: benoemt de volgende transactiestap en leidt naar een pagina die de aanbieding honoreert.
  9. Verificatie: identificeert wanneer de aanbieding is gecontroleerd en welke goedgekeurde campagnebron de eigenaar is.
  10. Verlopen status: vervangt of verwijdert de actieve actie op de deadline en voorkomt verouderde gestructureerde gegevens.

Ontwerpvoorbeelden

Alle varianten gebruiken hetzelfde contract. Het visuele verschil weerspiegelt hoe het voordeel wordt berekend, geen vrijstelling om voorwaarden weg te laten.

Bedrag- of percentagekorting: gebruik voor “20% korting” of “Bespaar USD 40.” Vermeld de berekeningsbasis. Als een eerdere prijs verschijnt, moet dit de authentieke vergelijkingsprijs zijn die is goedgekeurd voor die markt, geen opgeblazen ankerprijs.

Gratis verzending: noem het minimale winkelwagenbedrag, de bestemming, de bezorgservice en uitgesloten kosten. “Gratis bezorging boven USD 75 in de aaneengesloten VS per standaard grondservice” is extraheerbaar; “Verzending voor ons” is dat niet.

Bundel of cadeau: identificeer de kwalificerende aankoop en het exacte inbegrepen artikel of dienst. Vermeld of de bonus automatisch wordt toegevoegd en wat er gebeurt als deze niet beschikbaar is.

Publiekgebonden aanbieding: gebruik voor een geverifieerde groep zoals studenten, non-profitorganisaties of eerste klanten. Leg uit hoe de status wordt gecontroleerd en vermijd een vervaldatum tenzij het programma er daadwerkelijk een heeft.

Geplande en verlopen statussen: geplande content toont wanneer de aanbieding begint zonder een actieve claimactie. Verlopen content geeft aan dat de aanbieding is geëindigd en kan linken naar standaardprijzen; het mag geen werkende couponknop behouden of impliceren dat de oude voorwaarden nog beschikbaar zijn.

Parameters

“Bron” hieronder betekent waar de renderer een veld verkrijgt. Het vervangt niet het goedgekeurde campagnerecord dat wordt gebruikt om de claim te verifiëren.

NaamTypeVereistMin/maxStandaardBron
titleGewone stringJa4–12 woordenGeenEerste kop in body
variantEnum: discount, shipping, bundle, audienceJaEén waardediscountAttribuut
benefitGewone stringJa2–12 woorden; 80 tekensGeenAttribuut
itemGewone stringJa1–10 woordenGeenAttribuut
eligibilityGewone tekstVoorwaardelijk5–35 woordenGeenBody
startsAtISO 8601 datum/tijdNeeEén tijdstempel met offsetOnmiddellijkAttribuut
expiresAtISO 8601 datum/tijdVereist voor tijdsgebonden aanbiedingenEén tijdstempel met offsetGeenAttribuut
timezoneIANA-tijdzoneVereist bij weergegeven tijdenEén waardeGeenAttribuut
codeGewone stringVoorwaardelijk3–24 tekensGeenAttribuut
redemptionEnum: automatic, code, claimJaEén waardeautomaticAttribuut
termsGewone tekstJa1–5 items; 80 woorden totaalGeenBody
ctaTextGewone stringJa terwijl actief2–6 woorden; 40 tekensGeenAttribuut
ctaUrlAbsolute of root-relatieve URLJa terwijl actiefEén geldige bestemmingGeenAttribuut
verifiedISO 8601 datumJaEén exacte datumGeenAttribuut
campaignSourceGewone tekst-identificatieJa3–80 tekensGeenBody
expiredBehaviorEnum: replace, hideNeeEén waardereplaceAttribuut
expiredTextGewone stringVereist wanneer gedrag replace is3–20 woorden“Deze aanbieding is geëindigd.”Body

Ten minste één grens is verplicht: expiresAt of eligibility. Een tijdsgebonden aanbieding zonder expiresAt is ongeldig. De offset in expiresAt stuurt statuswijzigingen; timezone levert de mensleesbare zone. Vertrouw niet op een datum-only waarde, omdat lezers in verschillende zones andere effectieve deadlines kunnen zien.

Syntax en codevoorbeelden

De draagbare directive is het geschreven contract. Hugo en WordPress mappen dezelfde velden; ze creëren geen nieuwe commerciële betekenissen.

Draagbare Markdown-directive

:::offer-box{variant=discount benefit="Save USD 40" item="Annual Growth plan" startsAt="2026-08-27T00:00:00+02:00" expiresAt="2026-08-31T23:59:00+02:00" timezone="Europe/Bratislava" code=GROW40 redemption=code ctaText="Choose an annual plan" ctaUrl="https://example.com/checkout/growth" verified=2026-08-27 expiredBehavior=replace}
## Save USD 40 on an annual Growth plan

Eligibility: New customers; one redemption per account.

Terms: Not valid with another discount. Code must be entered at checkout.

Campaign source: Growth annual launch, revision 2026-08-27.

Expired text: This offer ended on 31 August 2026.
:::

De eerste kop wordt toegewezen aan title. Gelabelde bodyregels worden toegewezen aan geschiktheid, voorwaarden, campagnebron en verlopen tekst. De zichtbare renderer moet de datum lokaliseren terwijl de exacte machinetijdstempel behouden blijft.

Hugo shortcode

Er bestaat nog geen offer-box-shortcode in deze repository. De beoogde adapter gebruikt alleen benoemde parameters en moet worden geïmplementeerd als een beoordeeld component voordat productiecontent deze aanroept:

{{< offer-box
  variant="discount"
  benefit="Save USD 40"
  item="Annual Growth plan"
  expiresAt="2026-08-31T23:59:00+02:00"
  timezone="Europe/Bratislava"
  code="GROW40"
  redemption="code"
  ctaText="Choose an annual plan"
  ctaUrl="https://example.com/checkout/growth"
  verified="2026-08-27"
  expiredBehavior="replace"
>}}

Het voorbeeld is escaped zodat Hugo geen niet-bestaande shortcode aanroept. Wanneer de adapter is gebouwd, moet deze de status server-side berekenen en client-side verlopen ondersteunen zonder afhankelijk te zijn van JavaScript voor de essentiële voorwaarden. Cache-invalidatie of geplande publicatie moet ervoor zorgen dat de server-gerenderde pagina ook verandert na de deadline.

WordPress

<!-- wp:amicited/offer-box {"variant":"discount","benefit":"Save USD 40","item":"Annual Growth plan","expiresAt":"2026-08-31T23:59:00+02:00","timezone":"Europe/Bratislava","code":"GROW40","redemption":"code","ctaText":"Choose an annual plan","ctaUrl":"https://example.com/checkout/growth","verified":"2026-08-27","expiredBehavior":"replace"} -->
<div class="wp-block-amicited-offer-box">
  <h2>Save USD 40 on an annual Growth plan</h2>
  <p>New customers; one redemption per account. Not valid with another discount.</p>
  <p>Use code <strong>GROW40</strong>. Ends 31 August 2026 at 23:59 Europe/Bratislava.</p>
</div>
<!-- /wp:amicited/offer-box -->

Het WordPress-blok slaat getypeerde attributen en zichtbare tekst samen op. De editor moet een ontbrekende vervaldatum markeren voor tijdsgebonden taal en de actieve, geplande en verlopen statussen voorvertonen.

Voorbeelden

Goed

Gratis standaardverzending bij bestellingen van USD 75 of meer
Beschikbaar voor bezorgadressen in de aaneengesloten Verenigde Staten. Toeslagen voor artikelen met overmaat blijven van toepassing. De korting wordt automatisch toegepast bij het afrekenen. Geverifieerd op 27 augustus 2026.

Dit is goed omdat het het voordeel, de winkelwagendrempel, de geschikte geografie, het serviceniveau, de uitzondering, het inwisselgedrag en de controledatum benoemt. Het is een doorlopende voorwaardelijke regel, dus het verzint geen vervaldatum of urgentiefrasering.

Slecht

Haast u—tijdelijke gratis verzending!
Er kunnen beperkingen van toepassing zijn. Shop nu voordat het weg is.

Dit is slecht omdat “tijdelijke” geen deadline heeft, “gratis verzending” geen regio, drempel, methode of uitsluitingen heeft, en de actie druk geeft in plaats van transactiedetails. Een crawler kan niet bepalen wie in aanmerking komt en een lezer kan de uiteindelijke kosten niet weten tot het afrekenen.

Schema-markup en toegankelijkheid

Een aanbiedingsbox creëert niet automatisch schema. Wanneer de pagina daadwerkelijk een geïdentificeerd product of dienst aanbiedt, kunnen de geverifieerde feiten een Schema.org Offer voeden dat is genest onder dat product of die dienst: price, priceCurrency, availability, url, seller en priceValidUntil wanneer een weergegeven prijs werkelijk eindigt op die datum. itemOffered kan een zelfstandige aanbieding verbinden met het onderwerp. Gebruik AggregateOffer alleen voor een echte set aanbiedingen, niet voor één deal met meerdere voorwaarden.

Gestructureerde gegevens moeten overeenkomen met zichtbare content en het handelssysteem. Codeer de niet-gekorte prijs niet als de actieve prijs, zet een procentuele coupon niet om in een verzonnen numerieke prijs, of behoud priceValidUntil niet nadat de zichtbare deal is verlopen. Schema.org’s discountCode-eigenschap hoort bij Order, dus koppel een couponcode niet aan Offer alleen omdat de naam geschikt klinkt. Houd de code in zichtbare content en platformtransactiegegevens, tenzij een ondersteunde vocabulaire en consument een andere mapping vereisen.

Voor toegankelijkheid gebruik je een <aside> of gelabelde regio wanneer de aanbieding aanvullend is; gebruik een normale sectie wanneer dit de primaire content van de pagina is. Houd de kop in de documenthiërarchie. Geef de actieve, geplande of verlopen status niet alleen met kleur aan. Kondig een kopieer-coderesultaat aan via een beleefde live-regio, houd de code selecteerbaar als tekst en geef de kopieerbediening een label zoals “Kopieer code GROW40.”

Een aftelling mag niet elke seconde worden bijgewerkt in een live-regio; dat zou schermlezers herhaaldelijk onderbreken. Toon een statische exacte deadline als bron van waarheid. Als een grove aftelling nuttig is, verberg dan herhaalde timerwijzigingen voor ondersteunende technologie en kondig alleen betekenisvolle overgangen aan zoals “Aanbieding is geëindigd.” Het toetsenbordfocus mag niet verspringen of verdwijnen wanneer de actieve CTA bij verlopen wordt vervangen.

Schrijfregels

Leg de grens uit omdat deze bepaalt of het voordeel echt is voor deze lezer; voeg pas daarna urgentie toe. Pas deze productielimieten toe:

  • Houd de titel op 4–12 woorden en de voordeelregel op 80 tekens. Zet het bedrag, percentage, cadeau of verzendvoordeel vóór campagnetalenspel.
  • Gebruik één aanbieding per box, één primaire actie en maximaal vijf essentiële voorwaarden. Splits niet-gerelateerde promoties in plaats van ze te verbinden met “en.”
  • Vermeld procentuele kortingen als een getal plus %; vermeld geldelijke voordelen met een ISO-valutacode wanneer lezers meer dan één markt kunnen zien.
  • Noem het kwalificerende product, abonnement, bestelwaarde, regio en publiek in letterlijke taal. “Geselecteerde artikelen” is alleen acceptabel wanneer de box linkt naar een complete in aanmerking komende collectie.
  • Schrijf een exacte deadline als dag, maand, jaar, tijd en IANA-tijdzone. Vermijd “middernacht,” wat dubbelzinnig het begin of einde van een datum kan betekenen.
  • Vermeld of inwisseling automatisch is, op code is gebaseerd of een claim vereist. Laat de lezer nooit het mechanisme ontdekken na het klikken.
  • Houd uitsluitingen die de prijs of geschiktheid wijzigen in de box. Begraaf minimale besteding, verlenging, belastingen, kosten, geografische limieten of uitgesloten varianten niet in een verre voorwaardenpagina.
  • Gebruik feitelijke, rustige taal. Gebruik nooit een resetterende timer, nepvoorraad, een niet-ondersteunde “gaat snel”-claim of een permanent “beperkte tijd”-label.
  • Plaats geen getuigenissen, beoordelingen, niet-gerelateerde productvoordelen, navigatielijsten, juridisch-beleidstekst of een tweede promotie in de box.
  • Verifieer de bron, bestemmingspagina, coupon, start, vervaldatum en verlopen status vóór publicatie. Een geldig ogende code die faalt bij het afrekenen is nog steeds een kapotte aanbieding.

Posttypes die het gebruiken

De postTypes-frontmatter-array is de bron van waarheid voor deze matrix. Sjablonen en QA-tooling moeten de tabel vergelijken met die array in plaats van een aparte verborgen lijst te onderhouden.

PosttypeTypisch gebruikVereiste aanpassing
ProductpaginaKorting, cadeau of verzendregel voor één artikelKoppel de aanbieding aan de geselecteerde variant en houd de normale prijs zichtbaar.
CategoriepaginaPromotie in een in aanmerking komende collectieDefinieer inbegrepen en uitgesloten producten; suggereer niet dat elk gefilterd artikel in aanmerking komt.
PrijspaginaTijdelijke abonnementsbesparing of voorwaardelijk accountkredietNoem in aanmerking komende abonnementen, factuurtermijn, verlengingsgedrag en of de besparing zich herhaalt.
ServicepaginaTijdsgebonden pakket of publiekspecifiek consultatiekredietDefinieer scope, boekingsdeadline, uitvoeringsvenster en eventuele capaciteitsvoorwaarde.
KoopgidsGeverifieerde winkeldeal gekoppeld aan één geëvalueerde optieDatastempel de controle, maak commerciële banden openbaar en laat de deal het oordeel niet bepalen.
Beste X voor Y-paginaHuidige promotie voor een optie op de shortlistHoud de rangschikkingsmethodologie onafhankelijk en pas dezelfde dealcontrolevoorwaarde toe op elke optie.
ReviewpaginaGetest product met een geverifieerde lezercodeScheid productoordeel van de incentive en maak affiliate- of sponsorrelaties openbaar.
Use-casepaginaVoorwaardelijke incentive voor een gedefinieerde klantsituatieKoppel het voordeel aan de kwalificerende workflow of publiek zonder schaarste te verzinnen.

QA-checklist

  • De box vertegenwoordigt één echte promotie met een goedgekeurde campagnebron.
  • Het voordeel omvat de eenheid, berekeningsbasis en het geschikte artikel.
  • Tijdsgebonden taal heeft een exacte expiresAt-tijdstempel, weergegeven datum, tijd en zone.
  • Een niet-vervallende aanbieding is voorwaardelijk en bevat geen valse schaarstetaal.
  • Publiek, regio, minimale besteding, productbeperkingen, inwissellimieten en materiële uitsluitingen zijn indien van toepassing zichtbaar.
  • De code is selecteerbare tekst, de inwisselmethode is vermeld en de bestemming honoreert de aanbieding.
  • Geplande, actieve en verlopen statussen zijn getest aan beide zijden van hun exacte grenzen.
  • Vervaldatum verwijdert de actieve claimactie en werkt gecachte output en gestructureerde gegevens bij.
  • De server-gerenderde pagina blijft waarheidsgetrouw wanneer JavaScript niet beschikbaar is.
  • De kopvolgorde, toetsenbordpad, focusgedrag, statuslabels en kopieer-code-feedback zijn toegankelijk.
  • Gestructureerde gegevens beschrijven een echt zichtbaar product- of dienstaanbod en komen overeen met prijs, valuta, URL, beschikbaarheid en geldigheid.
  • Geen aftelling reset, geen niet-ondersteunde schaarste verschijnt en de campagne is geen permanente “beperkte tijd”-aanbieding geworden.
  • De controledatum en operationele eigenaar zijn vastgelegd voor verversing en incidentafhandeling.
  • Mobiele lay-out houdt het voordeel, voorwaarden, deadline, code en actie in logische leesvolgorde.

FAQ

De veelgestelde vragen hieronder behandelen deadlinevereisten, vervalgedrag, urgentieformulering, couponpresentatie en de beperkingen van Offer-gestructureerde gegevens.

← All SEO Playbook guides

Klaar om het in de praktijk te brengen?

Gratis check · 7 dagen proefperiode · geen creditcard nodig