• CMS Made Simple - Русская поддержка
Языки: CMS Made Simple - Official website CMS made Simple Czech Site Zur deutschsprachigen Supportseite CMS Made Simple - Danmark Sitio en Castellano Site francophone CMS Made Simple - Magyarország Benvenuto su CMSmadesimple CMSMS -  русский CMS Made Simple - slovenská verzia

Поисковая оптимизация в CMS Made Simple

Карта сайта для поисковых систем.

Если Вы не знаете что это такое то почитайте здесь и здесь.

Для CMS MS существует неплохой модуль «SiteMap Made Simple» который помогает автоматизировать процесс генерации карты сайта по мере добавления нового контента. Из особенностей модуля можно отметить генерацию статичного xml документа в корне сайта и возможность подстройки шаблона вывода.

Управление модулем не требует особых знаний, если вы изучили основы по ссылкам выше то вы сможете легко разобраться с этим модулем. Сделаю лишь небольшое разъяснение по поводу «Частоты изменения». Теоретически выставление этого параметра позволяет задать скорость сканирования, т. е. частоту посещения Вашего сайта роботом поисковой системы. Практически же манипулировать этим вряд ли получится, т. к. разработчики поисковых систем не любят когда манипулируют их детищем и делают все возможное чтобы свести воздействие веб-разработчиков на поискового робота на нет.

SiteMap Made Simple генерирует карту сайта лишь для контента созданного стандартным методом. Внести в него информацию из контента создаваемого др. модулями, невозможно без написания дополнительных плагинов или модулей. Однако поисковая система Google позволяет добавлять rss поток как карту сайта (!), поэтому Вы можете добавить на Google как карту сайта генерируемую «SiteMap Made Simple» так и RSS поток генерируемый модулем «News» (см. скриншот ниже).

RSS поток из новостей

Карта сайта для посетителей.

Создать карту сайта очень легко с помощью встроенного механизма «Менеджер меню». На страничке где предполагается размещение карты сайта вызывается меню с соответствующим шаблоном {menu template='sitemap.tpl'}.

В шаблоне «sitemap.tpl» Вы можете реализовать тот дизайн карты сайта который подходит под дизайн Вашего сайта или тот который Вам нравится.

На странице поддержки «Менеджера Меню» (англ) Вы можете найти готовые шаблоны для меню сайта и карты сайта.

Модуль «News» и проблемы с URL.

Не секрет, что Интернет очень плохо воспринимает кириллические символы. К сожалению, CMS MS не исключение, и для того чтобы заставить его правильно обрабатывать кириллицу приходится предпринимать дополнительные усилия.

