HTTP 428 Precondition Required
HTTP 428 Precondition Required comes from RFC 6585. It lets a server require that a request be conditional, typically demanding an If-Match or If-Unmodified-Since header on a write. The goal is to avoid the lost-update problem: two clients fetch a resource, both modify it, and the second overwrites the first. By requiring a precondition, the server rejects blind writes with 428.
What this means
428 Precondition Required is defined in RFC 6585, which added several useful status codes. A server returns 428 to insist that the client resend the request with a precondition such as If-Match (matching an ETag) or If-Unmodified-Since.
The purpose is to prevent the lost-update problem. Without a precondition, a client might overwrite changes made by another client between its read and its write. Requiring If-Match means the write only succeeds if the resource has not changed since the client last saw it; otherwise the server can reject it with 412 Precondition Failed.
How it relates to crawling
428 is an API-safety mechanism on writes (PUT/PATCH/DELETE), so it is not something search or AI crawlers, which issue read-only GETs without preconditions, normally encounter on content pages.
If a 428 appears for a content URL, an API or write-protected endpoint is exposed where ordinary content was expected. For APIs, document that clients must send If-Match, return the resource's ETag on reads so clients can build conditional writes, and pair 428 with 412 to complete the optimistic-concurrency flow.
- RFC 6585 status; requires a conditional request
- Prevents lost-update overwrites on concurrent writes
- Pairs with ETag/If-Match and 412 Precondition Failed
How it appears in analytics and logs
A 428 means the server refuses an unconditional request and requires a precondition header. It is an API write-safety control, not a content or routing error, and is essentially never seen on plain content crawls.
Diagnostic use case
Diagnose write requests rejected with 428 because the server requires a conditional header (such as If-Match) to guard against concurrent overwrites.
What WebmasterID can help detect
WebmasterID records the status returned to fetches, so a 428 signals an API endpoint enforcing conditional writes rather than a content problem, kept separate from human analytics.
Common mistakes
- Requiring 428 without returning ETags clients need to build conditional requests.
- Confusing 428 (precondition required) with 412 (precondition failed).
- Exposing write-protected API behaviour on URLs meant to serve content.
Privacy and accuracy notes
A 428 is a concurrency-control response with no visitor identity attached. WebmasterID records crawler fetch statuses without linking them to a person.
Related pages
- HTTP 412 Precondition Failed
HTTP 412 Precondition Failed is returned when one or more preconditions in the request headers — such as If-Match or If-Unmodified-Since — evaluate to false against the current resource. It is the negative outcome of conditional requests used to avoid lost updates. It is distinct from 304 Not Modified, which is the cache-validation outcome for conditional GETs that crawlers rely on.
- HTTP 409 Conflict
409 Conflict means the request could not be completed because it conflicts with the current state of the target resource — for example a concurrent edit or a version mismatch. It arises in write and API workflows, not in the GET fetches crawlers issue, so a 409 in crawler logs usually points at an action endpoint being reached.
- HTTP status code cheat sheet for crawlers
This cheat sheet maps the five HTTP status classes to what they mean for crawlers and indexing. It is a quick reference for reading server logs and Search Console crawl data: which codes index normally, which redirect, which signal client errors, and which are server failures crawlers will retry. The aim is to interpret status codes through a crawl-and-index lens rather than a generic one.
- Website observability
See API concurrency status codes like 428 returned to clients, server-side.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.