GlossaryOpinie
Migracja opinii (Review Migration)
Migracja opinii to przeniesienie istniejących opinii klientów sklepu z jednej aplikacji do opinii do drugiej, zwykle przez wyeksportowanie ich do pliku CSV i zaimportowanie go w nowej aplikacji, tak aby oceny, zdjęcia i gwiazdki w wynikach wyszukiwania, na które strona produktu już zapracowała, przetrwały zmianę oprogramowania.
Inaczej import opinii, przeniesienie opinii między aplikacjami, review migration
Opinie to jedyny zasób w sklepie na Shopify, którego nie da się odkupić: tysiąc opinii to zapis kilku lat zamówień, dlatego zmiana aplikacji do opinii waży więcej niż jakakolwiek inna zmiana w sklepie. Migracja to dwa zadania naraz. Jest przeniesienie danych, w którym wiersze opuszczają jedną bazę i trafiają do drugiej, i jest zdarzenie po stronie wyszukiwarki, w którym dane strukturalne stojące za twoimi ocenami w gwiazdkach przestają być drukowane przez jedną aplikację, a zaczynają przez drugą. Większość nieudanych migracji przewraca się na tym drugim zadaniu, bo pierwsze wyglądało na wykonane.
Eksport rzadko jest pełną kopią. Ocena, treść opinii, nazwa autora i pierwotna data przenoszą się niezawodnie. Cztery rzeczy często nie. Status zweryfikowanego kupującego zwykle wynika z tego, jak stara aplikacja dopasowywała opinie do własnych zamówień, a nie z przenośnej flagi w pliku, więc aplikacja docelowa albo przyjmuje kolumnę z weryfikacją, albo wyprowadza ją na nowo, dopasowując adresy email do zamówień w Shopify. Sprawdź, który wariant obowiązuje, zamiast zakładać, że oznaczenia same wrócą. Zdjęcia zwykle eksportują się jako adresy URL wskazujące na magazyn starej aplikacji, a nie jako pliki, więc działają tylko dopóki tamto konto żyje: pobierz je, zanim odinstalujesz. Odpowiedzi sprzedawcy leżą w osobnej tabeli i często w eksporcie ich po prostu nie ma. Pierwotne daty potrafią zostać po cichu zastąpione datą importu, co zeruje każdy sygnał świeżości, jaki opinie niosły.
Kolumna mapująca to miejsce, w którym migracje pękają bez ostrzeżenia. Aplikacje nie zgadzają się co do tego, jak opinia wskazuje produkt: jedne zapisują identyfikator produktu z Shopify, inne handle, jeszcze inne SKU, i żadne z tych trzech nie jest bezwarunkowo bezpieczne. Identyfikatory produktów są stabilne, ale nie przetrwają przebudowy katalogu. Handle są czytelne, lecz edytowalne, a produkt przemianowany dwa lata temu może nosić handle, o którego ustawieniu nikt już nie pamięta. SKU żyją na wariancie, nie na produkcie, więc opinię przypiętą do wariantu trzeba podnieść do produktu nadrzędnego, a puste SKU nie jest żadnym kluczem. Wybierz klucz, co do którego obie aplikacje naprawdę się zgadzają, i sprawdź ręcznie dziesięć produktów przed zaimportowaniem całego pliku.
Sam plik to zwykły CSV, jeden wiersz na opinię, z mniej więcej takimi kolumnami: identyfikator produktu, ocena, tytuł, treść, nazwa autora, adres email autora, data, status moderacji, a czasem flaga weryfikacji i lista adresów URL ze zdjęciami. Dwa szczegóły techniczne robią więcej szkody niż cokolwiek koncepcyjnego. Treści opinii zawierają przecinki i znaki końca linii, więc plik zależy od poprawnego cytowania i rozpada się, gdy jakieś narzędzie zapisze go po swojemu. A otwarcie eksportu w arkuszu kalkulacyjnym to sposób, w jaki SKU tracą wiodące zera, daty przepisują się na lokalny format, którego importer nie umie odczytać, a polskie znaki diakrytyczne zamieniają się w krzaki. Zachowaj nietknięty oryginalny plik jako kopię zapasową.
Luka w gwiazdkach w wynikach wyszukiwania to część, która kosztuje po cichu. Google nie przechowuje twoich ocen. Przy każdym crawlu odczytuje ze strony znaczniki AggregateRating i Review, więc gwiazdki istnieją tylko dopóki jakaś aplikacja je drukuje. Odinstaluj starą aplikację w poniedziałek, napełnij nową w czwartek, a każda strona odwiedzona w międzyczasie zgłasza produkt bez oceny. Powrót nie jest natychmiastowy: znaczniki muszą znów być aktywne, a strona ponownie zaindeksowana, w harmonogramie Google, nie twoim. Kolejność, która omija tę lukę, wygląda tak: zainstaluj i napełnij nową aplikację, gdy stara jeszcze renderuje, sprawdź poprawność znaczników na prawdziwych stronach produktów, dopiero potem usuń stary widget, tak by w każdej chwili aktywny był dokładnie jeden zestaw znaczników opinii. Dwa zestawy naraz to osobna wada.
Weź sprzedawcę na Shopify z ceramicznymi akcesoriami do kawy przelewowej: 68 produktów, 1 900 opinii z czterech lat, średnia 4,6. Eksport jest kluczowany na wewnętrznym identyfikatorze produktu starej aplikacji, którego nowa nigdy nie widziała, więc sprzedawca buduje tabelę przekładową z pliku CSV produktów Shopify i przepina wszystko na handle. 140 opinii należy do produktów od tego czasu połączonych albo wycofanych i nie ma gdzie wylądować, więc zostają wstrzymane, a nie doklejone na siłę do podobnego artykułu. Zdjęcia przychodzą jako linki do magazynu starej aplikacji, więc pobiera je, dopóki ta jest jeszcze zainstalowana, a kolumnę z pierwotną datą mapuje wprost, żeby importer nie ostemplował wszystkiego dniem przeprowadzki. Po imporcie nowy widget pokazuje 4,6 przy 1 760 opiniach, a różnica zgadza się dokładnie ze 140 osieroconymi wierszami, i to jest uzgodnienie, które mówi, że nic poza nimi nie zginęło. Stary widget zostaje aktywny jeszcze trzy dni, aż dziesięć stron produktów zostanie sprawdzonych pod kątem poprawnych znaczników.
Czasem uczciwą odpowiedzią jest nie migrować. Jeśli stara aplikacja nie daje eksportu, to nie jest migracja, tylko zaczynanie od zera, i warto zdecydować o tym świadomie, a nie odkryć to po odinstalowaniu. Przy kilkudziesięciu opiniach praca nad mapowaniem kosztuje więcej niż zebranie ich na nowo od ostatnich kupujących. Jeśli katalog był przebudowywany po tym, jak opinie powstały, identyfikatory mogą już nigdzie nie istnieć, a mapowanie, które działa w większości przypadków, przypisze część opinii do złych produktów w sposób bolesny do rozplątania później. Szczyt sezonu sprzedażowego to zły tydzień na przełączenie, bo koszt pustej strony produktu rośnie razem z ruchem. A jeśli powodem przeprowadzki jest to, że twoje opinie są niewidoczne dla wyszukiwarki, potwierdź, że aplikacja docelowa wpisuje je w kod strony, a nie zamyka w widgecie, którego crawler nie odczyta, bo inaczej migracja przenosi problem, zamiast go rozwiązać. Ten test dotyczy każdej aplikacji docelowej, łącznie z naszą.
Ten sam test rozstrzyga, jak potraktują cię potem silniki odpowiedzi AI. Kiedy ChatGPT, Perplexity lub Google AI Overviews ważą, czy produkt wart jest kupienia, pracują na treści opinii, którą potrafią pobrać, a migracja to moment, w którym ta treść jest najbardziej odsłonięta: daty przepisane, status weryfikacji utracony, odpowiedzi zgubione, tekst lądujący w widgecie, którego żaden crawler nie czyta. Zachowanie zapisu w całości to nie to samo co uczynienie go czytelnym. Sprawienie, by opinie, które już masz, były odczytywane, potwierdzane i cytowane przez wyszukiwarkę i wyszukiwanie AI, to osobna luka, którą wypełnia BeyondReviews, a migracja jest naturalnym momentem, żeby to naprawić, zamiast przenosić ten sam martwy punkt do kolejnej aplikacji.