Désactiver les espions Google de WordPress par défaut, lors de la mise à jour

Cette méthode est pour un WordPress par défaut tel que distribué par WordPress.org, sans greffon (plugins) supplémentaires. Le procédure a été effectué avec une mise à jour d’un WordPress 3.8 vers WordPress 3.8.3. Je part ici du principe que la base de votre site web est située dans le sous-dossier www/, mais cela dépend des hébergeurs, des distributions Linux, ou de vos propres modifications.

Avant de faire la mise à jour, il est important de sauvegarder votre version de WordPress en cas de problème. Il faut penser à remplacer le nom du dossier et de la base que j’ai noté WordPress par ceux que vous utilisez :

tar cf wordpress.tar www/wordpress     # Archiver le dossier
gzip -9 wordpress.tar                  # Compresser l'archive
mysqldump -a wordpress >wordpress.dump # dumper la base
gzip -9 wordpress.dump                 # Compresser le dump

Ensuite désarchivez le nouveau dossier (attention si vous le faite sur le dossier contenant votre installation de WordPress et qu’elle s’appelle wordpress elle sera écrasée !!! Attention également aux droits des dossiers, les scripts de WordPress doivent pouvoir écrira dans le sous-dossier wp-content/uploads pour fonctionner :
Choisissez la bonne ligne en fonction du nom de l’archive :

unzip wordpress.zip
tar xf wordpress.tar.gz

Recopier les données (j’écrase un autre WordPress simple, sinon, pensez à vérifier ce que vous aller écraser, il faudra peut être le récupérer de la sauvegarde :

rsync -a wordpress/* www/wordpress/
rm -R wordpress

La plus importante de toute les dégoogleization est de remplacer la correction orthographique googie par pspell. Tout ce que vous tapez dans votre interface est automatiquement envoyé à google pour correction par défaut !!!!

dans wp-includes/js/tinymce/plugins/spellchecker/config.php :

        $config['general.engine'] = 'GoogleSpell';
        //$config['general.engine'] = 'PSpell';
        //$config['general.engine'] = 'PSpellShell';


Commenter la première ligne (GoogleSpell) en y ajoutant // au début, et décommenter la seconde en enlevant les //, (utilise la bibliothèque php pspell ou troisième (appelle la commande aspell). Dans ces 2 cas, il faut que pspell soit installé sur votre système, ainsi qu’aspell-fr pour français, aspell-en pour anglais etc… Ils sont généralement disponibles en paquets dans votre distribution.

Cela devrait donner quelque chose du genre :

        //$config['general.engine'] = 'GoogleSpell';
        $config['general.engine'] = 'PSpell';
        //$config['general.engine'] = 'PSpellShell';

Sur du Debian ou dérivé par exemple, pour les bibliothèques : php5-pspell si vous utilisez le php fournit. sinon, libpspell-dev libaspell-dev pour compiler php par vous même, et éventuellement aspell pour utiliser en ligne de commande.

2e dégooglisation. Par défaut, WordPress utilise le script scriptaculous (qui fait quelques animations et effets dans l’interface), et va le chercher chez ajax.googleapis.com. Donc, google sait quand vous vous connectez à l’interface et quand quelqu’un se connecte à votre site (via le Référant HTTP).

Si pas déjà fait, télécherger le zip d’ici (lien scriptaculous-js-1.9.0.zip) installer scriptaculous dans votre dossier www/js/ par exemple. Penser à renommer le dossier désarchivé scriptaculous-js-1.9.0 en scriptaculous, ou bien faite un lien symbolique, scriptaculous => scriptaculous-js-1.9.0.

Les liens se font dans le fichier wp-includes/script-loader.php, voici les occurrences par défaut :

	$scripts->add( 'scriptaculous-root', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js', array('prototype'), '1.9.0');
	$scripts->add( 'scriptaculous-builder', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/builder.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous-dragdrop', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.9.0');
	$scripts->add( 'scriptaculous-effects', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/effects.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous-slider', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/slider.js', array('scriptaculous-effects'), '1.9.0');
	$scripts->add( 'scriptaculous-sound', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/sound.js', array( 'scriptaculous-root' ), '1.9.0' );
	$scripts->add( 'scriptaculous-controls', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/controls.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
	$scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );

Remplacez-les comme cela :

	$scripts->add( 'prototype', '/js/scriptaculous/prototype/prototype.js', array(), '1.7.1');
	$scripts->add( 'scriptaculous-root', '/js/scriptaculous/src/scriptaculous.js', array('prototype'), '1.9.0');
	$scripts->add( 'scriptaculous-builder', '/js/scriptaculous/src/builder.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous-dragdrop', '/js/scriptaculous/src/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.9.0');
	$scripts->add( 'scriptaculous-effects', '/js/scriptaculous/src/effects.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous-slider', '/js/scriptaculous/src/slider.js', array('scriptaculous-effects'), '1.9.0');
	$scripts->add( 'scriptaculous-sound', '/js/scriptaculous/src/sound.js', array( 'scriptaculous-root' ), '1.9.0' );
	$scripts->add( 'scriptaculous-controls', '/js/scriptaculous/src/controls.js', array('scriptaculous-root'), '1.9.0');
	$scripts->add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
	$scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );

En une ligne :

sed -i  's/\/\/ajax.googleapis.com\/ajax\/libs\/scriptaculous\/1.9.0/\/js\/scriptaculous\/src/g' wp-includes/script-loader.php

3e dégoogleisation, deux des thèmes par défaut vont récupérer leurs fontes chez Google. Donc ici, même problème que dans le cas 2, Google sait quand vous vous connectez à l’interface et quand quelqu’un se connecte à votre site (via le Référant HTTP).

Dans twentythirteen (wp-content/themes/twentythirteen/functions.php), Il faut remplacer //fonts.googleapis.com/css par "/css"

$fonts_url = add_query_arg( $query_args, "//fonts.googleapis.com/css" );


Doit être remplacé par :

$fonts_url = add_query_arg( $query_args, "/css" );

Dans twentythirteen (wp-content/themes/twentytwelve/functions.php), Il faut remplacer //fonts.googleapis.com/css par "/css"

$font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );


Doit être remplacé par :

$font_url = add_query_arg( $query_args, "/css" );

Il vous faut une copie locale des fontes utilisée, accepter celles par défaut, ou en choisir d’autres. Il faut les copier dans www/css. J’aurait tendance à pense qu’il vaut mieux les mettre dans www/fonts, car sont indépendantes des CSS et peuvent être utilisés par d’autres outils.

Mise à jour. J’ai encore trouvé d’autres références au fonts depuis le site google après avoir activé le greffon w3-total-cache/. Je l’ai donc complètement désactivé (pour le moment) :

$ rgrep googleapis .
./wp-includes/script-loader.php:         $open_sans_font_url = "//fonts.googleapsi.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
./wp-content/themes/twentyfourteen/functions.php:		$font_url = add_query_arg( 'family', urlencode( 'Lato:300,400,700,900,300italic,400italic,700italic' ), "//fonts.googleapis.com/css" );
./wp-content/plugins/w3-total-cache/lib/W3/ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/lib/W3/PageSpeed.php:define('W3TC_PAGESPEED_API_URL', 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed');
./wp-content/plugins/w3-total-cache/configs/0.9.2.6-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.2.10-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.2.11-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.2.9-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.3-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.2.7-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-content/plugins/w3-total-cache/configs/0.9.2.8-ConfigKeys.php:        'default' => array('https://ajax.googleapis.com')
./wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css:@import url('//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin-ext,latin');

Gravatar

Mise à jour du 2 septembre 2014 : J’avais oublié de désactiver les avatars. Par défaut, ça va chercher plein de script chez Gravatar (plusieurs allez-retours), ce qui a tendance à ralentir au moins 10 fois le blog en attentes, etc… D’un seul coup, tout devient immédiat :)… Désolé pour les portraits, j’essaierai de trouver un moyen de contournement de Gravatar (que je déconseille plus que jamais). Une autre « socialisation »
qui relève plus de la surveillance (d’où tirent ils leurs profits ?) et de inefficacité d’internet.