HTTP Status Code
An HTTP status code is a numeric response sent by a server to describe what happened when a URL or resource was requested.
Search engines use these responses to help understand whether pages are available, moved, missing, or temporarily unavailable.
What the Codes Represent
Status codes are grouped into categories.
Common examples include:
- 200: the request succeeded
- 301: the resource moved permanently
- 302: the resource moved temporarily
- 404: the resource was not found
- 410: the resource is gone
- 500: the server encountered an error
- 503: the service is temporarily unavailable
These responses communicate what happened before a crawler needs to interpret the visible page itself.
How They Affect Search Engines
A successful 200 response generally tells a crawler that the URL returned normal content.
A 3xx response points it toward another URL through a redirect.
A 404 or 410 indicates that the requested resource is unavailable.
Persistent server errors can prevent pages from being crawled reliably.
Why It Matters
The visible page and server response should tell the same story.
A custom “Page not found” design that still returns a 200 status code can confuse crawlers because the server is saying the request succeeded even though the content says the page does not exist.
Correct status codes make technical behaviour explicit.
Common Problems
Common issues include:
- Error pages returning 200
- Redirects implemented without an appropriate 3xx response
- Deleted pages returning server errors instead of 404 or 410
- Persistent 5xx errors
- Redirect chains
- Important pages returning unexpected status codes after a deployment
How to Improve
Check server responses as part of technical crawling and launch QA.
When URLs change or fail, choose the status code based on what actually happened rather than what is easiest to configure.