Plugin WordPress : un anti-frames « SEO friendly » !

10/11/2011 59 commentaires par Cédric G. +

Je sors un peu de la photographie pour mettre un pied dans mon autre monde, celui du développement… Voici donc mon premier plugin WordPress, dédié « simplement » à supprimer les iframes et autres frames, mais en préservant les statistiques et plus particulièrement celles de Google Analytics, l’objectif étant d’éviter tout accès « direct » aux photographies depuis les moteurs de recherche sans afficher la page complète.

Ne plus autoriser le téléchargement direct !

Ceci vient dans la continuité de mes articles pour lutter contre le hotlinking et plus généralement contre le vol de photographies, en proposant une solution simple pour lutter contre l’énervante manie des moteurs de recherche, et notamment Google, de présenter les recherches d’images avec des liens directs vers les fichiers, facilitant de fait le téléchargement de nos chères photographies en zappant plus ou moins la visite sur notre site (en clair : ils facilitent la repompe !)

Google Images en action
Google Images en action : le petit lien sous l’image en cadrée permet de la télécharger directement (idem à droite !)

L’idée était donc d’intégrer automatiquement un script permettant de rediriger systématiquement la page, lorsqu’on essaye de l’afficher dans une frame (cadre HTML), comme le font les principaux moteurs de recherche dans les recherches d’images.

Une problématique : préserver les statistiques

Le problème résidant dans l’utilisation d’un script Javascript pour rediriger une page, est que l’on fait « sauter » par la même occasion toutes les statistiques puisque l’on recharge intégralement la page. J’avais sur ma galerie photo nature utilisé un stratagème pour rediriger les pages après le décompte statistiques, vers une adresse spéciale dépourvue de marqueur de statistiques.

Une solution beaucoup plus élégante m’a été donnée par Arnaud, l’auteur de Visohotlink (produit dont j’avais parlé dans mon article sur le hotlink) et qui a écrit un article sur la question, remis au goût du jour. Il donne dans son excellent billet sur le hotlinking, tout un tas d’astuces techniques et plus particulièrement un morceau de script (écrit chez Open Linking), que j’ai simplement réintégré en plugin WordPress 🙂

Installation sur votre site

L’usage de ce plugin (ou du script en direct) nécessite que votre site utilise le langage PHP : c’est une nécessité.

  • Si votre site ne « tourne » pas sous WordPress, je vous invite à vous rendre sur la page d’Open Linking, afin de suivre le mode d’emploi pour la mise en oeuvre du script.
  • Si votre site « tourne » sous WordPress : il vous suffit de télécharger le plugin ci-dessous, de le dézipper et de l’installer (via FTP ou équivalent) dans le répertoire /wp-content/plugins/ de votre site. Une fois cela fait, rendez-vous dans la page Extensions côté administration pour activer le plugin. C’est tout !
Pour lancer le téléchargement, cliquez ici : Plugin WordPress NoFrame SEO
Mise à jour du 02/04/2012 : Google étant une vraie girouette, le plugin refonctionne parfaitement sous Google Chrome et Safari :)
, ,

L'auteur : Cédric G.

Auteur photographe animalier, informaticien et passionné d'animaux et de nature. Administrateur du blog Aube Nature

