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

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

Весьма актуальный вопрос - без грамотной оптимизации форума продвигать его будет сложно.

Предлагаю озвучить идеи.

 

У меня третья версия форума.

 

1. Мод для титла раздела: надо иметь возможность добавлять разные значения в название раздела, которое отображается на форуме и в строке навигации, и титла раздела. Титл всегда будет длинным, чтобы вобрать в себя основные ключи. Название короче титла, поэтому нужны разные поля для прописывания значений в титле и названии раздела.

 

2. Вместо нофоллоу и ноиндекс проще сделать ссылки с форума вида http://forum.ru/click?http://www.site.ru - толку больше в разы.

 

3. Аналогично первому пункту, только для главной страницы.

 

4. Нужно иметь возможность добавлять описание раздела в подвале - оптимизированный текст, описывающий раздел, прекрасно поможет выходу в топы в ПС.

 

Озвучивайте предложения, обсудим.

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

У меня сделан большой сеошный комплекс, но под первую линейку IPB.

- Анализ входящего трафика из поисковок, выявление целевых поисковых запросов;

- Перелинковка спанами/стронгами/аббрами релевантных страниц;

- Самопополняющийся глоссарий страниц форума и блогов на основе целевых поисковых запросов.

И в дополнение:

- Заголовки топиков забраны в h1;

- Динамические интеллектуальные тайтлы и мета-теги на все страницы;

- Автоперелинковка по ключевым словам продвигаемых статей;

- Внешние ссылки через редирект.

 

Переписывать под старшие версии не возьмусь, но если в команде делать, то идеями поделюсь.

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

мне интересен принципиальный алгоритм перелинковки

есть словарь, содержащий данные соответствия "слово(сочетание) - ид темы" ?

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

мне интересен принципиальный алгоритм перелинковки

есть словарь, содержащий данные соответствия "слово(сочетание) - ид темы" ?

Да, конечно: http://vesvalo.net/journal.php?user=1&...763&c=76542

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

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

я там еще поспрашивал некоторые проблемные моменты

Сначала поиск по первому слову:

						// Встали в начало первого слова
					$pos = strpos(strtolower($txt),strtolower($str[$i]));
					// Чтобы не отхватывать с середины слова
					if(!stristr(" .,\"':;!?«»“”()[]<>{}\\/%*#@+`&",substr($txt,($pos-1),1)))$err++;
					// Если в середине слова ХТМЛ-тег
					$lpos = $pos;
					while( substr($txt,($lpos-1),1) == ">" )
					{
						while($lpos and substr($txt,($lpos-1),1) != "<")
						{
							$lpos--;
						}
						$lpos--;
					}

Если попали на ХТМЛ-тег - отступили, и циклом до закрывающей скобки прошли, заодно проанализировали, чтобы чужой гиперлинк не зацепить. Параллельно и влево от вхождения смотрится, не открыт ли гиперлинк.

 

Затем встаю в начало следующего слова и сверяю со вторым словом в списке. И так в цикле по всем словам в словосочетании.

Переменная $err прибавляется, если выявлены несоответствия: словосочетания не совпали, или влетели внутрь чужого гиперлинка...

И завершение:

				if(!$err)$txt_r .= substr($txt,0,$begin).$incr_tag.substr($txt,$begin,($pos-$begin)).$decr_tag;
			else $txt_r .= substr($txt,0,$pos);
			$txt = substr($txt,$pos);
		}
		$txt = trim($txt_r.$txt);

 

 

 

Насколько я знаю поисковки, даже пара сотен внутренних линков на странице - не криминал, если линки вполне тематичные.

У меня на практике получается сейчас не больше пары десятков линков на странице - это вполне нормально.

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

у меня это все гораздо более жестоко)

	function replace_acronym($source)
{
	$hid=0;
	$hidden=array();
	$lines=explode(PHP_EOL,trim($this->keylist));
	foreach($lines as $line)
	{
		$words=explode('/',$line);
		$words[0]=str_replace('?','(\S+?)',$words[0]); //разделение + и * для обязательного наличия символов
		$words[0]=str_replace('*','(\S*?)',$words[0]); //в таком случае обрабатываются только окончания слов, могущие содержать простые теги (b,i,u)
		//$words[0]=str_replace('*','([^br,.]*?)',$words[0]); в таком случае обрабатываются любые теги, кроме br, но и слишком большие куски, например двенадцать очень длинных лишних слов шагов
		while(preg_match("#<div class=\"(?:postcolor|seocontent)\"([^>]*?)>(.*?)(".$words[0]."+?)(.*?)</div>#i",$source,$m)) //ограниченная область поиска слов - не надо менять по всей странице, только в содержательных местах - пост,статья
		{
			//прячем найденное, чтобы while не крутился вечно
			$hidden[$hid]=$m[3];
			$source=str_replace($m[2].$m[3],$m[2]."<!--hidden{$hid}-->",$source);

			if($this->check_acronym($m[2],$m[3],$words[0]))
			{
				//вместо просто слова делаем ссылку
				$hidden[$hid]='<a href="'.$this->ipsclass->vars['board_url'].'/'.$words[2].'" title="'.$words[1].'" style="text-decoration:none; border-bottom-style:dotted; border-bottom-width:thin;" target="_blanc">'.$m[3].'</a>';
			}
			$hid++;
		}
	}

	if(count($hidden))
	{
		//возвращаем найденное на место
		while(preg_match("/<!--hidden(\d+?)-->/i",$source))
		{
			$source=preg_replace("/<!--hidden(\d+?)-->/ie","\$hidden[\\1]",$source);
		}
		/*foreach($hidden as $rid => $ht)
		{
			$source = str_replace("<!--hidden{$rid}-->",$ht,$source); //так не обрабатываются слова, попавшие случайно внутрь, тоесть если hidden[x] содержит строку, содержащую <!--hiddenY-->
		}*/
	}
	return $source;
}
function check_acronym($start,$text,$a)
{
	$this->wordlimit[$a]++;
	if($this->wordlimit[$a]>10) return false; //тут можно сделать 200?

	if(!trim($text)) return false;

	//здесь мы смотрим, если в предшествующем куске текста открытых ссылок больше, чем закрытых, значит мы в теге а
	$as=substr_count($start,"<a");
	$ae=substr_count($start,"</a");
	if($as!=$ae) return false;

	preg_match("#".$a."#i",$text,$m);

	if(isset($m[1]))
	{
		//здесь мы смотрим, есть ли тег а во внутренней части, попадающей под маску
		$as=substr_count($m[1],"<a");
		$ae=substr_count($m[1],"</a");

		//здесь - перенос строки
		$br=substr_count($m[1],"<br");

		//здесь - есть ли внутри отработанная ссылка
		$hc=substr_count($m[1],"<!--hidden");

		if($as || $ae || $br || $hc) return false; //не подходит
		//$bs=(substr_count(strip_tags($m[1])," ")-1);
		//if($bs>0) return false;
	}
	if(!$m[0])
	{
		return false;
	}

	return true;
}

закомментированы пробные варианты

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

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

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

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

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

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

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

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

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

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

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

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