• Publicidade

  • Twitter

Migrando URLs do Blogger para Wordpress

Um dos problemas de mudar o sistema de um site é como manter as URLs intactas, para que os endereços de todas as páginas indexadas no Google ainda levem para o lugar certo.

Me deparei com essa questão migrando um blog (samsara.blog.br) do Blogger para Wordpress (com hospedagem própria). Como já era domínio próprio, não foi tão complexo:

1 – Permalinks

Depois de importar todo o conteúdo, com o domínio já funcionando no novo esquema, é preciso configurar o WP para usar a mesma estrutura de URL de posts do Blogger: dominio/ano/mês/titulo. Basta selecionar essa opção nas configurações de permalinks do WP.

2 – Corrigindo as URLs

Um problema surge aqui pois, após a importação, muitas URLs ainda não batem. Isso porque o modo como os títulos são montados na URL já foi diferente no Blogger: há alguns anos, todos os caracteres com acentos eram removidos. Como esse site tinha conteúdo de até quatro anos atrás, dezenas de URLs estavam desse jeito, com caracteres acentuados faltando.

A boa notícia é que, durante a importação de posts, o WP guarda todas as URLs originais em um campo extra. Então bastaria uma query SQL para arrumar tudo. Mais fácil ainda: encontrei um script PHP que já faz isso (Moving From Blogger To Wordpress – Maintaining Permalinks, Traffic & SEO):

<?php
require_once('wp-load.php');

$res = $wpdb->get_results("SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'blogger_permalink'");
$wpdb->print_error();

foreach ($res as $row){
$slug = explode("/",$row->meta_value);
$slug = explode(".",$slug[3]);

$wpdb->query("UPDATE $wpdb->posts SET post_name ='" . $slug[0] . "' WHERE ID = $row->post_id");
$wpdb->print_error();
}

echo "DONE";
?>

Ao rodar esse PHP, as URLs originais são restauradas.

3 – Redirecionando o “.html”

Para não ter que deixar os endereços terminando em “.html”, como faz o Blogger, ainda é preciso mais uma etapa: redirecionar “dominio/ano/mês/titulo.html” para “dominio/ano/mês/titulo/”, o padrão WP.

Uma linha no .htaccess resolve:

RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)\.html$ $1/$2/$3/ [QSA,R=301,L]

O .htaccess inteiro fica assim:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)\.html$ $1/$2/$3/ [QSA,R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
<IfModule mod_rewrite.c>

E pronto! Todas as URLs antigas dos posts agora funcionam no novo site.

O motivo de o Blogger deixar os endereços terminando em “.html” (artificialmente, já que não se tratam de páginas estáticas) é discutível. Uns dizem que se deve a algum benefício em termos de SEO; outros que isso é mero resquício operacional de algo que já não é necessário. Como se trata de uma empresa Google, talvez valha a pena analisar melhor a questão.

Eu prefiro sem o “.html” e nunca notei nenhum prejuízo por isso. Mas quem quiser deixar o “.html” basta pular a etapa 3 e configurar uma estrutura personalizada nas configurações de permalinks do WP.

Tags: , ,

3 Comentários

  1. Mauricio
    Escrito em: 4 de junho de 2010, às 12:37 | Permalink

    Olá, gostaria de saber o seguinte já tenho um domínio próprio no blogger pretendo migrar para o Wordpress, na hora de redirecionar como faço se será o mesmo endereço nas duas plataformas?

  2. Escrito em: 4 de junho de 2010, às 21:38 | Permalink

    olá Mauricio, não entendi sua dúvida.

  3. Escrito em: 31 de julho de 2010, às 2:44 | Permalink

    Suuuper obrigado pelas dicas!

    Segui vários tutoriais e nunca conseguia fazer os links “se acertarem” hehehe, agora deu certinho :)

    Valeuu

Comente

Seu email nunca será publicado ou distribuído.

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>