8

Optymalizacja platformy, której „nie da się” zoptymalizować

Każdy pozycjoner spotkał się z sytuacją, w której rekomendacje dot. optymalizacji on-site spotykały się z sakramentalnym „nie da się” wypowiadanym przez webmastera lub producenta CMS-a lub platformy e-commerce.

Ostatnio przyszło mi do głowy pewne rozwiązanie polegające na zastosowaniu własnego skryptu PHP, który po wdrożeniu odpowiednich przekierowań będzie pobierał, parsował i wyświetlał zoptymalizowaną wersję strony.

Opiszę problem na przykładzie popularnego sklepu DeeZee.pl, a konkretnie na przykładzie optymalizacji wyników wyszukiwania. W sklepie nie zablokowano indeksowania wyników wyszukiwania (obecnie w indeksie jest 1,8 tys. stron z wynikami), ale wyniki nie zostały zoptymalizowane. Wszystkie strony wyników zawierają takie same tytuły i opisy meta. Na stronach wyników wyszukiwania brakuje też nagłówków H1 (pasujący tekst znajduje się w znaczniku <em>).

Przykład:

Stan obecny:

URL: http://deezee.pl/product/search_products.html?q=czarne+botki

Tytuł: Modne buty, stylowe ubrania i obuwie damskie, sklep z butami i ubraniami, modne buty letnie i zimowe – DeeZee.pl

Meta description: Twój ulubiony sklep internetowy z obuwiem i ubraniami. Modne buty damskie i ubrania w atrakcyjnych cenach. Sprawdź nasze promocje i poczuj się jak Gwiazda!

Nagłówek (brak):

Na stronach z wynikami wyszukiwania brakuje nagłówków

Cel:

URL: http://deezee.pl/szukaj.php?q=czarne+botki

Title: Czarne botki w sklepie z ubraniami i butami DeeZee.pl

Meta description: Sprawdź nasze czarne botki w doskonałej cenie! Zapraszamy do sklepu DeeZee.pl! Modne buty damskie i ubrania w atrakcyjnych cenach. Sprawdź nasze promocje i poczuj się jak Gwiazda!

Nagłówek H1:

Zoptymalizowana wersja strony z wynikami wyszukiwania

1>Przekierowanie

Tu sprawa jest dość prosta, należy przekierować ruch ze skryptu /product/search_products.html do skryptu /szukaj.php z zachowaniem łańcucha zapytania (?q=…). W tym celu należy umieścić w pliku .htaccess następującą regułę:

2Pobieranie oryginalnego kodu HTML

Skoro żądanie trafia do naszego skryptu, zamiast do oryginalnego skryptu wyszukiwarki, musimy pobrać kod HTML strony wynikowej, aby następnie przetworzyć/zoptymalizować i wyświetlić jej zmodyfikowaną wersję.

Kod pobierający stronę źródłową:

3 Modyfikacja/optymalizacja kodu

Po pobraniu oryginalnej wersji kodu wystarczy podmienić interesujące nas elementy. Wykorzystujemy do tego celu następujące funkcje (oczywiście można to zadanie zrealizować na wiele różnych sposobów, a konkretne zmiany zależą od struktury stron generowanych przez dany CMS).

Optymalizacja H1:

Optymalizacja tytułu:

Optymalizacja meta description:

Wystarczy teraz wywołać te funkcje i wyświetlić zmodyfikowany kod HTML:

4 Przykłady

Skrypt wdrożyłem na serwerze VipServ: http://deezee.vipserv.org/szukaj.php?q=…

Poniżej kilka przykładów ilustrujących działanie opisanej metody. Zachęcam do testów z różnymi zapytaniami:

Oryginał:

http://deezee.pl/product/search_products.html?q=czarne+botki

Wersja docelowa:

http://deezee.vipserv.org/product/search_products.html?q=czarne+botki -> przekierowanie 301 -> http://deezee.vipserv.org/szukaj.php?q=czarne+botki

Oryginał:

http://deezee.pl/product/search_products.html?q=niebieska+torebka+na+ramię

Wersja docelowa:

http://deezee.vipserv.org/product/search_products.html?q=niebieska+torebka+na+ramię -> przekierowanie 301 -> http://deezee.vipserv.org/szukaj.php?q=niebieska+torebka+na+ramię

