Настройка форума phpbb под поисковые системы. Часть I

phpbb — один из самых популярных движков для создания форумов. Однако изначально, он совершенно не приспособлен для взаймодействия с поисковыми системами. Но, все поправимо, как вы убедитесь прочтя данный пост.

Однако замечу, что все модификации с кодом phpbb или в MySQL вы делаете на свой страх и риск, поэтому никаких претензий можете не предъявлять).

1) Наличие переменных сессии в адресах, генерируемых phpbb.

Известный факт, что адреса вида www.yourhost.ru/forum/index.php?sid=[….] плохо воспринимается поисковыми системами. Проблема заключается в том, что каждый раз заходя на ваш сайт, робот поисковой системы получает новый параметр sid => по нескольку раз индексируя одну и ту же страницу, робот будет думать — что страниц несколько, но с одинаковым контентом.

Как это исправить? Есть 2 способа — один из них, используя методы “клоакинга”, определять, когда к вам заходит бот поисковой системы и отключать на это время сессии.

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

Нам потребуется каждый раз определять параметр User-Agent у посетителей форума, и если он совпадает с базой User-Agent ботов — отключать сессии.

Открываем файл ‘includes/sessions.php’.

Заменяем функцию:

function append_sid($url, $non_html_amp = false)
{
global $SID;

if ( !empty($SID) && !preg_match(’#sid=#’, $url) )
{
$url .= ( ( strpos($url, ‘?’) != false ) ? ( ( $non_html_amp ) ? ‘&’ : ‘&’ ) : ‘?’ ) . $SID;
}

return $url;
}

на функцию:

function append_sid($url, $non_html_amp = false)
{
global $SID;

if ( !empty($SID) && !preg_match(’#sid=#’, $url) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’Googlebot’) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’msnbot’) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’Slurp’) &&

!strstr($_SERVER[’HTTP_USER_AGENT’] ,’Jeeves’) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’crawler’) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’Yandex’) && !strstr($_SERVER[’HTTP_USER_AGENT’] ,’StackRambler’)&& !strstr($_SERVER[’HTTP_USER_AGENT’] ,’spider’)
)
{
$url .= ( ( strpos($url, ‘?’) != false ) ? ( ( $non_html_amp ) ? ‘&’ : ‘&’ ) : ‘?’ ) . $SID;
}

return $url;
}

Второй способ подходит тем, у кого гости не могут создавать темы и писать посты на форуме.

Открываете файл ‘includes/sessions.php’

Замените строку:

$SID =  ‘sid=’ . $session_id;

на строчку:

if ( $userdata[’session_user_id’] != ANONYMOUS ){ $SID = ’sid=’ . $session_id; } else { $SID = ‘’; }

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *