Главная arrow Программирование arrow HTML arrow Joomla: как правильно организовать мета-теги title, description и keywords для продвижения сайта Wednesday, September 20 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Joomla: как правильно организовать мета-теги title, description и keywords для продвижения сайта Версия для печати
Написал microsin   
27.11.2009

В процессе работы с CMS Joomla (версия 1.0.12) постоянно сталкивался с трудностями при формировании метатегов title, description и keywords. В статье описано, как эту проблему можно решить простыми средствами.

Для начала несколько слов про вышеупомянутые метатеги.

[Метатеги title, description и keywords]

Метатег title влияет на внешний вид окна браузера при просмотре страницы сайта. Содержимое title отображается на плашке верхней браузера, а также на кнопке окна браузера в панели задач. Кроме того, title определяет внешний вид заголовка результата поиска Google и Yandex.

Метатег description представляет краткое описание (резюме) просматриваемой страницы. Он важен для оптимизации страниц сайта в плане популярности страниц у поисковых систем. Этот тег несколько утратил свое значение в плане важности, так как интеллект роботов индексации постоянно повышается, и их разработчики стараются улучшить разбор именно полезного содержимого страницы, а не просто тегов description и keywords. Но все равно важно правильно задать нужный тег description как для главной страницы сайта, так и для остальных страниц, поскольку этот тег сильно влияет на внешний вид результата поиска.

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

[Проблемы Joomla, связанные с метатегами]

title - этот метатег можно поменять только для всего сайта сразу (он будет применен глобально и будет показываться на всех страницах сайта) в панели управления Joomla - меню Сайт -> Общие настройки -> закладка Сайт -> поле ввода "Имя сайта". Если тут ничего не задать, то на плашке браузера и кнопке панели задач вместо текста title будет показан адрес странички, что некрасиво. Идеальный, на мой взгляд вариант - если задан параметр "Алиас заголовка", то назначить title его значением, иначе применить глобальный title сайта.

description - этот метатег также задается в одном месте для всего сайта, для всех его страниц (меню Сайт -> Общие настройки -> закладка Метаданные -> поле ввода "Описание флага Meta для сайта"). Кроме того, для каждой отдельной страницы можно задать дополнительно еще и свою добавку к метатегу description (в редакторе статьи, в нижней части страницы есть закладка Мета-данные, и там есть поле ввода "Описание"). Если описание для статьи задано, то её содержимое добавляется в конец глобального описания сайта (заданного в админке), иначе выводится только общий тег описания. Недостаток такого алгоритма выдачи тега description - описание статьи добавляется в конец, что снижает информативность описания страницы сайта. Идеальный вариант решения проблемы - если имеется описание статьи, то его нужно отображать первым, а дальше вставлять общее описание сайта. Или, как вариант, отображать только описание статьи, без общего описания сайта.

keywords - этот метатег задается точно по такому же принципу, как и тег description - общие ключевые слова через меню Сайт -> Общие настройки -> закладка Метаданные -> поле ввода "Описание флага Meta Keywords", а ключевые слова статьи в редакторе статьи, в поле ввода Мета-данные -> Ключевые слова. Следовательно проблема осталась та же самая - ключевые слова статьи попадают в конец ключевых общих слов. Хотелось бы, чтобы было наоборот - ключевые статьи статьи выводить в первую очередь. Кроме того, отсутствует средство автоматической генерации списка ключевых слов, чтобы не надо было создавать ключевые слова отдельно для каждой страницы. Т. е. для тех статей, для которых пользователь не задал вручную ключевые слова, эти слова могли бы сгенерироваться автоматически из содержимого статьи по заданным правилам.

[Решение проблемы с тегом title]

Можно установить Title Manager 1.0.1 Released, и воспользоваться его возможностями (см. Ссылку 4). Но я пока решил эту проблему "в лоб" - просто убрал из текущего шаблона сайта код, который выводит тег title. Для этого нужно открыть файл templates/папка_текущего_шаблона/index.php и закомментировать строчку <title><?php echo $mosConfig_sitename; ?></title>, вот так (или вообще её удалить):
<head>
<!-- правка начало
  <title><?php echo $mosConfig_sitename; ?></title>
     правка конец-->
  <?php
    include ("includes/metadata.php");
..

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

[Решение проблемы с тегом description]

Для этого я воспользовался советом из ссылки 2 (см. Ссылки), и исправил код файла /includes/frontend.php.
  //изменение начало
  //$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 );
  }   
  //изменение конец

После этого изменения для тех статей, для которых не заданы теги description и keywords, содержимое тегов составляется из имени сайта и названия статьи.

[Решение проблемы с тегом keywords]

Частичное устранение проблемы дает предыдущий совет из ссылки 2, но для полного счастья нужно установить iJoomla Metatag Generator и настроить его (я пока этого делать не стал).

После того, как провел все вышеуказанные изменения, у меня выпали из индекса все проиндексированные статьи в Yandex. Точнее, индекс Yandex стал "кривой" - результаты поиска выдавались, но ссылки по ним были неправильные, из-за чего заметил снижение посещаемости сайта. С Google проблем никаких не было - результаты поиска были корректные. Индекс моего сайта в Yandex начал восстанавливаться только через неделю (узнал по статистике liex.ru). Приятно, что заново проиндексированные статьи начали показываться в результатах поиска Google и Yandex именно так, как я хотел - с указанием названия статьи (особенно с этим беда у меня раньше была на Yandex).

[Ссылки]

1Описание проблем с метатегами.
2. Joomla и SEO: оптимизация ключевых слов (решение проблемы с помощью правки /includes/frontend.php).
3. Компоненты для организации метатегов - metaFly, JoomSEO, iJoomla Metatag Generator
4. Title Manager 1.0.1 Released

Последнее обновление ( 03.07.2011 )
 

Комментарии  

  1. #5 Алексей
    2012-02-2915:31:18 Класс. Проблема с description и keywords решилась в момент. Большое спасибо
  2. #4 Волос
    2011-11-2901:25:27 А если title совпадает с названием статьи - это нормально?
  3. #3 Ангелина
    2011-07-0300:05:29 Вообще нестандартная ситуация - пропали мета тег keywords на всем сайте. Настройки ничего не дали. Даже не представляю, где искать проблему, помогите кто чем сможет.

    microsin:
    Теги перестали генерироваться наверняка по причине неосторожных исправлений в коде модулей. Вам просто нужно найти ошибку, и вернуть "как было". Для этого попробуйте сделать следующее.

    1. Слейте всю структуру файлов и каталогов на Денвер. Залейте на эту инсталляцию MySQL-базу с Вашего сайта.
    2. Теперь смотрите внимательно, какие файлы *.php Вы меняли (сравнивая с файлами бекапа или прото Вашего дистрибутива Joomla) - и найдете ошибку.
    3. Если у Вас мало ручных правок в коде Joomla по сравнению с дистрибутивом, просто сделайте новую инсталляцию Joomla, установите туда Ваш шаблон и нужные модули, а затем просто залейте старую базу MySQL сайта.
  4. #2 klubnichka
    2011-01-2111:06:29 А мне нужно для компонента прописать описание - как это сделать?
  5. #1 Скринкаст
    2010-12-1110:10:47 Недавно вышел плагин для title с разделителем | , но перед ним слово HOME|, как его заменить на имя своего сайта?

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

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017