JOOMLA И SEO: ОПТИМИЗАЦИЯ КЛЮЧЕВЫХ СЛОВ

Довольно часто можно услышать от оптимизаторов, что Joomla недостаточно функциональна для решения задач поисковой оптимизации сайтов. Другие же, говорят, что все нормально и нужно просто чуть «подработать ее напильником». В этой статье, я хочу описать несколько модификаций, позволяющих улучшить работу Joomla с ключевыми словами и тем самым повысить ее возможности с точки зрения SEO.

Небольшая выдержка из Wikipedia по термину SEO:

Поисковая оптимизация (англ. search engine optimization, SEO) — оптимизация HTML-кода, текста, структуры и внешних факторов сайта с целью поднятия его в выдаче поисковой системы.

Для начала, давайте перечислим основные недостатки Joomla при работе с ключевыми словами:

  • Глобальные ключевые слова и описание отображаются на всех страницах
  • Дублирование ключевых слов на страницах типа «блог-раздел» и «блог-категория»
  • Длинные описания на страницах «блог-раздел» и «блог-категория»

Это конечно не единственные недостатки, но достаточно весомые. Теперь рассмотрим, какие существуют решения этих проблем.

ВАЖНО: перед внесением любых изменений настоятельно рекомендую сделать резервные копии модифицируемых файлов. Это позволит вам без труда отменить внесенные изменения.

Глобальные ключевые слова и описание отображаются на всех страницах

Действительно, при отображении любой страницы, Joomla «приклеивает» к списку ключевых слов страницы слова, заданные в глобальной конфигурации Joomla. И надо сказать, что пользы от этого весьма мало: с одной стороны список становиться слишком большой, с другой стороны — не все слова из глобального списка могут быть релевантны текущей страницы. И наконец, в этих списках возможно повторение одного и того же слова, а это дублирование, которое тоже пользы не приносит.

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

  1. Открываем файл /includes/frontend.php
  2. Находим в нем строчки:
    $mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
      $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );

    и заменяем на

     $description = '';
      $keywords = '';
    
      $_meta_keys_index = -1;
      $_meta_desc_index = -1;
    
      $n = count( $mainframe->_head['meta'] );
      for ($i = 0; $i < $n; $i++) {
        if ($mainframe->_head['meta'][$i][0] == 'keywords') {
          $_meta_keys_index = $i;
          $keywords = $mainframe->_head['meta'][$i][1];               
        } else if ($mainframe->_head['meta'][$i][0] == 'description') {
          $_meta_desc_index = $i;
          $description = $mainframe->_head['meta'][$i][1];               
        }
      }
    
      if (!$description) {
        $mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
      }
    
      if (!$keywords) {
        $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );
      }
  3. Сохраняем изменения в файле

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

Дублирование ключевых слов на страницах типа «блог-раздел» и «блог-категория»

При формировании страниц типа «блог-раздел» или «блог-категория», Joomla автоматически суммирует все ключевые слова и описания материалов. В результате получается достаточно большой список, и весьма велика вероятность получения дубликатов ключевых слов. Поэтому здесь напрашивается некий механизм исключения дубликатов.

Чтобы избежать повторения ключевых слов, в предыдущем фрагменте кода, сразу после строк:

  if (!$keywords) {
    $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );
}

добавим дополнительный код для удаления дубликатов:

  if ($_meta_keys_index != -1) {
    $keys = $mainframe->_head['meta'][$_meta_keys_index][1];
    $keys = preg_replace("/\,+/is", ", ", $keys);
    $keys = preg_replace("/\s+/is", " ", $keys);
    $keys = strtolower($keys);
    $keys = implode(', ', array_unique(split(', ', $keys)));
    $mainframe->_head['meta'][$_meta_keys_index][1] = $keys;
  }

Таким образом, мы избавимся от дублирования ключевых слов на страницах типа «блог-раздел» и «блог-категория».

Длинные описания на страницах «блог-раздел» и «блог-категория»

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

  1. использовать глобальное описание;
  2. формировать описание из заголовков материалов.

Реализация обоих вариантов предполагает небольшую модификацию исходного кода стандартного компонента com_content.

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

  1. Открываем файл /components/com_content/content.html.php
  2. Находим в нем строчку:
        $mainframe->appendMetaTag( 'description', $row->metadesc );

    и заменяем ее на:

        global $option, $task;
        if ( $task == 'view' ) {
          $mainframe->appendMetaTag( 'description', $row->metadesc );
        }
  3. Сохраняем изменения в файле

В результате данной модификации, описание материала будет добавляться в мета только в том случае, если в данный момент открыта страница с полным текстом материала. В противном случае, описание не добавится, а модификация, внесенная нами в самом начале статьи, добавит на страницу глобальное описание.

Для реализации третьего варианта (генерация мета-описания для страниц типа «блог-раздел» или «блог-категория» из заголовков материалов) необходимо выполнить следующую модификацию:

  1. Открываем файл /components/com_content/content.html.php
  2. Находим в нем строчку:
     $mainframe->appendMetaTag( 'description', $row->metadesc );

    и заменяем ее на:

        global $option, $task;
        if ( $option != 'com_frontpage' && $task != 'view' ) {
          $mainframe->appendMetaTag( 'description', $row->title );
        }
  3. Сохраняем изменения в файле

Надо заметить, что в этом случае мы отключаем наш механизм формирования описания не только на странице просмотра материала, но и на главной странице. Это сделано для того, чтобы все-таки на главной работало глобальное описание.

Заключение

Ну вот вроде бы и все. В заключении хочется напомнить, что помимо описанных способов, есть еще один способ управления ключевыми словами на заданной странице (или группе страниц), не требующий модификации ядра Joomla и ее компонентов. Он заключается в использовании функционала шаблонов Joomla. И возможностей у этого пути ничуть не меньше. Например, ведь никто не запрещает нам прописать нужные ключевые слова прямо в шаблоне, и назначить его главной странице сайта. Или добавить в шаблон проверку на текущий компонент (страницу, группу страниц) и в зависимости от этого, выводить тот или иной предустановленный набор ключевых слов.

Источник: http://joomlaportal.ru/content/view/1341/68/

Posted in Joomla, Продвижение сайтов and tagged , .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.