Comment résoudre les problèmes de partages Facebook qui ne marchent pas sur WordPress ?

Lorsqu’un de vos articles est partagé sur Facebook il ne s’affiche pas correctement ? On vous donne quelques pistes dans cet article pour résoudre ce problème franchement gênant.

Vos articles ne s’affichent pas correctement lorsqu’on les partage sur Facebook

Je tiens plusieurs sites sous WordPress et il arrive de plus en plus souvent que le partage d’articles sur Facebook ne fonctionne par correctement :

  • Il n’y a pas d’image
  • L’image affichée est incorrecte
  • La page partagée est incorrecte

Il faut savoir que lors du tout premier partage d’une page sur Facebook, un bot Facebook va venir scrapper la page indiquée pour en extraire les métadonnées Opengraph si elles sont présentes sur la page, et sinon essayer d’en détecter le titre, le contenu et d’en extraire au moins une image.

Je vais vous faire grâce des explications sur comment ajouter des métadonnées Opengraph à vos pages, mais sachez que pour les plus feignants WordPress SEO by Yoast le fait très bien.

Une fois ce premier passage du bot Facebook effectué, ces données sont mises en cache sur Facebook et ne changeront plus, sauf si vous vous videz le cache Facebook manuellement.

Comment vider le cacher Facebook manuellement

Il existe essentiellement 2 techniques pour vider le cache de Facebook :

  • Technique 1 : partagez l’url que vous souhaitez mettre à jour en lui ajoutant ?v=nimportequoi
  • Technique 2 : renseignez l’url dans l’outil de debug de Facebook

Comment résoudre les problèmes de partages Facebook qui ne marchent pas sur WordPress ?

L’outil de debug vous indiquera alors les problèmes rencontrés qui sont généralement de 2 types :

  • Le bot n’arrive pas à scrapper votre page
  • Ou il y a un souci dans vos balises opengraph

Pour les balises OpenGraph, si vous en avez en double vérifiez bien que votre thème ou des plugins concurrents n’en ajoutent pas en surabondance.

Quand le bot scrappe la mauvaise page (votre page 404) ou n’arrive carrément pas à scrapper votre page, vous êtes par contre face à un autre type de problème.
C’est déjà casse bonbon pour des articles « normaux », mais ça devient particulièrement ballot pour des article planifiés…

Comment vider le cache Facebook automatiquement depuis WordPress ?

Une première idée qui m’est venue consistait à déclencher automatiquement une requète de l’outil de debug juste après publication histoire de sécuriser le truc.

Or l’outil de debug de Facebook nécessite une connexion en https et par défaut la fonction file_get_contents que j’utilise pour ça ne fonctionne pas en https … sauf si vous rajoutez à votre fichier php.ini les deux lignes suivantes :

extension=php_openssl.dll
allow_url_fopen = On

Seulement d’une je suis un flemmard, et de deux je crois me rappeler que tout ce qui est lié au SSL consomme beaucoup de ressources serveur et peut aussi poser des problèmes de sécurité.

J’ai donc rajouté à mon fichier functions.php une petite fonction pour scrapper des pages en https sans avoir besoin de fouiner dans mes réglages serveur :

/* Recuperer un fichier en https à la place de file_get_contents */
function getSSLPage($url) {
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_SSLVERSION,3);
 $result = curl_exec($ch);
 curl_close($ch);
 return $result;
}

J’ai ensuite ajouté, toujours dans le fichier functions.php  quelques lignes de code pour déclencher l’appel à chaque publication :

add_action( 'publish_post', 'refresh_facebook' );
function refresh_facebook($post_id) {
        $refresh = getSSLPage('https://developers.facebook.com/tools/debug/og/object?q='.urlencode(get_permalink($post_id)));
}

Sauf que ça ne marche pas parce que je ne suis pas du tout développeur et que je n’avais pas réalisé que si la connexion est en https c’est parce qu’elle nécessite une authentification !

Pour que ça marche il faut générer un token et je n’ai rien compris à la documentation Facebook à ce sujet.
Si quelqu’un a une solution simple pour faire ça je suis preneur 😉

C’est toujours mieux de résoudre les problèmes que de les contourner

Comme je suis du genre têtu, j’ai essayé de trouver une autre solution.
Plutôt que de vider le cache comme un cochon, j’ai essayé de comprendre d’où venait vraiment mon problème de départ.

Après pas mal de tests, j’en suis venu à la conclusion que :

  • mon problème venait de WP Super Cache
  • et était vraisemblablement lié aux pages compressées que le bot Facebook avait du mal à lire

Régler le problème d’incompatibilité entre le partage Facebook et WP Super Cache

Après quelques recherches rapides j’ai pu identifier les User Agents des bots Facebook qui sont :

facebookexternalhit/1.1
facebookexternalhit/1.0

Dans les réglages avancés de WP Super Cache j’ai donc rajouté ces 2 User Agents dans la liste de ceux à exclure et le tour est joué !

Comment résoudre les problèmes de partages Facebook qui ne marchent pas sur WordPress ? #2

Mes problèmes de partage Facebook sont enfin réglés, et vous ?

Partage (Facebook)
votes
Noter cet article
S’abonner
Notifier de
guest
5 Commentaires
le plus populaire
le plus récent le plus ancien
Inline Feedbacks
View all comments
Dragonciné
Dragonciné
2 août 2016

Bonjour,
j’utilise le plugin WP Fastest Cache, que je toruve mieux que WP Super Cache, dans les agents excludes j’ai ceci facebookexternalhit
est ce que cela suffit où dois-je ajouter vos deux lignes ?
Merci

hicham
hicham
8 septembre 2016

Ca ne marche pas pour moi ..J »ai ajouté les 2 lignes mais en vain…chaque fois que je partage mes articles sur facebook, c’est une autre image qui s’affiche

DragonCine
DragonCine
14 septembre 2016
Reply to  hicham

Bonjour,
Déjà votre site est à jour, dernière version de WordPress, tous les plugins à jour et de 2016? Pareil pour les thèmes, dernières versions ?
http://www.autreopinion.com/wp-content/themes/news/style.css
On voit le fichier style.css de Twenty Fourteen, pas normal, ce n’est pas comment ça que l’on fait un thème enfant, un thème enfant doit avoir son propre dossier dans wp-content/themes/
Puis il doit avoir deux fichiers, son propre style.css ( celui ci de doit surtout pas être un double du style.css du thème parent) et functions.php.
https://codex.wordpress.org/fr:Th%C3%A8mes_Enfant

Pourquoi avoir ajoute Bootstrap ? Twenty Fourteen est déjà Responsive, puis d’après cet article, pas bon
https://www.creativejuiz.fr/blog/wordpress/pourquoi-bootstrap-n-est-pas-adapte-theme-wordpress
sinon si vous voulez vraiment ce framework
http://wordpress.stackexchange.com/questions/163209/how-to-install-bootstrap-to-twentyfourteen-theme
Mais pourquoi ne pas avoir pris un thème gratuit style magazine comme Accesspress Mag ou ColorMag ?

Pour revenir au partage sur Facebook, je ne vois pas les balises obligatoires Open Graph, qque l’on peut avoir avec le plugin Yoast SEO, les avez-vous ?
https://wordpress.org/plugins/wordpress-seo/
Sans les balises open graph, vous ne pouvez pas partager correctement vos articles sur Facebook.

Il est important de bien nommer vos images, par exemple 111.png , c’est &ro pour le référencement, je vous conseille de lire cet article
http://dianebourque.com/comment-optimiser-vos-images-dans-wordpress-pour-le-referencement-et-google/
puis comment écrire un article optimisé pour le SEO,
http://avisdupublic.net/critique/divers/tuto/bien-ecrire-article-wordpress-optimiser/

Bonne continuaton

Mira
Mira
4 avril 2017

MERCI ! Je t’aime autant que ce problème m’a fait galérer pour le résoudre ! ♥