SEOłtys

Najpierw kolejka zadań, nie nowy serwer

Integracje, które spowalniają sklep WooCommerce

Baselinker, import XML albo CSV, TecDoc, synchronizacja stanów i cen. Sklep potrafi mulić na tym samym hostingu, który wczoraj wystarczał, bo integracja rusza przy wizycie klienta albo przepisuje cały katalog. Da się to znaleźć i uciąć bez przeprowadzki.

Kogut SEOłtys wskazuje kierunek. Napis: Analiza + strategia = wzrost.

W skrócie

Wolny sklep WooCommerce nie zaczyna się od faktury za serwer. Zaczyna się od zadania, które ktoś podpiął „żeby stany się zgadzały”: Baselinker, plik z hurtowni, zapytanie do TecDoc, synchronizacja ceny. Zadanie bywa nieszkodliwe raz dziennie. Robione co pięć minut, na całym katalogu, w trakcie otwierania karty produktu, zamienia sklep w kolejkę.

Firmy od samego przyspieszania wspominają integracje jednym zdaniem. Ta strona jest o tym zdaniu. Szukamy, które połączenie budzi się przy kliencie, które tylko w tle, i co da się zmienić na tym hostingu, który już macie. Najpierw pomiar, potem poprawka, potem ten sam pomiar. Przeprowadzkę proponujemy wtedy, gdy serwer naprawdę nie wyrabia, a nie na początku, z przyzwyczajenia.

Objawy, zanim winny stanie się hosting

Właściciel sklepu zwykle opisuje to tak: strona główna jeszcze jakoś wstaje, koszyk kręci się w kółko, panel zamówień otwiera się jak przez słomkę, a w godzinie importu pada też karta produktu. Klient na telefonie dostaje spinner przy „do koszyka”. W panelu lista zamówień czeka, aż skończy się zapis stanów.

Strona główna bywa w pamięci podręcznej i wygląda zdrowo, a koszyk i panel nie, bo muszą znać tego klienta i ten stan. Integracja, która przy koszyku pyta obce API, nie wyjdzie w teście samej strony głównej. Dlatego nie zaczynamy od wymiany hostingu na podstawie jednego zrzutu.

Baselinker, stany i ceny

Baselinker spina zamówienia, marketplace’y i magazyn. W WooCommerce boli nie sam fakt połączenia, tylko sposób odświeżania. Pełna synchronizacja stanów i cen, która przy każdym przebiegu dotyka każdego produktu, robi tyle zapisów, ile macie SKU, nawet gdy zmieniło się dwanaście sztuk. Każdy zapis potrafi unieważnić cache produktu i dołożyć zadanie na później.

Drugi wzorzec to pytanie o stan przy wkładaniu do koszyka. Jedno jest niczym. Tysiąc naraz, gdy feed właśnie chodzi, zatyka sklep i limit po drugiej stronie. Synchronizacja ma iść w tle, tylko dla pozycji, które się zmieniły. Zamówienia zostają. Nazywamy, który kierunek jest ciężki i jak często naprawdę musi chodzić, żeby nikt nie kupił sztuki, której nie ma.

Import XML i CSV z hurtowni

Błąd zaczyna się, gdy duży plik z hurtowni jest przetwarzany jak mały: XML w trakcie wizyty, zdjęcia jedno po drugim, opis ruszany przy każdej cenie i rewizje, których nikt nie czyta.

Do widoczności dochodzi drugi koszt. Feed lubi jeden opis na całą linię produktów. Import, który nadpisuje pole opisu, kasuje zdanie dopisane ręcznie pod numer OE. Zostaje cienka karta i duplikat, jeśli ta sama część przyszła z dwóch plików pod dwoma adresami. Dlatego import dzielimy: cena i stan mogą się aktualizować często, treść i adres produktu nie mogą być przypadkiem przy każdej synchronizacji.

Jak to wygląda w sklepie z częściami, z Inter Cars, Auto Partnerem albo TecDoc, jest na stronie pozycjonowania sklepu motoryzacyjnego. Tutaj zostajemy przy mechanice: kolejka, częstotliwość, to, co wolno nadpisać.

