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 como reduzir DNS Lookup
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.
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 portanto consome apenas 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. 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.