59 réponses sur Plugin WordPress : un anti-frames « SEO friendly » !

  1. Janolapin a écrit

    excellent, Cédric !

    Merçi

  2. pyrros a écrit

    Super, je teste et je fais un retour dans quelques jours 😉

  3. Julien Dorol a écrit

    Ca à l’air sympa ce petit plugins, d’autant plus que beaucoup de trafic viens de google image, et que leur frame est en fait une plaie, même pour ceux qui ne veulent pas piquer les images.

    Moi ça m’agace de cliquer sur le bouton « fermer », surtout qu’un fois fermé, on retombe quasiment jamais au bon endroit pour lire l’article qu’illustre la photo trouvée. Cet outils est une plaie.

    Tiens, d’ailleurs, je viens de voir un truc similaire sur un site de fond d’écran où la frame s’affiche et disparaît instantanément .

    Donc je m’en vais installer ce plugins de ce pas.

    Et le SEO justement, il n’y a pas de « risque »? (question con, je sais 🙂 )

    Merci Cédric

  4. Julien Dorol a écrit

    Installé, ça vire parfaitement cette foutu Frame

    Nickel

    je ferai un petit post rapide avec le lien sur mon blog

    merci 😉

  5. philippe a écrit

    Cool merci, déjà installé , faut que je fasse pareil coté site (pas sous WP)

  6. Ze Courlis a écrit

    Je vais m’empresser de tester ce plugin, sauf que je suis en 2.7, crois-tu que cela va fonctionner ?

  7. Killim a écrit

    Pareil, je teste de ce pas!

  8. Cédric G. a écrit

    Sinon j’aimerais bien l’ajouter sur le référentiel WordPress officiel, mais la méthodologie est terriblement complexe à mes yeux (SVN, tout ça…)

    Z’auraient pas pu faire un truc plus simple ???

    J’ai déjà utilisé un SVN, mais bon franchement ça me gave.

    Sinon j’ai quelques idées d’amélioration 🙂

  9. Stéphane a écrit

    Merci beaucoup Cédric même si mon site reste confidentiel, j’installe ce plug-in. Merci pour le partage.

  10. Arnaud a écrit

    Merci d’avoir mentionné mon article Cédric.

  11. Bertrand a écrit

    Merci Cédric

    Un bon plug-in qui est déjà installé et opérationnel

  12. pyrros a écrit

    En testant et ça marche nickel (quand mon hébergeur ne plante pas 😉 ) j’ai découvert que Google image lit les EXIF et les IPTC.

    Par contre j’ai pas l’impression que cela change quelque chose pour le résultat de la recherche

    ———————

    Perso je pense qu’il faut que tu inscrives ton extension sur « référentiel WordPress officiel » car en plus de lui donner plus de visibilité ça nous permettra de voir les mise à jour.

    Le seul petit bug que j’ai trouvé c’est lorsque je clique (dans l’administration des extensions) sur : « Aller sur le site de l’extension » ça me donne une erreur : « La page n’est pas redirigée correctement »

    • Cédric G. a écrit

      Merci pour ton retour 🙂

      Pourquoi dis-tu que Google lit les EXIF et IPTC ? Je mène un test depuis… 2007 (!) concernant les IPTC, et la seule chose que j’ai découvert, c’est qu’une image peut être référencée par la légende IPTC, mais seulement si elle est dans une galerie Picasa 🙂

      Mais ça m’intéresse !

      Je vais voir pour intégrer l’extension sur le référentiel WordPress. J’ai quelques idées d’amélioration avec des options orientées « protection des images » (genre une option permettant d’inhiber le clic droit uniquement sur les images, ou d’afficher une boîte de dialogue, etc.)

      Concernant la redirection, c’est un problème lié à WordPress, ça arrive parfois (rarement).

      • pyrros a écrit

        dans google image quand je n’ai pas ton extension activée je vois dans la colonne de droite les EXIF et IPTC des photos qui les ont encore

        dans la forme ça ressemble a ce que propose flickr

        Pour le moment mes images sont toujours référencées en fonction du texte proche de celles ci et de leur légende lorsqu’elle est visible. le nom du fichier joue un rôle infime

        • Cédric G. a écrit

          Ahhh oui lol

          J’utilise Google Images tous les jours et je n’avais jamais fait gaffe 😀

          (faut dire que peu d’images comportent les IPTC…)

          • pyrros a écrit

            pareil, c’est a m attardant un peu sur cette barre latérale que j’ai vu ces informations

            en recherchant l’effet que le Plugin WordPress : anti-frames « SEO friendly » ! se comporte avec mes photos qui contiennent les IPTC et les EXIF…

  13. Borax a écrit

    Bonne idée ce plugin. Fonctionne t’il de la même manière intégré dans le répertoire plugin de zenphoto ? J’imagine avec quelques adaptations ?

    • Cédric G. a écrit

      Je ne connais pas le fonctionnement de ZenPhoto, mais le bout de code qui est important doit en principe fonctionner sur n’importe quel CMS, quand il est bien positionné 🙂

  14. Fabien a écrit

    Plugin essayé, plugin adopté !
    Merci pour le partage, j’espérais un tel plugin depuis longtemps.

    Seul (petit) bémol, la frame s’affiche pendant 4-5 secondes avant de rediriger vers mon site, ce qui laisse du temps à l’internaute pour récupérer la photo sans passer par mon site.
    Je pense que cela vient de la « lenteur » de mon hébergeur et non du plugin.

    Penses-tu qu’il soit possible de réduire ce temps ou de diriger directement vers le site sans l’affichage de la frame ?

    • Cédric G. a écrit

      Bonsoir Fabien

      Une solution est d’intégrer le code directement tout en haut de la page, juste sous la balise HTML ; cela permet de gagner (un peu) de temps et évite que d’autres scripts JS soient exécutés avant celui-ci…

      • Fabien a écrit

        Merci pour l’info Cédric. Je vais voir ce que je peux faire avec mes connaissances informatiques…

  15. Seb F. a écrit

    Génial, merci beaucoup Cédric !
    Cela fonctionne parfaitement 🙂

  16. Leschiens a écrit

    C’est un super plugin !
    Je l’ai essayé et les iframes sont toutes supprimées.

    Et c’est vrai qu’on gagne un peu de pages vues 😉

    Pas de pseudos SEO MERCI

  17. ze courlis a écrit

    pour ma part, mon tableau wordpress ne voit pas le plugin bien qu’il soit dans le bon répertoire 🙁

  18. Ducky a écrit

    Sympa cet article et pour répondre à Borax, il s’intègre parfaitement au plugin zenphoto.

  19. Cédric G. a écrit

    Comme indiqué en bas de l’article, Google a réalisé ces derniers jours une mise à jour dans ses scripts de Google Images, qui fait que les anti-frames ne fonctionnent plus (comme n’importe quel javascript apparemment) sous Google Chrome ou Safari 🙁

    Je trouve ça totalement… irresponsable !

  20. pyrros a écrit

    apres un gros mois d’utilisation, je constate sur les stat de mon site une augmentation réelle du nombre de visites à peu égale à 25% ceux qui est significatif sur un site comme le mien …

    😉

    dans la journée j’en parlerai sur mon blog …

  21. Spipouh a écrit

    excellent travail pour nous préserver des voleurs d’images

  22. Heaven a écrit

    Bonjour,

    Merci pour cet excellent plugin ..
    Je recherchais ceci depuis lgt!
    Bon travail et merci à toi

  23. pierre a écrit

    merci pour ce plugin je vais l’utiliser sur mon blog worldpress

  24. Fred a écrit

    je viens de l’installer aussi sur la partie de mon site sous wordpress.
    Merci

  25. microtom a écrit

    Très intéressant. Merci et adopté 😉

  26. Seb F. a écrit

    Hello Cédric,

    J’ai installé le plugin il y a plusieurs semaines ; il semble marcher sans problème.
    Néanmoins, j’ai constaté depuis début décembre (en WP 2.2.X, 3.3 et 3.3.1), que j’avais un log d’erreur créé à la racine indiquant qu’il y avait une erreur à la ligne 73 du fichier php.
    Par contre, il (le log) parle d’une fonction html.entities que je ne retrouve pas …. à la ligne 73.
    As-tu également le même log ?
    Comment pourrais-je corriger cette erreur ? Mes compétences web sont dépassées à ce niveau 🙁

    • Cédric G. a écrit

      Salut Seb

      Je vais regarder ça 🙂

    • Cédric G. a écrit

      Alors c’est étrange car je n’ai personnellement aucune erreur ???

      La fonction htmlentities est un classique en PHP, et j’utilise perso le code du plugin « en dur » sur le blog où nous discutons, donc ça fonctionne, indéniablement 🙂 )

      • Seb F. a écrit

        Argh, bon ben il ne me reste plus qu’à aller mettre les doigts de le cambouis pour comprendre ce qu’il se passe.

        Je te fais un mail ce soir avec les détails détaillés (parce qu’à distance, au boulot, sans accès au log en question, c’est pas facile !!!)

  27. Jerome Dancette a écrit

    Dommage ça m’intéresse aussi 🙂

  28. Jules a écrit

    Je ne connaissais pas du tout ce plugin WP qui permet de protéger les images de son site contre le vol via Google.

    C’est clair qu’avec de belles photos professionnelles comme les tiennes, je ferais super attention héhé 🙂

  29. mathieujava a écrit

    je viens d’installer le plugin sur mon site consacré à l’Indonésie et cela fonctionne au top.

    Je me suis permis de l’améliorer en mettant un « # » à la place de « ? » avant l’utm
    echo « var redirecturl=location.href+\ »#utm_source= ».

    et en ajoutant cette ligne dans mon script analytics
    _gaq.push([‘_setAllowAnchor’, true]);

    pour le SEO

  30. Seb F. a écrit

    Je rebondis sur le commentaire de mathieujava (merci d’ailleurs) pour apporter quelques éléments complémentaires après quelques mois de tests chez moi :
    1 – quand on fait une recherche images dans google, si on est connecté à son compte google, hé bien la variable « q » contenant les mots clés de recherche n’est pas intégré dans le lien html (d’où de nombreux « undefined » dans mon google analytics)
    J’ai mis un moment avant de la comprendre celle-ci 😉
    2 – dans le registre modifications dans le plugin (et je pense que c’est lié à mon problème plus haut), j’ai passé les « UTF-8 » en « ISO-8859-1 » pour les fonctions htmlentities, ce qui me permet de voir les mots-clés avec accents ou autres subtilités 😉

    #my2cents

    • Cédric G. a écrit

      C’est le problème du mode HTTPS lancé par Google il y a quelques semaines, qui « provoque » pour tous les visiteurs connectés à leur compte Google la non transmission des mots-clés utilisés (le fameux « not provided » pour les recherches texturelles)

      Apparemment on a la même sauce dans les images 😉

      Concernant l’encodage, mes sites étant tous en UTF-8 je n’ai jamais eu de problèmes…

      • Seb F. a écrit

        Vi c’est juste, ce n’est pas limité à la recherche image mais bien à toutes les recherches 🙁

        Si je ne dis pas de bêtises (et si j’ai correctement testé tout à l’heure), le fait d’utiliser UTF-8 dans la fonction htmlentities ne me permet pas de récupérer les mots clés quand il y a du caractère avec accent ou autre caractère spécial (genre &)
        En passant la fonction avec l’encodage ISO, j’ai cette fois le « term » non nul avec un mot clé comme sébastien
        (si je suis pas clair, faut le dire)

  31. Seb F. a écrit

    Edit : par acquis de conscience j’ai re-testé, et en fait non aucun impact.
    Milles excuses pour le gros troll bien poilu (à supprimer d’ailleurs si tu le souhaites)

  32. Rémi a écrit

    Merci Cédric pour ce plugin !

  33. Isaza a écrit

    Merci merci

    Isabelle

  34. Valentin a écrit

    Nul besoin de plugin je pense !
    Un simple code dans l’en-tête suffit non ?

    J’avais également fait un article sur cette astuces, ça permet de récupérer une dizaine visiteurs par jours via Google Images !

  35. Lobwick a écrit

    Merci à toi, je viens de me faire voler des photos sur Facebook (je vais m’empresser de faire de la sécurité).
    Merci pour ton plugin bien utile bien que mon faible niveau en photos n’intéresse pas grand monde.

  36. Clément a écrit

    Merci, j’ai testé sur un site WordPress, impécable.
    Sinon, pour mon site, qui lui est en html, peut-on avoir un genre de code qui aurait cette fonction ?
    Merci encore.

  37. Apparence a écrit

    Bonjour le plugin fonctionne t »il pour wordpress 3.7 ?
    Merci à vous
    Cordialement
    Olivier

    • Cédric G. a écrit

      Bonjour

      Oui sans problème. Cependant il existe aujourd’hui un nouveau plugin qui remplit cette fonction et beaucoup d’autres encore : WP-Picshield (By Rev)

      Je vous le conseille !

  38. Julien Dorol a écrit

    Nul besoin de plugin je pense !
    Un simple code dans l’en-tête suffit non ?
    J’avais également fait un article sur cette astuces, ça permet de récupérer une dizaine visiteurs par jours via Google Images !

Laisser un commentaire