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 produits | Taille du lot |
|---|---|
| Moins de 1 000 | 200 produits par lot |
| 1,000-5,000 | 300 produits par lot |
| 5,000-10,000 | 500 produits par lot |
| 10,000-50,000 | 1 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.
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.
Comment changer la taille du lot
- Allez dans Product Feed → Paramètres → Général
- Activez Modifier le nombre de produits par lot
- Entrez une valeur dans Insérer la taille du lot : (par exemple, 500 ou 250)
- 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 serveur | Taille de lot suggérée |
|---|---|
| Hébergement mutualisé | 200-300 |
| VPS ou Cloud | 500-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 fichierwp-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.phpen ajoutantdefine('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.
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
- Modifiez votre flux et allez dans l'onglet Général
- 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)
- 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
- Allez dans Product Feed → Paramètres → Général
- Activez Désactiver les requêtes de génération de flux HTTP
- 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
| Objectif | Type de filtre | Exemple de condition |
|---|---|---|
| Inclure uniquement les produits disponibles | Inclure | Statut du stock = en stock |
| Inclure les produits d'une catégorie spécifique | Inclure | La catégorie contient [catégorie cible] |
| Inclure les produits au-dessus d'un certain prix | Inclure | Prix supérieur à X |
| Exclure les produits en rupture de stock | Exclure | Statut du stock = en rupture de stock |
| Exclure les produits sans images | Exclure | L'image principale est vide |
| Exclure les produits à très bas prix | Exclure | Prix inférieur à X |
| Exclure des catégories spécifiques | Exclure | La catégorie contient [nom de la catégorie] |
| Exclure des marques ou des étiquettes spécifiques | Exclure | La 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 :
- Et inclure uniquement les variations de produit au prix le plus bas : Une variation par produit au lieu de toutes
- Et inclure uniquement la variation de produit par défaut : Réduit davantage le nombre de produits
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
| Facteur | Recommandation pour 10 000+ produits |
|---|---|
| Taille du lot | Laisser 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_time | 300 secondes ou plus |
| memory_limit | 256 Mo ou plus |
| Méthode de rafraîchissement | Planifié (horaire/journalier) ou cron serveur, pas uniquement manuel |
| Génération HTTP | Désactiver si les flux se bloquent ou expirent |
| Filtres | Exclure les produits en rupture de stock, les catégories non pertinentes ou de faible valeur |
| Produits variables | Utilisez « prix le plus bas » ou « variation par défaut » lorsque cela est approprié |
Dépannage des problèmes courants
| Problème | Solution |
|---|---|
| Flux bloqué en cours de traitement | Ré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’attente | Augmenter max_execution_time à 300+ ; réduire la taille du lot |
| Erreur fatale / mémoire épuisée | Augmenter 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évu | Vé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 Scheduler | Aller à 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 Elite : Créez un ticket de support pour contacter l'équipe de support AdTribes.
- Utilisateurs de Product Feed Pro : Ouvrez un sujet sur le forum WordPress.org.

