Siema #seoinfo ! Dzisiaj ogarniamy meta title i meta description :)
Ruszyłem z optymalizacją GIMtravel, robię to na swojej lokalnej kopii, dopiero jak wdrożę zmiany w kodzie to wrzucę na produkcję. Co nie przeszkadza opisywać zmian od dzisiaj...
Teraz teoretycznie powinienem zacząć od tego jak tworzyć dobre title jak description... Jak skończę techniczne zmiany z gimtravel i nadpiszę produkcję to zrobię wpis o optymalizacji pod słowa kluczowe najważniejszych podstron, a teraz odsyłam Was do jednego z wielu poradników w necie :) ten jest przygotowany przez mojego dobrego kolegę i szczerze polecam - optymalizacja strony długa lektura wyczerpująca temat optymalizacji (nie tylko title i description).
Często spotykacie się z wytycznymi do wdrożenia konkretnych title i description na wybranych adresach, a na reszcie potrzeba ustawić tagi według jakiegoś schematu, żeby były unikatowe np.: title schemat - "nazwa produktu" - "nazwa firmy" "lokalizacja" przykład - Dysk twardy SSD Segate - Super Sklep Warszawa description schemat - "nazwa produktu" - "stały tekst" przykład - Dysk twardy SSD Segate - produkty w najlepszych cenach. Kliknij i sprawdź! itd. (oczywiście przykłady wzięte z kosmosu)
O ile nie ma problemu z wdrożeniem tych zmian na większości popularnych CMSów to niestety na własnych drutach bywa różnie. gimtravel ma w panelu możliwość ustawienia jednego title i description dla WSZYSTKICH podstron serwisu, co oczywiście jest wielkim błędem...
Jak sobie z tym radzimy?
1. Przerabiamy skrypt, dodajemy do panelu admina na widoku edycji wpisu/strony/oferty pole do uzupełnienia meta title i description.
Najlepsze rozwiązanie ale również wymagające najwięcej pracy. Stosowałem je dla: wielkich serwisów gdzie należy uzupełnić konkretne dane dla tak wielu podstron, że wygodniej nam podrasować skrypt, a uzupełnianie zlecić asystentowi. Druga opcja to jesteśmy emocjonalnie powiązani z serwisem i po prostu chcemy, żeby było wszystko dobrze zrobione - TAK to rozwiązanie jest wdrożone na gimtravel.pl
Niestety mija się z celem dokładne opisywanie jak zrobiłem to na gimtravel.pl bo każdy własny drut jest napisany inaczej i nie zadziała tutaj ctrl+c ctrl+v. Mogę podać schemat działania jak się do tego zabrać: - edycja widoku panelu - dodanie nowych pól do uzupełnienia - dodać wysyłanie danych z nowych pól do bazy danych - edycja bazy danych - dodanie kolumny na nowe dane - dodać pobieranie nowych danych z bazy - edycja widoku heada serwisu - podmiana zmiennej w $var i na nowe odpowiedniki
jeżeli nie masz technicznej wiedzy jak to zrobić albo zwyczajnie żal Ci czasu na stare gówno to zapraszam do punktu 2 ;)
2. Nadpisujemy zmienną w pliku widoku albo gdzieś wcześniej w skrypcie. Najczęściej wykorzystywany sposób przeze mnie na serwisach, które mają już sto lat, a właściciel nie chce zainwestować w nie nawet złotówki. Niestety czasami również na trochę fajniejszych serwisach trzeba było tak zrobić bo czas gonił...
Możemy zrobić osobny plik z nowymi title i description w switchu i includujemy go do skryptu albo jeżeli wdrażamy dosłownie parę adresów wstawiamy w plik widoku IFa na $SERVER['REQUESTURI'] == 'interesujący nas adres' (lenistwo! :P)
Przykładowy switch:
$uri = $_SERVER['REQUEST_URI']; switch($uri) { case '/o-nas': $title = 'Informacje o firmie - Super Sklep Warszawa'; $description = 'Strona z informacjami o firmie Super Sklep. Zapraszamy na nasz serwis...'; break; case '/oferta': $title = 'Najnowszy sprzęt komputerowy - Super Sklep Warszawa'; $description = 'Sprawdź nasze najnowsze super produkty...'; break; default: $title = $pageName.' - '.$siteName; $description = $pageName.' - produkty w najlepszych cenach. Kliknij i sprawdź!'; } przykładowy IF: {if $smarty.server.REQUESTURI == '/o-nas'}Informacje o firmie Super Sklep{else if $smarty.server.REQUESTURI == '/oferta'}Najnowszy sprzęt komputerowy - Super Sklep Warszawa{else}{$pageName} - {$siteName}{/if}
przykład specjalnie podałem dla SMARTY, bo niektórym się wydaje, że smarty nie ma ifów ;) oczywiście dla czystego php przerabiamy to na php if($SERVER['REQUESTURI'] == '/adres') {?tekstphp } else { ?tekst2php } ? (z uwagi, że to wykop to: tak można to zapisać w jednej lini z wykorzystaniem ':' '?' ;))
Nie masz czasu idź na łatwiznę
Jak w przykładzie wyżej można zobaczyć dla 'default', że nic nie stoi na przeszkodzie, żeby postarać się do heada wrzucić zmienne które mamy dostępne. Ameryki tutaj nie odkryję ale wdrażając zmiany po innych osobach często widziałem, że ktoś mieszał zmiennymi na maxa, a mógł po prostu wykorzystać np. zmienną z nazwą produktu, którą miał w $nazwaProduktu ==============
. Oczywiście wiele zależy od tego jak jest skrypt napisany ale wolę zwrócić Wam na to uwagę. Podobnie nie ma problemu, żeby łączyć zmienną ze stałym tekstem np.: {$pageName} - Super Sklep Warszawa. Wiem, że jest to zła praktyka, nieelegancka ale wychodzę z założenia, że jeżeli śledzisz moje wpisy to szukasz rozwiązań prostych i szybkich do wdrożenia :)
Chciałbym być dobrze zrozumiany, jeżeli dostajesz do optymalizacji stary skrypt w którym ktoś nie zadbał o bardzo podstawowe rzeczy SEO to moim zdaniem grzechem nie jest zrobienie tego po łebkach przez requesturi itd. Przecież jak miałoby to być DOBRZE zrobione a nie poprawnie to zawsze można postawić serwis na nowo :)
Jak tam niebo nad Ukraina już czyste? F-16 wygrały wojnę? Nawet do linii frontu ich nie wyślą bo szybciej by spadały od Su-57 niż by zdążyli dostarczyć następne #ukraina #rosja
Ruszyłem z optymalizacją GIMtravel, robię to na swojej lokalnej kopii, dopiero jak wdrożę zmiany w kodzie to wrzucę na produkcję. Co nie przeszkadza opisywać zmian od dzisiaj...
Teraz teoretycznie powinienem zacząć od tego jak tworzyć dobre title jak description... Jak skończę techniczne zmiany z gimtravel i nadpiszę produkcję to zrobię wpis o optymalizacji pod słowa kluczowe najważniejszych podstron, a teraz odsyłam Was do jednego z wielu poradników w necie :) ten jest przygotowany przez mojego dobrego kolegę i szczerze polecam - optymalizacja strony długa lektura wyczerpująca temat optymalizacji (nie tylko title i description).
Często spotykacie się z wytycznymi do wdrożenia konkretnych title i description na wybranych adresach, a na reszcie potrzeba ustawić tagi według jakiegoś schematu, żeby były unikatowe np.:
title
schemat - "nazwa produktu" - "nazwa firmy" "lokalizacja"
przykład - Dysk twardy SSD Segate - Super Sklep Warszawa
description
schemat - "nazwa produktu" - "stały tekst"
przykład - Dysk twardy SSD Segate - produkty w najlepszych cenach. Kliknij i sprawdź!
itd. (oczywiście przykłady wzięte z kosmosu)
O ile nie ma problemu z wdrożeniem tych zmian na większości popularnych CMSów to niestety na własnych drutach bywa różnie. gimtravel ma w panelu możliwość ustawienia jednego title i description dla WSZYSTKICH podstron serwisu, co oczywiście jest wielkim błędem...
Jak sobie z tym radzimy?
1. Przerabiamy skrypt, dodajemy do panelu admina na widoku edycji wpisu/strony/oferty pole do uzupełnienia meta title i description.
Najlepsze rozwiązanie ale również wymagające najwięcej pracy. Stosowałem je dla: wielkich serwisów gdzie należy uzupełnić konkretne dane dla tak wielu podstron, że wygodniej nam podrasować skrypt, a uzupełnianie zlecić asystentowi. Druga opcja to jesteśmy emocjonalnie powiązani z serwisem i po prostu chcemy, żeby było wszystko dobrze zrobione - TAK to rozwiązanie jest wdrożone na gimtravel.pl
Niestety mija się z celem dokładne opisywanie jak zrobiłem to na gimtravel.pl bo każdy własny drut jest napisany inaczej i nie zadziała tutaj ctrl+c ctrl+v. Mogę podać schemat działania jak się do tego zabrać:
- edycja widoku panelu - dodanie nowych pól do uzupełnienia
- dodać wysyłanie danych z nowych pól do bazy danych
- edycja bazy danych - dodanie kolumny na nowe dane
- dodać pobieranie nowych danych z bazy
- edycja widoku heada serwisu - podmiana zmiennej w $var i na nowe odpowiedniki
jeżeli nie masz technicznej wiedzy jak to zrobić albo zwyczajnie żal Ci czasu na stare gówno to zapraszam do punktu 2 ;)
2. Nadpisujemy zmienną w pliku widoku albo gdzieś wcześniej w skrypcie. Najczęściej wykorzystywany sposób przeze mnie na serwisach, które mają już sto lat, a właściciel nie chce zainwestować w nie nawet złotówki. Niestety czasami również na trochę fajniejszych serwisach trzeba było tak zrobić bo czas gonił...
Możemy zrobić osobny plik z nowymi title i description w switchu i includujemy go do skryptu albo jeżeli wdrażamy dosłownie parę adresów wstawiamy w plik widoku IFa na $SERVER['REQUESTURI'] == 'interesujący nas adres' (lenistwo! :P)
Przykładowy switch:
$uri = $_SERVER['REQUEST_URI'];
switch($uri)
{
case '/o-nas':
$title = 'Informacje o firmie - Super Sklep Warszawa';
$description = 'Strona z informacjami o firmie Super Sklep. Zapraszamy na nasz serwis...';
break;
case '/oferta':
$title = 'Najnowszy sprzęt komputerowy - Super Sklep Warszawa';
$description = 'Sprawdź nasze najnowsze super produkty...';
break;
default:
$title = $pageName.' - '.$siteName;
$description = $pageName.' - produkty w najlepszych cenach. Kliknij i sprawdź!';
}
przykładowy IF:
{if $smarty.server.REQUESTURI == '/o-nas'}Informacje o firmie Super Sklep{else if $smarty.server.REQUESTURI == '/oferta'}Najnowszy sprzęt komputerowy - Super Sklep Warszawa{else}{$pageName} - {$siteName}{/if}
przykład specjalnie podałem dla SMARTY, bo niektórym się wydaje, że smarty nie ma ifów ;) oczywiście dla czystego php przerabiamy to na php if($SERVER['REQUESTURI'] == '/adres') {?tekstphp } else { ?tekst2php } ? (z uwagi, że to wykop to: tak można to zapisać w jednej lini z wykorzystaniem ':' '?' ;))
Nie masz czasu idź na łatwiznę
Jak w przykładzie wyżej można zobaczyć dla 'default', że nic nie stoi na przeszkodzie, żeby postarać się do heada wrzucić zmienne które mamy dostępne. Ameryki tutaj nie odkryję ale wdrażając zmiany po innych osobach często widziałem, że ktoś mieszał zmiennymi na maxa, a mógł po prostu wykorzystać np. zmienną z nazwą produktu, którą miał w $nazwaProduktu
==============
. Oczywiście wiele zależy od tego jak jest skrypt napisany ale wolę zwrócić Wam na to uwagę. Podobnie nie ma problemu, żeby łączyć zmienną ze stałym tekstem np.: {$pageName} - Super Sklep Warszawa. Wiem, że jest to zła praktyka, nieelegancka ale wychodzę z założenia, że jeżeli śledzisz moje wpisy to szukasz rozwiązań prostych i szybkich do wdrożenia :)
Chciałbym być dobrze zrozumiany, jeżeli dostajesz do optymalizacji stary skrypt w którym ktoś nie zadbał o bardzo podstawowe rzeczy SEO to moim zdaniem grzechem nie jest zrobienie tego po łebkach przez requesturi itd. Przecież jak miałoby to być DOBRZE zrobione a nie poprawnie to zawsze można postawić serwis na nowo :)