Contact

What is 200 OK?

Definition

200 OK is the HTTP status code a server returns when it has successfully handled a request. What the response body means depends on the method: for GET it is the requested resource itself, for POST the outcome of the action. To search engines a 200 means the content can move on to the next processing step, but it does not guarantee the page will be indexed.

Also known as: HTTP 200, 200 status code, OK response

Diagram of a 200 OK response with headers and HTML body, used by the browser, a crawler and a cache

Success depends on the method

"The request succeeded" says something different depending on what was asked. RFC 9110 defines the body of a 200 response per HTTP method:

MethodBody of the 200 response
GETA representation of the target resource, such as the page's HTML
HEADSame headers as GET, no body transferred
POSTThe status or result of the action
PUT, DELETEThe status of the action

If there is nothing to return, 204 No Content is the better code, and a REST API that creates a record should usually answer 201 Created. The standard also says 200 responses to GET and HEAD should carry validators such as ETag and Last-Modified; that is what later makes a 304 Not Modified possible.

A 200 is not an index entry

Google's documentation is explicit: content returned with 200 is passed to the indexing pipeline, which may index it, but that is not guaranteed. Duplicate content on another URL, a noindex rule, very thin content or Google picking a different canonical can all keep a page out of the index despite a clean 200. A 200 is a precondition for indexability, not the thing itself.

200 in the wrong place: error pages and APIs

The costly mistake is calling a failed request a success. A page that says "Product not found" but returns 200 is flagged by Google as a soft 404. A "Back soon" maintenance message served with 200 can end up indexed.

In APIs the same mistake does different damage:

HTTP/1.1 200 OK
Content-Type: application/json

{"success": false, "error": "Card declined"}

Monitoring counts that as a success, intermediary caches may store it, and client libraries never enter their error handling. An error body is useful, but it should arrive with a status code that matches: 422 or 400 for validation errors, 403 for permission problems and so on.

What "200 (from disk cache)" in DevTools means

In Chrome's Network panel some requests show as 200 (from memory cache) or 200 (from disk cache). Those rows do not mean the server answered 200 just now; the browser reused a stored copy and never contacted the server. A 304 is different: the browser did ask, and the server replied that nothing had changed. When investigating speed, that distinction tells you which requests actually crossed the network. For the overall picture of status classes, see HTTP status code.

Related terms

← Back to the glossary