O Que São e Como Reduzir DNS Lookups

O Que São e Como Reduzir DNS Lookups

DNS é um elemento que muitas vezes acaba passando despercebido pelos webmasters. Contudo, se bem otimizado, ele pode contribuir enormemente para a velocidade do site e o desempenho em geral. Por isso que, hoje, iremos falar sobre o que é e como reduzir DNS Lookup (ou consulta DNS). Assim como explicar porque isso beneficia o seu site.

O Que é DNS Lookup

De maneira fundamental, DNS é a espinha dorsal da internet. Assim como um endereço ajuda você a evitar ter que decorar as coordenadas exatas de onde seu amigo mora, o nome de domínio nos livra de ter que memorizar endereços de IP.

Todo registro de domínio é mapeado para um endereço de IP. Por exemplo, quando você digita google.com na barra de endereços do seu navegador, sua provedora de internet vai requisitar os nameservers associados com aquele domínio. Sem o DNS, você teria que digitar 216.58.212.110 toda vez que quisesse acessar aquele site.

Esse processo de traduzir e encontrar qual IP pertence a qual website é chamado de DNS Lookup.

Portanto, antes que você possa visualizar e baixar todos os recursos com o seu navegador, uma consulta de DNS deve ser executada para cada domínio, que então providencia as informações procuradas.

Contudo, a consulta não precisa ser extraída de cada recurso. Por exemplo, quando você faz as seguintes solicitações HTTP:

  • http://hostinger-dev-2.xyz
  • http://hostinger-dev-2.xyz/wp-content/themes/veggie-lite/style.css
  • http://hostinger-dev-2.xyz/wp-content/plugins/mailchimp-for-wp/assets/js/forms-api.min.js
  • http://platform.linkedin.com/in.js
  • http://platform.twitter.com/widgets.js

Mesmo que no exemplo você tenha feito cinco requisições, existem apenas três domínios únicos no total. Em outras palavras, o seu navegador realiza apenas três DNS Lookups:

  • http://hostinger-dev-2.xyz
  • http://platform.linkedin.com
  • http://platform.twitter.com

Em geral, quando você está visitando uma página da internet, o navegador vai solicitar todos os recursos com consultas de DNS. Ele deve esperar todos os processos serem completados antes que o browser possa carregar qualquer coisa.

Isso pode levar algum tempo, especialmente numa página que exige muitos DNS lookups. Esse evento pode eventualmente causar tempos de carregamento mais lentos naquele website.

Por Que Isso Importa?

Ter um site que carrega rápido não apenas proporciona uma melhor experiência para os visitantes como também pode afetar o seu ranking de SEO.

O tempo de carregamento da página desempenha um papel significativo em reter os visitantes de um website e reduzir as bounce rates. Isso porque 53% dos usuários irão abandonar um site se ele demorar mais do que 3 segundos para carregar.

De acordo com um estudo da Google, cerca de 45% dos visitantes relatam nunca voltar para o mesmo site se eles encontram uma experiência ruim. O tempo de carregamento do website contribui significativamente como um dos fatores negativos.

A Google também usa a velocidade da página como um fator de ranqueamento. Velocidades de página mais lentas podem causar um impacto adicional no processos de crawling e na indexação. É por isso que ter um site que carrega rapidamente é mais que importante para os webmasters serem bem sucedidos na internet.

Para descobrir como seu site está executando consultas de DNS, você pode medir o seu placar usando o Web Page Test. Aqui está um exemplo que nós pegamos do site Longreads.

resultado da página longreads no teste do webpagetest

Como Reduzir o DNS Lookup de Maneira Fácil

Agora você já aprendeu qual é a função das consultas de DNS. Tudo que falta é reduzir os DNS Lookups para melhorar o desempenho do seu website! Então vem com a gente que é bem fácil. Confere aí.

1. Use um Serviço de DNS Mais Rápido

Assim como acontece com serviços de hospedagem de site, há aqueles provedores de DNS confiáveis e aqueles que são menos conceituados. Usar um que seja bom pode reduzir significativamente as suas consultas de DNS. Entre os serviços de DNS mais populares estão Cloudflare, WordPress.com, Edgecast, DNSMadeEasy e DYN.

Os provedores de DNS operam de maneira bastante parecida com um CDN — eles possuem múltiplos pontos de presença (POPs ou Point-of-Presence) através de todo o planeta. Grandes provedores, como o Cloudflare, costumam ter uma grande infraestrutura para entregar DNS baseado no local do usuário com baixa latência.

Você também pode checar provedores de DNS para a sua localidade preferida. Com isso, você poderá ter a melhor e mais otimizada velocidade ao usar ferramentas como DNSPerf e DNS Speed Test.

2. Otimize o Cache do DNS

Graças ao cache de DNS, você não precisa se preocupar com as consultas acontecendo em cada página diferente de seu site. Isso acontece porque o mesmo asset não precisa ser baixado por uma segunda vez, o que é possível por causa do processo de caching.

O caching de DNS funciona de maneira muito parecida com o sistema de cache de um site do WordPress. Com esse método, o DNS é obtido através do próprio cache até ele expirar. Você também pode configurar a duração do cache de DNS através do que nós conhecemos como o valor time-to-live (TTL).

É possível alterar o seu valor TTL com um registrar de domínio ou com provedores de DNS third-party para aumentar o tempo de validade do cache e, por sua vez, reduzir os lookups de DNS.

Se você está na Hostinger, pode fazer isso ao modificar o valor no seu Editor de Zona DNS.

O Editor de Zona DNS. Os registros do servidor de nomes são mostrados

Abaixo estão os valores TTL mais comuns:

  • 1800 segundos = 30 minutos
  • 3600 segundos = 1 horas
  • 14400 segundos = 4 horas
  • 43200 segundos = 12 horas
  • 86400 segundos = 24 horas