TecDoc na witrynie, nie tylko w panelu

Katalog dopasowania jest przydatny w warsztacie i w sklepie. Robi się drogi w milisekundach, gdy każde otwarcie kategorii czeka na odpowiedź zewnętrznego API, zanim wyśle HTML. Klient widzi pusty filtr. Robot Google widzi wolną odpowiedź albo stronę, która składa się dopiero w przeglądarce i nie ma czego zindeksować.

Lżejszy układ jest taki: dopasowanie, którego potrzebuje lista produktów, leży u Was w bazie albo w pamięci podręcznej odświeżanej w tle. Na froncie zostaje wybór pojazdu, nie pobieranie całego drzewa przy każdym wejściu. Licencja TecDoc zostaje między Wami a dostawcą danych. My nie doliczamy jej do widełek i nie udajemy, że jest częścią hostingu.

WP-Cron i Action Scheduler

WooCommerce i wtyczki integracji składają robotę w Action Schedulerze: wysyłka, webhooks, import, czyszczenie. WP-Cron, jeśli nie ma obok prawdziwego harmonogramu systemu, odpala te zadania przy wizycie. Ciężki import potrafi wtedy wejść w ten sam proces, który rysuje stronę klientowi. Objaw to losowe, długie wejścia, nie stały wolny layout.

W panelu widać kolejkę: oczekujące, nieudane, zakończone. Tysiące nieudanych prób tego samego haka znaczą, że integracja powtarza błąd i przy okazji zajmuje bazę. Sama lista zadań bywa wtedy wolna, bo tabela puchnie. Diagnoza zaczyna się od nazwy haka i od tego, jak często jest dokładany, nie od zakupu mocniejszego planu.

Poprawka na tym samym serwerze to zwykle trzy rzeczy. Zadanie cykliczne ma budzić osobny harmonogram, nie pierwsza wizyta. Nieudane zadania mają przestać kręcić się w kółko, gdy błąd jest po stronie klucza API albo pliku. Zakończone wpisy mają być sprzątane, żeby panel dało się otworzyć. To nie jest wymiana hostingu. To jest porządek w kolejce, którą sklep już ma.

Wolny koszyk i wolny panel

Koszyk WooCommerce dopytuje o fragmenty strony, żeby pokazać liczbę sztuk i mini-koszyk. Każda wtyczka, która dopina się do tego pytania, dokładając stan z zewnątrz, mnoży czas. Klient czuje to jako przycisk, który nie reaguje. W danych o szybkości widać to jako INP albo jako długie żądanie koszyka, nie jako „wolny baner”.

Panel boli w innym miejscu: lista zamówień i zapis produktu, gdy synchronizacja trzyma blokadę albo dopisuje metadane hurtem. Osoba, która pakuje paczkę, czeka na listę. To też jest szybkość sklepu, choć żaden test strony głównej jej nie pokaże. Przy audycie otwieramy koszyk, kartę i listę zamówień w godzinie, w której import naprawdę chodzi, nie w niedzielę nad ranem.

Diagnoza bez zmiany hostingu

Kolejność jest stała. Najpierw adres, który muli: karta, kategoria, koszyk albo panel. Potem lista tego, co w tym momencie pracuje: zapytania do bazy, wywołania HTTP na zewnątrz, zadania Action Scheduler, plik importu. Szukamy jednego albo dwóch haków, które zjadają czas, nie „ogólnie wtyczek”.

Dopiero gdy te haki są ciche, a sklep nadal nie wyrabia na zwykłym ruchu, rozmowa schodzi na serwer: wersja PHP, limit procesów, dysk. Często okazuje się, że hosting był wystarczający, a co pięć minut budził się pełny XML. Dlatego w ofercie tej strony przeprowadzka nie jest pierwszym punktem. Jest ostatnim, i tylko jeśli pomiar po poprawkach nadal na nią wskazuje.

Samą metodę pomiaru LCP, INP i CLS, bez wiązania jej z integracją, opisuje usługa optymalizacji szybkości. Tutaj pomiar jest pretekstem, żeby znaleźć połączenie, które ten czas zjada.

Co poprawiamy i jak to siedzi przy SEO

