Está encontrando o aviso “paralelizar downloads entre hostnames” no Pingdom, GTmetrix ou Google PageSpeed ​​Insights? Isso acontece porque os navegadores têm um limite para o número de conexões simultâneas que podem estabelecer em um host. Isso se deve principalmente ao HTTP/1.1, no qual os navegadores abrem em média 6 conexões por hostname. Esse aviso é encontrado habitualmente em websites com um grande número de solicitações. No passado, a única forma de contornar essa limitação era implementar o que eles chamam de sharding (particionamento) de domínio. 

parallelize downloads across hostnames
Nota: Se estiver executando HTTPS com um provedor que tem suporte para HTTP/2, esse aviso normalmente já pode ser ignorado com segurança. Com os múltiplos recursos do HTTP/2, é possível carregar vários recursos em paralelo em uma única conexão.

Dependendo da ferramenta ou do relatório de software, o aviso poderá surgir de duas formas diferentes: 

  • “paralelizar downloads entre hostnames” 
  • “aumentar a paralelização de downloads ao distribuir essas solicitações por vários hostnames” 
pingdom parallelize downloads across hostnames

Se você ainda estiver correndo o HTTP, sem ter migrado para o HTTP/2, siga o tutorial abaixo para implementar o particionamento de domínio. Frisamos novamente que a maioria dessas técnicas é atualmente considerada obsoleta. Mais de 77% dos navegadores já suportam HTTP/2 ao executar HTTPS e o mesmo se aplica a muitos provedores de hospedagem de CDN e Web, incluindo Kinsta. É também importante salientar que o Pingdom não suporta ainda HTTP/2, já que utiliza uma versão mais antiga do Chrome. 

Corrigir o Aviso “Paralelizar Downloads entre Hostnames”

O particionamento de domínio é um termo aplicado ao ato de difundir seus ativos por vários subdomínios. Ao fazer isso, poderá multiplicar o número de solicitações simultâneas. Usar o particionamento de domínio oferece também a capacidade de carregar conteúdo em subdomínios sem cookies. Contudo, também é importante frisar que existem algumas desvantagens. Ao acrescentar subdomínios, estará adicionando mais solicitações de DNS, o que aumenta o tempo de resolução e põe em causa muitos dos seus benefícios do cache. Cumpra os passos abaixo para configurar. 

1. Configurar Subdomínios Adicionais

Primeiramente, deve criar subdomínios adicionais e/ou registros CNAME para os difundir pela solicitação dos seus recursos estáticos. Pode fazer isso no seu registrador de DNS ou, se for um cliente da Kinsta, pode também editar seus registros de DNS no painel MyKinsta. Normalmente, não recomendamos mais do que 4. Deverá apontar seus CNAME adicionais para o seu diretório /wp-content. Eis um exemplo de configuração: 

domain.com
static1.domain.com
static2.domain.com
static3.domain.com

2   Editar a Configuração WordPress

Depois pode configurar o WordPress para paralelizar os downloads entre subdomínios. Só precisa de adicionar o seguinte código ao arquivo functions.php do seu tema WordPress (fonte: GitHub). E substitua os valores $subdomains com seus subdomínios. Todos os subdomínios/hostnames PRECISAM ter a mesma estrutura/caminho. 

function parallelize_hostnames($url, $id) {
 $hostname = par_get_hostname($url); //call supplemental function
 $url = str_replace(parse_url(get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
 return $url;
}
function par_get_hostname($name) {
 $subdomains = array('media1.mydomain.com','media2.mydomain.com'); //add your subdomains here, as many as you want.
 $host = abs(crc32(basename($name)) % count($subdomains));
 $hostname = $subdomains[$host];
 return $hostname;
}
add_filter('wp_get_url', 'parallelize_hostnames', 10, 2);

Essa técnica também pode ser usada com provedores de CDN como o KeyCDN, MaxCDN e o CloudFlare a fim de corrigir o aviso de “paralelizar downloads entre hostnames”. Contudo, quase todos os provedores de CDN já suportam HTTP/2, no qual não se recomenda fazer o particionamento de domínio. E também é possível associar os recursos de um CDN via HTTPS, mesmo que ainda não tenha migrado seu site WordPress para HTTPS. 

9
Shares