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.


3 Comentários
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?
olá Mauricio, não entendi sua dúvida.
Suuuper obrigado pelas dicas!
Segui vários tutoriais e nunca conseguia fazer os links “se acertarem” hehehe, agora deu certinho
Valeuu