Новости Joomla на русском
Главная Новости Форум Статьи и обзоры Вопросы и Ответы
Joomla! по-русски

Доступен к загрузке релиз безопасности Joomla 1.5.20 [senu takaa]. Данная версия не содержит никаких исправлений, и выпущена лишь потому, что в пакетах обновления до версии 1.5.19 были допущены ошибки (не все файлы были включены). Эти проблемы не касаются полного дистрибутива Joomla 1.5.19, однако разработчики Joomla рекомендуют незамедлительно установить обновление до Joomla 1.5.20 взамен предыдущих версий.

 
воскресенье, 01 августа 2010 Главная arrow Статьи и обзоры arrow Joomla и SEO: оптимизация ключевых слов
Категории
Статьи
Обзоры
Модификации и хаки
Joomla!™ CMS
Russian Joomla Translation Team
Безопасность
Популярные статьи

Замечание

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 | Забобрить эту страницу! | del.icio.us
Статьи и обзоры / Модификации и хаки

Довольно часто можно услышать от оптимизаторов, что 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 1.5

Joomla 1.5.20 Что нового в Joomla CMS 1.5.20

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


Joomla 1.5.17 Joomla 1.5.20
Joomla 1.5.18 Joomla 1.5.20
Joomla 1.5.19 Joomla 1.5.20

Локализации

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


Joomla 1.0

(устаревшая версия)

Joomla 1.0.15 Что нового в Joomla CMS 1.0.15

Joomla 1.0.13 Joomla 1.0.15
Joomla 1.0.14 Joomla 1.0.15
все обновления...

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

Языковые файлы

Русский
Украинский
Белорусский

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

Joomla 1.5 FAQ
Joomla 1.0 FAQ
Руководство пользователя Joomla 1.0.11


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

Joomla 1.5.17 Russian
Joomla 1.0.15 LE 2008

Демо версия

Joomla! 1.5.17 (FrontEnd)
Joomla! 1.5.17 (BackEnd)
(Demo/Demo)