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