Para evitar requisições de cookies HTTP desnecessárias, você deve usar arquivos estáticos sem enviar cookies no WordPress, ou seja, você deve servir o conteúdo estático do seu site WordPress com domínios que não enviam cookies para o servidor.
Mas, afinal…
O que são cookies HTTP?
Os cookies HTTP são pequenos pedaços de dados que são enviados de um site e armazenados no seu navegador. Enquanto um usuário está visualizando um site que usa cookies, os cookies coletam dados referentes à atividade do site, como preferências, itens do carrinho de compras, quais páginas você visitou etc. Os cookies são muito valiosos para muitos sites, pois facilitam uma melhor experiência do usuário e são essenciais para executar determinadas funções, como determinar se um cliente está ou não conectado e com qual conta.
Cada vez que o usuário navega no mesmo site, o navegador envia o cookie para o servidor do site, fornecendo as informações definidas na última solicitação. Existem três usos principais para cookies, incluindo:
- Gerenciamento de sessão
- Personalização
- Rastreamento
Existem também vários tipos de cookies disponíveis e podem ser usados em diferentes cenários.
Por que usar domínios sem cookies?
Embora os cookies sejam muito úteis em alguns casos, em outros casos – como a entrega de conteúdo estático, eles podem prejudicar o desempenho. Quando um navegador faz uma solicitação para um arquivo estático, como uma imagem ou arquivo CSS, não é necessário que ele também envie um cookie para o servidor. Isso cria apenas tráfego de rede adicional e, como os arquivos são estáticos (eles não mudam), o servidor não usa o cookie adicionado.
Ao usar domínios sem cookies, você pode separar o conteúdo que não requer cookies do conteúdo que requer. Isso ajuda a melhorar o desempenho do seu site, eliminando o tráfego de rede desnecessário.
Como usar o WordPress sem domínios de cookie
Se você definir seus cookies em um domínio de nível superior (por exemplo, seusite.com
), todos os seus subdomínios (por exemplo, static.seusite.com
) também incluirão os cookies configurados. Portanto, nesse caso, é necessário que você use um nome de domínio separado para fornecer seu conteúdo estático, se desejar usar domínios sem cookies. No entanto, se você definir seus cookies em um subdomínio www
, como www.seusite.com
, poderá criar outro subdomínio (por exemplo, static.seusite.com
) para hospedar todos os seus arquivos estáticos, o que não resultará mais no envio de cookies.
As etapas a seguir descrevem como usar domínios sem cookies no WordPress:
- 1) Crie um subdomínio, como
static.seusite.com
, de onde você entregará todos os seus arquivos estáticos. - 2) Aponte seu novo subdomínio para o diretório
/wp-content
da sua instalação do WordPress. Para usuários do cPanel, você precisará atualizar o campo raiz do documento depublic_html/static
parapublic_html/wp-content
. - 3) Edite seu arquivo
wp-config.php
para refletir o seguinte:
- 4) Execute o seguinte comando no seu banco de dados SQL, isso garantirá que todos os URLs de postagem sejam direcionados para o novo subdomínio:
UPDATE wp_posts SET post_content = REPLACE(post_content,'www.yourwebsite.com/wp-content/','static.yourwebsite.com/')
Agora que seu domínio de cookie e subdomínio de conteúdo estático estão definidos, você pode começar a fornecer conteúdo estático sem que o servidor configure um cookie desnecessário para ativos estáticos.
Problemas comuns:
Corrigir o redirecionamento de links do WordPress
Se vc usar o endereço static.seusite.com apontado para a mesma pasta da sua instalação WordPress, você vai sofrer um redirecionamento para seusite.com. Você pode adicionar o seguinte código no wp-config.php para permitir que mais de um domínio consiga acessar uma mesma instalação WordPress:
define(‘WP_SITEURL’, ‘https://’.$_SERVER[‘HTTP_HOST’]);
define(‘WP_HOME’, ‘https://’.$_SERVER[‘HTTP_HOST’]);
Corrigir problemas com o CORS (Access-Control-Allow-Origin)
Se as fontes do seu site não forem carregadas pelo navegador, você precisa permitir o controle de acesso para acessar qualquer URL, utilizando a seguinte configuração no Apache:
Header set Access-Control-Allow-Origin “*”