Наиболее узкое место в CMS MS в работе с кириллицей это создание aliasов для страниц. На сегодняшний день существует метод для автоматического формирования URL для обычного контента (http://forum.cmsmadesimple.org/index.php/topic,12132.msg109141.html#msg109141).

К сожалению URL генерируемые модулем «News» не обрабатываются этим методом. По умолчанию «News» «съедает» кириллические символы, т. к. для генерации alias используется заголовок новости (напр. заголовок «Моя первая news» он превратит в URL типа «http://News/01/01/news.html»), поэтому простейшее решение это добавлять в заголовки латинские слова или буквы.

Существует также еще два метода борьбы с этим:

  • Правка непосредственно модуля «News». В папке модуля в файлах «News.module.php»; «action.rss.php»; «action.default.php» динамическое значение $aliased_title в строке генерации (составления) URL (переменная $prettyurl) заменяется на любой статичный текст, например:
    было: $prettyurl = 'news/' . $articleid.'/'.$returnid."/$aliased_title" стало: $prettyurl = 'news/' . $articleid.'/'.$returnid."/fulltext"; в результате получится URL типа «http://News/01/01/fulltext.html»

  • Правка кода CMS MS. Создать в папке lib класс транслитерации (файл) с названием «class.translit.php» и содержанием:
    			                                                                  
    <?php
    class Translit {
    var $cyr=array(
    "Щ", "Ш", "Ч", "Ц","Ю", "Я", "Ж", "А","Б","В","Г","Д","Е","Ё","З","И","Й","К","Л","М","Н",
    "О","П","Р","С","Т","У","Ф","Х", "Ь","Ы","Ъ","Э","Є","Ї",
    "щ", "ш", "ч", "ц","ю", "я", "ж", "а","б","в","г","д","е","ё","з","и","й","к","л","м","н",
    "о","п","р","с","т","у","ф","х", "ь","ы","ъ","э","є","ї");
    var $lat=array(
    "Shh","Sh","Ch","C","Ju","Ja","Zh","A","B","V","G","D","Je","Jo","Z","I","J","K","L","M",
    "N","O","P","R","S","T","U","F","Kh","","Y", "`","E","Je","Ji",
    "shh","sh","ch","c","ju","ja","zh","a","b","v","g","d","je","jo","z","i","j","k","l","m",
    "n","o","p","r","s","t","u","f","kh","","y", "","e","je","ji"
    );
    function Transliterate($str, $encIn, $encOut){
    $str = iconv($encIn, "utf-8", $str);
    for($i=0; $i<count($this->cyr); $i++){
    $c_cyr = $this->cyr[$i];
    $c_lat = $this->lat[$i];
    $str = str_replace($c_cyr, $c_lat, $str);
    }
    $str = preg_replace("/([qwrtpsdfghklzxcvbnmQWRTPSDFGHKLZXCVBNM]+)[jJ]e/", "\${1}e", $str);
    $str = preg_replace("/([qwrtpsdfghklzxcvbnmQWRTPSDFGHKLZXCVBNM]+)[jJ]/", "\${1}", $str);
    $str = preg_replace("/([eyuioaEYUIOA]+)[Kk]h/", "\${1}h", $str);
    $str = preg_replace("/^kh/", "h", $str);
    $str = preg_replace("/^Kh/", "H", $str);
    return iconv("utf-8", $encOut, $str);
    }
    }
    ?>

    И в файле lib/misc.functions.php функции «munge_string_to_url» привести к виду:

    	
    function munge_string_to_url($alias, $tolower = false)
    {
    // replacement.php is encoded utf-8 and must be the first modification of alias
    include(dirname(__FILE__) . '/replacement.php');
    include_once(dirname(__FILE__) . '/class.translit.php');
    $translitalias = new Translit();
    $alias = $translitalias->Transliterate($alias, "utf-8", "utf-8");
    //print_r($alias);
    $alias = str_replace($toreplace, $replacement, $alias);
    // lowercase only on empty aliases
    if ($tolower == true)
    {
    $alias = strtolower($alias);
    }
    $alias = preg_replace("/[^\w-]+/u", "-", $alias);
    $alias = trim($alias, '-');
    return $alias;
    }

    В результате должно получится URL типа: «http://News/01/01/my-pervaya-news.html»

Как видно второй метод выдает т. н. «информативный статичный URL», что с точки зрения SEO наиболее предпочтительно.

Модуль «News» и проблемы с тэгом <title>.

При поисковой оптимизации большое внимание нужно уделить тегу <title> в заголовке <head> HTML страницы, т. к. роботы поисковых систем расценивают его как заголовок (название) страницы и проводят некий анализ на соответствие этого заголовка и текста на основе которого выставляется очередность (ранжируется) показа Вашей страницы в результатах выдачи по запросу.

Несмотря на очевидное удобство модуля News - быстрое размещение новостей на сайте, возможность привязки комментариев к каждой новости, возможность сделать блог на основе этого модуля, существенным его недостатком является то, что несмотря на практическое отображение новостей на разных страницах, на самом деле вы остаетесь на странице где вызывается модуль News. Именно с этим и связана проблема отображения правильного заголовка <title> при просмотре полного текста новости.

Наиболее изящное и простейшее решение этой проблемы.

  • В основном шаблоне вашего сайта вызов
    <title>{title}<title>
    заменяется на
    <title>{if isset($detail_title)}{$detail_title}{else}{title}{/if}</title>
  • На странице, где осуществляется вызов новостей, на вкладке Опции»Данные или логика Smarty для данной страницы добавляется такой код:
    {capture assign='captured_content'}{content}{/capture}{assign var='detail_title' value=$entry->title}

Примечание: при таком методе в шаблоне необходимо наличие {process_pagedata}, т.к. именно в нем обрабатывается содержимое вкладки «Опции» -> »Данные или логика Smarty для данной страницы»

Раздел CMS Made Simple и SEO ведет Алексей Гомолов

comments powered by Disqus