Budując aplikację internetową, którą udostępnimy w sieci musimy wziąć pod uwagę fakt, że aby zaistniała w wyszukiwarkach internetowych odpowiednie będą pewne kroki w celu optymalizacji kodu. Dokładniej mówiąc chodzi o SEO (Search Engine Optimization), które polega na zoptymalizowaniu kodu pod kątem wyszukiwarek.
Istotnym krokiem w optymalizacji SEO jest ustawienie odpowiednich metatagów, czyli znaczników z których korzystają wyszukiwarki. Trzy najważniejsze z nich to:
1 2 3 |
<meta name="description" content="Twój krótki opis strony wyświetlany w wyszukiwarkach, zawierający w sobie słowa kluczowe" /> <meta name="title" content="Tytuł strony wyświetlany w wyszukiwarkach." /> <meta name="keywords" content="Słowa, kluczowe, dla, wyszukiwarek" /> |
Treść, meta-tagów należy zdefiniować z poziomu kontrolera:
controllers/SiteController.php:
1 2 3 4 5 6 7 8 |
class SiteController extends Controller { public $layout='//layouts/column1'; public $pageMetaDescription; public $pageMetaTitle; public $pageMetaKeywords; ... |
Następnie mamy kilka możliwości, możemy zdefiniować nasze meta tagi przed renderowaniem akcji np. Index:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public function actionIndex() { $this->pageMetaTitle = 'Przykładowy tytuł'; $this->pageMetaKeywords = 'Przykładowe keywords'; $this->pageMetaDescription = 'Przykładowe Description'; $dataProvider=new CActiveDataProvider('Oferta'); $this->render('index',array( 'dataProvider'=>$dataProvider, )); } ... |
Takie rozwiązanie można zastosować do dowolnej akcji.
Można również zdefiniować nasze meta tagi bezpośrednio w pliku widoku
np. views/site/contact.php w taki sposób:
1 2 3 4 5 |
<?php $this->pageMetaTitle = 'Przykładowy tytuł'; $this->pageMetaKeywords = 'Przykładowe keywords'; $this->pageMetaDescription = 'Przykładowe Description'; ?> |
Kiedy już mamy zdefiniowane nasze zmienne meta tagów możemy przejść do edycji layoutu:
views/layouts/main.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="language" content="pl" /> <?php if (!empty($this->pageMetaDescription)) { echo ' <meta name="description" content="' . $this->pageMetaDescription . '" /> '; } if (!empty($this->pageMetaTitle)) { echo ' <meta name="title" content="' . $this->pageMetaTitle . '" /> '; } if (!empty($this->pageMetaKeywords)) { echo ' <meta name="keywords" content="' . $this->pageMetaKeywords . '" /> '; } ?> ... |
Dzięki takiemu rozwiązaniu nasza aplikacja wyświetli zdefiniowane przez nas meta-tagi. Jest wiele możliwości zdefiniowania naszych metatagów takich jak z poziomu akcji kontrolera, jak i w samych plikach widoku co daje nam możliwość ustawienia meta w statycznych częściach aplikacji.