Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🛡 Como desativar o hotlinking no WordPress

🛡 Como desativar o hotlinking no WordPress

Imagine entrar no painel de alojamento e descobrir que o tráfego mensal duplicou. Os visitantes não aumentaram, as vendas não cresceram, mas a fatura do servidor chegou com o dobro do valor habitual. Parece-lhe familiar? Este é um cenário clássico de hotlinking.

Alguém incorporou o URL da sua imagem no site dele. A imagem é carregada do lado dele, mas é você quem paga o tráfego. Para projetos de notícias e conteúdo em WordPress, o hotlinking está entre os 5 principais drenos ocultos do orçamento de alojamento.

Abaixo estão sete métodos funcionais para impedir o roubo de imagens: desde configuração rápida no .htaccess até plugins e CDN. Cada método foi testado em versões atuais do WordPress e funciona sem modificações no núcleo.

💡 Visão geral rápida:

  • Como o hotlinking funciona, porque é perigoso e quanto tráfego está a perder sem se aperceber
  • Três métodos de bloqueio do lado do servidor:.htaccess (Apache/LiteSpeed), configuração NGINX e a ferramenta integrada do cPanel
  • Plugin All-In-One Security (AIOS): ativar a proteção de hotlinking com uma única caixa de verificação, mais firewall e proteção contra força bruta
  • Proteção de Hotlinking da Cloudflare: filtragem ao nível da CDN sem carregar o WordPress, plano gratuito
  • Desativar o clique direito: um plugin como barreira adicional contra a cópia casual de URLs de imagens
  • Encontrar imagens roubadas através do Google Images: uma auditoria de um minuto e três formas de lidar com os infratores

O que é o hotlinking e porque é perigoso

Hotlinking significa incorporar um URL direto para a sua imagem no site de outra pessoa. O navegador do visitante desse site vai buscar a imagem ao seu servidor, e não ao servidor do proprietário. Visualmente, a imagem é exibida normalmente, mas cada visualização consome a sua largura de banda e recursos de CPU.

Diagrama de hotlinking: site externo puxa imagens do seu servidor

O principal problema não é o «roubo» em si. A imagem permanece fisicamente no seu servidor e os direitos de autor não são formalmente violados. Mas cada visualização externa consome largura de banda que pagou ao fornecedor de alojamento. Para um site em alojamento partilhado barato com um limite de tráfego de 10 a 25 GB, uma publicação popular com uma imagem a espalhar-se por uma dúzia de plataformas pode esgotar a sua quota mensal em três dias.

A segunda ameaça é a carga de CPU. Com tráfego elevado no site infrator, o seu servidor lida com duas frentes: os seus visitantes e os deles. O resultado são tempos de carregamento mais lentos e a degradação das Core Web Vitals.

Como desativar o hotlinking no WordPress

Existem sete métodos, desde o lado do servidor até plugins. Escolha com base no seu nível de acesso: tem alojamento cPanel, qual o servidor web (Apache ou NGINX) e está disposto a editar ficheiros de configuração.

1. Bloqueio via ficheiro.htaccess

O ficheiro .htaccess é o principal gestor de configuração para Apache e LiteSpeed. Através dele, pode proibir o carregamento de imagens a partir de quaisquer domínios exceto o seu e os motores de busca. Desvantagem: este método não funciona em servidores NGINX.

Para aceder ao ficheiro, ligue-se ao servidor via FTP (por exemplo, através do FileZilla) ou abra o gestor de ficheiros no seu painel de alojamento. O ficheiro encontra-se na pasta raiz do site, ao lado do wp-config.php.

O ficheiro .htaccess na pasta raiz do site WordPress

Antes de qualquer edição no .htaccess, faça uma cópia de segurança. Um parêntese ou diretiva em falta e o site fica em baixo com um erro 500. Após editar, abra o site noutro separador e certifique-se de que está funcional.

Copie este bloco para o final do ficheiro, substituindo yourwebsite.com pelo seu domínio. As regras rejeitam pedidos de todos os referenciadores externos, permitindo motores de busca e redes sociais:

1RewriteEngine On
2RewriteCond %{HTTP_REFERER} !^$
3RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite\.com [NC]
4RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\.com [NC]
5RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing\.com [NC]
6RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?facebook\.com [NC]
7RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?twitter\.com [NC]
8RewriteRule \.(jpg|jpeg|png|gif|webp|avif|svg)$ - [F]

Eis o que acontece: RewriteCond verifica o referenciador, o endereço da página de onde veio o pedido. Se o referenciador estiver vazio (primeira linha), for o seu próprio domínio, Google, Bing, Facebook ou Twitter, o pedido é aceite. Tudo o resto recebe 403 Proibido. A última linha lista os formatos de ficheiro abrangidos pela proteção (formatos webp, avif e svg adicionados, relevantes para 2026).

Testar a regra é fácil: abra uma imagem do seu site via URL direto num novo separador. Deverá abrir. Depois crie um ficheiro HTML simples no seu computador local com <img src="URL-of-your-image"> e abra-o. A imagem não deverá carregar.

2. Plugin All-In-One Security (AIOS)

Se as configurações de servidor não são a sua praia, instale um plugin. O All-In-One Security (AIOS) (anteriormente All in One WP Security & Firewall) bloqueia hotlinking com uma única caixa de verificação. Como bónus, obtém uma firewall, proteção contra força bruta e verificação de vulnerabilidades.

Plugin All-In-One Security no WordPress.org com um milhão de instalações ativas

Após a instalação e ativação, vá a WP Security → Firewall → Prevent Hotlinks. Marque a caixa "Prevent Image Hotlinking" e guarde. O plugin escreve automaticamente as regras necessárias no .htaccess, pelo que não precisa de mexer manualmente no ficheiro.

A vantagem do AIOS é que não entra em conflito com outras regras do .htaccess e atualiza automaticamente a lista de referenciadores permitidos quando muda de domínios. A versão gratuita é suficiente para proteção de hotlink; a premium adiciona autenticação de dois fatores e bloqueio por país.

3. Cloudflare: proteção ao nível da CDN

A Cloudflare oferece Hotlink Protection no plano gratuito, e esta é a abordagem mais elegante porque o tráfego é bloqueado antes de chegar ao seu servidor.

No painel da Cloudflare: Security → Hotlink Protection → ative para On. É tudo. A Cloudflare começa a verificar o referenciador de cada pedido de imagem e bloqueia os externos.

A força deste método é que não sobrecarrega o WordPress nem arrisca partir o .htaccess. Todos os pedidos são filtrados nos servidores de borda da Cloudflare. Bónus: cache e compressão de imagem via Polish (compressão com perdas no plano gratuito, sem perdas no Pro) funcionam em simultâneo.

Se o seu site já usa Cloudflare, ativar o Hotlink Protection demora dez segundos. Caso contrário, o registo, alteração de DNS e configuração básica demoram cerca de uma hora. Para projetos que já estão na Cloudflare, este é o método número um.

Os fornecedores de alojamento que usam cPanel (SiteGround, Namecheap, A2 Hosting e dezenas de outros) têm uma ferramenta integrada de proteção de hotlink. Encontrá-la é simples: no painel do cPanel, procure por "Hotlink Protection" ou encontre o ícone na secção Security.

Ferramenta de Proteção de Hotlink no cPanel com definições de acesso

Passos para ativar:

  • Clique em Enable para abrir a página com a lista de domínios permitidos
  • No campo URLs to allow access, adicione o seu domínio (o cPanel preenche-o automaticamente) e subdomínios, se necessário
  • No campo Block direct access for the following extensions, estão listados os formatos de ficheiro sob proteção; mantenha a lista padrão ou adicione avif,webp
  • Allow direct requests: deixe vazio se não quiser conceder acesso direto a ficheiros específicos
  • Redirect request to: pode especificar um URL de imagem de marcador de posição que os ladrões verão em vez da sua imagem. Por exemplo, um banner de texto a dizer "Esta imagem foi roubada do site.pt". Ou deixe vazio, e o pedido recebe simplesmente um 403
  • Clique em Submit

