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.