304 Not Modified beantwoordt een conditioneel GET- of HEAD-verzoek, dus een verzoek met If-None-Match of If-Modified-Since, wanneer uit de voorwaarde blijkt dat de opgeslagen kopie van de client nog actueel is. In plaats van de resource opnieuw te sturen, antwoordt de server met 304 en gebruikt de client zijn gecachete kopie. Dat bespaart bandbreedte en tijd.
Een 304 heeft nooit een body; de response eindigt met de lege regel na de headers. De server moet van de headers Cache-Control, Content-Location, Date, ETag, Expires en Vary de headers meesturen die een 200 zou hebben bevat, zodat caches de opgeslagen response kunnen bijwerken.
Hoewel 304 in de 3xx-reeks valt, is het geen redirect. Er is geen Location, en de client blijft op dezelfde URL. Een client die een 304 krijgt zonder een conditioneel verzoek te hebben gestuurd, praat met een kapotte server.
Voorbeeldresponse
HTTP/1.1 304 Not Modified
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "5f2b-1a3c"
Last-Modified: Wed, 28 Oct 2026 08:02:11 GMT
Cache-Control: public, max-age=600
Vary: Accept-Encoding SEO en redirects controleren
304 helpt bij het crawlen. De crawlers van Google ondersteunen conditionele verzoeken, en een 304 vertelt Googlebot dat de inhoud sinds de laatste crawl niet is veranderd. Dat spaart crawlcapaciteit en serverbelasting, terwijl de pagina haar plek in de index houdt. Betrouwbare ETag- of Last-Modified-headers zijn dus de moeite waard, vooral op grote sites.
TrueURL stuurt standaard geen conditionele headers mee, dus je ziet 200 in plaats van 304. Wil je revalidatie testen, voeg dan onder Aangepaste requestheaders een If-None-Match-header toe met de ETag van de pagina.
Veelvoorkomende oorzaken en toepassingen
- Een browser revalideert een gecachete pagina, afbeelding of script met
If-None-Match, en deETagkomt nog overeen. - Een crawler of feedreader haalt opnieuw op met
If-Modified-Since, en er is niets veranderd. - Bezoekers zien na een deploy verouderde content, omdat de server 304 blijft antwoorden: de validators zijn niet veranderd, bijvoorbeeld een
ETagop basis van bestandsgrootte en wijzigingstijd die bij de deploy behouden bleven. Zorg dat de validators veranderen zodra de inhoud verandert.