Para desativar a proteção, use o botão Disable na mesma página.

5. Desativar o clique direito

Isto não é proteção de hotlinking no sentido estrito, mas sim uma barreira adicional. O plugin Prevent Content Theft (Disable Right Click) desativa o menu de contexto do navegador no seu site. Os visitantes não conseguem clicar em «Copiar URL da imagem» porque simplesmente não há forma de obter o endereço direto da imagem.

Página do plugin Prevent Content Theft no WordPress.org

O plugin bloqueia não só o clique direito, mas também os atalhos de teclado: Ctrl+C, Ctrl+U (ver código-fonte), Ctrl+Shift+I (ferramentas de programador). A versão premium acrescenta proteção contra o arrastar de imagens e a seleção de texto. Pode excluir páginas específicas ou perfis de utilizador (por exemplo, manter o clique direito para administradores).

Um aviso justo: este método não vai deter alguém que saiba abrir as DevTools através do menu do navegador ou ver o código-fonte da página. Mas bloqueia a grande maioria das cópias casuais, e é exatamente esse o público que rouba imagens com base no princípio «ver, clicar, colar».

Uma análise mais detalhada da proteção contra cópia, incluindo métodos CSS e soluções do lado do servidor, está disponível no nosso guia sobre como desativar a cópia e o clique direito em websites.

6. Bloqueio no NGINX

O NGINX não lê o .htaccess; toda a configuração reside em ficheiros do servidor (nginx.conf ou em ficheiros separados na pasta sites-available). Apenas o administrador do servidor tem acesso (VPS/servidor dedicado). Em alojamento partilhado com proxy NGINX, este método normalmente não está disponível.

Bloco de configuração NGINX para bloquear hotlinking

Adicione o seguinte dentro do bloco server { } do seu site:

1location ~* \.(gif|png|jpeg|jpg|svg|webp|avif)$ {
2 valid_referers none blocked ~\.google\. ~\.bing\. ~\.yahoo\. yourdomain.com ~\.yourdomain\.com;
3 if ($invalid_referer) {
4 return 403;
5 }
6}

A diretiva valid_referers lista quem é permitido: none (visitas diretas e downloads sem referrer), blocked (referrer ocultado pelo navegador ou proxy), motores de busca e o seu domínio com subdomínios. Tudo o resto recebe um 403.

Depois de alterar a configuração, verifique a sintaxe (nginx -t) e recarregue o servidor (nginx -s reload ou systemctl reload nginx). Um erro de configuração fará cair o site inteiro, por isso nunca aplique alterações sem verificar a sintaxe.

7. Bloqueio no Apache (configuração direta)

No Apache, pode ir além do .htaccess e escrever a proteção diretamente na configuração do virtual host (httpd.conf ou apache2.conf). A sintaxe é a mesma do .htaccess, mas as regras aplicam-se ao nível do servidor e não podem ser acidentalmente substituídas por um plugin ou atualização.

Exemplo de configuração Apache para bloquear hotlinking

Vantagens da configuração direta: as regras aplicam-se a todos os sites no servidor de uma só vez, são executadas mais rapidamente (o ficheiro de configuração é lido uma vez no arranque) e não podem ser acidentalmente eliminadas via FTP. A desvantagem é óbvia: precisa de acesso à configuração do servidor, algo que o alojamento barato não oferece.

Para a maioria dos utilizadores de WordPress, o método .htaccess (opção 1) é mais do que suficiente. A configuração direta no Apache faz sentido para administradores que gerem vários sites num único servidor.

Como encontrar imagens roubadas através do Google Imagens

Pode detetar o roubo de imagens através de sinais indiretos: crescimento inexplicado do tráfego com número de visitantes estável, diminuição da velocidade de carregamento. Mas existe um método direto: pesquisar através do Google.

Abra o Google Imagens e introduza:

1inurl:yourwebsite.com -site:yourwebsite.com

Substitua yourwebsite.com pelo seu domínio. O operador inurl: encontra todas as páginas que mencionam o seu URL, enquanto -site: exclui as páginas do seu próprio site. Nos resultados ficam apenas os sites externos que incorporaram links para o seu conteúdo.

