A versão que é entregue aos usuários quando é feito o download do WordPress, ou quando ele é instalado através de um script como o Softaculous, é um pacote que por si só tem alguma segurança. No entanto, com o decorrer do tempo, com a instalação de templates, alterações de código, entre outros processos que podem ser feitos pelos desenvolvedores e/ou usuários, a segurança da instalação WordPress torna-se cada vez mais importante, nem que seja pelo simples fato de não querer perder o trabalho que já fez. Assim, você fará tudo o que puder e estiver ao seu alcance para manter a instalação do WordPress segura. Para isso, você pode adotar algumas medidas simples que irão acrescentar no quesito segurança e otimizar a sua instalação.
Muitos dos processos que podem tornar uma instalação WordPress mais rápida são os mesmos processos que podem tornar qualquer website mais rápido, como a redução dos pedidos HTTP e otimização de imagens. No artigo Estratégias para otimizar a velocidade de carregamento do WordPress, eu mostro alguns métodos que o ajudarão a otimizar a sua instalação WordPress.
1. Eliminar conteúdo duplicado
Por defeito, as capacidades do WordPress lidar com o conteúdo duplicado não são muito famosas. Mas felizmente não é difícil de alterar esta situação, podendo inclusive utilizar vários métodos para fazê-lo, tirando proveito de algumas ferramentas e técnicas disponíveis para tal, como: tags meta nofollow, tags meta noindex, diretivas para os robots, tags canonicas e o uso de excertos para os artigos. Agora, o que é que cada um destes itens pode fazer e como é que ajuda a eliminar o conteúdo duplicado?
As tags meta nofollow e no index são tags que estão localizadas no arquivo header.php, dentro da seção <head>. Nessa seção, poderá encontrar algo semelhante a isto:
<meta name="googlebot" content="index,archive,follow" /> <meta name="msnbot" content="all,index,follow" /> <meta name="robots" content="all,index,follow" />
Este trecho de código informa os motores de busca (neste caso informa especificamente o Google, Bing e outros que sejam do mesmo método) que a página inteira deve ser indexada, seguida e arquivada. Isto é ótimo para páginas de artigos únicos, como por exemplo a página “Sobre”. No entanto, estes parâmetros podem ser alterados ao seu gosto, e caso pretenda controlar o conteúdo duplicado, poderá atribuir noindex e noarchive, seguindo o exemplo abaixo:
<meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" />
Assim informamos aos motores de busca que não queremos que a página seja incluída nos resultado de pesquisa, ao mesmo tempo que informamos que poderá scanear a página e seguir os links que estão nela. Isto faz com que a página não apareça nos resultados de pesquisa efetuadas nos motores de busca como conteúdo duplicado.
Por outro lado, podemos ainda informar aos motores de busca que não queremos que uma determinada página não seja nem indexada, nem arquivada, nem que siga nenhum dos links contidos na mesma. Para isso, basta seguir o exemplo abaixo:
<meta name="googlebot" content="noindex,noarchive,nofollow" /> <meta name="robots" content="noindex,nofollow" /> <meta name="msnbot" content="noindex,nofollow" />
Agora que introduzimos e explicamos a utilização das tags, qual é o melhor método para fazer o controlo de conteúdo duplicado? Ao utilizar um conjunto estratégico de tags condicionais no arquivo header.php do seu template, é possível encaminhar o motor de busca para todos os tipos de páginas, permitindo-lhe controlar ao máximo a indexação e a pesquisa dos motores de busca dentro do seu site. Para isso, utilizamos o seguinte código:
<?php if(is_home() && (!$paged || $paged == 1) || is_single()) { ?> <meta name="googlebot" content="index,archive,follow,noodp" /> <meta name="robots" content="all,index,follow" /> <meta name="msnbot" content="all,index,follow" /> <?php } else { ?> <meta name="googlebot" content="noindex,noarchive,follow,noodp" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Este trecho de código irá fazer com que, se a página atual for a página inicial ou uma página de artigo único, então os motores de busca poderão indexar e seguir o conteúdo da página. Caso contrário, será uma página de categorias ou tags e sendo assim, é uma página de conteúdo duplicado.
Caso você pretenda manter as páginas de tags e categorias nos resultado de pesquisa, basta alterar a primeira linha do trecho de código acima para o seguinte:
<?php if(is_home() && (!$paged || $paged == 1) || is_category() || is_tag() || is_single()) { ?>
Caso você pretenda fazer uma abordagem mais intrínseca e tirar partido das tags existentes, deixamos-lhe aqui a lista:
-
is_home()
-
is_admin()
-
is_date()
-
is_404()
-
is_category()
-
is_page()
-
is_author()
-
is_search()
-
is_paged()
-
is_tag()
Caso pretenda determinar especificamente uma página de arquivo baseada em data, poderá utilizar o is_archive().
2. Não indexar um artigo específico
Se por alguma razão você pretende que um determinado artigo não seja indexado pelos motores de busca, poderá utilizar plugins que irão sobrecarregar a sua instalação WordPress (uma alternativa é tirar partido de um pequeno trecho de código que resolve de forma rápida e fácil o seu problema). A única coisa que terá de alterar será o ID do artigo, e inserir o seguinte código dentro da tag <head> no arquivo header.php do seu template:
<?php if ($post->ID == 100) { echo '<meta name="robots" content="noindex,noarchive">'; }
Onde tem o número 100, altere-o para o ID do artigo que você não quer indexar nem arquivar, e terá o problema resolvido em pouco tempo e de forma rápida.
3. Excluir páginas específicas dos motores de busca
Se por alguma razão você pretende que uma determinada página não seja indexada pelos motores de busca, pode utilizar plugins que irão sobrecarregar a sua instalação WordPress, ou tirar partido de um pequeno trecho de código que resolve de forma rápida e fácil o seu problema. A única coisa que terá de alterar será o ID da página, e inserir o código específico para cada uma das situações dentro da tag <head> no arquivo header.php do seu template:
Artigo:
<?php if(is_single('100')) {?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Página:
<?php if(is_page('100')) { ?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Categoria:
<?php if(is_category('100')) { ?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Tag:
<?php if(is_tag('nome_da_tag')) { ?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Várias tags:
<?php if(is_tag(array('nome_da_tag1','nome_da_tag2','nome_da_tag3'))) { ?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
Artigo com determinadas tags:
<?php if(has_tag(array('nome_da_tag1','nome_da_tag2','nome_da_tag3'))) { ?> <meta name="googlebot" content="noindex,noarchive,follow" /> <meta name="robots" content="noindex,follow" /> <meta name="msnbot" content="noindex,follow" /> <?php } ?>
4. Prevenir conteúdo duplicado por comentários paginados
Desde a versão 2.7 do WordPress que os comentários podem ser paginados, determinando que um X número de comentários apareça em cada página. Se você utiliza WordPress com esta funcionalidade, poderá ocorrer de você ter conteúdo duplicado, pois para cada página de comentários, você tem o mesmo conteúdo repetido. Para resolver esta questão, terá de inserir um pequeno trecho de código no arquivo functions.php presente na pasta do seu template:
function noDuplicateContentforComments() { global $cpage, $post; if($cpage > 1) { echo "n".'<link rel="canonical" href="'.get_permalink($post->ID).'" />'."n"; } } add_action('wp_head', 'noDuplicateContentforComments');
O que este código faz é criar links canônicos para todos os comentários paginados, e assim os motores de busca irão utilizar esta informação de forma a garantir que o permalink original do artigo seja usado como o artigo atual.
Recomendamos também a utilização do plugin SEO para WordPress do Yoast.
Abraços e até a próxima!