Donc, voilà, ça y es, on va avoir une bêta de la nouvelle solution de plan de site Google.
Je dis nouvelle, car je pense que je vais la rebaptiser au passage, quelque chose comme Ultimate Google sitemaps & RSS, car oui, il y a des fils RSS, et aussi, mais c'est presque accessoire, une belle liste texte Yahoo!
Au menu :
Cache :
Un système complet de mise en cache des plans peut être activé depuis l'ACP.
Tous les plans au sens large ( Google RSS et urllist.txt) sont alors copiés en entier dans un dossier du serveur, ce qui rend les affichages suivant sa sauvegarde, beaucoup plus rapides. Ils sont simplement lus sans être interprétés par le script php pour un résultat comparable à un affichage en directe du fichier source.
Pour l'efficacité en local j'ai :
- Premier affichage :
<!-- URL list generated in 5.41892 s - 25 sql - 11834 URLs listed -->
<!-- Output started from cache after 5.42756 s - sql -->
<!-- Output from cache ended up after 6.93087 s - sql -->
Ce qui veut dire que le module construit la liste de 11834 en 5.41892s, que le fichier cache est écrit en 0.00864s(2 119 631 octets), l'écriture prenant fin juste avant l'envoi des données, et qu'il a finit d'être envoyé à l'explorateur 6.93087s après la première demande.
Deuxième affichage :
Ce qui est plus intéressant, c'est que dès la deuxième on a :
<!-- URL list generated in 5.41892 s - 25 sql - 11834 URLs listed -->
<!-- Output started from cache after 0.00256 s - sql -->
<!-- Output from cache ended up after 1.57475 s - sql -->
La première ligne étant là pour nous rappeler le temps qu'il avait fallu pour calculer la page, avant de commencer à l'envoyer. A comparer avec les 0.00256 s qu'il a fallu ce coup ci pour commencer à recevoir des données
Après l'envoi est relativement long car le fichier pèse lourd, 2mo tout de même, et vu le nombre d'urls, le navigateur ne doit pas non plus favoriser une transmission rapide, car lui aussi est mis à contribution, nous y reviendrons.
Pour cela, il y a la possibilité d'activer la compression Gun-zip, sur l'envoi et la mise en cache de données. Un fois activé, la compression transforme nos 2 mo en 48 ko, et comme encore une fois, le fichier est envoyé tel quel, c'est le client qui décompresse, il s'agit alors pour le serveur d'envoyer une lecture transparente d'un fichier de 48 ko avec pour résultat un plan de site Google listant 11834 URLs
Malheureusement la fonction permettant de lire sans décompresser les fichier Gun-zip rend pour l'instant impossible l'affichage des stats de fin d'envois du fichier. Mais c'est clairement plus rapide, même si encore une fois le client est bien mis à contribution.
Réécriture d'URL :
Possibilité de changer de type de réécriture d'url pour les plan au sen large depuis l'acp et détection automatique prévue pour les mod phpBB SEO
A noter que l'injection de titre alourdit pas mal nos plan de site, si on reprend l'exemple de tout à l'heure on a :
Premier affichage :
<!-- URL list generated in 7.27516 s - 25 sql - 11834 URLs listed -->
<!-- Output started from cache after 7.28377 s - sql -->
<!-- Output from cache ended up after 8.92257 s - sql -->
Le temps de génération de la liste est plus long, c'est ce qu'il en coute d'injecter 11834 titres de sujets dans des URLs, 1.85s.
Cela peut paraître beaucoup, mais il s'agit d'un liste énorme, et mise en cache. Ramené à l'échelle du forum, cela nous donne du 0.00784s pour réécrire 50 liens, ce qui reste somme toute un très bon résultat pour format_url().
Le deuxième affichage suit la tendance :
- Code: Tout sélectionner
<!-- URL list generated in 7.52122 s - 25 sql - 11834 URLs listed -->
<!-- Output started from cache after 0.00248 s - sql -->
<!-- Output from cache ended up after 1.52267 s - sql -->
Très rapide pour un fichier de 2.4 mo (et oui les titres ça pèse), qui est tout de même réduit à 285 ko une fois compressé.
On constate d'ailleurs que la compression est bien plus difficile quand on a pas "viewtopic.php?" ou "topic" répété 11834 fois, là chaque titre est unique.
Flux RSS
C'est ce qui a pris un peut de temps, mais c'est là, une flopée de flux, avec moultes options.
On va y aller de l'exemple, cela permettra de parler de ce que l'on demande au navigateur. Tous les flux est les plan de site Google ont leur transformation XSL, qui permet au navigateurs compatibles de transformer le code XML en HTML. Le serveur ne fait qu'envoyer une feuille de style en plus des plan xml et le navigateur fait tout le travail.
Cela donne ça : http://www.phpbb-seo.com/sitemaps.xml pour les plan de site Google.
Pour les Flux RSS, comme il y en a pas mal, j'ai fait un petit regroupement de tous les canaux sur une page : http://www.phpbb-seo.com/rss-channels.xml
De là, vous avez des liens vers chaque Flux RSS. Plus une commodité qu'autre chose ce regroupement, mais bien pratique tout de même.
Pour les types de flux, il y a :
- http://www.phpbb-seo.com/rss.xml qui regroupe les derniers messages des tous les forums et par la suite de tous les modules qui pourraient s'ajouter (articles KB etc ...);
- http://www.phpbb-seo.com/rss-forums.xml qui fait la même chose, mais pour le forum uniquement (il y aura la même chose pour les autres modules);
- http://www.phpbb-seo.com/rss-forum.xml qui nous fait une bête liste des URLs des forum.
- Un flux RSS par forum, avec injection du titre dans l'url en mod avancé. Exemple : http://www.phpbb-seo.com/le-forum-phpbb-rf28.xml
Pour tous ces flux, il est possible d'ajouter deux paramètre : -l, -s et -m. Les deux premières servent à rallonger ou raccourcir les flux.
Dans l'ACP, on règle trois limite, un pour les longues listes, une par défaut (aui correspond aux url ci dessus) et une courte. Il est également possible de désactiver l'option.
La dernière, -m, active l'affichage d'un résumé des message correspondant au sujet affiché. Il est possible de n'afficher que le dernier message du fil actif, ou de conserver le premier uniquement ou les deux.
Cela nous donne :
http://www.phpbb-seo.com/rss-m.xml
http://www.phpbb-seo.com/rss-l-m.xml
Etc, les paramètres -l et -s devant précéder -m.
Nous parlons ici bien entendu des paramètre valable pour un cas de réécriture d'url, ces paramètre ont pour équivalent en url naturelles &l, &s et &m, tout simplement.
L'affichage des message ne casse pas les BBcodes, affiche les smiles.
Le xml n'autorise pas les caractères spéciaux comme < et > indispensables au bon fonctionnement des liens contenus dans le corps des message affiché, du coup, il y a un peut de JavaScript pour que ça marche avec FireFox, pour une fois, l'indulgence de Internet Explorer est bien utile.
Yahoo! urllist.txt :
J'allais oublier http://www.phpbb-seo.com/urllist.txt cette liste n'est pas de la plus grande nécessité, vu qu'il est possible de soumetre des flux RSS au moteur de recherche Yahoo! (d'où, au passage, l'intérêt des liste longues sans résumé des messages
Le liste reprend les x dernier post de chaque forum public, configurable depuis l'acp.
Petite limitation :
Si la compression Gun-zip est activé sur le forum, elle l'est nécessairement sur les plan au sens large, il est par contre possible d'activer la compression si celle de phpBB ne l'est pas.
Les URL réécrites prennent une extension .gz supplémentaire quand on active la compression, le module se charge de vérifier si le client supporte la compression, et éventuellement change de scénario et sort un plan non compressé (décompression depuis le cache ou double cache, configurable depuis l'acp) en passant par une redirection http 307 qui devrait faire passer le message que la première URL est temporairement pas disponible, a voir si une 301 serait mieux.
Pour l'instant, la réduction de duplicate n'as lieux que lors de la mise en cache, je compte trouver une solution pour que ce soit tout le temps le cas.
Voilà, je soumet le sitemapIndex pour valider la bonne entente de Google avec la compression Gun-Zip et hop.
Ah oui, du coup, vous serez redirigés avec ajout du .gz en suivant les liens de ce message, sur tous les liens
Voilà, dans l'ensemble, un mod qui va vraiment nous permettre de sortir des listes de 10 000 URLs
Ça devrais même passer au dessus, j'ai pas pris le temps de poster 50 000 sujets;), faudra peut être lancer des records
Ou l'on comprend que cette MAJ était longue
C'est simple, tout le code est réécrit en Orienté Objet, et vu que j'ai lancé des tests sur de listes de 10 000 URLs, j'ai pu pas mal travailler les optimisations, dans ce genre de boucles, de petites causes peuvent avoir de grand effets
++

Français |
Anglais
News




