SEO Friendly URL – czyli tzw. przyjazne linki są jednym kryteriów mogących wpłynąć na pozycję strony www w wyszukiwarce Google. Ich zastosowanie powoduje umieszczenie w adresie URL strony odpowiednio sformatowanego np. tytułu strony, czy nazwy produktu. Różnica w formatach linków jest następująca:
- standardowy URL – http://www.sklep.pl/produkt.php?id=123
- SEO Freindly URL – http://www.sklep.pl/buty-sportowe-niskie
Drugi link jak widać jest łatwiejszy do odczytania przez człowieka i od razu dostarcza przynajmniej hasłowej informacji dotyczącej zawartości danej strony www. Google „docenia” strony, które stosują takie linki, jako przyjaźniejsze użytkownikowi. Może zatem nadawać im wyższą pozycję w rankingu (oczywiście parametrów wpływających na ranking jest znacznie więcej).
Przedstawię tutaj krótki opis przykładowej funkcji w PHP pozwalającej na konwersję tekstu (tytułu, nazwy produktu) na odpowiednio sformatowany string, który może być wykorzystany w adresie URL, jako identyfikator konkretnej strony www.
Funkcja convertStringToSeoUrl() przyjmuje trzy parametry: $string, $limit, $separator.
<?php /** * Funkcja kodująca string do formatu 'friendly seo urls' * * @param string $string Ciąg znaków * @param int $limit Wyjściowa ilość znaków w stringu * @param string $separator Separator wyrazów w wyjściowym stringu * * @return string */ function convertStringToSeoUrl(string $string, int $limit = 255, string $separator = '-') : string { $string = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string); $string = strip_tags($string); $string = preg_replace('/[^a-zA-Z0-9 -]/', '', $string); $string = strtolower($string); $string = substr($string, 0, $limit); $string = trim($string); $string = preg_replace('/\s+/', $separator, $string); return $string; }//end convertStringToSeoUrl()
Użycie funkcji jest bardzo proste:
<?php $string = 'Buty plażowe damskie różowe'; print convertStringToSeoUrl($string); //wynik: buty-plazowe-damskie-rozowe
Powyższa funkcja jest rozpisana krok po kroku, tak aby unaocznić w prosty sposób operacje wykonywane na przetwarzanym stringu. Ewentualna dalsza optymalizacja jej działania należy już do programisty.
Chciałem jednak zasugerować, aby powyższe przetwarzanie było wykonywane w momencie zapisywania rekordów do bazy danych. Tworząc/edytując stronę, czy nowy produkt w momencie jej zapisu wykonujemy powyższą funkcję podając jak $string np. tytuł strony. Zapisywany jest w bazie, powiedzmy w kolumnie „seo_url”. Dzięki temu unikniemy konieczności kodowania i dekodowania linków ad hoc, w trakcie wyświetlania strony.
Warto również pamiętać o zadbaniu o to, aby przetworzony string, zapisywany do bazy danych był unikalny, jeśli nie będziemy w ramach adresu URL posługiwać się dodatkowym identyfikatorem strony. Przetworzony string będzie więc kluczem, po którym będziemy identyfikowali odpowiednie rekordy w tabeli.