Перейти к контенту
  • 0

SEO оптимизация для форума 2.3.6. задать meta description, keywords


Zhelezaka

Вопрос

Имеется форум IPB версии 2.3.6, купленный давным давно. Функционал с навешанным модами вполне устраивает, но когда создатели писали данную версию форума совсем не думали про SEO, т.к. не возможно задать meta description, keywords.

 

Что удалось найти по данной проблеме:

http://forums.ibresource.ru/index.php?/topic/18616/

http://forums.ibresource.ru/index.php?/topic/54346/page__st__20- "Интеллектуальный" meta Keywords

и

http://ipbskins.ru/forum/topic3591.html

http://ipbskins.ru/forum/topic2049.html

http://ipbskins.ru/forum/topic4745.html

 

Недавно добавлял SEO моды к форуму phpbb, суть которых сводилась к добавлению дополнительный полей в таблицу тем (описание, ключевые слова) и возможностью их прописать для каждой темы и к каждому подфоруму. Реализация более чем простая, захотелось реализовать для IPB.

 

Вопросы:

Вариант 1

У каждого форума и подфорума заданы уже Название форума, Описание, а также у каждой темы имеется Название темы (title) и Описание темы (используется при просмотре тем в подфоруме). Вопрос, как можно грамотно вывести эту уже имеющуюся информацию в <META name="description"...> по схеме

1) Если форум/подфорум, то берется его Описание и подставляется <META name="description" content="Описание форума/подфорума">

2) Если тема, то <META name="description" content="title + Описание темы">

 

Вариант 2

1) Задать description и keywords для главной страницы форума, т.е. для страницы forum.такой-то.ru/, forum.такой-то.ru/index.php?act=idx

2) Добавить в Админцентр > Управление форумами > Добавление/изменение форума дополнительные поля, где будет задаваться description, keywords отдельного подфорума (т.е. точно также как задается Название форума, Описание и т.д.). И будет добавляться в META на страницу каждого подфорума

<META name="description" content="описание подфорума">
<META name="keywords" content="ключевые слова подфорума" >

3) Тоже самое, но уже для каждой конкретной темы. Т.е. помимо задания Название темы и Описание темы можно было бы задать и ключевые слова.

 

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

 

P.S. Если кто-то готов взяться за реализацию данного "SEO-мода" по варианту 2 в грамотном виде за вознаграждение, то с удовольствием обсужу

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

вариант 2 лучше с точки зрения качества мета description, но надо понимать, что все эти слова придется забивать вручную каждый раз

keywords проще генерировать автоматически со страницы, это надо делать в class_display перед выводом (если есть мод http://forums.ibreso...ds&showfile=322 то там же, где и он ссылки преобразует)

добавляем переменную в раздел, где указывается название форума, путь к uploads и т.д. в виде textarea с ключем keylist

заполняем

оптимиз?/Оптимизация форума
пластиковые/Пластиковые окна

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

понятно как заполнять?

 $keys_string = strip_tags(preg_replace("/<optgroup(.+?)<\/optgroup>/is","",$this->ipsclass->skin['_wrapper']));
 $this->keylist = $this->ipsclass->vars['keylist'];
 $meta_keywords = $this->return_keywords($keys_string);
 $this->ipsclass->skin['_wrapper'] = str_replace("<!--META_KEYWORDS-->",$meta_keywords,$this->ipsclass->skin['_wrapper']);

function return_keywords($keystring="")
{
 $usedwords=array();
 $keywords="";
 if(!trim($this->keylist)) return $keywords;
 $lines=explode(PHP_EOL,trim($this->keylist));
 foreach($lines as $line)
 {
  $words=explode('/',$line);
  $words[0]=str_replace('*','([A-Za-zА-Яа-яЁё]*?)',$words[0]);
  $words[0]=str_replace('?','([A-Za-zА-Яа-яЁё]+?)',$words[0]);
  if((preg_match("#(\W+?)".$words[0]."(\W+?)#i",$keystring))and(!in_array($words[1],$usedwords)))
  {
$keywords.=$words[1].', ';
$usedwords[]=$words[1];
  }
 }
 $keywords = preg_replace("/, $/",'',$keywords);

 return $keywords;
}

и в главном шаблоне добавляем

<meta name="Keywords" content="<!--META_KEYWORDS-->" />

наверно понятно куда

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Arhar, спасибо, направление ясно.

Но вот еще вопрос. Касательно варианта 2. Необходимо добавить поля БД - это понятно, но как их правильно вставить к код форума и куда, что бы они выводились и их можно было заполнять администраторам и модераторам форума?

А также вывод описания подфорумов, т.к. в принципе описание им составлено уже.

 

P.S. Я не селен в IPB, так по мелочи кое какие моды накатывал :)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

ну в том же class_display по такому же принципу замены в глобальном шаблоне

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Arhar, еще раз большое спасибо :drinks: . твой алгоритм Keywords-ов работает просто отлично :) .

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

Для тем по схеме - <META name="description" content="title + Описание темы">, если нет Описание темы - тогда общее описание форума.

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

 

Вот еще полезно кому-нибудь будет -

http://ipbskins.ru/forum/topic4231.html - Как добавить новую настройку в настройки форумов

http://forums.ibresource.ru/index.php?/topic/47959/page__hl__%2Bmeta+%2Beverywhere - отдельный title для главной

http://forums.ibresource.ru/index.php?/topic/50178/page__hl__description__st__20 - Теги / Метки

http://ipbskins.ru/forum/topic4745.html

 

Код в class_display

// META tags
 $meta_keywords = '';
 $meta_desc = '';
 if(isset($this->ipsclass->input['showtopic'])) // META tags for topics
 {
  $keys_string = strip_tags(preg_replace("/<optgroup(.+?)<\/optgroup>/is", "", $this->ipsclass->skin['_wrapper']));

  $this->keylist = $this->ipsclass->vars['keylist'];
  $meta_keywords = $this->return_keywords($keys_string);

  if(trim($this->ipsclass->topic_cache["description"])) // Topic description exists
   $meta_desc = trim($this->ipsclass->topic_cache["title"]).'. '.$this->ipsclass->topic_cache["description"];
  else
   $meta_desc = trim($this->ipsclass->topic_cache["title"]).'. '.$this->ipsclass->vars["meta_desc"];
 }
 else if(isset($this->ipsclass->input['showforum']))
 {
  $forum = $this->ipsclass->cache["forum_cache"][$this->ipsclass->input['showforum']];

  if($forum["keywords"])
   $meta_keywords = $forum["keywords"];
  else
   $meta_keywords = $this->ipsclass->vars["meta_keys"];

  if($forum["description"])
   $meta_desc = trim($forum["name"]).'. '.trim($forum["description"]);
  else
   $meta_desc = trim($forum["name"]).'. '.$this->ipsclass->vars["meta_desc"];
 }
 else
 {
  $meta_keywords = $this->ipsclass->vars["meta_keys"];
  $meta_desc = trim($forum["name"]).'. '.$this->ipsclass->vars["meta_desc"];
 }

 $this->ipsclass->skin['_wrapper'] = str_replace("<% META_K %>", $meta_keywords, $this->ipsclass->skin['_wrapper']);
 $this->ipsclass->skin['_wrapper'] = str_replace("<% META_D %>", $meta_desc, $this->ipsclass->skin['_wrapper']);

Изменено пользователем Zhelezaka
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.