Sklepy z dużymi katalogami produktów (10 000 lub więcej produktów) często napotykają problemy z powolnym generowaniem kanałów, przekroczeniem limitu czasu lub wyczerpaniem pamięci podczas tworzenia kanałów produktów. Wtyczka AdTribes Product Feed jest stworzona do obsługi nieograniczonej liczby produktów, ale musisz ją poprawnie skonfigurować dla swojego środowiska serwerowego i rozmiaru katalogu.
Ten przewodnik wyjaśnia, jak poprawić wydajność generowania kanałów dla dużych katalogów. Dowiesz się o przetwarzaniu wsadowym, limitach serwera, zaplanowanym generowaniu, filtrowaniu niepotrzebnych produktów i innych kwestiach związanych z wydajnością.
Dlaczego duże kanały są inne
Gdy masz ponad 10 000 produktów, generowanie kanału w jednym żądaniu może przekroczyć:
- Limity pamięci PHP – każdy produkt ładuje dane (obrazy, atrybuty, kategorie) do pamięci
- Maksymalny czas wykonania – skrypty PHP często przekraczają limit czasu po 30-60 sekundach
- Zasoby serwera – hosting współdzielony może ograniczać długotrwałe procesy
Wtyczka używa przetwarzania wsadowego do podziału generowania kanału na mniejsze części. Każda partia działa oddzielnie, dzięki czemu unikasz przekroczenia limitu czasu i wyczerpania pamięci. Ponadto możesz zmniejszyć liczbę produktów w kanale, filtrując elementy, których nie potrzebujesz do reklam.
Jak działa przetwarzanie wsadowe
Wtyczka przetwarza kanały w partiach. Każda partia obsługuje określoną liczbę produktów (wielkość partii). Gdy jedna partia się zakończy, następna jest automatycznie planowana. To podejście zmniejsza zużycie pamięci i zapobiega przekroczeniu limitów czasu PHP. W przypadku dużych katalogów wtyczka używa domyślnych, warstwowych wielkości partii w oparciu o całkowitą liczbę produktów:
| Liczba produktów | Wielkość partii |
|---|---|
| Poniżej 1000 | 200 produktów na partię |
| 1,000-5,000 | 300 produktów na partię |
| 5,000-10,000 | 500 produktów na partię |
| 10,000-50,000 | 1000 produktów na partię |
| 50,000+ | 1500 produktów na partię |
Te domyślne ustawienia zapewniają niezawodność. Mniejsze partie zużywają mniej pamięci i rzadziej osiągają limity wykonania. Możesz je jednak nadpisać, jeśli Twój serwer ma więcej zasobów.
Konfiguracja niestandardowej wielkości partii
Jeśli Twój kanał się zawiesza lub przekracza limit czasu, spróbuj zmniejszyć wielkość partii. I odwrotnie, jeśli masz potężny serwer i chcesz szybszego generowania, możesz ją zwiększyć.
Jak zmienić wielkość partii
- Przejdź do Product Feed → Ustawienia → Ogólne
- Włącz Zmień liczbę produktów na partię
- Wprowadź wartość w polu Wstaw wielkość partii: (np. 500 lub 250)
- Zapisz ustawienia

Rekomendacje:
- Przekroczenia limitu czasu: Użyj mniejszej wielkości partii (np. 250-500), aby każda partia zakończyła się przed maksymalnym czasem wykonania serwera
- Błędy pamięci: Zmniejsz rozmiar partii (np. 100-200), aby zmniejszyć zużycie pamięci na partię.
- Stabilne serwery: Możesz spróbować większych partii (np. 1000-1500), aby przyspieszyć całkowite generowanie, ale tylko jeśli Twój serwer obsługuje je bez błędów.
Dokładniej:
| Typ serwera | Sugerowany rozmiar partii |
|---|---|
| Współdzielony hosting | 200–300 |
| VPS lub chmura | 500–1000 |
| Serwer dedykowany | 1000–1500 |
Zawsze testuj po zmianie rozmiaru partii. Jeśli plik nadal się zawiesza, zmniejsz go dalej. Więcej informacji można znaleźć w konfiguracji rozmiaru partii pliku produktu.
Sprawdź i dostosuj limity serwera
Twoje środowisko hostingowe nakłada limity na czas wykonywania PHP i pamięć. Mają one bezpośredni wpływ na generowanie pliku.
max_execution_time
Każda partia działa w ramach max_execution_time PHP. Jeśli jest on zbyt niski (np. 30 lub 60 sekund), partie mogą zostać przerwane przed zakończeniem.
- Zalecane: Co najmniej 300 sekund (5 minut) dla dużych katalogów
- Jak sprawdzić: Przejdź do WP Admin → WooCommerce → Status i znajdź wartość PHP Time Limit w sekcji Środowisko serwera.
- Jak naprawić: Zwiększ limit w konfiguracji serwera, dodając
set_time_limit(300)do plikuwp-config.phplub skontaktuj się ze swoim dostawcą hostingu.

