Skip to content

Tout pour WordPress, le développement web — et plus encore

🛡 Comment désactiver le hotlinking dans WordPress

🛡 Comment désactiver le hotlinking dans WordPress

Imaginez-vous en train de vous connecter à votre panneau d’hébergement et de découvrir que le trafic mensuel a doublé. Le nombre de visiteurs n’a pas augmenté, les ventes n’ont pas progressé, et pourtant la facture du serveur est arrivée avec un montant deux fois plus élevé que d’habitude. Cela vous semble familier? C’est un cas classique de hotlinking.

Quelqu’un a intégré l’URL de votre image sur son site. L’image se charge chez lui, mais c’est vous qui payez pour le trafic. Pour les projets d’actualité et de contenu sous WordPress, le hotlinking figure parmi les cinq principales sources cachées de gaspillage du budget d’hébergement.

Voici sept méthodes efficaces pour mettre fin au vol d’images: d’une configuration rapide du .htaccess aux extensions et au CDN. Chaque méthode a été testée sur des versions récentes de WordPress et fonctionne sans modification du cœur du CMS.

💡 Aperçu rapide:

  • Comment fonctionne le hotlinking, pourquoi il est dangereux et quelle quantité de trafic vous perdez sans vous en rendre compte
  • Trois méthodes de blocage côté serveur:.htaccess (Apache/LiteSpeed), configuration NGINX et l’outil intégré de cPanel
  • L’extension All-In-One Security (AIOS): activer la protection anti-hotlinking en une seule case à cocher, avec pare-feu et protection contre les attaques par force brute
  • Protection anti-hotlinking de Cloudflare: filtrage au niveau du CDN sans solliciter WordPress, offre gratuite
  • Désactiver le clic droit: une extension comme barrière supplémentaire contre la copie occasionnelle d’URL d’images
  • Retrouver les images volées via Google Images: un audit d’une minute et trois façons de traiter les contrevenants

Qu’est-ce que le hotlinking et pourquoi est-il dangereux

Le hotlinking consiste à intégrer une URL directe pointant vers votre image sur le site de quelqu’un d’autre. Le navigateur du visiteur de ce site va chercher l’image sur votre serveur, et non sur celui du propriétaire du site. Visuellement, l’image s’affiche normalement, mais chaque affichage consomme votre bande passante et vos ressources CPU.

Schéma du hotlinking : un site externe aspire les images de votre serveur

Le principal problème n’est pas le «vol» en tant que tel. L’image reste physiquement sur votre serveur et le droit d’auteur n’est pas formellement enfreint. Mais chaque affichage externe consomme de la bande passante que vous avez payée à votre hébergeur. Pour un site sur un hébergement mutualisé économique avec une limite de trafic de 10 à 25 Go, un seul article populaire dont l’image est reprise sur une douzaine de plateformes peut épuiser votre quota mensuel en trois jours.

La deuxième menace est la charge CPU. En cas de fort trafic sur le site fautif, votre serveur gère deux fronts: vos visiteurs et les leurs. Le résultat est un temps de chargement plus lent et une dégradation des Core Web Vitals.

Comment désactiver le hotlinking dans WordPress

Il existe sept méthodes, allant de la configuration serveur aux plugins. Choisissez en fonction de votre niveau d’accès: disposez-vous d’un hébergement cPanel, quel serveur web utilisez-vous (Apache ou NGINX) et êtes-vous prêt à modifier des fichiers de configuration?

1. Blocage via le fichier.htaccess

Le fichier .htaccess est le principal gestionnaire de configuration pour Apache et LiteSpeed. Il vous permet d’interdire le chargement des images depuis tout domaine autre que le vôtre et les moteurs de recherche. Inconvénient: cette méthode ne fonctionne pas sur les serveurs NGINX.

Pour accéder au fichier, connectez-vous au serveur via FTP (par exemple, avec FileZilla) ou ouvrez le gestionnaire de fichiers de votre panneau d’hébergement. Le fichier se trouve dans le dossier racine du site, au même niveau que wp-config.php.

Le fichier .htaccess dans le dossier racine du site WordPress

Avant toute modification du .htaccess, faites une sauvegarde. Une parenthèse ou une directive mal placée, et le site tombe avec une erreur 500. Après édition, ouvrez le site dans un autre onglet pour vérifier qu’il fonctionne.

Copiez ce bloc à la fin du fichier, en remplaçant yourwebsite.com par votre domaine. Les règles rejettent les requêtes provenant de tous les référents externes tout en autorisant les moteurs de recherche et les réseaux sociaux:

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]

Voici ce qui se passe: RewriteCond vérifie le référent, c’est-à-dire l’adresse de la page d’où provient la requête. Si le référent est vide (première ligne), votre propre domaine, Google, Bing, Facebook ou Twitter, la requête passe. Tout le reste reçoit une erreur 403 Forbidden. La dernière ligne liste les formats de fichiers couverts par la protection (les formats webp, avif et svg ont été ajoutés, ce qui est pertinent pour 2026).

Tester la règle est simple: ouvrez une image de votre site via son URL directe dans un nouvel onglet. Elle doit s’afficher. Créez ensuite un simple fichier HTML sur votre ordinateur local contenant <img src="URL-of-your-image"> et ouvrez-le. L’image ne doit pas se charger.

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

Si les configurations serveur ne sont pas votre tasse de thé, installez un plugin. All-In-One Security (AIOS) (anciennement All in One WP Security & Firewall) bloque le hotlinking avec une simple case à cocher. En prime, vous bénéficiez d’un pare-feu, d’une protection anti-force brute et d’une analyse des vulnérabilités.

Extension All-In-One Security sur WordPress.org avec un million d'installations actives

Après installation et activation, allez dans WP Security → Firewall → Prevent Hotlinks. Cochez la case «Prevent Image Hotlinking» et enregistrez. Le plugin écrit automatiquement les règles nécessaires dans le .htaccess, vous n’avez donc pas à toucher le fichier manuellement.

L’avantage d’AIOS est qu’il n’entre pas en conflit avec les autres règles du .htaccess et met automatiquement à jour la liste des référents autorisés lorsque vous changez de domaine. La version gratuite suffit pour la protection anti-hotlinking; la version premium ajoute l’authentification à deux facteurs et le blocage par pays.

3. Cloudflare: protection au niveau du CDN

Cloudflare propose une protection anti-hotlinking dans son offre gratuite, et c’est l’approche la plus élégante car le trafic est bloqué avant d’atteindre votre serveur.

Dans le panneau Cloudflare: Security → Hotlink Protection → activez l’interrupteur. C’est tout. Cloudflare commence à vérifier le référent pour chaque requête d’image et bloque celles qui sont externes.

L’atout de cette méthode est que vous ne sollicitez pas WordPress et ne risquez pas de casser le .htaccess. Toutes les requêtes sont filtrées au niveau des serveurs périphériques de Cloudflare. Bonus: la mise en cache et la compression d’image via Polish (compression avec perte en offre gratuite, sans perte en Pro) fonctionnent simultanément.

Si votre site utilise déjà Cloudflare, activer la protection anti-hotlinking prend dix secondes. Sinon, l’inscription, le changement de DNS et la configuration de base prennent environ une heure. Pour les projets déjà sur Cloudflare, c’est la méthode numéro un.

4. CPanel: outil de protection anti-hotlinking intégré

Les hébergeurs utilisant cPanel (SiteGround, Namecheap, A2 Hosting et des dizaines d’autres) disposent d’un outil de protection anti-hotlinking intégré. Pour le trouver, rien de plus simple: dans le tableau de bord cPanel, cherchez «Hotlink Protection» ou trouvez l’icône dans la section Sécurité.

Outil de protection contre le hotlinking dans cPanel avec paramètres d'accès

Étapes pour l’activer:

  • Cliquez sur Enable pour ouvrir la page avec la liste des domaines autorisés
  • Dans le champ URLs to allow access, ajoutez votre domaine (cPanel le remplit automatiquement) et les sous-domaines si nécessaire
  • Dans le champ Block direct access for the following extensions, les formats de fichiers sous protection sont listés; conservez la liste par défaut ou ajoutez avif,webp
  • Allow direct requests: laissez vide si vous ne souhaitez pas autoriser l’accès direct à des fichiers spécifiques
  • Redirect request to: vous pouvez indiquer l’URL d’une image de substitution que les voleurs verront à la place de votre image. Par exemple, une bannière textuelle indiquant «Cette image a été volée sur site.ru». Ou laissez vide, et la requête recevra simplement une erreur 403
  • Cliquez sur Submit

