Vous avez un blog/site qui déborde d'actualité, et un flux RSS pour maintenir vos lecteurs à jour. Dans un monde ou le terme "instantané" prend tout son sens, avoir quelques minutes de reatrd sur le contenu n'est pas une option négociable.

 

Surtout si votre site publie un seul article par jour, à heure fixe. Et que des centaines de lecteurs updatent frénétiquement leurs flux pour découvrir le sujet du jour... ce qui est le cas pour http://omnilogie.fr. Voyons voir comment résoudre ce dilemme...

Deux solutions :

  1. Vous avez votre flux RSS maison. Tout est parfait – à condition que vous n'ayez pas fait le crétin en codant votre système de mise en cache.
    • Avantages : mise à jour instantanée. Vous ne dépendez pas d'un service externe.
    • Inconvénients : surcharge serveur (certains clients s'amusent à configurer leur agrégateur sur une fréquence de mise à jour de trois minutes, dur si vous servez l'intégralité des 10 derniers articles), difficulté d'obtenir des stats fiables (Google Analytics ou autres n'affichent pas les stats sur les documents de ce type. Ou alors je ne suis pas au courant ?)
  2. Vous utiliser une plateforme externe – au hasard FeedBurner.
    • Avantages : le trafic est déporté sur un autre serveur, vous pouvez placer des publicités sur les articles, et vous disposez de statistiques assez élaborées sur les différents lecteurs utilisés.
    • Inconvénients : la mise à jour se fait de façon capricante : en théorie, une fois toutes les demi-heure... mais cela reste à prouver.

Cet inconvénient peut être corrigé en partie en utilisant le système de ping feedburner, mais vous n'avez pas forcément envie de pinger manuellement à chaque article...

Solution ? Automatiser tout cela avec un petit script PHP que vous placerez dans votre page de publication :

//Pinger feedburner pour rester à jour
$DL = curl_init();
curl_setopt($DL, CURLOPT_URL, 'feedburner.google.com/fb/a/pingSubmit?bloglink=http://omnilogie.fr/fluxburner.php');
curl_setopt($DL, CURLOPT_RETURNTRANSFER, 1);
curl_exec($DL);
curl_close($DL);

Et voilà le problème résolu !