3xx HTTP Status Codes Explanation
HTTP status code is received in the first line of any web server response to indicate the status of a request received from a client. 3xx HTTP status codes indicate that the user agent (a web browser or a crawler) needs to take further action when trying to access a particular resource. Generally user agent is automatically forwarded or redirected to another resource (URL) without interaction of the user.
Since the original requested URL is not seen by the users, search engines will not index the original URL, instead index the final redirected URL.
300 – Multiple Choices
When a requested URL is pointing towards more than one resource then the user agent (web browser or crawler) will not be able to decide which page is to be fetched and the HTTP error code “300 – Multiple Choices “is received. In order to correct the 300 error code, check the HTTP headers or ensure the URL is pointing to only one resource so that a user agent can access the page successfully.
301 – Resource Moved Permanently
When a permanent redirect is set to an original URL to send the user agent to another URL then a “301 – Moved Permanently” error code is received. As the user can’t see the original URL, search engines will only index the redirected URL. Up to 5 redirects for a single URL is followed by most of the common user agents and more than 5 redirects will results in an infinite loop.
302 – Resource Moved Temporarily (or Found)
When a temporary redirect is set to an original URL to send the user agent to another URL then the server responds with a code “302 – Moved Temporarily”. Some browsers treat 303 code as equivalent to 302 code since 302 code is only used in HTTP/1.0.
303 – See Another Resource
When a requested resource is located at another URL address and should be requested using a GET method then code “303 – See Another Resource” is received. The original requested page will be indexed by the search engines only when the 200 – Success code is received.
304 – Resource Not Modified
If the requested resource is not modified since the last time of the request then server responds with “304 – Not Modified” code. In this case server assumes that there is no need to send the data again since the client already has the copy of the requested resource which is not modified. The last time of modification is mentioned in the request header line “If-Modified-Since” or “If-Match”.
If your page has not changed since the last time the search engine crawler accessed your site then returning of 304 code is recommended to speed up indexing and reduce the crawler load.
305 – Use Proxy
If the requested resource can only be accessed through a proxy server then the web server responds with code “305 – Use Proxy”. The proxy server address is also received in the response which will be displayed in the browser window. Some browsers like Internet Explorer do not display this response properly due to security concern of displaying the proxy server.
307 – Temporary Redirection
When the requested resource is moved temporarily to another address mentioned in the location header of the request then code “307 – Temporary Redirect” is received. This is only a temporary redirect but the next request will access the original URL. This code is only used in HTTP/1.1.
306 and 308 Status Codes
“306 – Switch proxy” code is not currently used which indicates that the server should use the specified proxy for the following requests.