SEO - Redirect 301 vs 302

Uma das primeiras preocupações com o blog foi como fazer o redirect de http://pablocantero.com para http://pablocantero.com/blog e ao mesmo tempo ser indexado corretamente.

Não tenho conteúdo em http://pablocantero.com, mas algum dia eu posso colocar algo, portanto quero que os motores de busca indexem http://pablocantero.com e http://pablocantero.com/blog.

Depois de uma busca no Google, encontrei vários comentários não muito conclusivos, onde acabei assumindo a seguinte definição:

301 - Redirect permanente

Redirect 301: http://pablocantero.com para http://pablocantero.com/blog.
Redirect 301: http://pablocantero.com para http://outrosite.com.

Em ambos os casos o motor de busca indexará somente as páginas targets http://pablocantero.com/blog e http://outrosite.com.

302 - Redirect temporário no mesmo domínio

Redirect 302: http://pablocantero.com para http://pablocantero.com/blog.

O motor de busca indexará pagina source http://pablocantero.com.

302 - Redirect temporário para outro domínio

Redirect 302: http://pablocantero.com para http://outrosite.com.

O motor de busca indexará a página target http://outrosite.com.

No meu caso estou usando o 302, pois quero que tanto http://pablocantero.com e http://pablocantero.com/blog sejam indexados. Também acredito que seja o mais correto para o meu caso uso segundo a especificação RFC 2616.

The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests.

Cuidado com o Meta refresh

Segundo o Google e W3C não é recomendado usar o redirect usando Meta refresh

This meta tag sends the user to a new URL after a certain amount of time, and is sometimes used as a simple form of redirection. However, it is not supported by all browsers and can be confusing to the user. The W3C recommends that this tag not be used. We recommend using a server-side 301 redirect instead.

Redirect 301 Server-side PHP

<?php
Header("HTTP/1.1 301 Moved Permanently");
header("Location: http://pablocantero.com/blog");
exit();
?>

Redirect 302 Server-side PHP

<?php
header("Location: http://pablocantero.com/blog");
exit();
?>

Principais referências