Available HTTP codes

SEO redirection in WordPress is a way to send both users and search engines to a different URL from the one they originally requested. CF Geo Plugin offer HTTP codes like 301, 302, 303, 307, 308 and the most unwanted but useful 404 redirection.

Depending on your needs, you use SEO redirection with one of these HTTP codes.

301 Moved Permanently

A 301 redirect is a permanent redirect. 301 refers to the HTTP status code for this type of redirect. In most instances, the 301 redirect is the best method for implementing redirects on a website.

Note: A 301 permanent redirect is ONLY permanent as long as the 301 redirect command is in place on the source server. Remove the redirect command, and Google will index pages as it did before you implemented the redirects.

This is incredibly important of course if you have some domain reputation or site quality scores of note.

302 Temporary Redirects

Although this is an option, you really shouldn’t have any use for it. The temporary redirect does not give you the same SEO benefits as the 301 permanent redirect, plus it can actually cause duplicate content to show up in search engine results. This is because Google will read it as a temporary redirect, not a permanent one, and will retain the old content as well as the new.

A 302 Temporary Redirect is not ideal, but Google treats 302 redirects left in place essentially like 301’s. Google also treats 302 in a chain like 301 (although again that is far from ideal).

Should I use a 301 or a 302 redirect?

In our opinion, it’s better to use 301 instead of 302, but it’s up to you to decide at the end.

303 See Other

The HTTP response status code 303 See Other is a way to redirect web applications to a new URI, particularly after a HTTP POST has been performed, since RFC 2616 (HTTP 1.1).

A 303 redirect is a response to an HTTP status code 303, which is also called a “See Other” status code. Experts describe the specific type of redirect as a response to a request for a Unified Resource Identifier (URI) that identifies a real-world object.

303 See Other has been proposed as one way of responding to a request for a URI that identifies a real-world object according to Semantic Web theory (the other being the use of hash URIs).[1] For example, if http://www.example.com/id/alice identifies a person, Alice, then it would be inappropriate for a server to respond to a GET request with 200 OK, as the server could not deliver Alice herself. Instead the server would issue a 303 See Other response which redirected to a separate URI providing a description of the person Alice.

Where to use 303 redirect?

303 See Other can be used for other purposes. For example, when building a RESTful web API that needs to return to the caller immediately but continue executing asynchronously (such as a long-lived image conversion), the web API can provide a status check URI that allows the original client who requested the conversion to check on the conversion’s status. This status check web API should return 303 See Other to the caller when the task is complete, along with a URI from which to retrieve the result in the Location HTTP header field.

307 Moved Temporarily

A 307 Temporary Redirect message is an HTTP response status code indicating that the requested resource has been temporarily moved to another URI, as indicated by the special Location header returned within the response. The 307 Temporary Redirect code was added to the HTTP standard in HTTP 1.1, as detailed in the RFC2616 specification document that establishes the standards for that version of HTTP.

What’s the difference between a 302 and a 307 redirect?

The difference concerns redirecting POSTPUT and DELETE requests and what the expectations of the server are for the user agent behavior. RFC 1945 and RFC 2068 specify that the client is not allowed to change the method on the redirected request. However, most existing user agent implementations treat 302 as if it were a 303 response, performing a GET on the Location field-value regardless of the original request method. The status codes 303 and 307 have been added for servers that wish to make unambiguously clear which kind of reaction is expected of the client.

In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For example, a POST request should be repeated using another POST request.

308 Permanent Redirect

The 308 (Permanent Redirect) status code indicates that the target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs. Clients with link editing capabilities ought to automatically re-link references to the effective request URI to one or more of the new references sent by the server, where possible.

The request and all future requests should be repeated using another URI. 307 and 308 parallel the behaviors of 302 and 301, but do not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.

Note: This status code is similar to 301 (Moved Permanently), except that it does not allow changing the request method from POST to GET .

HTTP 404 Not Found

The HTTP 404, 404 Not Found, 404, Page Not Found, or Server Not Found error message is a Hypertext Transfer Protocol (HTTP) standard response code, in computer network communications, to indicate that the browser was able to communicate with a given server, but the server could not find what was requested.

The website hosting server will typically generate a “404 Not Found” web page when a user attempts to follow a broken or dead link; hence the 404 error is one of the most recognizable errors encountered on the World Wide Web.

When to use HTTP 404 Not Found?

Many web sites customize the look of a 404 page to be more helpful to the user and provide guidance on what to do next. Apache servers can be configured using an .htaccess file and a code snippet like the following example.

Choosing the most suitable status code