KREATYWNI

... Z NATURY

Więcej o nas

NASZA OFERTA

co robimy ?

Od momentu założenia w 2004 roku, rozwija się bardzo dynamicznie. Dzięki ciągłemu rozszerzaniu świadczonych przez nas usług, stale powiększamy grupę zadowolonych klientów. To co przekonało naszych klientów to nasza elastyczność i uwzględnianie ich indywidualnych potrzeb.

Strony internetowe
optymalizacja seo

Strona WWW jest głównym źródłem informacji i interaktywnym środowiskiem kontaktu z klientem.

Czytaj więcej

SKLEPY INTERNETOWE PRESTASHOP

Nowoczesne, funckjonalne i łatwe w obsłudze rozwiązanie e-commerce dostosowane do Twoich potrzeb.

Czytaj więcej

SEO /SEM
audyty

Zwiększanie widoczności strony, podniesienie pozycji w wyszukiwarce Google. Pozycjonowanie sklepów internetowych - SEO PrestaShop. Audyty SEO.

Czytaj więcej
Strona WWW jest głównym źródłem informacji i interaktywnym środowiskiem kontaktu z klientem. Jest to równocześnie najtańszy sposób zareklamowania się szerokiemu gronu klientów i kontrahentów. Jakie funkcje powinna spełniać Twoja strona internetowa?

PORTFOLIO

Nasze prace

Wyszukiwarka PrestaShop

Opis działania oraz opis obsługi wyszukiwarki PrestaShop w panelu administratora z wyjaśnieniem poszczególnych składowych.

Wyszukiwarka źle (nie) działa – problem z wyszukiwarką PrestaShop

W niektórych przypadkach wyszukiwarka PrestaShop zwraca wyniki nie takie jak byśmy oczekiwali. Poukładane na pierwszy rzut oka nieprecyzyjnie/bez logicznego sensu.
Określane jako:
problem z wyszukiwarką produktów PrestaShop
– wyszukiwarka PrestaShop nie działa
– wyniki wyszukiwania PrestaShop są nie precyzyjne
– wyniki wyszukiwania są bez sensu (lub temu podobne zwroty).

Postaramy się wytłumaczyć działanie wyszukiwarki PrestaShop, żeby lepiej zrozumieć dlaczego i jak układają się produkty. Dlaczego produkty które nie powinny się pojawiać – pokazują się na pierwszym miejscu. Pomimo, że wg. nas produkt nie ma nic wspólnego z kryteriami jakie wprowadziliśmy do wyszukania.
W poniższym opisie podeprzemy się przykładem strony jednego z klientów – gdzie po wpisaniu frazy „tusz hp” produkty „tusz canon” zaczęły pojawiać się wyżej niż – tusze hp.
Na poniższym zdjęciu prezentujemy przykładowy screen wyników wyszukiwania.

 

Specyfika sklepu internetowego:
– Branża części komputerowych. Liczba pozycji asortymentowych wynosi ponad 9500 pozycji.
– Sklep zintegrowany z Wf-mag / Wapro mag.
– W nazwach produktów pojawiają się nazwy modeli – tak by można było łatwo odszukać produkt w programie do faktur.

Opis problemu wyszukiwania:
Po wpisaniu frazy „tusz hp”
Wyszukiwarka zwraca na 1134 rekordów.
Z czego w bazie mamy raptem 441 wszystkich tuszy do różnych drukarek.
A tuszy do HP 180 rekordów.
Wyniki zwrócone przez wyszukiwarkę PrastaShop są kompletnie odmienne z naszymi oczekiwaniami.
Tonery innych modeli pomieszane z różnymi produktami. Dopiero na którejś pozycji pojawiają się tusze do drukarki hp których szukamy.

Jak działa wyszukiwarka

Jak działa wyszukiwarka Prestashop:

Przyjrzyjmy się zapytaniu SQL wysyłanemu do bazy MySQL – podczas wyszukiwania produktu w sklepie internetowym na silniku PrestaShop:

SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity,
pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
image_shop.`id_image` id_image, il.`legend`, m.`name` manufacturer_name ,(
SELECT SUM(weight)
FROM ps_search_word sw
LEFT JOIN ps_search_index si ON sw.id_word = si.id_word
WHERE sw.id_lang = 1
AND sw.id_shop = 1
AND si.id_product = p.id_product
AND (sw.word LIKE '%tusz%' OR sw.word LIKE '%hp%')
) position,
DATEDIFF(
p.`date_add`,
DATE_SUB(
"2019-12-02 00:00:00",
INTERVAL 30 DAY
)
) > 0 new
FROM ps_product p
INNER JOIN ps_product_shop product_shop
ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)
INNER JOIN `ps_product_lang` pl ON (
p.`id_product` = pl.`id_product`
AND pl.`id_lang` = 1 AND pl.id_shop = 1
)
LEFT JOIN ps_stock_available stock
ON (stock.id_product = `p`.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 )
LEFT JOIN `ps_manufacturer` m FORCE INDEX (PRIMARY)
ON m.`id_manufacturer` = p.`id_manufacturer`
LEFT JOIN `ps_image_shop` image_shop FORCE INDEX (id_product)
ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1)
LEFT JOIN `ps_image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = 1)
WHERE p.`id_product` IN (45,46,48,49,50,51,52,53, [USUNIĘTE ŻEBY POPRAWIĆ CZYTELNOŚĆ ZAPYTANIA] ,9403,9404)
GROUP BY product_shop.id_product
ORDER BY position desc
LIMIT 0,24

Możemy odczytać, że pozycje są układane w sposób malejący (ORDER BY position desc) wg. kolumny wynikowej position, która jest sumą wag które narzuciliśmy w panelu administracyjnym naszego sklepu internetowego : Konfiguruj->Preferencje->Szukaj->Waga.

Dla standardowego zapytania SQL (Prestashop 1.7.5.1) zwraca wyniki jak poniższa tabela:

W naszym przypadku najwyższa wartość to 102 (niestety produkt nie jest tuszem – wyszukiwarka prestashop zwróciła na pierwszym miejscu toner).
Dzieje się tak dlatego, że wyszukiwarka prestashop buduje indeks do wyszukiwania. W tabeli ps_search_word znajdują się wszystkie słowa występujące w bazie produktów. Ilość tych słów jest ograniczana minimalną długłością liter występujących w słowie. Wartość można zdeklatować w Konfiguruj->Preferencje->Szukaj->Szukaj . Domyślnie parametr jest ustawiony na 3 litery.W naszym przypadku słowo „HP” które ma 2 litery było by pomijane przy wyszukiwaniu.
Zweryfikujmy zatem tabelę ps_search_index odpytując bazę MySQL.

Jak widać zapytanie w dopasowaniu przybliżonym (LIKE '%hp%’) nasz produkt zwrócił aż 14 rekordów dając wartość 10*9+3*1=102.
Pomimo, że produkt nie jest tuszem tylko tonerem jest na pierwszym miejscu. Ponieważ w nazwie (dla którego wagę mamy ustawioną na najwyższej randze) słowo „hp” w dopasowaniu przybliżonym pojawiło się aż 10 razy. Dając najwyższą punktację i stawiając w naszym przypadku „toner” przed „tuszem” (który pasuje do mniejszej liczby modeli).

Precyzyjna wyszukiwarka PrestaShop

Rozwiązanie w naszym przypadku było dość oczywiste.
Zapytanie SQL musimy zmodyfikować tak żeby w nazwie produktu musiała pojawić się lista słów w dopasowaniu przybliżonym. Okazało się wystarczające.

Wyszukiwarka PrestaShop vs. Google

Aktualnie (bez modyfikacji pliku Search.php) PrestaShop na najwyższej pozycji stawia produkt którego wyszukiwane słowo kluczowe powtórzyło się najwięcej razy przy uwzględnieniu wagi słowa kluczowego.  Kiedyś w podobny sposób ranking budowała wyszukiwarka Google – ale z oczywistych przyczyn zostało to zabronione: https://support.google.com/webmasters/answer/66358?hl=pl .

 

Myślniki „-” w indeksach produktów / numerach katalogowych

W przypadku występowania myślnika lub myślników (znaku – [minusa]) wyszukiwarka PrestaShop dzieli słowo w miejscu występowania myślnika i zaczyna przeszukiwanie bazę dla zestawu fraz.
Dla przykładu jeżeli szukamy produktu o indeksie:
AAA-11111
Zostanie przeszukana baza dla takich słów kluczowych: AAA lub 11111 lub AAA11111 lub AAA-11111 .
Dlatego jeśli chcemy wyszukiwać precyzyjniej produkty po indeksie/numerze katalogowym produktu musimy wprowadzić odpowiednie obostrzenia na pole reference tabeli ps_product w przeciwnym razie możemy spodziewać się w wynikach wyszukiwania produktów o indeksach:
AAA-22222
BBB-11111
AAA-11111
W kolejności zgodnej ze zdefiniowanymi wagami wyszukiwarki.

Rozwiązanie:
– Do zapytania SQL można dodać treść oryginalną z myślnikiem odwołującą do pola reference w zapytaniu przybliżonym do wyrażenia.
– Za komentować w pliku PHP kod odpowiadający za przekształcenie słowa z myślnikiem.

Konfiguracja wyszukiwarki PrestaShop

Konfiguracja wyszukiwarki w PrestaShop nie jest niczym skomplikowanym. Po zalogowaniu do panelu administracyjnego sklepu należy przejść do sekcji konfiguruj wybrać Preferencje->Szukaj.
Widoczne sekcje zostaną omówione od samego dołu bo wg. nas w tej kolejności wartości powinny być ustawiane w momencie pierwszej konfiguracji.

Waga poszczególnych pól dla miejsc gdzie pojawiają się słowa kluczowe do wyszukiwania

W tym miejscu deklarujemy co jest dla nas najważniejsze.
Do wyboru mamy:

  1. Waga nazwy produktu
  2. Waga indeksu
  3. Waga krótkiego opisu
  4. Waga opisu
  5. Waga kategorii
  6. Waga marki
  7. Waga tagów
  8. Waga atrybutów
  9. Waga cech

Przykład obliczania przy założeniu że wartość Waga nazwy produktu będzie równa 1, Waga indeksu = 6, Waga krótkiego opisu = 8, szukanej frazy „hp 1010”. Dla bazy posiadającej rekordy:

  1. [nazwa] hp 1010 | [indeks] druk-hp1010-new | [krótki opis] Super drukarka ekonomiczna
  2. [nazwa] kabel usb | [indeks] kab-usb-3m | [krótki opis] Pasuje do HP 1010

To drugi rekord będzie pierwszy ponieważ fraza pojawiła się w polu o największej wadze. Za słowo hp – 8 + słowo 1010 – 8 = 16 [pkt] . Pierwszy rekord otrzyma za nazwę hp = 1[pkt] + 1010 = 1[pkt] oraz za indeks (przy założeniu wyszukiwania przybliżonego) hp = 6[pkt] + 1010 = 6[pkt]  co nam łącznie daje 14.

14<16
Zgodnie z ORDER BY position desc opisanej w sekcji jak działa wyszukiwarka PrestaShop to kabel USB pojawi się wyżej niż Drukarka HP 1010 – dlatego tak ważne jest odpowiednie dobranie wag w zależności do rodzaju treści jaki znajduje się w bazie danych sklepu internetowego.

 

Sekcja szukaj

  1. Szukaj używając części słowa
  2. Wyszukaj dopasowując zakończenia słowa
  3. Minimalna długość słowa (w znakach)
  4. Słowa zabronione

Ad1. Szukaj używając części słowa – wartość zdeklarowana na TAK odpowiada za modyfikację zapytania SQL w jak na przykładzie (sw.word LIKE '%hp%' OR ...) Baza na zapytanie „hp” zwróci hp1010 oraz hp 1010

Ad3. Minimalna długość słowa – w zależności od rodzaju produktów np. w przypadku producenta hp konieczne jest zmniejszenie domyślnej wartości trzech liter w słowie wyszukiwanym na dwie litery. W innym razie słowo w zapytaniu będzie pomijane.

Ad4. Słowa zabronione – Słowa które nie będą brały udziału przy wyszukiwaniu. Słowa nazw,opisów, … produktów – z uwzględnieniem wag większych od 0 są zapisywane do tabeli ps_search_word. Zostały wyszczególnione najpopularniejsze ale mogą pojawić się inne w zależności opisów i specyfiki danej bazy. Załóżmy, że nie wykluczylibyśmy „do” przy wyszukaniu frazy „rolka do hp” mógłby pojawić się opis produktu nie będącego rolką i nie będącą produktem hp ale w opisie słowo „do” zostało by użyte kilkanaście(kilkadziesiąt) razy. Warto rozważyć listę słów w oparciu o produkty które znajdują się w sklepie.

Przebuduj indeks wyszukiwarki

Produkty będą wyszukiwane pod warunkiem, że są w indeksie wyszukiwania tabeli ps_search_index w naszym przypadku dla 9500 produktów baza ma 250 000 rekordów (pomimo że produkty nie mają jeszcze opisów). Każde słowo z nazwy, indeksu, opisu – które spełnia nasze parametry powinno się tam znaleźć. Przykład zapytania w którym zostaje odpytana bazę o wielkość sumy wartości dla słowa przedstawia akapit Jak działa wyszukiwarka PrestaShop.
Co należy pamiętać:
– Jeśli wyszukiwarka nie wyszukuje produktów – należy zacząć od przebudowy indeksu wyszukiwarki.
– Jeśli oferta zmienia się często – zadanie przebudowy indeksu można wywołać w zadaniach CRON serwera Apache o określonych porach w zależności od potrzeby (raz dziennie, co godzinę, pół godziny).

Prawdopodobnie dla systemów zintegrowanych z zewnętrznymi zasobami przebudowa indeksu będzie wywoływana automatycznie w momencie synchronizacji produktów.

Podsumowanie

Wyszukiwarka PrestaShop jest przewidywalna i powtarzalna. Dobre przemyślenie nazw i opisów pozwoli na precyzyjne wyszukiwanie produktów. W przeciwnym razie zawsze można zmodyfikować algorytm PrestaShop – tak aby spełniał oczekiwania. Należy pamiętać, że nie jest to wyszukiwarka Google. Nie potrafi przewidzieć naszych intencji czy zachowań behawioralnych.

ABC optymalizacji stron WWW

W dzisiejszych czasach nie wystarczy samo posiadanie strony internetowej. Trzeba dołożyć starań, by strona pojawiała się wysoko w wynikach wyszukiwarki, inaczej przepadnie w czeluściach internetu. Temu właśnie służy optymalizacja stron WWW, czyli takie ich ulepszenie, by były atrakcyjne dla wyszukiwarek

Optymalizacja stron WWW – struktura strony

Struktura strony to jeden z aspektów brany pod uwagę przez algorytmy wyszukiwarek. Jeśli strona jest odpowiednio zaprojektowana, daje jej to większe szanse przebicia się. Na pewno trzeba zwrócić uwagę na:

Title, czyli tytuł – najlepiej, jeśli będzie zaczynał się od słowa lub frazy kluczowej. Dodatkowe punkty uzyskuje się za długość tytułu, najlepiej, jeśli będzie miał około 70 – 75 znaków. Tytuł powinien wyglądać naturalnie, być zwięzły i unikalny. Stosowanie schematycznych, powtarzających się tytułów nie jest dobrze widziane przy pozycjonowaniu stron.

Słowa kluczowe – to od nich w przeważającej mierze zależy, czy strona będzie się dobrze pozycjonowała. Dobór słów kluczowych nie powinien być dziełem przypadku, muszą być one tak dobrane, by odzwierciedlały treści na stronie, czyli by potencjalny klient znalazł na stronie dokładnie to, czego szuka. Słowa kluczowe nie powinny być zbyt ogólne, ale też nie mogą być tymi, które są rzadko wpisywane w wyszukiwarkę. Dobierając słowa kluczowe, warto skorzystać z dostępnych w sieci bezpłatnych narzędzi.

Nagłówki H1 i H2 – to dzięki nim tekst jest bardziej czytelny i przejrzysty. Formatu H1 używa się do tytułu, a H2 do śródtytułów strony. W razie potrzeby (np. przy długim i rozbudowanym tekście) można wprowadzić także nagłówki od H3 do H6.

Strong, czyli pogrubienie najbardziej istotnych treści i słów kluczowych nie tylko jest wabikiem dla wyszukiwarki, ale i ułatwieniem dla czytającego. Dzięki opcji strong tekst staje się bardziej przejrzysty, dlatego warto wyróżniać nie tylko słowa kluczowe, ale także te fragmenty treści, które są dla czytającego najistotniejsze.

Linkowanie wewnętrzne – ułatwia poruszanie się po stronie (dostępne z każdej podstrony menu oparte na linkach tekstowych to także linkowanie wewnętrzne) oraz pomaga czytelnikom w wyszukiwaniu potencjalnie interesujących treści

Optymalizacja stron WWW – budowanie treści

Czasy, w których wyszukiwarki sprawdzały jedynie obecność słów kluczowych i na tej podstawie dokonywały pozycjonowania stron, na szczęście odeszły do przeszłości. Dziś słowa kluczowe muszą być opakowane w wysokiej jakości treść, zawierać przydatne dla czytelników informacje.

Badania wskazują, że przeciętny internauta nie czyta w całości tekstu, który ma więcej niż 5000 znaków, a największą uwagę przyciąga początek i koniec tekstu. Tam też najlepiej umieścić najważniejsze treści. Z kolei dla wyszukiwarki istotne jest, by tekst miał minimum 300 słów, co daje około 2000 znaków.

Poza treścią liczy się oczywiście opakowanie, dlatego trzeba pamiętać o śródtytułach, wyróżnieniach, wyliczeniach, akapitach, czyli wszystkim tym, co sprawia, że tekst się dobrze czyta.

Tym, czego trzeba unikać jak ognia, jest powielanie treści, czyli tzw. duplicate content. Wyszukiwarki traktują takie powtórzenia jako plagiat i automatycznie obniżają wiarygodność domeny, a co za tym idzie, jej pozycja w wynikach wyszukiwania spada. Nawet jeśli tematyka strony wydaje się odpowiednia do powielania pewnych fragmentów tekstu (np. opisy niemal identycznych produktów w sklepie), warto zadbać o jego zróżnicowanie. Dużym błędem jest także kopiowanie tekstów z cudzych stron i zamieszczanie ich u siebie. Wyszukiwarki wyżej pozycjonują te strony, na których tekst ukazał się jako pierwszy. Oryginalna, wartościowa treść jest tym, co nie tylko zapewni wysoką pozycję w wyszukiwarce, ale także przyciągnie czytelników

Optymalizacja stron WWW – wersja mobilna strony

Gwałtowny rozwój urządzeń mobilnych wywarł wpływ na budowę stron internetowych. Dziś nie wyobrażamy sobie strony internetowej bez jej wersji mobilnej. Mobilna wersja strony pozwala na łatwiejsze i szybsze wyszukiwanie treści, oszczędza transfer danych (ważne, gdy nie korzystamy z WiFi) i czas – wersje mobilne ładują się szybciej. Większość stron podchodzi dość liberalnie do potrzeb użytkowników i udostępnia możliwość otwarcia pełnej wersji strony na tablecie lub smartfonie, niemniej jednak brak wersji mobilnej skutkuje znacznym spadkiem w rankingu najlepiej pozycjonowanych stron.

Jakość wersji mobilnej można sprawdzić tutaj. Darmowe narzędzie od Google nie tylko sprawdzi, czy strona posiada wersję mobilną, ale także, w razie wystąpienia problemów, zasugeruje, co można zrobić, by tę wersję ulepszyć

Screen narzędzia udostępnionego przez google do wykonywania testów wersji mobilnej strony WWW

Optymalizacja stron WWW – prędkość ładowania strony

W internecie czas jest bardzo cenny. Tu nawet ułamki sekund decydują o komforcie lub zniecierpliwieniu internautów. Wolno ładujące się strony wywołują negatywne reakcje, często internauci rezygnują z korzystania z nich nawet wówczas, gdy spodziewali się znaleźć interesujące treści. Podobnie nieufnie do wolno ładujących się stron podchodzą algorytmy wyszukiwarek, automatycznie obniżając pozycję domeny.

Prędkość ładowania strony można sprawdzić tutaj. To kolejne bardzo przydatne narzędzie od Google, które szybko i bezpłatnie zdiagnozuje problemy z szybkością ładowania strony i zasugeruje rozwiązania usuwające błędy, np. stosowanie obrazów w formatach nowej generacji, ładowanie obrazów poza ekranem, usunięcie nieużywanej części kodu CSS, eliminację zasobów blokujących renderowanie.

Screen z testu przeprowadzonego za pomocą narzędzia google page speed

W przypadku problemów lub pytań zapraszamy do kontaktu.

Fałszywe rejestracje nowych użytkowników w Prestashop.

W ostatnich latach zauważyliśmy, że pomimo stosowania Google reCAPTCHA v3, na sklepach opartych o PrestaShop 1.7 nadal pojawiają się automatyczne, fałszywe rejestracje użytkowników. Problem ten dotyczy coraz większej liczby instalacji, a boty – wykorzystując luki lub zachowania przypominające realnych użytkowników – są w stanie ominąć zabezpieczenia reCAPTCHA.

Aby skutecznie wyeliminować te nieprawidłowe działania, przygotowaliśmy własne rozwiązanie, które wdrażamy u klientów. Dziś udostępniamy je również bezpłatnie, aby wspomóc właścicieli sklepów borykających się z podobnym problemem.

TurnstileGate – dodatkowa warstwa ochrony kont użytkowników

TurnstileGate to lekki, niezależny moduł zabezpieczający proces rejestracji w PrestaShop 1.7.
Moduł stanowi uzupełnienie standardowych mechanizmów bezpieczeństwa i znacząco ogranicza możliwość automatycznego zakładania kont przez boty.

Najważniejsze korzyści dla sklepu:

  • Zwiększone bezpieczeństwo – ograniczenie rejestracji botów o niemal 100%.
  • Stabilność działania – niezależność od mechanizmów reCAPTCHA.
  • Niska waga i pełna kompatybilność z PrestaShop 1.7.
  • Brak ingerencji w core – bezpieczna aktualizacja i łatwa instalacja.

Problem

Od końca kwietnia zauważono ataki na sklepy PrestaShop, polegające na rejestrowaniu nowych fikcyjnych kont użytkowników. Konta te są zakładane przez boty w celu rozsyłania spamu. Po założeniu konta, ze sklepu jest wysyłany powitalny mail do klienta z potwierdzeniem rejestracji. Boty zamiast nazwiska podają link do strony, w ten sposób „przemycając” link w powitalnej wiadomości do końcowych użytkowników.

Przykład fałszywych użytkowników w panelu administracyjnym PrestaShop:

screen fałszywych userwów w prestashop
Fałszywi użytkownicy w panelu administracyjnym Prestashop

Pobierz:

https://pro-link.pl/download/turnstilegate.zip

Pokaż więcej projektów
Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020