Uma alternativa é a pesquisa inversa de imagens. Carregue uma imagem suspeita no Google Imagens (ícone da câmara na barra de pesquisa) e o Google mostra todas as páginas onde essa imagem aparece. Este método é mais lento, mas mais preciso: vê os URLs específicos dos infratores.

Encontrou um ladrão? Três opções: um pedido educado para remover a imagem (raramente funciona), substituir a imagem roubada no seu lado por um placeholder com o seu logótipo e link (funciona de forma fiável, o ladrão exibe a sua publicidade) ou apresentar uma queixa DMCA ao fornecedor de alojamento do infrator.

Este vídeo de 8 minutos demonstra o processo de configuração da proteção de hotlink via AIOS e .htaccess num site WordPress ativo. O autor acompanha desde o diagnóstico até à verificação do resultado e explica quais os referenciadores que devem ser colocados na lista de permissões.

⁉️🤔 Perguntas frequentes

O hotlinking prejudica o SEO?

Não diretamente. O Google não penaliza sites por terem as suas imagens roubadas. Indiretamente, sim: se o hotlinking sobrecarregar o servidor e os tempos de carregamento das páginas aumentarem, as classificações descem porque o Core Web Vitals é um fator de classificação oficial. Para o servidor, cada visualização externa da imagem é indistinguível do seu próprio tráfego.

Posso bloquear o hotlinking apenas para imagens específicas?

Sim. Nas regras do .htaccess e do NGINX, pode especificar uma pasta ou ficheiro específico em vez de um wildcard para todas as imagens. Por exemplo, RewriteRule ^wp-content/uploads/premium/.*\.(jpg|png)$ - [F] protege apenas a pasta premium. Os plugins normalmente não oferecem esta flexibilidade: é tudo ou nada.

Uma marca de água ajuda contra o hotlinking?

Uma marca de água não impede tecnicamente o hotlinking; apenas marca a autoria. Se uma imagem for incorporada via URL direto, a marca de água ficará visível no site externo, o que é, pelo menos, alguma publicidade. Mas continua a pagar pelo tráfego. Combinar abordagens é melhor: marca de água como proteção visual mais .htaccess ou CDN como proteção técnica.

E se o meu alojamento não fornecer acesso ao.htaccess e não houver cPanel?

Configure o Cloudflare no plano gratuito e ative o Hotlink Protection. O Cloudflare funciona sobre qualquer alojamento, não requer acesso às configurações do servidor e resolve o problema ao nível do DNS. Uma alternativa é o plugin AIOS do diretório do WordPress, que escreve no .htaccess automaticamente, mesmo que não saiba onde esse ficheiro está localizado.

Bloquear o hotlinking vai quebrar as imagens nas redes sociais e mensageiros?

Não com uma configuração adequada. Nos exemplos acima, o Facebook, o Twitter e os motores de busca são adicionados à lista de permissões de referenciadores. Se utilizar ativamente outras plataformas (Pinterest, Telegram, Reddit), adicione os seus domínios às regras. Sem isso, as imagens de pré-visualização ao partilhar os seus links nas redes sociais e mensageiros irão, de facto, desaparecer.

A escolha resume-se a três cenários. Se estiver no Cloudflare, ative o Hotlink Protection no painel: dez segundos e uma solução completa. VPS ou servidor dedicado em NGINX: uma regra na configuração do servidor, cinco linhas. Alojamento partilhado normal em Apache com cPanel: a ferramenta integrada de Hotlink Protection no painel ou o plugin AIOS com uma única caixa de verificação.

A defesa mais fiável combina abordagens: Cloudflare ou bloqueio do lado do servidor como barreira primária, mais o Prevent Content Theft para desativar o menu de contexto. Uma não interfere com a outra e, juntas, bloqueiam tanto as incorporações diretas de URL como a cópia casual de "só para ver".

Gaste dez minutos hoje. Quando a fatura de alojamento do próximo mês não o surpreender com um zero a mais, vai perceber que este foi um dos investimentos de tempo mais proveitosos na segurança do seu site.