29/01/2024
Na internet, sites recebem visitas de humanos e robôs. Os robôs são programas que realizam tarefas automaticamente. Alguns, como os de mecanismos de busca, ajudam a promover seu site.
Porém, existem robôs indesejados. Eles podem consumir recursos do site sem trazer vantagens, ou até serem maliciosos, buscando falhas de segurança. Alguns desses robôs catalogam o conteúdo para fins próprios, sem aumentar a visibilidade do seu site.
Neste tutorial, exploraremos diferentes maneiras de identificar e bloquear esses robôs indesejáveis.
O arquivo robots.txt gerencia o acesso dos robôs ao seu site. Ele define quais partes do site podem ou não ser acessadas por eles.
Veja como bloquear robôs como MJ12Bot, AhrefsBot, SEMrushBot, Bytespider, DotBot e MauiBot. Esses robôs consomem muitos recursos ao indexar sites, sem trazer benefícios como aumento de visitas ou visibilidade online.
Copie e cole o seguinte conteúdo no arquivo robots.txt
na raiz do seu site:
User-agent: MJ12Bot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: SEMrushBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: DotBot
Disallow: /
User-agent: MauiBot
Disallow: /
User-agent: *
Disallow:
A última linha do arquivo permite que outros robôs, não listados acima, acessem o site. Isso assegura que robôs de busca importantes, como Googlebot e Bingbot, possam indexar seu site.
É importante lembrar que o robots.txt serve como uma diretriz e não como uma proteção completa. Robôs podem ignorá-lo. Por isso, monitorar o tráfego do site e ajustar as configurações quando necessário é uma boa prática.
Para limitar o acesso de certos robôs ao seu site, você pode usar um arquivo chamado .htaccess
no servidor. Este arquivo permite bloquear robôs baseado no nome deles, que é identificado como 'User-Agent'.
Como exemplo, para bloquear robôs como MJ12Bot, AhrefsBot, SEMrushBot, Bytespider, DotBot e MauiBot, você adicionaria estas linhas no arquivo .htaccess do seu site:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} AhrefsBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SEMrushBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Bytespider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} DotBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} MauiBot [NC]
RewriteRule .* - [F,L]
Se o seu site está em um servidor Windows, você usaria um arquivo chamado web.config
para fazer algo similar. Aqui está um exemplo de como configurar este arquivo:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="BlockBadBots" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="MJ12Bot" />
<add input="{HTTP_USER_AGENT}" pattern="AhrefsBot" />
<add input="{HTTP_USER_AGENT}" pattern="SEMrushBot" />
<add input="{HTTP_USER_AGENT}" pattern="Bytespider" />
<add input="{HTTP_USER_AGENT}" pattern="DotBot" />
<add input="{HTTP_USER_AGENT}" pattern="MauiBot" />
</conditions>
<action type="CustomResponse" statusCode="403" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Essas configurações farão com que o servidor negue o acesso (mostrando um erro 403) a esses robôs específicos.
Às vezes, robôs tentam se disfarçar como navegadores comuns, como Chrome ou Firefox, para acessar seu site. Quando isso acontece, você pode bloqueá-los usando o endereço IP deles.
Para bloquear estes robôs no servidor Apache, você adiciona regras no arquivo .htaccess
. Veja um exemplo:
Require all granted
Require not ip 123.123.123.123
Require not ip 234.234.234
No exemplo acima, estamos impedindo o acesso do IP 123.123.123.123
e de todos os IPs que começam com 234.234.234
.
Em servidores Windows, o bloqueio de IPs é feito no arquivo web.config
:
<configuration>
<system.webServer>
<security>
<ipSecurity allowUnlisted="true">
<!-- Bloqueia um IP específico -->
<add ipAddress="123.123.123.123" allowed="false"/>
<!-- Bloqueia uma faixa de IPs -->
<add ipAddress="234.234.234.0" subnetMask="255.255.255.0" allowed="false"/>
</ipSecurity>
</security>
</system.webServer>
</configuration>
Para saber quais IPs bloquear, verifique os arquivos de log do seu site. Eles mostram os IPs que visitam seu site frequentemente ou de forma suspeita. Em hospedagens na MCO2, você pode encontrar esses logs no diretório /logs/
via FTP.
Uma maneira prática de usar JavaScript para esconder links é em um sistema de filtro de pesquisa. Imagine uma página com vários artigos e opções para filtrar por categoria. Em vez de usar links comuns, podemos usar JavaScript para mudar a página, mantendo os links escondidos dos robôs.
Veja um exemplo simples:
function filtrarCategoria(categoria) {
var urlBase = 'https://www.seusite.com/artigos';
window.location.href = urlBase + '?categoria=' + categoria;
}
Nesse código, a função filtrarCategoria
muda a página para mostrar artigos da categoria escolhida.
No HTML, usamos botões que ativam essa função, em vez de links normais:
<button onclick="filtrarCategoria('tecnologia')">Tecnologia</button>
<button onclick="filtrarCategoria('esportes')">Esportes</button>
Quando alguém clica em um botão, a função JavaScript é usada e a pessoa vai para a página com os artigos da categoria selecionada. Robôs que não entendem JavaScript não vão conseguir seguir esses links, pois eles não aparecem como links comuns no código HTML.
Este exemplo ilustra como direcionar os visitantes do seu site para diferentes seções, utilizando JavaScript, enquanto mantém links estratégicos ocultos de robôs indesejados.
É importante que seu site utilize link canônico e marque os links não indexáveis com rel="nofollow"
. Para entender melhor, confira nosso artigo Como usar URLs canônicas para melhorar a indexação do site.
Além disso, veja como proteger seus formulários contra robôs com CAPTCHA em nosso tutorial sobre implementação de CAPTCHA em formulários PHP.
Este tutorial mostrou como bloquear robôs indesejados usando o arquivo robots.txt, JavaScript e configurações de servidor. As técnicas apresentadas ajudam a proteger seu site, economizar recursos e melhorar a segurança.