Platformy
Jak dodać widget opinii Google na WordPress (3 sposoby, zmierzone)
Jeśli chcesz mieć opinie Google na stronie WordPress, masz trzy realne opcje: wtyczkę, snippet w motywie albo blok Custom HTML w edytorze. Wszystkie trzy w przeglądarce robią dokładnie to samo, bo każdy widget opinii na rynku to JavaScript działający po stronie klienta. Różnica jest w tym, co dzieje się na twoim serwerze, i tę różnicę da się zmierzyć.
Wersja skrócona: wtyczka dokłada PHP, które wykonuje się przy każdym wczytaniu strony i zwykle zapisuje kopie opinii w twojej bazie danych. Snippet dokłada dwa cache’owane pliki statyczne i nie dotyka niczego w WordPressie. Jeśli nie potrzebujesz akurat opinii wewnątrz treści WordPressa (do wyszukiwania na własnej stronie albo do własnej pętli szablonu), snippet jest lżejszym wyborem.
Trzy sposoby, obok siebie
| Wtyczka | Snippet w motywie | Blok Custom HTML | |
|---|---|---|---|
| Gdzie żyje kod | wp-content/plugins | footer.php w motywie potomnym albo wtyczka do code snippets | Wewnątrz jednej strony albo wpisu |
| PHP wykonywane przy każdym wczytaniu | tak | nie | nie |
| Wiersze zapisywane w bazie danych | zwykle tak (cache opinii) | nie | nie |
| Przetrwa aktualizację motywu | tak | tylko w motywie potomnym | tak |
| Wymaga admina do dotknięcia kodu | nie | tak | nie |
| Działa tylko na jednej stronie | nie | nie | tak |
| Psuje się, gdy autor wtyczki znika | tak | nie | nie |
Ostatni wiersz ma większe znaczenie, niż ludziom się wydaje. Wtyczki do opinii to cmentarzysko: platforma zmienia API, wtyczka przestaje importować, a strona pokazuje trzyletnie opinie, dopóki ktoś tego nie zauważy. Widget pobierający dane z żywego endpointu zawodzi głośno zamiast po cichu, co łatwiej złapać.
Co widget faktycznie kosztuje
Zmierzyliśmy nasze własne pliki produkcyjne 26 lipca 2026, pobierając je tak, jak robi to przeglądarka, z włączonym Brotli:
| Plik | Nieskompresowany | W transferze (Brotli) |
|---|---|---|
justreview.js | 487 KB | 128 KB |
justreview.css | 110 KB | 15 KB |
Czyli strona płaci mniej więcej 143 KB transferu za dwa zapytania, oba serwowane z brzegu CDN z
długim czasem cache’owania, plus jedno zapytanie do naszego API o same dane opinii. Po stronie
WordPressa koszt jest zerowy: żadne PHP się nie wykonuje, żadne zapytanie nie trafia do wp_posts
ani wp_postmeta, i nic nie jest zapisywane w twojej bazie danych.
To jest uczciwa liczba, nie marketingowa. 143 KB to nie jest nic, ale to mniej niż pojedyncze zdjęcie hero na większości motywów WordPress, i jest to statyczne, cache’owalne i poza twoim serwerem. Wtyczka renderująca opinie po stronie serwera przenosi tę pracę z powrotem na twój hosting, przy każdym niecache’owanym wejściu.
Dlaczego nie odpytać API Google samemu
Bo jest limit, który zaskakuje większość deweloperów pierwszego dnia: publiczne Google Places API zwraca maksymalnie pięć opinii na miejsce, i nie ty wybierasz, które to będzie pięć. Dlatego tak wiele darmowych narzędzi “opinie Google” pokazuje dokładnie pięć opinii i ani jednej więcej. Żeby pokazać więcej, opinie muszą zostać zaimportowane i przechowywane, a to jest część wymagająca infrastruktury, nie popołudnia pracy.
Jest też drugi powód. Kiedy już zbudujesz integrację z Google, kolejnym życzeniem klienta zawsze jest Facebook, potem platforma branżowa, na której faktycznie mu zależy, potem marketplace, na którym sprzedaje. Jeśli sprzedajesz na Allegro przez WooCommerce, ten sam problem czeka na ciebie w wersji polskiej: osobno opisaliśmy widget opinii z Allegro na stronie. To za każdym razem inna integracja, z innym sposobem, w jaki może się wysypać.
Metoda snippetu, krok po kroku
To wersja, którą polecamy dla większości stron WordPress.
-
Zdecyduj, gdzie mają pojawić się opinie. Umieść kontener w szablonie albo w treści strony, tam gdzie widget ma się wyrenderować:
<div id="justreview-testimonials"></div> -
Załaduj widget raz, globalnie. W pliku
footer.phpmotywu potomnego, albo przez wtyczkę do code snippets wypisującą kod dowp_footer, dodaj:<link rel="stylesheet" href="https://justreview.co/widget/justreview.css"> <script defer src="https://justreview.co/widget/justreview.js"></script> -
Zainicjalizuj hashem swojego konta. Hash pochodzi z panelu JustReview, a tablica
servicesdecyduje, które podłączone źródła zasilają ten konkretny widget:<script> document.addEventListener('DOMContentLoaded', function () { JustReview.initTestimonials('YOUR_HASH', { config: { limit: 20, displaySlider: true, visibleSlides: 3, displayDate: true }, services: ['google', 'facebook'] }); }); </script> -
Sprawdź na stronie, która nie jest cache’owana. Otwórz stronę w oknie prywatnym i spójrz w konsolę przeglądarki. Pusty kontener bez błędu w konsoli prawie zawsze oznacza, że skrypt został zablokowany, nie że kod jest zły. Więcej o tym poniżej.
Pełna wersja copy-paste, łącznie z drogą przez edytor blokowy, jest w naszej dokumentacji instalacji dla WordPress.
Pięć powodów, dla których nic się nie renderuje
W supporcie widzimy to mniej więcej w tej kolejności.
1. Narzędzie zgód trzyma skrypt. Banery cookie z automatycznym blokowaniem (tryb auto
Cookiebota to popularny przykład) przepisują zewnętrzne tagi <script> na nieaktywne typy, dopóki
odwiedzający nie zaakceptuje. Widget nigdy się wtedy nie inicjalizuje dla większości odwiedzających,
którzy nigdy nic nie klikają. Sami trafiliśmy na to na własnej stronie. Jeśli twój widget opinii nie
ustawia cookies, oznacz tag, żeby narzędzie zgód zostawiło go w spokoju:
<script defer src="https://justreview.co/widget/justreview.js" data-cookieconsent="ignore"></script>
Sprawdź footprint sieciowy i storage własnego widgetu, zanim to zrobisz, i zapisz tę decyzję. “Nie ustawia cookies” to twierdzenie, które powinieneś umieć udowodnić, nie założyć.
2. Wtyczka do cache’owania albo minifikacji przestawiła twój kod. Autoptimize, WP Rocket i
podobne łączą i opóźniają inline’owe skrypty. Jeśli twoje wywołanie JustReview.init... wykona się
zanim biblioteka się załaduje, dostajesz JustReview is not defined w konsoli i pusty div. Wyłącz
inline’ową inicjalizację z łączenia albo opakuj ją w małą pętlę ponawiającą.
3. Kontener brakuje. Page buildery czasem usuwają nieznane atrybuty id, a blok Custom HTML
wewnątrz zwiniętego akordeonu może nie istnieć w DOM w momencie, gdy uruchamia się inicjalizacja.
4. Hash konta jest zły. Skopiowanie go ze starej karty albo z konta kolegi daje wywołanie, które wygląda poprawnie, ale nie zwraca danych.
5. Źródło jeszcze nie skończyło importu. Pierwszy import dużego profilu zajmuje czas. Jeśli API nie zwraca opinii, widget rysuje pustkę zamiast pustej ramki.
Gdzie go umieścić na stronie WordPress
Umiejscowienie decyduje o tym, czy widget w ogóle wykonuje jakąkolwiek pracę. Trzy miejsca faktycznie się sprawdzają, w tej kolejności.
Na stronie, gdzie zapada decyzja. Dla firmy usługowej to strona usługi, nie strona główna. Dla sklepu to strona produktu i koszyk. Opinie działają jak odpowiedź na obiekcje, więc należą obok samej obiekcji: ceny, formularza rezerwacji, przycisku “dodaj do koszyka”. Slider zaparkowany w stopce każdej strony to tylko dekoracja.
Tuż nad formularzem kontaktowym albo rezerwacyjnym. To najtańsza wygrana na większości stron WordPress, bo formularz to miejsce, gdzie odwiedzający się waha, a opinie odpowiadają na pytanie, które faktycznie zadaje: “czy ci ludzie się pojawią i zrobią robotę?”
Na osobnej stronie z opiniami, podlinkowanej z głównego menu. Ta ma dodatkową korzyść: to strona, którą możesz podlinkować z wycen, maili i profilu Google Business Profile, i jest indeksowalną treścią twojej witryny. Użyj tam widgetu typu strona z opiniami zamiast slidera, bo odwiedzający, którzy tam trafili, przyszli czytać, nie oglądać autoodtwarzającą się karuzelę.
Czego byśmy nie robili: wstawiania tego samego slidera w nagłówku każdego szablonu. Spycha to realną treść pod fold na mobile, a opinie przestają być czytane w momencie, gdy stają się meblem.
Jeśli chcesz zobaczyć wszystkie sześć typów widgetu obok siebie, zanim wybierzesz, są na stronie głównej JustReview, a limity wyświetlania per plan są na stronie cennika.
Który wariant faktycznie wybrać
- Snippet w motywie potomnym, jeśli chcesz opinii na całej stronie przy najmniejszym koszcie serwerowym. To domyślny wybór, który sami byśmy zrobili.
- Blok Custom HTML, jeśli opinie mają być tylko na jednej stronie docelowej, albo jeśli nikt w zespole nie czuje się pewnie przy edycji plików motywu.
- Wtyczka tylko wtedy, gdy potrzebujesz treści opinii zapisanej wewnątrz WordPressa, na przykład do pętli we własnym szablonie albo żeby były wyszukiwalne przez wyszukiwarkę własnej strony.
Jedna rzecz warta ustalenia od razu: nie planuj tylko pod Google. Każda firma, którą wdrażamy, zaczyna od Google i kończy podłączeniem przynajmniej jednego kolejnego źródła, bo Google to miejsce, gdzie ludzie patrzą, a inne platformy to miejsce, gdzie opinie już są. Cokolwiek zainstalujesz, sprawdź, czy da się dodać drugie źródło bez przebudowy.
Najczęstsze pytania
Czy potrzebuję wtyczki, żeby pokazać opinie Google na WordPressie?
Nie. Widget opinii to skrypt działający po stronie przeglądarki, więc dwulinijkowy snippet w motywie albo w bloku Custom HTML robi dokładnie to samo co wtyczka, bez uruchamiania żadnego dodatkowego PHP na twoim serwerze.
Ile opinii Google mogę wyświetlić?
Tyle, ile źródło opinii daje dla twojego profilu. Publiczne Google Places API zwraca maksymalnie pięć opinii na miejsce, dlatego narzędzia oparte na tym API pokazują tylko pięć. Widget, który importuje i przechowuje opinie, nie jest tym limitem związany.
Czy widget opinii spowolni moją stronę WordPress?
Dokłada dwa statyczne pliki do strony. Zmierzone na produkcji 26 lipca 2026, widget JustReview przesyła 128 KB JavaScriptu i 15 KB CSS w transferze z Brotli, oba cache'owane na brzegu CDN. Nie wykonuje żadnego PHP i nie odpytuje bazy danych twojej strony.
Dlaczego mój widget nic nie pokazuje po wklejeniu kodu?
W kolejności, jak najczęściej to widzimy: narzędzie zgód blokujące skrypt do momentu akceptacji cookies przez odwiedzającego, wtyczka do cache'owania albo minifikacji, która przestawia kolejność inline'owej inicjalizacji, brakujący kontener div na stronie, zły hash konta, albo źródło, które jeszcze nie skończyło importu.