memory_limit
Generowanie pliku ładuje dane produktów do pamięci. Podczas przetwarzania tysięcy produktów na partię, niski limit pamięci może spowodować krytyczne błędy lub niekompletne pliki.
- Zalecane: 256 MB lub więcej dla 10 000+ produktów
- Jak sprawdzić: Przejdź do WP Admin → WooCommerce → Status i znajdź wartość WordPress Memory Limit w sekcji Środowisko WordPress.
- Jak naprawić: Zwiększ limit pamięci w
wp-config.php, dodającdefine('WP_MEMORY_LIMIT', '256M');lub poproś swojego dostawcę hostingu o zwiększenie limitu.r poproś wsparcie techniczne hostingu o zrobienie tego.

Wtyczka loguje ostrzeżenie, gdy dostępna pamięć jest poniżej 128 MB przed uruchomieniem partii (jeśli logowanie jest włączone). Użyj tego do wykrywania potencjalnych problemów.
Użyj zaplanowanego generowania zamiast ręcznego odświeżania
W przypadku dużych katalogów unikaj polegania na ręcznym odświeżaniu z przeglądarki. Żądania przeglądarki mogą ulec przedawnieniu lub rozłączyć się, zanim wszystkie partie zostaną zakończone. Zamiast tego użyj zaplanowanego generowania.
Interwał odświeżania
- Edytuj swój plik i przejdź do zakładki Ogólne.
- Ustaw Interwał odświeżania na Co godzinę, Codziennie, lub Dwa razy dziennie (Product Feed Elite obsługuje również niestandardowe interwały).
- Zapisz feed
Wtyczka używa Action Scheduler do generowania feedu w tle w wybranym interwale. Jest to bardziej niezawodne niż ręczne odświeżanie w przypadku dużych feedów.
Cron serwera (zaawansowane)
Aby uzyskać precyzyjną kontrolę lub w przypadku sklepów o dużym natężeniu ruchu, możesz użyć zadania cron serwera zamiast wbudowanego harmonogramu. Jest to szczególnie przydatne, gdy:
- Chcesz, aby feedy były generowane o określonych porach (np. poza godzinami szczytu)
- Twoja witryna ma niski ruch, a cron WP może nie działać wystarczająco często
- Musisz rozłożyć w czasie generowanie wielu dużych feedów
Szczegółowe instrukcje znajdziesz w Jak odświeżyć feed produktu za pomocą zadań cron.
Wyłącz żądania generowania feedu HTTP
Po kliknięciu Odśwież na stronie Zarządzaj feedami, wtyczka może inicjować generowanie feedu za pomocą żądań HTTP. W przypadku dużych sklepów lub ograniczonego hostingu może to powodować przekroczenia limitu czasu lub niekompletne feedy.
Wyłącz żądania generowania feedu HTTP wymusza generowanie feedu tylko za pomocą Action Scheduler (lub cron serwera). Żadne żądania HTTP nie są używane do rozpoczynania ani kontynuowania partii.
Jak włączyć
- Przejdź do Product Feed → Ustawienia → Ogólne
- Włącz Wyłącz żądania generowania feedu HTTP
- Zapisz ustawienia

