Sécuriser un site internet sous WordPress

Pour des raisons de sécurité, il se peut que vous ayez besoin de masquer au pirates et autres “hackers”, le fait que vous utilisez WordPress. Bien qu’il existe de nombreux Plugins gratuits et payants qui le font très bien, pas moyen de masquer cette fichue class du script schema.org Schema JSON-LD (class=”yoast-schema-graph”) fourni par Yoast SEO depuis la version 14 et qui trahit la confidentialité.

<script type="application/ld+json" class="yoast-schema-graph">
{"@context":"https://schema.org",
"@graph":[{"@type":"Organization",
"@id":"https://www.nom-de-domaine.com/#organization",
"name":"Votre Nom",
"url":"https://www.nom-de-domaine.com/"...
...
</script>

Sécuriser WordPress

Si vous souhaitez enlever class=”yoast-schema-graph”, vous pouvez utiliser le filtre suivant à placer dans le fichier des fonctions “functions.php” de votre thème WordPress :

use Yoast\WP\SEO\Presenters\Abstract_Indexable_Presenter;

class DD_Presenter extends Abstract_Indexable_Presenter {
  public function present() {
  
    $schema = $this->get();
	if ( is_array( $schema ) ) {
		$output = WPSEO_Utils::format_json_encode( $schema );
		$output = str_replace( "\n", PHP_EOL . "\t", $output );
		return '<script type="application/ld+json">' . $output . '</script>';
	}

	return '';
  }
  
  public function get() {
    return $this->presentation->schema;
  }

}

function add_dd_presenter( $presenters ) {
  $presenters[] = new DD_Presenter();
  return $presenters;
}
add_filter( 'wpseo_json_ld_output', '__return_false' ); // Enlevons d'abord le code généré par Yoast SEO
add_filter( 'wpseo_frontend_presenters', 'add_dd_presenter' ); // Puis ajoutons notre code pour le remplacer

Enlever les commentaires HTML de Yoast SEO

Allons plus loin… Yoast insère systématiquement des commentaires HTML dans la section head de votre site.

<!-- This site is optimized with the Yoast SEO plugin v14.1 - https://yoast.com/wordpress/plugins/seo/ -->
...
...
<!-- / Yoast SEO plugin. -->

Pour supprimer cette lettre d’amour cachée de Yoast concernant l’utilisation du plugin, utilisez le filtre suivant à placer dans le fichier des fonctions “functions.php” de votre thème WordPress :

add_filter( 'wpseo_debug_markers', '__return_false' );

Désactiver les données structurées Yoast SEO

Yoast SEO a commencé à intégrer les données structurées Schema JSON-LD dans la version 11.0. Cependant, il n’est toujours pas possible de créer vos propres schémas sans la connaissance du langage de programmation PHP. Si vous souhaitez désactiver totalement les données structurées générées par Yoast SEO, utilisez le filtre suivant à placer dans n’importe lequel de vos plugins personnalisés et/ou dans le fichier des fonctions “functions.php” de votre thème WordPress :

add_filter( 'wpseo_json_ld_output', '__return_false' );

Et voilà ! J’espère que cela vous sera utile.

Publié par Georges

Probablement en train de coder, mais cela ne m'empêche pas d'écrire des articles intéressants !

3 commentaires

  1. Cool ! merci c’est exactement ce que je cherchais !!! Tu parles de plugins pour dissimuler WordPress. Pourrais tu en citer quelques-uns ? Merci super ton blog

    Répondre
    • Bonjour Blob, merci pour ton commentaire. Alors c’est vrai, je ne cite pas les plugins WordPress en question. Une simple recherche Google t’en listera plusieurs, plus ou moins intéressants. Pour ma part j’ai retenu WP Hide & Security Enhancer (en anglais) qui est très bien mais ne fonctionne pas pour les sites “multi-sites” sauf peut-être la version payante. Pour WordPress multi-sites Hide My WP Ghost fera l’affaire. Voilà… Enjoy !

      Répondre
      • J’ai cherché et en effet il y a ce qu’il faut, sauf que je n’utilisais pas les bons mots-clés. Après comparaison j’opte pour WP Hide & Security Enhancer, plus facile et semble mieux noté que les autres. J’utilise un simple site WordPress, alors c’est parfait. Avec ton code en plus, voilà mon WordPress sécurisé. Encore merci Mr Georges

        Répondre

Commenter cet article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *