Le WordPress d'aujourd'hui, décodé pour les développeurs

Hébergement & serveurs

Licenciés sportifs à l’étroit sur un mutualisé associatif gratuit

Un club régional héberge son site sur une offre gratuite réservée aux associations. Entre quotas de base de données et absence de cache, les limites se révèlent vite.

Par WordPress Développement • 17 janvier 2024 • 5 min de lecture • Aucun commentaire
Licenciés sportifs à l'étroit sur un mutualisé associatif gratuit

500 Mo : c’est le quota de base de données courant d’une offre d’hébergement associative gratuite, une limite notée en petits caractères dans le contrat, avec un nombre de tables plafonné et aucune garantie de performance au-delà d’un trafic minimal. Un club sportif de plusieurs centaines de licenciés se heurte vite à cette limite, conçue à l’origine pour une simple page de présentation associative.

Ce type d’offre existe chez plusieurs hébergeurs français sous forme de geste commercial envers le monde associatif, avec des conditions d’éligibilité vérifiées sur justificatif. Le problème n’est pas l’intention, généreuse, mais l’écart entre ce que le club imagine pouvoir faire de son site — historique des résultats, fiches de tous les licenciés, photos de chaque match — et ce que l’offre est réellement dimensionnée pour supporter.

Ce que le quota de base de données limite en pratique

Un club qui numérise son historique de résultats sur plusieurs saisons, avec une extension de gestion d’événements sportifs qui crée une table par compétition, atteint plus vite qu’on ne le pense la limite fixée par l’hébergeur. La commande la plus utile pour objectiver la situation reste wp db size --format=table via WP-CLI, ou à défaut une requête directe :

SELECT table_schema AS "Base",
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS "Taille (Mo)"
FROM information_schema.TABLES
GROUP BY table_schema;

Sur ce club, l’essentiel du volume ne venait pas des articles ou des pages, mais des tables de journalisation créées par une extension de statistiques de fréquentation laissée activée depuis des années, jamais purgée.

Le cache objet, absent par construction

L'essentiel à retenir : L'offre gratuite limite souvent la taille de base et le nombre de tables ; L'absence de cache objet pénalise les listes de résultats sportifs ; Migrer les archives hors du serveur principal évite le blocage

Les offres associatives gratuites reposent presque toujours sur un mutualisé standard, sans accès à un cache objet persistant type Redis ou Memcached, réservé aux offres payantes de l’hébergeur. Pour un site vitrine classique, l’absence de cache objet passe inaperçue grâce au cache de page complète. Pour un site de club sportif, où chaque visiteur consulte un classement ou un calendrier différent selon sa catégorie d’âge, le cache de page complète protège beaucoup moins efficacement : chaque combinaison de filtres génère une variante de page distincte, ce qui dilue l’efficacité du cache.

Sans cache objet, chaque affichage de classement repart d’une requête SQL complète. Une fonction utilitaire simple, avec le cache transitoire de WordPress plutôt qu’un objet cache indisponible, limite les dégâts :

function club_get_classement( $categorie ) {
    $cle = 'classement_' . sanitize_key( $categorie );
    $donnees = get_transient( $cle );
    if ( false === $donnees ) {
        global $wpdb;
        $donnees = $wpdb->get_results(
            $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}resultats WHERE categorie = %s ORDER BY points DESC", $categorie )
        );
        set_transient( $cle, $donnees, HOUR_IN_SECONDS );
    }
    return $donnees;
}

Le nombre de tables, un plafond moins visible

Au-delà du volume en mégaoctets, certaines offres associatives plafonnent aussi le nombre de tables autorisées dans la base, une limite pensée pour un site vitrine avec une poignée d’extensions. Une extension de billetterie pour les matchs à domicile, qui crée une table par saison plutôt qu’une table unique avec une colonne de saison, épuise ce plafond bien avant celui de l’espace disque.

Sortir les archives du serveur principal

La solution retenue par ce club n’a pas été de changer d’hébergeur, une décision politiquement compliquée pour une association qui bénéficie d’un geste commercial apprécié, mais de sortir les données volumineuses et peu consultées du périmètre du quota :

  • archivage des saisons de plus de cinq ans dans des fichiers statiques générés une fois, plutôt que conservés en base ;
  • désactivation puis désinstallation de l’extension de statistiques de fréquentation, remplacée par un outil d’analyse externe léger ;
  • purge régulière des révisions d’articles avec wp post delete $(wp post list --post_type=revision --format=ids) --force ;
  • compression des tables héritées avec OPTIMIZE TABLE après chaque purge.

Sur un quota associatif serré, la première victoire n’est jamais un serveur plus gros : c’est une base de données qui ne contient que ce qui sert encore.

Quand l’offre gratuite ne suffit vraiment plus

Il existe un seuil au-delà duquel aucune optimisation ne compense un quota structurellement trop bas : lorsque le club dépasse un nombre de licenciés tel que le simple annuaire, avec photos de profil, sature l’espace disque alloué en dehors même de la base de données. Dans ce cas, la bonne réponse reste une montée vers une offre associative payante mais toujours à tarif préférentiel, plutôt qu’un maintien coûteux en temps d’administration sur une offre devenue inadaptée.

Pour aller plus loin

Une offre mutualisée gratuite pour association rend un vrai service tant que le site reste une vitrine. Dès que le club numérise son historique sportif complet, gère sa billetterie et son annuaire de licenciés en ligne, les quotas de base de données et de nombre de tables deviennent la contrainte structurante du projet, bien avant la question du trafic. Le bon réflexe consiste à mesurer régulièrement ce que consomme réellement le site, plutôt que d’attendre le message de blocage de l’hébergeur pour découvrir la limite.

Laisser un commentaire

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

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi