Jump to content

Дублирование title в сортировке, фильтрах и постраничной навигации.


Recommended Posts

Обнаружил не давно данный баг. Изломал всю голову над исправлением.
По умолчанию не решен следующий момент – при переходе по ссылкам постраничной навигации вида http://demo.simplacms.ru/catalog/mobilnye-telefony?page=2 заголовок (тег <title></title>) остается неизменным, что плохо с точки зрения SEO.
Так же это относится к сортировкам и фильтру по свойствам. В итоге при проверке сайта, нашел несчетное количество одинаковых тайтлов.

И самый главный вопрос! Как сделать так что бы при выводе заголовка при переходе по фильтру или сортировкам был следующий вид заголовка: Свойство - Title.

Ни где не нашел подобной темы на форуме. Как убрать дубли тайтлов? Читал про ошибку в брендах и видел решение, но бренды как таковые не использую.

Link to post
Share on other sites

Поменял на {$meta_title = "{$current_page > 0} | Страница {$current_page}" scope=parent}, но в результате тайтл стал одинаковым во всех категориях.
Что нужно прописать, что бы название тайтла бралось к примеру из названия свойства фильтра или номера станицы?

Link to post
Share on other sites

У Вас есть генерация H1 в тексте - там куча условий - все это надо вынести в заголовок и добавить номер страницы.
Либо Ваши варианты - как Вас надо.

Link to post
Share on other sites

Присоединяюсь к вопросу! Давно уже эту проблему заметил. В симпле я дубдубом, не могли бы написать примерно как должен выглядеть код и куда его прописывать? ;)

Link to post
Share on other sites

А генерация h1 разве из шаблона идет? Большая часть дублирования идет из фильтра по свойствам. Ни как не могу найти нужное условие
зы я уже понял, что в смарти не силен.

Link to post
Share on other sites

{if $current_page_num > 1}    {if $keyword}{$meta_title='Поиск '|cat:$keyword scope=parent}    {elseif $page}{$meta_title=$page->name|cat:' | Страница '|cat:$current_page_num scope=parent}    {elseif $category}{$meta_title=$category->meta_title|cat:' | Страница '|cat:$current_page_num scope=parent}    {elseif $brand}{$meta_title=$brand->meta_title|cat:' | Страница '|cat:$current_page_num scope=parent}    {/if}{/if}{*$meta_title=$product->name|cat:' | '|cat:$product->variant->artikul scope=parent*}
Link to post
Share on other sites

Спасибо огромное тебе! Очень благодарен! В тегах появилась нумерация. Только в фильтрах по прежнему идут дубли. Целый день сижу.
Попробывал сделать атрибут

<link rel="canonical" href="http://site.ru/catalog/{$cat->url}"/>

Не знаю поможет ли!
Может быть есть подобное решение для фильтров и сортировке по цене/названию?
Link to post
Share on other sites

Дубли идут и будут идтить - так как (насколько я понял) тайтл выглядит так:
Плюшки - страница 1
Плюшки - страница 2
и т.д.
Для поисковика это один и тот же тайтл если нет оличия минимум в 5 знаков.

Link to post
Share on other sites

У меня так

{if $current_page_num == 1}<title>{$meta_title|escape}</title><meta name="description" content="{$meta_description|escape}" />{elseif $current_page_num > 1}<title>{$meta_title|escape}, страница {$current_page_num}</title><meta name="description" content="{$meta_description|escape}, страница {$current_page_num}" />{else}<title>{$meta_title|escape}</title><meta name="description" content="{$meta_description|escape}" />{/if}


По поводу 5 знаков - спорное утверждение, поскольку ошибки в панели ВМ отваливаются с этими изменениями
Link to post
Share on other sites

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

Link to post
Share on other sites

Куда поставил? Если на страницу категорий - это не правильный вариант. При переходе на страницу бренда в странице категории - у тебя будет битая ссылка. Я проходил это. У меня работает следующая конструкция (у меня добавляет в конце html, посему редактируем под себя):

{* канонические страницы *}
{if $category}
<link rel="canonical" href="http://site.ru/{$cat->url}.html"/> 
 {if $brand}
<link rel="canonical" href="http://site.ru/{$cat->url}/{$brand->url}.html"/>
 {/if}
 {elseif $brand}
 <link rel="canonical" href="http://site.ru/brands/{$brand->url}"/>
 {elseif $keyword}
 {/if}



А для того, чтобы уменьшить количество страниц с неправильными тайтлами там же добавлена еще и такая конструкция:

{if $category && $brand}{$meta_title = "{$category->name} - {$brand->name} интернет магазин site.ru" scope=parent}{$meta_description = "{$brand->name} - {$meta_description}" scope=parent}{/if}
Link to post
Share on other sites
  • 4 weeks later...

А если проще, просто поставить тег nofollow в products.tpl, по данной ссылке поисковый робот просто не будет переходить и следовательно не учитывать её в поиске.

{* Фильтр по свойствам *}{if $features}<table id="features">	{foreach $features as $f}	<tr>	<td class="feature_name" data-feature="{$f->id}">		{$f->name}:	</td>	<td class="feature_values">		<a rel="nofollow" href="{url params=[$f->id=>null, page=>null]}" {if !$smarty.get.$f@key}class="selected"{/if}>Все</a>		{foreach $f->options as $o}		<a rel="nofollow" href="{url params=[$f->id=>$o->value, page=>null]}" {if $smarty.get.$f@key == $o->value}class="selected"{/if}>{$o->value|escape}</a>		{/foreach}	</td>	</tr>	{/foreach}</table>{/if}
Link to post
Share on other sites

Страницы по адресу например:
http://demo.simplacms.ru/catalog/mobilnye-telefony
http://demo.simplacms.ru/catalog/mobilnye-telefony/apple
http://demo.simplacms.ru/catalog/mobilnye-telefony/blackberry
и т.д, по всех каталогах тоже имеют одинаковые заглавие и описание, что не хорошо, решается добавлением имени бренда в title и deskription по условию.
{if ($product->id ==' ')&&($brand->id!=' ')} {* Если не продукт но с брендом *}
{* Тут формируем title и deskription с добавлением $brand->name|escape *}
{/if}

Link to post
Share on other sites
  • 2 months later...

 

Куда поставил? Если на страницу категорий - это не правильный вариант. При переходе на страницу бренда в странице категории - у тебя будет битая ссылка. Я проходил это. У меня работает следующая конструкция (у меня добавляет в конце html, посему редактируем под себя):

 

{* канонические страницы *}
{if $category}
<link rel="canonical" href="http://site.ru/{$cat->url}.html"/> 
  {if $brand}
 <link rel="canonical" href="http://site.ru/{$cat->url}/{$brand->url}.html"/>
  {/if}
  {elseif $brand}
  <link rel="canonical" href="http://site.ru/brands/{$brand->url}"/>
  {elseif $keyword}
  {/if}

Спасибо за решение, правда сам пришел к чему то очень похожему когда всплыли битые ссылки. За основу взял это http://forum.simplacms.ru/topic/3318-dubli-stranic-reshenie-/?hl=%D0%B4%D1%83%D0%B1%D0%BB%D0%B8.   

Link to post
Share on other sites

А как работает фильтрация например тут http://simpla.cms-update.ru  Здесь нет никаких дублей?  Как  тогда ПС относятся к тому  что по одному адресу страницы выдается разный контент?

 

 

 

все гет-параметры, отвечающие за сотрировку, фильтрацию - дружно закрываем в robots.txt и будет вам счастье)

Link to post
Share on other sites
  • 2 months later...

Попросили на днях помочь с заголовками для фильтров - накидал следующее в products.tpl в начало файла

{if $features}
    {assign 'mt' $meta_title}
    {assign 'md' $meta_description}
    {foreach $features as $f}
        {foreach $f->options as $o}
            {if $smarty.get.$f@key == $o->value}
                {assign 'mt' $f->name|cat:' - '|cat:$o->value|cat:' / '|cat:$mt}
                {assign 'md' $f->name|cat:' - '|cat:$o->value|cat:'. '|cat:$md}
            {/if}       
        {/foreach}
    {/foreach}
    {$meta_title = $mt scope=parent}
    {$meta_description = $md scope=parent}
{/if}

Аналогично можно и со страницами и с сортировкой.

Link to post
Share on other sites
  • 3 weeks later...
Спасибо Mart, помогло. Для полного счастья  добавил еще значения фильтров в h1 заголовок страницы.



{* Заголовок страницы *}
{if $keyword}
{assign var=my1h1 value="Поиск `$keyword|escape`"}
{elseif $page}
{assign var=my1h1 value="`$page->name|escape`"}
{else}
{assign var=my1h1 value="`$category->name|escape` `$brand->name|escape`"}
{/if}


{*Добавляю значения фильтров в title и description*}
{if $features}
    {assign 'mt' $meta_title}
    {assign 'md' $meta_description}
    {foreach $features as $f}
        {foreach $f->options as $o}
            {if $smarty.get.$f@key == $o->value}                        
                {assign var=mt value="`$mt` [`$f->name|cat`: `$o->value|cat`]"} 
                {assign var=md value="`$md` `$f->name|cat`: `$o->value|cat`."} 
                {* Фильтр в заголовок страницы *}
                {assign var=my2h1 value="`$my2h1``$f->name|cat`: `$o->value|cat`</br>"}
            {/if}       
        {/foreach}
    {/foreach}
      {if $my2h1}
        {assign var=my2h1 value="</br>`$my2h1`"}
      {/if}
    {$meta_title = $mt scope=parent}
    {$meta_description = $md scope=parent}
{/if}


{* Вывод заголовка страницы *}
<h1>{$my1h1}{$my2h1}</h1>


 

Выглядит так

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...