Zapraszam do dyskusji o tym rozwiązaniu i ewentualnych propozycji usprawnień.

Shares 0
Mikołaj Szczepaniak
 

Click Here to Leave a Comment Below 8 comments
Tomasz Kołkiewicz - 07/03/2014

Fajne rozwiązanie :) Nie trzeba grzebać w czyimś kodzie. Pojawia się tylko kwestia uruchomienia pod właściwym adresem sklepu. Jeśli zewnętrzny serwer obsługuje ten plik optymalizujący, to pojawia się kilka problemów – zmiana adresu sklepu na roboczy, aby prawidłowy adres zwracał kod przerobiony, dłuższy czas ładowania, no i czy z cookies nie będzie aby problemów?
Natomiast to rozwiązanie może się dobrze sprawdzać w sklepach instalowanych na serwerze. Wymaga tylko zbuforowania treści i obsłużenia jej przez inny plik startowy niż index.php. Czyli w zasadzie ingerencja w kod mogłaby się ograniczyć do htaccess, który kieruje wszystkie wywołania do pliku obsługującego optymalizację w locie :)
No i pozostaje jeszcze kwestia ewentualnych poprawek w plikach CSSie. Chyba, że załatwimy je inline.

Reply
    Mikołaj Szczepaniak - 07/03/2014

    W założeniu skrypt miałby być wdrażany na tym samym serwerze (pod tym samym adresem). W tym przykładzie zainstalowałem skrypt na innym serwerze tylko po to, aby zilustrować jego działanie.

    Reply
Andrzej - 07/03/2014

Czy takie rozwiązanie nie obciąży za bardzo serwera?

Reply
    hyh - 26/04/2014

    Dlaczego miałoby obciążać? Tak naprawdę kilka funkcji php dodatkowych jest uruchamianych i to tyle. Jak już ktoś pisze o obciążeniu to niech sprawdzi czy ma włączony cache wyników wyszukiwania ;)

    Reply
Ecommercowy - 10/03/2014

Grzebanie w kodzie platformy to raptem 15 minut roboty (z czego 10 sprowadza się do znalezienia odpowiedniego pliku z kodem, najczęściej w katalogu theme’a) – dlatego też nie sądzę, żeby rozwiązanie tutaj było wygodne. A na pewno nie jest optymalne, bo zmusza serwer do dodatkowej pracy (a przy wielu odwiedzinach jest to bardzo obciążające).

Reply
    Łukasz Rysiak - 10/03/2014

    Zgadzamy się, że gdy jest dostęp do kodu, takie rozwiązanie nie ma sensu, ale wpis powstał na bazie świeżych doświadczeń z platformami SaaS, gdzie tak podstawowe optymalizacje, pomimo normalnego płacenia dostawcy platformy za zmiany, wracało z odpowiedzią „nie da się”. Generalnie zawsze się da i powyższe rozwiązanie jest jakimś wyjściem, gdy zależy nam na optymalizacji platformy, pomimo negatywnej odpowiedzi działu dev. Do plików na serwerze raczej w 99% przypadków jest dostęp. Zwykle można też zmieniać plik .htaccess i dodać własne pliki wykonywalne. Tak, to rozwiązanie obciąży dodatkowo serwer, pewnie trzeba je stosować ostrożnie, ale minimalnym wysiłkiem pozwala w szczególnych przypadkach osiągnąć spodziewany efekt.

    Reply
damian - 16/04/2014

Pomysł fajny ale ja używałbym go do zaprezentowania klientowi czego może spodziewać po modyfikacji jego oprogramowania. Taka wersja demo przed i po.

Reply
Alex - 27/05/2014

Sami korzystamy ze sklepu internetowego na platformie RedCart , gdzie taki skrypt byłby wybawieniem dla wielu użytkowników. Admin większość zgłoszonych poprawek określa jako niemożliwe do wdrożenia – ale niestety również nie umożliwia innym skryptom dostępu do serwera – więc chyba dostępność sklepu w domenie głównej odpada. A może macie jakiś pomysł na obejście tego problemu?

Reply

Leave a Reply:

0 Shares