Внимание !!!Если вы не боитесь ковырять код форума, то вам следует пропустить первый шаг(установку мода) и обратить внимание на модификации и и , так как с помощью них вы можете вручную задать нужные описания и ключевые слова, мод представленный ниже делает это автоматически, но в результате можете получить кашу из тегов и не ахти какие популярные ключевые слова !!! А так же в любом случае нужно установить мод карты сайта (сайтмап, sitemap) для ускорения индексации форума поисковиками -
Шаг 1. Метатеги. Автоматический вывод метатегов и заполнение их.
В стандартной, чистой инсталке форума метатеги забиты жестко, регулируются прямыми правками в файлах и отображаются для всех страниц тем одинаковыми. Представьте себе сколько форумов-клонов с мире с одинаковыми метатегами ??? Коллосальное число, оптимизации ноль, шансы перед поисковиками равны. С модом, описанным ниже, ваши позиции возрастут по сравнению с неоптимизированными форумами.
Установка.
Скачать и установить по инструкции мод из архива
A | Обратите внимание !!! Сразу же в процессе установки мода нам надо решить проблему с тем, что мод не выводит русские ключевики. Решение под спойлером
Решение - открыть Код: Выделить всё
Код: Выделить всё
|
Руссификация
Открыть language/ru/acp/board.php и найти
Код: Выделить всё
'WARNINGS_EXPIRE_EXPLAIN'
));
Код: Выделить всё
// Advanced Meta Tags MOD
$lang = array_merge($lang, array(
'APPEND_GLOBAL_KEYWORDS' => 'Глобальные ключевые слова ',
'APPEND_GLOBAL_KEYWORDS_EXPLAIN'=> 'Добавить глобальные ключевые слова к сгенерированным',
'APPEND_KEYWORDS_FIRST' => 'Место глобальных ключевых слов',
'APPEND_KEYWORDS_FIRST_EXPLAIN' => 'Да - Глобальные перед сгенерированными,<br />Нет - Глобальные после сгенерированных',
'DESCRIPTION_WORD_COUNT' => 'Лимит сгенерированных слов',
'DYNAMIC_DESCRIPTION' => 'Включить в страницу сгенерированное описание',
'DYNAMIC_KEYWORDS' => 'Включить сгенерированные слова',
'GLOBAL_KEYWORDS' => 'Глобальные ключевые слова',
'KEYWORD_WORD_COUNT' => 'Лимит слов в описании',
));
Открыть /styles/ваш стиль/overall_header.html и найти
Код: Выделить всё
<meta name="keywords" content="" />
<meta name="description" content="" />
Код: Выделить всё
<meta name="keywords" content="{PAGE_KEYWORDS}" />
<meta name="description" content="{PAGE_DESCRIPTION}" />
Стандартные заголовки или тайтлы (от названия тега <title>) форума ничего общего с сео-оптимизацией не имеют. Лишние слова, такие как «Просмотр форума», «Просмотр темы», «Главная», и притом одинаковые для всех тем и разделов, мы постараемся убрать в этом шаге.
Избавляемся от «Главная страница»
Код: Выделить всё
page_header($user->lang['INDEX']);
Код: Выделить всё
page_header();
Код: Выделить всё
page_header($user->lang['VIEW_FORUM'] . ' - ' . $forum_data['forum_name'], true, $forum_id);
Код: Выделить всё
page_header($forum_data['forum_name'], true, $forum_id);
Код: Выделить всё
page_header($user->lang['VIEW_TOPIC'] . ' - ' . $topic_data['topic_title'], true, $forum_id);
Код: Выделить всё
page_header($topic_data['topic_title'], true, $forum_id);
Код: Выделить всё
page_header($topic_data['topic_title'], true, $first_post_text, $forum_id);
Для примера вот неоптимизированный
Код: Выделить всё
if (!sizeof($attachments))
{
return;
}
global $template, $cache, $user;
global $extensions, $config, $phpbb_root_path, $phpEx;
Код: Выделить всё
global $topic_data;
Код: Выделить всё
'COMMENT' => $comment,
Код: Выделить всё
'TOPIC_TITLE' => censor_text($topic_data['topic_title']),
Код: Выделить всё
alt="{_file.DOWNLOAD_NAME}"
Код: Выделить всё
alt="{_file.TOPIC_TITLE}"
2.
Для страницы просмотра подфорумов, открыть
Код: Выделить всё
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( $start / $config['topics_per_page'] ) + 1 ) : '';
page_header($forum_data['forum_name'] . $extra_title, true, $forum_id);
Код: Выделить всё
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor ($start / $config['posts_per_page'] ) + 1 ) : '';
page_header($topic_data['topic_title'] . $extra_title, true, $forum_id);
Код: Выделить всё
'TOPIC_SEO_TITLE' => (isset($topic_data['topic_seo_title'])) ? $topic_data['topic_seo_title'] : '',
Код: Выделить всё
'PAGENUM' => ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor ($start / $config['posts_per_page'] ) + 1 ) : '',
Код: Выделить всё
{TOPIC_SEO_TITLE}
Код: Выделить всё
{PAGENUM}
Код: Выделить всё
'CHANGING_PROFILE' => 'Изменение настроек профиля',
Код: Выделить всё
'Page' => 'Страница ',
Код: Выделить всё
<title>
Код: Выделить всё
<!-- IF SCRIPT_NAME == "viewforum" -->{PAGE_TITLE}<!-- ELSE -->
Код: Выделить всё
</title>
Код: Выделить всё
<!-- ENDIF -->
![Смех :-0=)](./images/smilies/ag.gif)
Код: Выделить всё
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^fpit/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&t=1 [NC]
RewriteRule ^fpin/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&mode=view [NC]
RewriteRule ^fpid/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
</IfModule>
Код: Выделить всё
if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && ((strpos(strtolower($user->browser), 'msie') !== false) && (strpos(strtolower($user->browser), 'msie 8.0') === false)))
{
wrap_img_in_html(append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $attachment['attach_id']), $attachment['real_filename']);
file_gc();
}
Код: Выделить всё
if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && ((strpos(strtolower($user->browser), 'msie') !== false) && (strpos(strtolower($user->browser), 'msie 8.0') === false)))
{
send_file_to_browser($attachment, $config['upload_path'], $display_cat);
file_gc();
}
Код: Выделить всё
if (empty($user->browser) || (!$is_ie8 && (strpos(strtolower($user->browser), 'msie') !== false)))
{
header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
{
header('expires: -1');
}
}
else
{
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
if ($is_ie8 && (strpos($attachment['mimetype'], 'image') !== 0))
{
header('X-Download-Options: noopen');
}
}
Код: Выделить всё
if (empty($user->browser) || (!$is_ie8 && (strpos(strtolower($user->browser), 'msie') !== false)))
{
if (false === strpos($attachment['mimetype'], 'image'))
header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
{
header('expires: -1');
}
}
else
{
if (false === strpos($attachment['mimetype'], 'image'))
header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
if ($is_ie8 && (strpos($attachment['mimetype'], 'image') !== 0))
{
header('X-Download-Options: noopen');
}
}
Открываем файл
Код: Выделить всё
function parse_attachments($forum_id, &$message, &$attachments, &$update_count, $preview = false)
{
if (!sizeof($attachments))
{
return;
}
global $template, $cache, $user;
Код: Выделить всё
function parse_attachments($forum_id, &$message, &$attachments, &$update_count, $preview = false)
{
if (!sizeof($attachments))
{
return;
}
global $template, $cache, $user, $topic_data;
Код: Выделить всё
switch ($display_cat)
{
// Images
case ATTACHMENT_CATEGORY_IMAGE:
$l_downloaded_viewed = 'VIEWED_COUNT';
$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
$download_link .= '&mode=view';
$block_array += array(
'S_IMAGE' => true,
'U_INLINE_LINK' => $inline_link,
);
$update_count[] = $attachment['attach_id'];
break;
// Images, but display Thumbnail
case ATTACHMENT_CATEGORY_THUMB:
$l_downloaded_viewed = 'VIEWED_COUNT';
$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&t=1');
$download_link .= '&mode=view';
$block_array += array(
'S_THUMBNAIL' => true,
'THUMB_IMAGE' => $thumbnail_link,
);
$update_count[] = $attachment['attach_id'];
break;
Код: Выделить всё
switch ($display_cat)
{
// Images
case ATTACHMENT_CATEGORY_IMAGE:
$l_downloaded_viewed = 'VIEWED_COUNT';
$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
$download_link .= '&mode=view';
if (isset($topic_data) && isset($topic_data['topic_title']))
{
$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ?
utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
$fn = rawurlencode($fn);
$inline_link = "/fpid/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
$download_link = "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
}
$block_array += array(
'S_IMAGE' => true,
'U_INLINE_LINK' => $inline_link,
);
$update_count[] = $attachment['attach_id'];
break;
// Images, but display Thumbnail
case ATTACHMENT_CATEGORY_THUMB:
$l_downloaded_viewed = 'VIEWED_COUNT';
$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&t=1');
$download_link .= '&mode=view';
if (isset($topic_data) && isset($topic_data['topic_title']))
{
$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ?
utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
$fn = rawurlencode($fn);
$thumbnail_link = "/fpit/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
$download_link = "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
}
$block_array += array(
'S_THUMBNAIL' => true,
'THUMB_IMAGE' => $thumbnail_link,
);
$update_count[] = $attachment['attach_id'];
break;
![Пока-пока :(](./images/smilies/10.gif)