Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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