04 / Technical SEO
Every URL request produces an HTTP response, and that response tells browsers, crawlers, and other systems what happened when the URL was requested.
A page might return 200 OK when the requested content is available, 301 Moved Permanently when the URL redirects somewhere else, or 404 Not Found when the requested resource cannot be found. Understanding response codes explains why Googlebot can crawl and index some URLs while others drop out of the index, waste crawl budget, or show up as errors in the Google Search Console Page indexing report.
This lesson covers 200 responses, 3xx redirects, 404 errors, 410 Gone, soft 404s, and 5xx server errors. It also explains how to review response codes during a technical SEO audit and use SiteAuditLint to find response patterns across a website.
1. What is an HTTP status code?
An HTTP status code is a three-digit number returned by a web server after receiving a request. It appears in the first line of the response headers, before any page content is sent:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
The first digit indicates the general category of the response.
| Range | Category | Example |
|---|---|---|
2xx | Successful response | 200 OK |
3xx | Redirection | 301, 302 |
4xx | Client-side error | 404, 410 |
5xx | Server-side error | 500, 503 |
From request to response
For SEO auditing, the status code is the first fact to establish about any URL.
2. 200 OK
A 200 OK response means the request was successfully processed and the requested resource was returned.
GET /services/seo-audit/
HTTP/1.1 200 OK
A 200 response is expected for pages that are intended to be accessible and potentially eligible for indexing. However, a 200 response alone does not mean a page should be indexed. Other factors still affect indexing, including:
noindexdirectives in the meta robots tag orX-Robots-Tagheader.- Canonical URLs that point to a different preferred version.
- Duplicate content that competes with another URL.
- Content quality and relevance relative to the query.
- Robots.txt restrictions that block crawling.
- Search engine indexing decisions, such as "Crawled, currently not indexed".
What to check
Expected content
Does the page contain the content it is supposed to serve?
Internal linking
Is the page linked internally where appropriate?
Canonical and noindex
Is the canonical URL correct, and is there no accidental noindex directive?
Unexpected duplicates
Is the page a duplicate of another URL, such as a parameter or filter variation?
Error-like content
Are any important pages returning 200 while showing an error message?
A successful HTTP response does not automatically make a page a useful search result. The status code is one part of the technical picture.
3. 3xx redirects
3xx status codes indicate that the requested URL requires another step or location. Common examples include 301 Moved Permanently, 302 Found, 307 Temporary Redirect, and 308 Permanent Redirect.
/old-page/
↓ 301
/new-page/
↓ 200
The original URL does not directly return the requested page. Instead, it sends the requester to another URL through the Location header. Redirects are useful when URLs move or when multiple URL versions need to be consolidated.
What to check
- The redirect status and the redirect target.
- Whether the target is accessible and returns
200. - Whether the target redirects again, creating a redirect chain.
- Whether a redirect loop exists.
- Whether internal links unnecessarily point to redirected URLs.
A simple path of old URL, one 301, then a final URL returning 200 is easier to maintain and cheaper to crawl than a path that passes through several intermediate URLs. For a deeper explanation of redirect types, chains, loops, and targets, see Lesson 03: Redirects.
4. 404 errors
A 404 Not Found response means the server could not find the requested resource.
https://example.com/missing-page/
↓
404
A 404 can occur when:
- A page has been deleted.
- A URL was entered incorrectly or contains a typo.
- An old URL is no longer available after a site migration or URL change.
- A broken internal link points to a nonexistent page.
- An external website links to an outdated URL.
404 errors do not harm the rest of a site's rankings on their own. A page that has intentionally been removed and has no suitable replacement may legitimately return a 404. The problem occurs when important pages, valuable URLs with backlinks, or frequently linked resources unexpectedly return 404 responses.
Example: Removed product
Suppose /products/old-widget/ has been permanently removed. If there is no appropriate replacement, returning 404 Not Found may be appropriate. If a newer equivalent product exists, a 301 redirect to that product preserves the value of existing links. A helpful custom 404 page with search and navigation links keeps visitors on the site either way, as long as it still returns a real 404 status.
What to check
- Whether the URL was intentionally removed.
- Whether internal links still point to the missing URL.
- Whether external websites link to the URL.
- Whether a suitable replacement exists and the URL should redirect to it.
- Whether the URL is part of a larger pattern of broken URLs.
A 404 report becomes more useful when each URL is considered in context rather than treating every 404 as an error that must automatically be fixed.
5. 410 Gone
A 410 Gone response indicates that the requested resource is no longer available and that the removal is intentional.
/products/discontinued-item/
↓
410
The distinction is primarily about the meaning of the response.
| Status | Meaning | Typical use |
|---|---|---|
404 | Resource not found | Missing, mistyped, or removed URLs |
410 | Resource is intentionally gone | Deliberately retired URLs with no replacement |
For example, /temporary-campaign/ may be removed permanently after a campaign ends. If there is no relevant replacement, returning 410 Gone communicates the intended state of the URL. In practice, Google treats 404 and 410 similarly, though a 410 can be a slightly more explicit removal signal.
What to check
- Was the URL intentionally removed?
- Is there a suitable replacement?
- Are internal links still pointing to it?
- Does the URL receive meaningful external links?
- Is the 410 response intentional or the result of a configuration problem?
6. Soft 404s
A soft 404 occurs when a URL appears to be missing or invalid but the server returns a successful response such as 200 OK.
GET /page-that-does-not-exist/
HTTP/1.1 200 OK
Page not found
The page you requested does not exist.
The HTTP response says the request succeeded even though the page content says the resource does not exist. The status code and the content communicate different things, which makes technical auditing harder and can let empty or error-like URLs consume crawl budget. Search engines may also classify pages as soft 404s based on their content and other signals, and Google Search Console lists these under "Soft 404" in the Page indexing report.
Common soft 404 patterns
Error template with 200
A "page not found" message is served with a 200 status.
Thin or empty pages
Empty search results, empty category pages, or out-of-stock pages with almost no content.
Homepage fallback
Unknown URLs return the homepage or redirect every unknown URL to a generic page.
Infinite invalid URLs
Any random path or parameter produces a successful response, creating large numbers of junk URLs.
The goal is to make the server response accurately represent the state of the requested URL. For a genuinely missing page, the website should return a real 404 or 410 rather than disguise the missing resource as a normal successful page.
7. 5xx errors
5xx status codes indicate that the server encountered a problem while processing the request. A 404 generally means the requested resource cannot be found. A 5xx response means the server or an upstream service failed while handling the request.
| Status | Name | What it means |
|---|---|---|
500 | Internal Server Error | An unexpected condition prevented the server from completing the request. |
502 | Bad Gateway | A gateway or proxy received an invalid response from an upstream server. |
503 | Service Unavailable | The server is temporarily unable to handle the request, for example during maintenance, overload, or a service interruption. |
504 | Gateway Timeout | A gateway or proxy did not receive a timely response from an upstream server. |
Why 5xx errors matter
Repeated server errors prevent users and crawlers from accessing pages. Googlebot also slows its crawl rate when a site returns many 5xx responses, and URLs that keep failing over a long period can eventually be dropped from the index. An intermittent server problem looks very different to a crawler from a permanently removed page, so a website that frequently returns 5xx responses should be investigated at the server, hosting, application, CDN, or database level.
During scheduled downtime, return 503 Service Unavailable, ideally with a Retry-After header, instead of serving a maintenance page with 200. This tells crawlers the outage is temporary so they come back later rather than indexing the maintenance message.
What to check
- Which URLs return server errors.
- Whether the errors are temporary, intermittent, or persistent.
- Whether multiple URLs or an entire section fail at the same time.
- Whether the server is overloaded or an application or database is failing.
- Whether the errors coincide with deployments or maintenance.
A small number of isolated server errors can have a different cause from a widespread outage, so look for patterns.
8. Response codes and crawling
Response codes help search engine crawlers decide what to do with each URL they request.
For SEO auditing, look beyond the number of responses and examine which URLs produce them. A report showing 404: 500 URLs sounds significant, but those URLs may all be old, unimportant URLs with no links. By contrast, 404: 5 URLs could matter far more if those five URLs are valuable pages receiving substantial internal links and backlinks. The URL context matters.
9. How to audit status codes with SiteAuditLint
A website crawler such as SiteAuditLint records the HTTP response returned by every discovered URL. This makes it possible to identify response patterns across a site instead of checking URLs individually.
SiteAuditLint response-code workflow
- Enter your websiteStart a crawl from the homepage or another appropriate starting URL.
- Crawl the siteAllow SiteAuditLint to discover URLs and request their responses.
- Review response codesLook at URLs grouped by HTTP status, paying particular attention to 200, 3xx, 404, 410, and 5xx.
- Investigate affected URLsDo not simply count the responses. Open the affected URLs and determine why they returned that status code.
- Check internal linksFor 404, 410, and redirecting URLs, find which pages on the website still link to them.
- Fix appropriate issuesRestore the page, update or remove an internal link, add a relevant redirect, or correct server, application, or hosting configuration.
- Crawl againCompare the new results with the previous crawl to confirm problems were reduced and no new ones appeared.
What to look for in a crawl report
| Finding | What to review |
|---|---|
| 200 responses | Whether important pages return the expected content |
| 3xx responses | Redirect types, targets, chains, and loops |
| 404 responses | Broken links and intentionally removed URLs |
| 410 responses | Whether permanently removed URLs are intentional |
| Soft 404s | Pages that look missing but return successful responses |
| 5xx responses | Server-side failures and whether they cluster |
| Internal links | Links pointing to error or redirect URLs |
| Patterns | Whether problems are isolated or widespread |
A response-code audit is most useful when each HTTP response is judged against the purpose and importance of the URL. Cross-check crawl findings with the Page indexing report in Google Search Console to see which errors Google has also encountered.
10. Practical exercise: Review website response codes
Choose a website you manage and run a crawl with SiteAuditLint.
Status code audit checklist
0 of 6 tasks completed
11. Key takeaways
- Every URL request produces an HTTP response.
200 OKmeans the requested resource was successfully returned.3xxresponses indicate that another URL or request step is involved.404 Not Foundindicates that the requested resource could not be found.410 Goneindicates that a resource has been intentionally removed.- A soft 404 occurs when missing or error-like content is returned with a successful response such as
200. 5xxresponses indicate server-side problems, and use503for planned maintenance.- Not every 404 is a problem, and not every 200 page should necessarily be indexed.
- The importance of a response depends on the URL, its internal links, its purpose, and whether the response is intentional.
- SiteAuditLint helps identify response-code patterns, and comparing crawls shows whether problems are being resolved over time.
Knowledge check
Ready to go further? Review the technical SEO checklist, or revisit Lesson 03: Redirects.