Linki kanoniczne są dość ważną kwestią związaną z pozycjonowaniem. Pozwalają dokładniej wskazać wyszukiwarkom która podstrona jest witryną główną i uniknąć np. oznaczenia jako „duplicate content„. Może mieć to miejsce np. na stronie kategorii.
Ale o co chodzi? Kategoria może posiadać kilka podstron (bo np. posiada dużo produktów) natomiast każda z tych podstron posiada ten sam opis kategorii. Może być to odebrane przez wyszukiwarki jako powielanie treści i mieć znikomy (lub nie) wpływ na pozycję w rankingu. Najlepiej za w czasu wprowadzić nieznaczne modyfikacje, aby witryna sklepowa była bardziej czytelna dla robotów indeksujących.
Na poniższej modyfikacji pokażemy jak dodać linki kanoniczne na kluczowych podstronach. Oczywiście w razie potrzeby można ich utworzyć więcej, poniższe stanowią niezbędne minimum.
Dodatkowo przedstawimy dodanie odp. znacznika meta informującego robota indeksującego o tym, że znajduje się na podstronie w obrębie paginacji (np. na 5 podstronie z 12-tu, 2 podstronie z 6-ciu itp.).
Modyfikacja jest przedstawiona dla sklepów Presta Shop w wersji 1.6.x.
Zawartość artykułu
Modyfikacja PHP.
Otwieramy plik:
classes/controller/FrontController.php
Znajdujemy funkcję:
initContent()
Przed wystąpieniem warunku:
if (!$this->useMobileTheme()) {
ściślej przed wystąpieniem przesyłania zmiennych do szablonu:
$this->context->smarty->assign(array(
Wklejamy kod:
$category_canonical = false;
switch (Dispatcher::getInstance()->getController()) {
case 'index':
$dyn_canonical = $this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id);
break;
case 'category':
$dyn_canonical = $this->context->link->getCategoryLink($this->category);
$category_canonical = $this->context->link->getCategoryLink($this->category);
break;
case 'product':
$dyn_canonical = $this->context->link->getProductLink($this->product);
break;
}
Następnie zamieniamy kod:
$this->context->smarty->assign(array(
'HOOK_HEADER' => Hook::exec('displayHeader'),
'HOOK_TOP' => Hook::exec('displayTop'),
'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),
'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),
));
Na:
$this->context->smarty->assign(array(
'HOOK_HEADER' => Hook::exec('displayHeader'),
'HOOK_TOP' => Hook::exec('displayTop'),
'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),
'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),
'dyn_canonical' => $dyn_canonical,
'category_canonical'=> $category_canonical
));
Czyli jak widać przekazujemy 2 nowe zmienne do szablonu:
dyn_canonical oraz category_canonical
Modyfikacja szablonu
Otwieramy plik:
themes/{NAZWA-SZABLONU}/header.tpl
i zaraz przed zamknięciem znacznika:
</head>
Wklejamy kod:
{if $dyn_canonical}
<link rel="canonical" href="{$dyn_canonical}" />
{/if}
{if $category_canonical}
{if $p != 1}
<link rel="prev" href="{$category_canonical}?p={$p-1}" />
{/if}
{if $pages_nb > 1 AND $p != $pages_nb}
<link rel="next" href="{$category_canonical}?p={$p+1}" />
{/if}
{/if}
Gotowe. Po odświeżeniu cache sklepu i wyczyszczeniu pamięci podręcznej (opisywaliśmy to wielokrotnie w naszych artykułach) – zmiany powinny być widoczne.
W sekcji HEAD będą pojawiać się dodatkowe informacje dla wyszukiwarek które łatwiej zinterpretują kod na Twojej stronie sklepu.



Super, czy jest szansa, że udostępnisz podobną instrukcję dla Presta 1.7.4.4 ?
Czy jest szansa umieszczenie podobnej instrukcji dla Presta 1.7.4.4 ?
Witam czy udałoby się skonstruować jakiś kod żeby ukryć zdjęcie i opis na kolejnych powyżej pierwszej stronach Kategorii i podkategorii bo przy paginacji Google twierdzi ze są zdublowane opisy i zdjęcia i wywala jako błąd.
tak, trzeba wstawić odp. warunek IF w szablonie tpl. napisz mail na info@pskrk.com to Ci podeślę. napisz też jaka to wersja skryptu
Tak jak Ci napisałem w mailu. Zastosuj kod:
{if $p == '1′}
(kod HTML z opisem)
{/if}
Np. w szablonie category.tpl, tam gdzie jest opis kategorii. Wtedy pojawi się on tylko na 1 stronie paginacji kategorii.
Ok dzieki zadzialalo