3. Otimize o Prefetch do DNS

Outra maneira de reduzir os DNS lookups é minimizando a atividade de fundo enquanto os visitantes estão navegando pelo seu site. Esse método é conhecido como prefetching de DNS.

O prefetching permite que o navegador busque os assets necessários para exibir o site num tempo futuro. Isso quer dizer que o browser irá começar a baixar outros recursos uma vez que o tempo ocioso tiver passado e passar a armazenar esses elementos no cache.

Quando os visitantes clicam num link em particular que foi buscado anteriormente, isso permite uma transferência de dados mais rápida, deixando que o conteúdo seja acessado de maneira instantânea.

Você pode adicionar o prefetch de DNS a uma URL específica ao implementar a tag rel= no atributo do link. Se você está usando WordPress, pode adicionar a seguinte linha para o cabeçalho do seu site:

<!-- Prefetch DNS for external assets -->
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//www.google-analytics.com">
<link rel="dns-prefetch" href="//www.keycdn.com">

Mais importante do que isso, o prefetching de DNS também é suportado pela maioria dos navegadores modernos.

4. Habilite o Keep-Alive

Você pode reduzir as consultas DNS ao habilitar o Keep-Alive. Esse é um canal de comunicação sempre ativo entre o servidor e o navegador, ajudando a carregar rapidamente mais arquivos de asset.

Por exemplo, se você tem um asset em n1.dominiodeasset.com e cinco recursos em n2.dominiodeasset.com, isso daria um total de seis pedidos de DNS. Com o Keep-Alive, esses recursos seriam carregados como apenas duas solicitações.

Também vale mencionar que essa transmissão ativa usa apenas uma pequena mensagem, o que consome uma pequena largura de banda. Você pode habilitar usa função em servidores Apache e Nginx.

Apache

Para habilitar o Keep-Alive no servidor Apache, adicione o seguinte código para seu arquivo .htaccess:

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

Nginx

Para servidores Nginx, procure o core do módulo HTTP (ngx_http_core_module) e busque uma linha que seja similar a keep alive_disable. Você pode mudá-la para deixá-la como no exemplo abaixo:

keepalive_disable none;

5. Substitua o CNAME por registros ANAME

Registros CNAME produzem uma consulta adicional que pode criar um pequeno atraso na determinação do IP. Ter poucos CNAMEs costuma ser algo normal. Contudo, se o seu website tiver múltiplos registros CNAME, você pode considerar removê-los de seu registro DNS para reduzir as consultas de DNS.

Como uma alternativa, você pode usar registros ANAME. Eles compartilham as mesmas funcionalidades que o CNAME, mas a nível de raiz, o que se traduz numa determinação de IP mais veloz.

Por exemplo, se você tem uma configuração para www.dominio.com, o CNAME costuma ter que determinar o hostname primeiro e então o endereço de IP depois. Isso requer duas diferentes séries de solicitações.

ANSWER SECTION:

www.dominio.com. 3599 IN CNAME dominio.com.

dominio.com. 3599 IN A 40.71.11.131

Por outro lado, o registro ANAME ajuda você a pular essas requisições e irá retornar a seguinte resposta:

ANSWER SECTION


www.domain.com. 3599 IN A 40.71.11.131

Se você usa o Cloudflare, ele também proporciona um recurso conhecido como CNAME flattening, que tem uma função similar ao uso de registros ANAME.

6. Adie a Análise do JavaScript

Esse método permite que você carregue completamente todo o conteúdo do site antes de carregar o JavaScript, o que significa que os DNS Lookups não serão chamados imediatamente. Isso pode aumentar a velocidade de carregamento do seu website e, por sua vez, oferecer uma melhor experiência para os visitantes.

No WordPress, você pode usar um plugin como o Asycn JavaScript para fazer o trabalho pesado para você. Mas lembre-se, você também precisa listar todos os scripts que quer excluir da análise.

Para uma explicação mais detalhada, nós também falamos sobre como adiar o JavaScript neste tutorial.

Conclusão

Pois é, nós cobrimos muita coisa nesse artigo, mas não se preocupe. Veja abaixo uma rápida recapitulação das maneiras para reduzir as consultas de DNS:

  • Use um Serviço de DNS Rápido — uma maneira garantida de ter melhores DNS lookups, já que os provedores vão tomar conta dos elementos essenciais.
  • Otimize o Cache do DNS — outra ótima maneira é realizar o caching do seu DNS. Isso funciona da mesma maneira que o cache no WordPress.
  • Otimize o Prefetch do DNS — você também pode buscar o DNS, permitindo que se entregue uma resposta rápida. Todos os principais navegadores também suportam esse método.
  • Habilite o Keep-Alive — esse método permite que você mantenha um canal duplo de comunicação ativo entre o navegador e o servidor. Ele também consome pouquíssima largura de banda.
  • Substitua o CNAME por Registros ANAME — você também pode substituir os registros CNAME por registros ANAME, que são mais efetivos.
  • Adie a Análise do JavaScript — finalmente, você pode adiar o JavaScript para fazer com que ele carregue depois do conteúdo do site.

E aí? Você tem alguma experiência com otimização de consultas de DNS? Não se esqueça de compartilhá-la com a gente na caixa de comentários abaixo!

Author
O autor

Carlos E.

Carlos Estrella é formado em jornalismo pela UFSC e tem as funções de redator, tradutor e SEO na Hostinger Brasil. Já trabalhou com jornalismo de games e tecnologia e hoje aplica essa experiência escrevendo posts e tutoriais no blog da Hostinger. Suas paixões incluem games, dar rolês com a namorada e amigos e ler artigos aleatórios da Wikipédia de madrugada.