Pour désactiver la protection, utilisez le bouton Disable sur la même page.

5. Désactiver le clic droit

Il ne s’agit pas d’une protection anti-hotlinking au sens strict, mais plutôt d’une barrière supplémentaire. Le plugin Prevent Content Theft (Disable Right Click) désactive le menu contextuel du navigateur sur votre site. Les visiteurs ne peuvent pas cliquer sur «Copier l’URL de l’image», car il n’y a tout simplement aucun moyen d’obtenir l’adresse directe de l’image.

Page de l'extension Prevent Content Theft sur WordPress.org

Le plugin bloque non seulement le clic droit, mais aussi les raccourcis clavier: Ctrl+C, Ctrl+U (afficher la source), Ctrl+Shift+I (outils de développement). La version premium ajoute une protection contre le glisser-déposer d’images et la sélection de texte. Vous pouvez exclure des pages spécifiques ou certains rôles utilisateur (par exemple, conserver le clic droit pour les administrateurs).

Soyons clairs: cette méthode n’arrêtera pas quelqu’un qui sait ouvrir les DevTools via le menu du navigateur ou afficher le code source de la page. Mais elle bloque la grande majorité des copies opportunistes, et c’est précisément le public qui vole des images selon le principe «je vois, je clique, je colle».

Une analyse plus détaillée de la protection contre la copie, incluant des méthodes CSS et des solutions côté serveur, est disponible dans notre guide sur la désactivation de la copie et du clic droit sur les sites web.

6. Blocage au niveau de NGINX

NGINX ne lit pas le .htaccess; toute la configuration réside dans les fichiers serveur (nginx.conf ou dans des fichiers séparés du dossier sites-available). Seul l’administrateur du serveur y a accès (VPS/serveur dédié). Sur un hébergement mutualisé avec proxy NGINX, cette méthode est généralement indisponible.

Bloc de configuration NGINX pour bloquer le hotlinking

Ajoutez ce qui suit à l’intérieur du bloc server { } de votre 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}

La directive valid_referers énumère qui est autorisé: none (visites directes et téléchargements sans referrer), blocked (referrer masqué par le navigateur ou un proxy), les moteurs de recherche, ainsi que votre domaine et ses sous-domaines. Tout le reste reçoit une erreur 403.

Après avoir modifié la configuration, vérifiez la syntaxe (nginx -t) et rechargez le serveur (nginx -s reload ou systemctl reload nginx). Une erreur de configuration fera tomber l’intégralité du site, n’appliquez donc jamais de modifications sans vérification syntaxique préalable.

7. Blocage sur Apache (configuration directe)

Sur Apache, vous pouvez aller au-delà du .htaccess et écrire la protection directement dans la configuration de l’hôte virtuel (httpd.conf ou apache2.conf). La syntaxe est la même que pour le .htaccess, mais les règles s’appliquent au niveau du serveur et ne peuvent pas être écrasées accidentellement par un plugin ou une mise à jour.

Exemple de configuration Apache pour bloquer le hotlinking

Avantages de la configuration directe: les règles s’appliquent à tous les sites du serveur en une seule fois, s’exécutent plus rapidement (le fichier de configuration est lu une fois au démarrage) et ne peuvent pas être supprimées par erreur via FTP. L’inconvénient est évident: vous avez besoin d’un accès à la configuration du serveur, ce que les hébergements bon marché ne fournissent pas.

Pour la plupart des utilisateurs WordPress, la méthode .htaccess (option 1) est largement suffisante. La configuration Apache directe a du sens pour les administrateurs qui gèrent plusieurs sites sur un seul serveur.

Comment retrouver des images volées via Google Images

Vous pouvez détecter le vol d’images par des signes indirects: une hausse inexpliquée du trafic avec un nombre de visiteurs stable, une dégradation des temps de chargement. Mais il existe une méthode directe: la recherche via Google.

Ouvrez Google Images et saisissez:

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

Remplacez yourwebsite.com par votre domaine. L’opérateur inurl: trouve toutes les pages mentionnant votre URL, tandis que -site: exclut les pages de votre propre site. Seuls les sites externes ayant intégré des liens vers votre contenu restent dans les résultats.

Une alternative est la recherche d’image inversée. Importez une image suspecte dans Google Images (icône d’appareil photo dans la barre de recherche), et Google affiche toutes les pages où cette image apparaît. Cette méthode est plus lente, mais plus précise: vous voyez les URL spécifiques des contrevenants.

Vous avez trouvé un voleur? Trois options: une demande polie de retrait de l’image (fonctionne rarement), le remplacement de l’image volée de votre côté par un visuel de substitution contenant votre logo et un lien (fonctionne de manière fiable, le voleur affiche votre publicité), ou le dépôt d’une plainte DMCA auprès de l’hébergeur du contrevenant.

Cette vidéo de 8 minutes montre le processus de mise en place de la protection anti-hotlinking via AIOS et .htaccess sur un site WordPress en conditions réelles. L’auteur vous guide du diagnostic jusqu’à la vérification du résultat et explique quels référents doivent être mis en liste blanche.

⁉️🤔 Foire aux questions

Le hotlinking nuit-il au référencement?

Pas directement. Google ne pénalise pas les sites dont les images sont volées. Indirectement, oui: si le hotlinking surcharge le serveur et que les temps de chargement des pages augmentent, le classement baisse, car les Core Web Vitals sont un facteur de classement officiel. Pour le serveur, chaque affichage externe d’une image est indiscernable de votre propre trafic.

Puis-je bloquer le hotlinking uniquement pour certaines images?

Oui. Dans les règles .htaccess et NGINX, vous pouvez spécifier un dossier ou un fichier particulier au lieu d’un caractère générique pour toutes les images. Par exemple, RewriteRule ^wp-content/uploads/premium/.*\.(jpg|png)$ - [F] protège uniquement le dossier premium. Les plugins n’offrent généralement pas cette flexibilité: c’est tout ou rien.

Un filigrane aide-t-il contre le hotlinking?

Un filigrane n’empêche pas techniquement le hotlinking; il ne fait que marquer la paternité de l’image. Si une image est intégrée via une URL directe, le filigrane sera visible sur le site externe, ce qui constitue au moins une forme de publicité. Mais vous payez toujours pour le trafic. Combiner les approches est préférable: le filigrane comme protection visuelle, plus .htaccess ou CDN comme protection technique.

Que faire si mon hébergement ne donne pas accès au.htaccess et qu’il n’y a pas de cPanel?

Mettez en place Cloudflare en offre gratuite et activez la protection anti-hotlinking. Cloudflare fonctionne par-dessus n’importe quel hébergement, ne nécessite aucun accès aux configurations serveur et résout le problème au niveau DNS. Une alternative est le plugin AIOS du répertoire WordPress, qui écrit automatiquement dans le .htaccess même si vous ne savez pas où ce fichier se trouve.

Le blocage du hotlinking va-t-il casser les images sur les réseaux sociaux et les messageries?

Pas avec une configuration correcte. Dans les exemples ci-dessus, Facebook, Twitter et les moteurs de recherche sont ajoutés à la liste blanche des référents. Si vous utilisez activement d’autres plateformes (Pinterest, Telegram, Reddit), ajoutez leurs domaines aux règles. Sans cela, les images d’aperçu lors du partage de vos liens sur les réseaux sociaux et les messageries disparaîtront en effet.

Protection anti-hotlinking: quelle méthode choisir

Le choix se résume à trois scénarios. Si vous êtes sur Cloudflare, activez la protection anti-hotlinking dans le panneau: dix secondes et une solution complète. VPS ou serveur dédié sous NGINX: une règle dans la configuration du serveur, cinq lignes. Hébergement mutualisé classique sous Apache avec cPanel: l’outil de protection anti-hotlinking intégré au panneau ou le plugin AIOS avec une simple case à cocher.

La défense la plus fiable combine les approches: Cloudflare ou blocage côté serveur comme barrière principale, plus Prevent Content Theft pour désactiver le menu contextuel. L’un ne gêne pas l’autre, et ensemble ils bloquent à la fois les intégrations par URL directe et la copie opportuniste du type «je regarde juste».

Passez dix minutes aujourd’hui. Quand votre facture d’hébergement du mois prochain ne vous surprendra pas avec un zéro en trop, vous comprendrez que c’était l’un des investissements en temps les plus rentables pour la sécurité de votre site.