Kiedy używać:
- Twój feed ciągle się zawiesza lub przekracza limit czasu podczas klikania Odśwież
- Używasz niestandardowego rozmiaru partii (przetwarzanie partii domyślnie wyłącza przetwarzanie HTTP w tym przypadku)
- Generujesz feedy za pomocą zaplanowanego odświeżania lub cron serwera
Więcej informacji znajdziesz w Co robi opcja „Wyłącz żądania generowania feedu HTTP”?.
Filtruj niepotrzebne produkty
Uwzględnienie w feedzie tylko potrzebnych produktów skraca czas przetwarzania i zmniejsza rozmiar pliku. Użyj filtrów, aby wykluczyć produkty, które nie są istotne dla Twojego kanału.
Typowe strategie filtrowania
| Cel | Typ filtru | Przykładowy warunek |
|---|---|---|
| Uwzględnij tylko dostępne produkty | Uwzględnij | Status magazynowy = w magazynie |
| Uwzględnij produkty z określonej kategorii | Uwzględnij | Kategoria zawiera [docelowa kategoria] |
| Uwzględnij produkty powyżej określonej ceny | Uwzględnij | Cena wyższa niż X |
| Wykluczyć produkty niedostępne w magazynie | Wyklucz | Status magazynowy = brak na stanie |
| Wyklucz produkty bez obrazów | Wyklucz | Główny obraz jest pusty |
| Wyklucz produkty o bardzo niskiej cenie | Wyklucz | Cena niższa niż X |
| Wyklucz określone kategorie | Wyklucz | Kategoria zawiera [nazwa kategorii] |
| Wyklucz określone marki lub tagi | Wyklucz | Marka/Tag zawiera [wartość] |
Mniej produktów oznacza mniej partii i szybsze generowanie pliku. Aby uzyskać wskazówki krok po kroku, zobacz Jak tworzyć filtry dla pliku produktu.
Produkty zmienne i warianty
Jeśli używasz produktów zmiennych, rozważ:
- Uwzględnij tylko najtańsze warianty – Jeden wariant na produkt zamiast wszystkich
- Uwzględnij tylko domyślny wariant produktu – Dalsze zmniejszenie liczby produktów
Te opcje znajdują się w zakładce Ogólne pliku i mogą znacznie zmniejszyć liczbę przetwarzanych produktów.
Podsumowanie kwestii wydajności
| Czynnik | Zalecenie dla ponad 10 000 produktów |
|---|---|
| Rozmiar partii | 200–500 na hostingu współdzielonym; 500–1000 na VPS/dedykowanym |
| max_execution_time | 300 sekund lub więcej |
| memory_limit | 256 MB lub więcej |
| Metoda odświeżania | Zaplanowane (co godzinę/codziennie) lub cron serwera, nie tylko ręczne |
| Generowanie HTTP | Wyłącz, jeśli pliki utkną lub przekroczą limit czasu |
| Filtry | Wyklucz produkty niedostępne, z nieistotnych kategorii lub o niskiej wartości |
| Produkty z wariantami | Użyj „najniższej ceny” lub „domyślnego wariantu”, gdy jest to odpowiednie |
Rozwiązywanie typowych problemów
| Problem | Rozwiązanie |
|---|---|
| Kanał utknął podczas przetwarzania | Zmniejsz rozmiar partii; włącz opcję Wyłącz generowanie kanału HTTP; sprawdź Pomocy, mój kanał nie aktualizuje się lub jest zablokowany podczas przetwarzania! |
| Błędy przekroczenia limitu czasu | Zwiększ max_execution_time do 300+; zmniejsz rozmiar partii |
| Błąd krytyczny / wyczerpanie pamięci | Zwiększ memory_limit do 256 MB+; zmniejsz rozmiar partii |
| Mniej produktów niż oczekiwano | Sprawdź filtry i reguły; zobacz Pomocy! Mam zero lub mniej produktów w moim kanale produktów niż oczekiwano |
| Błędy Action Scheduler | Przejdź do WooCommerce → Status → Zaplanowane Akcje; sprawdź zakładkę Nieudane; zwiększ limity serwera |
Potrzebujesz dalszej pomocy?
Jeśli potrzebujesz pomocy w optymalizacji generowania kanału dla Twojego dużego katalogu:
- Użytkownicy Product Feed Elite: Utwórz zgłoszenie wsparcia aby skontaktować się z zespołem wsparcia AdTribes.
- Użytkownicy Product Feed Pro: Otwórz temat na forum WordPress.org.

