Jump to content

Добавление ссылки канонических URL в шаблоне


Recommended Posts

Просмотрев много постов на эту тему, и так как они либо были неправильными, либо сложными по реализации, сделал свое простое решение по добавлению ссылки канонических url. Сразу говорю я не программист, поэтому не нужно говорить что это бред, но это должно уменьшить кол-во дублей страниц с повторяющемся описанием и титлами.

 

Открываем index.tpl вашего шаблона и после meta тегов добавляем:

 

{if !$smarty.get.page && !$smarty.get.sort}
{else}
{if $category && $brand}
<link rel="canonical" href="{$config->root_url}/catalog/{$category->url}/{$brand->url}"/>
{elseif $category}
<link rel="canonical" href="{$config->root_url}/catalog/{$category->url}"/>
{elseif $brand}
<link rel="canonical" href="{$config->root_url}/brands/{$brand->url}"/>
{elseif $products}
<link rel="canonical" href="{$config->root_url}/products"/>
{/if}
{/if}

Что это дает ? Проставлет в <head>....</head> <link rel="canonical"со ссылкой на категорию в которой вы находитесь, в страницах которые содержат в url параметры page и sort в каталоге товаров, или при варианте "название категории/бренд".

 

Единственное, что у меня не получилось, это не знаю как поставить условие по типу !$smarty.get при фильтрации по свойствам участвующих в фильтре, может кто подскажет.

 

Link to post
Share on other sites
  • 3 weeks later...

Просмотрев много постов на эту тему, и так как они либо были неправильными, либо сложными по реализации, сделал свое простое решение по добавлению ссылки канонических url. Сразу говорю я не программист, поэтому не нужно говорить что это бред, но это должно уменьшить кол-во дублей страниц с повторяющемся описанием и титлами.

 

Открываем index.tpl вашего шаблона и после meta тегов добавляем:

 

{if !$smarty.get.page && !$smarty.get.sort}
{else}
{if $category && $brand}
<link rel="canonical" href="{$config->root_url}/catalog/{$category->url}/{$brand->url}"/>
{elseif $category}
<link rel="canonical" href="{$config->root_url}/catalog/{$category->url}"/>
{elseif $brand}
<link rel="canonical" href="{$config->root_url}/brands/{$brand->url}"/>
{elseif $products}
<link rel="canonical" href="{$config->root_url}/products"/>
{/if}
{/if}

Что это дает ? Проставлет в <head>....</head> <link rel="canonical"со ссылкой на категорию в которой вы находитесь, в страницах которые содержат в url параметры page и sort в каталоге товаров, или при варианте "название категории/бренд".

 

Единственное, что у меня не получилось, это не знаю как поставить условие по типу !$smarty.get при фильтрации по свойствам участвующих в фильтре, может кто подскажет.

Свойства фильтров отключаться в инструментах для вебмастеров Google, наверное и в Яндексе аналогичное есть.

Link to post
Share on other sites

Свойства фильтров отключаться в инструментах для вебмастеров Google, наверное и в Яндексе аналогичное есть.

Комментарий мимо темы. Почитайте о rel="canonical" в инструментах для веб-мастеров того же Google на который Вы ссылаетесь https://support.google.com/webmasters/answer/139394?hl=ru Фильтры фильтрами, только лучше делать всё правильно.

Link to post
Share on other sites

Я просто предложил вариант, которые не требует специфичных знаний :)

https://www.google.com/webmasters/tools/crawl-url-parameters?hl=ru&siteUrl=http://ВАШ-САЙТ/

На форуме есть решения этого вопроса в нескольких вариантах. Используйте поиск. Предложенный Вами вариант по определению неверен. Копать нужно в сторону rel="canonical". Хотя каждое мнение имеет право на существование и моё утверждение тоже всего лишь частное мнение, одно из многих.

Link to post
Share on other sites

Преимущество rel="canonical" в том, что весь поисковый вес страниц с номерами 2,3,4,5.......150,151 и т.д. перекладывается на ту страницу на которую будет ссылка в rel="canonical", а соответственно возможен рост PR внутренних страниц сайта, а не только главной, что есть гуд. 

 

 

Если количество бесполезных страниц на сайте много по мнению поисковой системы, то в качестве наказания из индекса пропадает большинство страниц сайта и остается около 10
Link to post
Share on other sites
  • 1 year later...

Спасибо, ТС!

 

Очень простое и элегантное решение!

 

Маленький вопрос. Заработало только после того как убрал 

{if !$smarty.get.page && !$smarty.get.sort}

 

 

Для чего этот кусок кода, что он давал и исключение его как может навредить?

Вроде не навредило никак, но кто его знает :)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...