Оптимизация автоматической генерации мета тега keywords плагином "SEO"
Плагин «SEO» прекрасен в своей простоте, но результат выдаёт несколько прямолинейный. Этот вопрос уже как-то поднимал господин ETNO , но действительно интересного решения не предложил. К счастью, нет никакой магии в том, чтобы подправить нужные tpl-и и получить более интересный результат.
Чего хотелось?
Что получилось:
Блог и топик blog.tpl:
Списки топиков index.tpl:
Страницы «Блоги» blogs.tpl:
Поиск по тегу tag.tpl:
Поиск search.tpl:
Заменяем файлы в /plugins/seo/templates/skin/default/meta/keywords/ и… всё.
Warning: тестировалось с LiveStreet CMS 1.0.1. Про более старые версии, знать не знаю, сработает или нет.
P.S. Посмотреть как работает «в живую» можно на сайте ММОзговед.
Чего хотелось?
- Всегда и везде исключить дублирование ключевых фраз.
- Добавить название блога в список ключевых фраз страницы топика и, собственно, самой страницы блога.
- Убрать запихивание стандартных ключевых фраз из конфигурации livestreet для страниц блога и топика, но всё же, кроме всего прочего, добавлять туда название сайта.
- Сформировать список ключевых слов для страниц «Блоги» из их названий.
- Ключевые фразы для списков топиков сформировать как стандартный список из конфигурации livestreet, расширенный названиями блогов, к которым относятся топики из списка.
- Ключевые фразы для страницы поиска по тегу сформировать как стандартный список из конфигурации livestreet, расширенный названием тега по которому искали и названиями блогов, к которым относятся найденные топики.
- Ключевые фразы для страницы поиска — стандартный список из конфигурации livestreet, расширенный фразой которую искали и названиями блогов, к которым относятся найденные топики или комментарии.
Что получилось:
Блог и топик blog.tpl:
{strip}
{* KEYWORDS *}
{if $oBlog}
{* Если очень хочется иметь стандартные фразы везде, то раcкомментируй следующую строку *}
{* $keywords[]=$sHtmlKeywords *}
{* Если не нужны какие-то особые "константные фразы", то закомментируй следующую строку *}
{$keywords[]='Крутой сайт'}
{$keywords[]=$oBlog->getTitle()|strip_tags|escape:'html'}
{if count($aTopics)>0}
{foreach from=$aTopics item=oTopic}
{$aTopicTags=','|explode:($oTopic->getTags()|strip_tags|escape:'html')}
{foreach from=$aTopicTags item=tag}
{if !in_array($tag,$keywords)}
{$keywords[]=$tag}
{/if}
{/foreach}
{/foreach}
{/if}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{elseif $oTopic}
{* Если очень хочется иметь стандартные фразы везде, то раcкомментируй следующую строку *}
{* $keywords[]=$sHtmlKeywords *}
{* Если не нужны какие-то особые "константные фразы", то закомментируй следующую строку *}
{$keywords[]='Крутой сайт'}
{$keywords[]=$oTopic->getBlog()->getTitle()|strip_tags|escape:'html'}
{$aTopicTags=','|explode:($oTopic->getTags()|strip_tags|escape:'html')}
{foreach from=$aTopicTags item=tag}
{if !in_array($tag,$keywords)}
{$keywords[]=$tag}
{/if}
{/foreach}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{else}
{$sHtmlKeywords}
{/if}
{/strip}
Списки топиков index.tpl:
{strip}
{* KEYWORDS *}
{if count($aTopics)>0}
{$keywords[]=$sHtmlKeywords}
{foreach from=$aTopics item=oTopic}
{$blogTitle=$oTopic->getBlog()->getTitle()|strip_tags|escape:'html'}
{if !in_array($blogTitle,$keywords)}
{$keywords[]=$blogTitle}
{/if}
{/foreach}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{else}
{$sHtmlKeywords}
{/if}
{/strip}
Страницы «Блоги» blogs.tpl:
{strip}
{* KEYWORDS *}
{* Если очень хочется иметь стандартные фразы везде, то раcкомментируй следующую строку *}
{* $keywords[]=$sHtmlKeywords *}
{* Если не нужны какие-то особые "константные фразы", то закомментируй следующую строку *}
{$keywords[]='Крутой сайт'}
{foreach from=$aBlogs item=oBlog}
{$blogTitle=$oBlog->getTitle()|strip_tags|escape:'html'}
{if !in_array($blogTitle,$keywords)}
{$keywords[]=$blogTitle}
{/if}
{/foreach}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{/strip}
Поиск по тегу tag.tpl:
{strip}
{* KEYWORDS *}
{$keywords[]=$sHtmlKeywords}
{$keywords[]=$sTag}
{if count($aTopics)>0}
{foreach from=$aTopics item=oTopic}
{$blogTitle=$oTopic->getBlog()->getTitle()|strip_tags|escape:'html'}
{if !in_array($blogTitle,$keywords)}
{$keywords[]=$blogTitle}
{/if}
{/foreach}
{/if}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{/strip}
Поиск search.tpl:
{strip}
{* KEYWORDS *}
{if isset($aReq) && isset($aReq.q) }
{$keywords[]=$sHtmlKeywords}
{$keywords[]=$aReq.q}
{if $aReq.sType == 'topics' }
{if count($aTopics)>0}
{foreach from=$aTopics item=oTopic}
{$blogTitle=$oTopic->getBlog()->getTitle()|strip_tags|escape:'html'}
{if !in_array($blogTitle,$keywords)}
{$keywords[]=$blogTitle}
{/if}
{/foreach}
{/if}
{else}
{if count($aComments)>0}
{foreach from=$aComments item=oComment}
{$blogTitle=$oComment->getTarget()->getBlog()->getTitle()|strip_tags|escape:'html'}
{if !in_array($blogTitle,$keywords)}
{$keywords[]=$blogTitle}
{/if}
{/foreach}
{/if}
{/if}
{foreach from=$keywords item=keyword}
{if !$keyword@first},{/if}{$keyword}
{/foreach}
{else}
{$sHtmlKeywords}
{/if}
{/strip}
Заменяем файлы в /plugins/seo/templates/skin/default/meta/keywords/ и… всё.
Warning: тестировалось с LiveStreet CMS 1.0.1. Про более старые версии, знать не знаю, сработает или нет.
P.S. Посмотреть как работает «в живую» можно на сайте ММОзговед.
13 комментариев
Вы его уже опробовали, он дает положительный эффект в приросте посещаемости?
P.S. только аккуратно с кодировкой файла, она должна совпадать с кодировкой OS, на которой крутиться LS. Обычно это UTF-8, в случае Linux. Лучше файл прямо на месте vim-ом создавать — не ошибётесь.
Кто применял данную модификацию плагина, отпишитесь пожалуйста. Хуже не стало хоть?