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

2) Написание правильного файла robots.txt

Суть проблемы в том, что по умолчанию поисковые системы индексируют все доступные урл-ы на форуме phpbb. Как следствие — утечка PageRank’а и возможный бан в Яндексе.

Метод решения:

Для индексации нам нужно только три файла:

/index.php
/viewforum.php
/viewtopic.php

Все остальное надо закрыть в robots.txt

User-agent: *
Disallow: /admin/
Disallow: /db/
Disallow: /images/
Disallow: /includes/
Disallow: /language/
Disallow: /templates/
Disallow: /common.php
Disallow: /config.php
Disallow: /faq.php
Disallow: /groupcp.php
Disallow: /login.php
Disallow: /memberlist.php
Disallow: /modcp.php
Disallow: /posting.php
Disallow: /privmsg.php
Disallow: /profile.php
Disallow: /search.php
Disallow: /viewonline.php

Кстати, грамотный robots.txt даст вам передышку от спаммеров, у которых один из методов поиска форумов для спама — поиск определенных файлов из дистрибутива phpbb. Следовательно, отсутствие этого файла в индексе Google на некоторое время спасет ваш форум.

Настройка форума 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 = ‘’; }