Poprawka zależy od haka: rzadsza synchronizacja, zapis tylko zmienionych stanów, zdjęcia w tle zamiast w żądaniu klienta, TecDoc czytany z lokalnej tabeli, cron zdjęty z wizyty. Przy okazji import ma przestać kasować opisy i dublować numery. Wolna karta i cienki opis to często ten sam plik.

To spina się z integracjami API i z automatyzacją. Integracja jest rurą. Automatyzacja jest decyzją, co tą rurą płynie i jak często. Szybkość jest sprawdzianem, czy rura nie leje się na klienta. Nie spinamy wszystkiego, co ma wtyczkę. Jeśli dokumentacja API jest dziurawa, mówimy to przed wyceną. Widełki niżej są przykładowe: dwa kanały w Baselinkerze to inna robota niż jeden plik raz na dobę.

Czego nie robimy

  • Wymiany hostingu jako pierwszej rady, zanim wiadomo, który import budzi się przy kliencie.
  • Wyłączania synchronizacji stanów „żeby było szybko”, kosztem sprzedaży sztuki, której nie ma.
  • Obietnicy, że jedna wtyczka cache załatwi koszyk, panel i import naraz.
  • Gwarancji konkretnego wyniku w punktach PageSpeed. Celem jest krótsza droga do koszyka i kolejka, która nie wchodzi w wizytę.

Widełki przykładowe

Te same kwoty co na cenniku. To nie jest oferta do faktury. Prawdziwa liczba powstaje po obejrzeniu sklepu: ile ma kart i skąd idą stany.

  • Sam audyt

    od 1 800 zł netto

    Dokument z priorytetami. Wdrożenie zostaje u Was.

  • Szybkość

    od 2 800 zł netto, jednorazowo

    Pomiar, poprawki i ten sam pomiar po zmianach.

  • Integracje API

    od 3 500 zł netto, jednorazowo

    Gdy import albo synchronizacja jest częścią roboty.

Cały cennik

Dalej w tej robocie

Pytania

Czy Baselinker zawsze spowalnia WooCommerce?

Nie zawsze. Samo przekazanie zamówienia bywa lekkie. Ciężka robi się pełna synchronizacja stanów i cen na całym katalogu, powtarzana często, albo pytanie o stan w trakcie dodawania do koszyka. Dlatego nie wyłączamy narzędzia z zasady. Sprawdzamy, który kierunek i która częstotliwość zjadają czas.

Czy da się to naprawić bez zmiany hostingu?

W większości sklepów, które widzimy przy tej rozmowie, tak: kolejka, częstotliwość importu, zapis tylko zmienionych pól i zdjęcie zewnętrznego zapytania z wizyty klienta. Hosting ruszamy, gdy po tych poprawkach pomiar nadal pokazuje brak procesów albo dysku. Nie zaczynamy od przeprowadzki.

Czy import XML trzeba wyłączyć, żeby sklep był szybki?

Nie. Stany i ceny mają się zgadzać. Import ma przestać przetwarzać cały plik jak przy pierwszej instalacji i ma przestać nadpisywać opisy. Zdjęcia nie powinny ściągać się w żądaniu, które otwiera klient. Częstotliwość dobieramy do tego, jak często hurtownia naprawdę zmienia stan.

Co ma wspólnego wolna integracja z pozycjonowaniem?

Karta, która czeka, gorzej znosi i klienta, i robota. Import, który nadpisuje opis i dubluje numery, psuje treść, na którą liczy SEO. Dlatego ta robota siedzi przy pozycjonowaniu, a nie tylko przy „przyspieszaniu stron”. Sam zielony wynik testu, przy cienkich kartach z feedu, nic nie sprzedaje.

Od czego zacząć i ile to kosztuje?

Od adresu sklepu i informacji, skąd idą stany: Baselinker, plik, TecDoc, coś innego. Bezpłatne spojrzenie mówi, czy jest o czym rozmawiać. Przykładowe widełki: audyt od 1 800 zł netto, szybkość od 2 800 zł netto, integracja od 3 500 zł netto. Wycena jest po obejrzeniu kolejki, nie z tej strony.