Новости Joomla на русском
Главная Новости Форум Статьи и обзоры Вопросы и Ответы
Joomla! по-русски
Вышла стабильная версия Joomla 2.5.1! Исправлено 32 ошибки (2 ошибки безопасности низкого уровня), увеличена скорость работы Joomla на Windows Azure, исправлены ошибки в функциях пакетной обработки и поиска. Библиотека MooTools обновлена до версии 1.4.3. Разработчики настоятельно рекомендуют обновиться до Joomla 2.5.1. Пакет русской локализации Joomla 2.5 уже доступен для загрузки.
 
Saturday, 04 February 2012 Главная arrow Статьи и обзоры arrow Joomla и SEO: оптимизация ключевых слов
Категории
Статьи
Обзоры
Модификации и хаки
Для разработчиков
Joomla!® CMS
Russian Joomla Translation Team
Безопасность
Популярные статьи

Advego.ru - наполнение сайтов информацией

Замечание

Joomla!® является торговой маркой компании Open Source Matters inc в США и др. странах. Название Joomla! и его вариации, такие как J, Joom и т.д., используются в рамках ограниченной лицензии, определённой компанией Open Source Matters. Проект Joomlaportal не относится к компании Open Source Matters или проекту Joomla! Точки зрения представленные на данном сайте не являются официальными точками зрения Joomla Project или Open Source Matters.

Торговая марка Joomla® и логотип используются в рамках ограниченной лицензии, предоставленной Open Source Matters.

Joomla и SEO: оптимизация ключевых слов

11.04.2007 | smartСтатьи и обзоры / Модификации и хаки

Довольно часто можно услышать от оптимизаторов, что 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. И возможностей у этого пути ничуть не меньше. Например, ведь никто не запрещает нам прописать нужные ключевые слова прямо в шаблоне, и назначить его главной странице сайта. Или добавить в шаблон проверку на текущий компонент (страницу, группу страниц) и в зависимости от этого, выводить тот или иной предустановленный набор ключевых слов.

Обсудить данную статью, высказать замечания и предложить свои варианты по улучшению Joomla для SEO-оптимизации можно у нас на форуме, в разделе SEO.

 
< Пред.   След. >
Загрузить Joomla!® CMS

Joomla 2.5

Joomla 2.5.1

Joomla 2.5.0 Joomla 2.5.1

Локализация Joomla 2.5

Пакет русской локализации Joomla 2.5.1

Joomla 1.7

Joomla 1.7.5

Joomla 1.7.3 Russian
(русифицированная версия)

Joomla 1.7.4 Joomla 1.7.5

Локализация Joomla 1.7

Пакет русской локализации Joomla 1.7.5

Joomla 1.5

Joomla 1.5.25

Joomla 1.5.25 Russian
(русифицированная версия)

Joomla 1.5.24 Joomla 1.5.25

Локализация Joomla 1.5

Русский язык для лицевой панели (site)
Русский язык для административной панели (admin)

Как обновить Joomla 1.0
до версии Joomla 1.5?

Документация

Joomla 1.7 FAQ
Joomla 1.5 FAQ
Joomla 1.0 FAQ


Русская версия Joomla

Joomla 1.7 Russian
Joomla 1.5 Russian