Catalog/No Last-Modified header (no conditional GET for unchanged pages)
SEO issue

Missing Last-Modified header: enable conditional GET

Without a Last-Modified header, Googlebot re-downloads unchanged pages every crawl. Find pages missing it and learn how to enable conditional GET and 304s.

10852
audited sites affected

What it means

The HTTP response for this page includes no Last-Modified header. Last-Modified tells crawlers when the content last changed, enabling a conditional If-Modified-Since request on the next visit. Without it (and without an ETag), Googlebot must download the full page body every time it crawls the URL.

Why it matters

When a page returns Last-Modified, Googlebot stores the timestamp and revalidates with If-Modified-Since; an unchanged page then returns 304 Not Modified with no body. Without any validator this negotiation is impossible and the full body is re-fetched on every crawl. Google's crawl-budget guidance names proper conditional-GET support as a server-side crawl-efficiency win; the impact compounds on large sites with many stable pages. This is a lab-proxy read from the response headers, not a measure of crawl frequency.

How to fix it

  1. On Apache/Nginx, static files serve Last-Modified automatically from filesystem mtime — confirm it is not stripped.
  2. For dynamic pages, store the content's last-updated timestamp and emit it as Last-Modified in RFC 7231 HTTP-date format.
  3. On Vercel/Netlify/CDN edge functions, set the header explicitly for dynamic responses.
  4. If a timestamp is impractical, emit an ETag (content hash) instead — either header enables conditional GET.

When it's not a problem

Genuinely dynamic pages — session-specific, personalised, or generated per request — cannot reliably emit Last-Modified and the absence is intentional. Pages behind auth, or proxies that strip headers, may also omit it. Suppress the finding for URL patterns where dynamic generation makes the header inappropriate.

How common is it?

10852 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.

Breakdowns

CMS

View breakdown →

Category

View breakdown →

Related
Catalog Large DOM (over 1500 elements) slows rendering & interaction Same-host image over 100KB transferred (LCP risk) Legacy image format (jpg/png/gif) with no next-gen fallback Large HTML document No ETag header (no conditional GET for unchanged pages) Category CMS Render-blocking script in <head> (no defer/async) Slow server response Same-host CSS/JS served without gzip/Brotli compression Same-host CSS file appears unminified Same-host JavaScript file appears unminified

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →