Why Google Ignores Your Last-Modified Headers

On this page

If your server sends both an ETag and a Last-Modified header, Google’s crawlers use the ETag. The documentation states this outright, and the rule follows the HTTP standard. When there is no ETag, Google’s overview of its crawlers says the infrastructure supports Last-Modified and If-Modified-Since for HTTP caching. Google’s documentation describes the header as a caching tool; it doesn’t describe it as a signal for when to crawl. It lets Google skip downloading a page that hasn’t changed. If an updated page isn’t being recrawled, the header is the wrong lever. The sitemap date, links and the server are better levers.

What Last-Modified is for

Last-Modified is an HTTP caching header. When a crawler has fetched a page before, it can send the stored date back in an If-Modified-Since request. If the page hasn’t changed, the server can answer with a 304 Not Modified status instead of sending the page again. Google’s crawl budget guide recommends supporting 304 responses: a 304 tells Google to reuse the cached version, which saves your server bandwidth and resources.

Google’s crawler documentation sets out how it treats the caching headers:

  • Both headers are supported. Google’s crawling infrastructure supports ETag with If-None-Match, and Last-Modified with If-Modified-Since, as the HTTP caching standard defines them. Other HTTP caching directives aren’t supported.
  • ETag wins when both are present. If a response carries both, Google’s crawlers use the ETag value, as the HTTP standard requires.
  • Google prefers ETag. It recommends ETag over Last-Modified for its crawlers because ETag doesn’t have date formatting issues. It also suggests setting both anyway, regardless of its own preference.
  • The date format matters. The date in Last-Modified must follow the HTTP standard. To avoid parsing issues, Google recommends the format “Weekday, DD Mon YYYY HH:MM:SS Timezone”, for example “Fri, 4 Sep 1998 19:15:56 GMT”.

So there are two documented ways your Last-Modified header can end up with no effect on Google: an ETag in the same response takes precedence, or a date Google cannot parse.

One header setting Google says can help recrawl timing

Google’s crawler documentation adds a suggestion alongside Last-Modified. While not required, it says, consider setting the max-age field of the Cache-Control header to help crawlers determine when to recrawl the specific URL. Set it to the number of seconds you expect the content to stay unchanged, for example Cache-Control: max-age=94043.

That is a hint about how long a page is expected to stay the same. It is not a command to crawl.

What decides when Google recrawls

Google’s crawl budget guide describes crawl demand in terms of the site, not headers. Three factors it names bear on recrawl timing:

  • Perceived inventory. Without guidance, Google tries to crawl all or most of the URLs it knows on your site.
  • Popularity. URLs that are more popular on the internet tend to be crawled more often, to keep them fresher in Google’s systems.
  • Staleness. Google’s systems want to recrawl documents often enough to pick up changes.

The other half is capacity. Google adjusts how fast it crawls to how your server responds. When Google announced that the Search Console crawl rate limiter tool would be retired on January 8, 2024, it said that if a server persistently returns HTTP 500 errors for a range of URLs, Googlebot will slow down crawling automatically and almost immediately. That tool let you limit the rate, and it no longer exists.

The sitemap date Google does use, on one condition

The date input Google documents for recrawling is lastmod in your XML sitemap. Google’s guide to building a sitemap says Google uses the lastmod value if it is consistently and verifiably accurate, for example when compared with the page’s last modification. The value should reflect the date and time of the last significant update.

Google also defines significant. An update to the main content, the structured data or the links on the page is generally significant. An update to the copyright date is not. The same guide says Google ignores the priority and changefreq values.

The practical rule follows: move lastmod only when the page changes in one of those ways. A site that stamps every URL with today’s date on every build publishes dates that don’t match its pages. It has no reason to expect Google to treat them as accurate.

What to do after a real update

For a page you have rewritten:

  1. Set lastmod to the real edit date in the sitemap, and keep the rest of the sitemap’s dates honest so the file stays one Google can rely on.
  2. Link to the page from pages Google revisits, such as the home page, section hubs and recent articles. That gives Googlebot a link to the updated URL on its next visit to those pages.
  3. For a single urgent page, request indexing in the URL Inspection tool. Google says a request does not guarantee indexing, and there is a daily limit, so keep it for a handful of priority URLs.
  4. Keep the server fast and the response clean. Return a 200 on the canonical URL, avoid redirect chains, and support 304 responses so unchanged pages cost little to recheck.

And keep sending caching headers. A correct ETag, a correctly formatted Last-Modified and a sensible Cache-Control: max-age all do their documented jobs. None of them is documented as scheduling a crawl.

Frequently asked questions

Does Google use the Last-Modified header at all?

Yes, for HTTP caching. Google’s crawlers support Last-Modified with If-Modified-Since. If the response also has an ETag, the crawlers use the ETag, and Google recommends ETag because it avoids date formatting issues.

Will updating Last-Modified make Google recrawl a page sooner?

No. Google documents the header for reusing a cached copy of an unchanged page and doesn’t describe it as scheduling crawls. Google does say a Cache-Control max-age value can help crawlers determine when to recrawl a URL.

Is a new sitemap date enough to force a recrawl?

No. Google uses lastmod when it is consistently and verifiably accurate. Change it only on a significant update to the main content, structured data or links.

Can I make Google crawl my site faster?

Not by a setting. The crawl rate limiter tool was retired on January 8, 2024, and it only ever set a ceiling. Google adjusts crawling to how your server responds, and crawl demand depends on factors such as a URL’s popularity and staleness.

Leave a comment

Your email address will not be published. Required fields are marked *