Commencer
Guide ultime pour adapter les flux pour plus de 10 000 produits - AdTribes
  1. Accueil
  2. Base de connaissances
  3. Conseils généraux sur les flux
  4. Guide ultime pour adapter les flux pour plus de 10 000 produits

Guide ultime pour adapter les flux pour plus de 10 000 produits

Les magasins avec de grands catalogues de produits (10 000 produits ou plus) rencontrent souvent des problèmes de génération de flux lents, des timeouts ou des dépassements de mémoire lors de la création de flux de produits. Le plugin AdTribes Product Feed est conçu pour gérer un nombre illimité de produits, mais vous devez le configurer correctement pour votre environnement serveur et la taille de votre catalogue.

Ce guide explique comment améliorer les performances de génération de flux pour les grands catalogues. Vous découvrirez le traitement par lots, les limites du serveur, la génération planifiée, le filtrage des produits inutiles et d'autres considérations de performance.

Pourquoi les grands flux sont différents

Lorsque vous avez plus de 10 000 produits, la génération d'un flux en une seule requête peut dépasser :

  • Limites de mémoire PHP – Chaque produit charge des données (images, attributs, catégories) en mémoire
  • Temps d'exécution maximal – Les scripts PHP expirent souvent après 30 à 60 secondes
  • Ressources serveur – L'hébergement mutualisé peut limiter les processus de longue durée

Le plugin utilise le traitement par lots pour diviser la génération du flux en plus petits morceaux. Chaque lot s'exécute séparément, vous évitant ainsi les dépassements de délai et l'épuisement de la mémoire. De plus, vous pouvez réduire le nombre de produits dans votre flux en filtrant les articles dont vous n'avez pas besoin pour la publicité.

Comment fonctionne le traitement par lots

Le plugin traite les flux par lots. Chaque lot gère un nombre fixe de produits (la taille du lot). Lorsqu'un lot est terminé, le suivant est planifié automatiquement. Cette approche réduit l'utilisation de la mémoire et évite les dépassements de délai PHP.

Product Feed Pro 13.5.7 et versions ultérieures auto-ajustent la taille du lot au lieu d'utiliser une recherche fixe dans une table. Chaque lot est chronométré et son utilisation de mémoire mesurée ; la taille du lot suivant est dérivée de ce que l'hôte vient de prouver qu'il peut gérer, et la taille apprise est conservée par flux, de sorte que les exécutions ultérieures commencent près de l'optimum. C'est une fonctionnalité principale de Product Feed Pro, elle s'applique donc que Product Feed Elite soit actif ou non. Voir Taille de lot adaptative ci-dessous.

Sur les versions antérieures, le plugin utilisait à la place des tailles de lot par défaut fixes basées sur votre nombre total de produits :

Nombre de produitsTaille du lot
Moins de 1 000200 produits par lot
1,000-5,000300 produits par lot
5,000-10,000500 produits par lot
10,000-50,0001 000 produits par lot
50,000+1 500 produits par lot

Ces valeurs par défaut ont été conçues pour la fiabilité. Les lots plus petits utilisent moins de mémoire et sont moins susceptibles d'atteindre les limites d'exécution.

Taille de lot adaptative

À partir de Product Feed Pro 13.5.7, la génération de flux ne sélectionne plus une taille de lot fixe par exécution à partir d'une table de niveaux de nombre de produits. Au lieu de cela, le contrôleur chronomètre chaque lot et mesure son utilisation de mémoire, puis dimensionne le lot suivant en fonction de ce que l'hôte vient de prouver qu'il peut gérer. La taille apprise est enregistrée par flux, de sorte que les exécutions ultérieures commencent près de l'optimum dès le premier lot.

Résultats de référence : Sur un flux XML Google Shopping de 18 201 produits, chaque lot payant un véritable amorçage WordPress (comme cela se produit en production), la taille de lot adaptative a été environ 19 % plus rapide lors de la première exécution et 24 % plus rapide lors d'une exécution à chaud, avec une parité de sortie confirmée, des nombres de produits identiques dans tous les scénarios.

Pourquoi le gain est plus important que ne le suggère le benchmark : L'accélération provient de l'élimination des allers-retours par lot, et non d'un traitement plus rapide par produit. Le temps de traitement pur par produit reste inchangé. Chaque lot entraîne un amorçage complet de WordPress et du plugin, ainsi qu'une attente Action Scheduler. Réduire une exécution de 19 lots à 2 élimine donc 17 amorçages et 17 attentes. Cela est particulièrement important pour les boutiques à faible trafic : là où WP-Cron ne se déclenche qu'à la visite des visiteurs, l'attente entre les lots domine le temps total du flux. La réduction du nombre de lots est donc considérablement plus précieuse en pratique que ne le suggèrent les chiffres du benchmark seuls, une combinaison utile pour les boutiques avec un catalogue important et un trafic faible.

Dégradation gracieuse sur les hôtes contraints : Si l'hôte est limité en mémoire (par exemple, une limite de 128 Mo), la taille du lot diminue jusqu'à ce que les lots tiennent, et le flux se termine lentement au lieu d'échouer à chaque exécution. Auparavant, le niveau le plus bas disponible était de 200 produits par lot, de sorte que les hôtes qui ne pouvaient même pas gérer cette taille ne terminaient jamais un flux.

Définir une taille de lot explicite (voir Configurer la taille de lot personnalisée ci-dessous) désactive entièrement le dimensionnement adaptatif pour ce flux. Pour les catalogues de plus de 10 000 produits, il est préférable de laisser la taille du lot non définie et de laisser le contrôleur apprendre. Réservez une taille de lot manuelle pour les hôtes ayant des contraintes strictes et déjà connues.

Configurer la taille de lot personnalisée

Si votre flux se bloque ou expire, essayez de réduire la taille du lot. Inversement, si vous avez un serveur puissant et que vous souhaitez une génération plus rapide, vous pouvez l'augmenter.

Une taille de lot explicite désactive le dimensionnement adaptatif (Product Feed Pro 13.5.7+). Pour les catalogues de plus de 10 000 produits, laissez ce paramètre non défini, sauf si votre hôte a une contrainte stricte que vous comprenez déjà, et laissez le contrôleur apprendre la taille optimale à la place.

Comment changer la taille du lot

  1. Allez dans Product FeedParamètresGénéral
  2. Activez Modifier le nombre de produits par lot
  3. Entrez une valeur dans Insérer la taille du lot : (par exemple, 500 ou 250)
  4. Enregistrez vos paramètres

Recommandations :

  • Timeouts : Utilisez une taille de lot plus petite (par exemple, 250-500) afin que chaque lot se termine avant le temps d'exécution maximal de votre serveur
  • Erreurs de mémoire : Réduisez davantage la taille du lot (par exemple, 100-200) pour réduire l'utilisation de la mémoire par lot
  • Serveurs stables : Vous pouvez essayer des lots plus importants (par exemple, 1 000-1 500) pour une génération totale plus rapide, mais seulement si votre serveur les gère sans erreurs

Plus spécifiquement :

Type de serveurTaille de lot suggérée
Hébergement mutualisé200-300
VPS ou Cloud500-1000
Serveur dédié1000-1500

Testez toujours après avoir modifié la taille du lot. Si le flux reste bloqué, réduisez-la davantage. Pour plus de détails, voir Configuration de la taille de lot pour le flux de produits.

Vérifier et ajuster les limites du serveur

Votre environnement d'hébergement impose des limites au temps d'exécution de PHP et à la mémoire. Celles-ci affectent directement la génération du flux.

max_execution_time

Chaque lot s'exécute dans le cadre de max_execution_time de PHP. S'il est trop bas (par exemple, 30 ou 60 secondes), les lots peuvent être interrompus avant de se terminer.

  • Recommandé : Au moins 300 secondes (5 minutes) pour les grands catalogues
  • Comment vérifier : Allez dans WP Admin → WooCommerce → Statut, et trouvez la valeur Limite de temps PHP dans l'Environnement du serveur.
  • Comment corriger : Augmentez la limite dans la configuration de votre serveur en ajoutant set_time_limit(300) au fichier wp-config.php, ou contactez votre fournisseur d'hébergement.

memory_limit

La génération du flux charge les données des produits en mémoire. Lors du traitement de milliers de produits par lot, une limite de mémoire faible peut entraîner des erreurs fatales ou des flux incomplets.

  • Recommandé : 256 Mo ou plus pour 10 000 produits et plus
  • Comment vérifier : Allez dans Admin WP → WooCommerce → Statut, et trouvez la valeur Limite de mémoire WordPress dans Environnement WordPress.
  • Comment corriger : Augmentez la limite de mémoire dans wp-config.php en ajoutant define('WP_MEMORY_LIMIT', '256M'); ou demandez à votre fournisseur d'hébergement d'augmenter la limite.

Le plugin enregistre un avertissement lorsque la mémoire disponible est inférieure à 128 Mo avant qu'un lot ne s'exécute (si la journalisation est activée). Cette entrée apparaît sous la source de journal woo-product-feed-pro dans WooCommerce → Statut → Journaux. Utilisez ceci pour repérer les problèmes potentiels.

Les avertissements de récupération après crash et de flux mis en attente dus au dimensionnement adaptatif des lots (Product Feed Pro 13.5.7+) sont enregistrés inconditionnellement dans la même source de journal woo-product-feed-pro, quel que soit le paramètre « Activer la journalisation ». Si votre flux continue d'être mis en attente après des crashs répétés, vérifiez WooCommerce → Statut → Journaux même si vous n'avez pas activé la journalisation.

Utilisez la génération planifiée au lieu du rafraîchissement manuel

Pour les catalogues volumineux, évitez de vous fier au rafraîchissement manuel depuis le navigateur. Les requêtes du navigateur peuvent expirer ou se déconnecter avant que tous les lots ne soient terminés. Utilisez plutôt la génération planifiée.

Intervalle de rafraîchissement

  1. Modifiez votre flux et allez dans l'onglet Général
  2. Réglez Intervalle de rafraîchissement sur Toutes les heures, Quotidien ou Deux fois par jour (Product Feed Elite prend également en charge les intervalles personnalisés)
  3. Enregistrer le flux

Le plugin utilise Action Scheduler pour exécuter la génération du flux en arrière-plan à l'intervalle choisi. C'est plus fiable que le rafraîchissement manuel pour les flux volumineux.

Cron du serveur (avancé)

Pour un contrôle précis ou des boutiques à fort trafic, vous pouvez utiliser une tâche cron du serveur au lieu du planificateur intégré. Ceci est particulièrement utile lorsque :

  • Vous souhaitez que les flux s'exécutent à des heures précises (par exemple, pendant les heures creuses)
  • Votre site a peu de trafic et le cron de WP peut ne pas s'exécuter assez souvent
  • Vous devez échelonner plusieurs flux volumineux

Pour des instructions étape par étape, consultez Comment actualiser le flux de produits à l'aide des tâches cron.

Désactiver les requêtes HTTP de génération de flux

Lorsque vous cliquez sur Rafraîchir sur la page Gérer les flux, le plugin peut déclencher la génération de flux via des requêtes HTTP. Sur les grandes boutiques ou les hébergements limités, cela peut entraîner des délais d'attente ou des flux incomplets.

Désactiver les requêtes de génération de flux HTTP force la génération de flux à s'exécuter uniquement via Action Scheduler (ou le cron du serveur). Aucune requête HTTP n'est utilisée pour démarrer ou continuer les lots.

Comment activer

  1. Allez dans Product FeedParamètresGénéral
  2. Activez Désactiver les requêtes de génération de flux HTTP
  3. Enregistrez vos paramètres

Quand l'utiliser :

  • Votre flux reste bloqué ou expire lorsque vous cliquez sur Actualiser
  • Vous utilisez une taille de lot personnalisée (le traitement par lots désactive le traitement HTTP par défaut dans ce cas)
  • Vous exécutez des flux via une actualisation planifiée ou un cron de serveur

Pour plus de détails, consultez Que fait « Désactiver les requêtes de génération de flux HTTP » ?.

Filtrer les produits inutiles

Inclure uniquement les produits dont vous avez besoin dans votre flux réduit le temps de traitement et la taille du fichier. Utilisez des filtres pour exclure les produits qui ne sont pas pertinents pour votre canal.

Stratégies de filtrage courantes

ObjectifType de filtreExemple de condition
Inclure uniquement les produits disponiblesInclureStatut du stock = en stock
Inclure les produits d'une catégorie spécifiqueInclureLa catégorie contient [catégorie cible]
Inclure les produits au-dessus d'un certain prixInclurePrix supérieur à X
Exclure les produits en rupture de stockExclureStatut du stock = en rupture de stock
Exclure les produits sans imagesExclureL'image principale est vide
Exclure les produits à très bas prixExclurePrix inférieur à X
Exclure des catégories spécifiquesExclureLa catégorie contient [nom de la catégorie]
Exclure des marques ou des étiquettes spécifiquesExclureLa marque/l'étiquette contient [valeur]

Moins de produits signifient moins de lots et une génération de flux plus rapide. Pour des instructions étape par étape, consultez Comment créer des filtres pour votre flux de produits.

Produits variables et variations

Si vous utilisez des produits variables, considérez :

Ces options se trouvent dans l'onglet Général du flux et peuvent réduire considérablement le nombre de produits traités.

Résumé des considérations de performance

FacteurRecommandation pour 10 000+ produits
Taille du lotLaisser non défini pour permettre au dimensionnement adaptatif d'apprendre (Product Feed Pro 13.5.7+) ; sinon 200-500 sur l'hébergement mutualisé, 500-1000 sur VPS/dédié
max_execution_time300 secondes ou plus
memory_limit256 Mo ou plus
Méthode de rafraîchissementPlanifié (horaire/journalier) ou cron serveur, pas uniquement manuel
Génération HTTPDésactiver si les flux se bloquent ou expirent
FiltresExclure les produits en rupture de stock, les catégories non pertinentes ou de faible valeur
Produits variablesUtilisez « prix le plus bas » ou « variation par défaut » lorsque cela est approprié

Dépannage des problèmes courants

ProblèmeSolution
Flux bloqué en cours de traitementRéduire la taille du lot ; activer Désactiver la génération de flux HTTP ; consulter Aide, mon flux ne se met pas à jour ou est bloqué en cours de traitement !
Erreurs de délai d’attenteAugmenter max_execution_time à 300+ ; réduire la taille du lot
Erreur fatale / mémoire épuiséeAugmenter memory_limit à 256 Mo+ ; sur Product Feed Pro 13.5.7+, le dimensionnement adaptatif se dégrade gracieusement au lieu d'échouer complètement
Moins de produits que prévuVérifier les filtres et les règles ; voir Aide ! Je n'ai aucun produit ou moins de produits que prévu dans mon flux de produits
Échecs d’Action SchedulerAller à WooCommerce → Statut → Actions planifiées ; vérifier l’onglet Échec ; augmenter les limites du serveur

Besoin d'aide supplémentaire ?

Si vous avez besoin d’aide pour optimiser la génération de flux pour votre grand catalogue :

  • Utilisateurs de Product Feed Pro : Ouvrez un sujet sur le forum WordPress.org.
Cet article vous a-t-il été utile ?

Articles connexes

Finaliser votre achat
Flux de produits WooCommerce AdTribes

Le meilleur plugin de flux de produits WooCommerce

  • AdTribes Pty Ltd
    ABN : 40 675 636 816
Produit
Ressources et informations
Sites partenaires
Rymera