Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Сео-оптимизация phpbb3 2011-11-30

Аватар пользователя

Введение. В сети множество мануалов по этой теме, вот и я решил немного написать об этом. Под сео-оптимизацией я понимаю такие улучшения форума, которые помогают поисковым системам быстрее и качественней индексировать форум, и как следствие лучшие выдачи в поисковых запросах. Впринципе не будем заморачиваться именно на всех тонкостях, расскажу о оптимизации заголовков и метатегов.
Внимание !!!Если вы не боитесь ковырять код форума, то вам следует пропустить первый шаг(установку мода) и обратить внимание на модификации и и , так как с помощью них вы можете вручную задать нужные описания и ключевые слова, мод представленный ниже делает это автоматически, но в результате можете получить кашу из тегов и не ахти какие популярные ключевые слова !!! А так же в любом случае нужно установить мод карты сайта (сайтмап, sitemap) для ускорения индексации форума поисковиками -

Шаг 1. Метатеги. Автоматический вывод метатегов и заполнение их.
Что такое метатеги ??? А метатеги это необязательные теги языков HTML и XMTL, которые не преднаназчены для посетителей сайта, они направлены на поисковые машины. К оформлению метатегов нужно отнестись очень серьезно, т.к. их поисковики используют в сниппетах, то есть показывают его содержимое в результатах поиска в качестве описания страницы. От того, насколько это описание соответствует тому, что ищет пользователь, во многом зависит, перейдет ли он на ваш сайт или на соседний в результатах поиска.

В стандартной, чистой инсталке форума метатеги забиты жестко, регулируются прямыми правками в файлах и отображаются для всех страниц тем одинаковыми. Представьте себе сколько форумов-клонов с мире с одинаковыми метатегами ??? Коллосальное число, оптимизации ноль, шансы перед поисковиками равны. С модом, описанным ниже, ваши позиции возрастут по сравнению с неоптимизированными форумами.

Установка.
Скачать и установить по инструкции мод из архива
Вложение :
Advanced Meta Tags.rar [29.42 KiB]
Скачиваний: 384


A Обратите внимание !!!
Сразу же в процессе установки мода нам надо решить проблему с тем, что мод не выводит русские ключевики.
Решение под спойлером
Решение - открыть includes/functions.php (перед правкой установить кодировку данного файла в UTF-8 без BOOM) и найти
 // Advanced Meta Tags MOD
   $page_keywords = $config['global_keywords'];
   $page_description = $config['site_desc'];
   
   if (!empty($post_text))
   {
      $post_text = strtolower(strip_tags($post_text));
      $post_text = str_word_count($post_text, 1);
      if ($config['use_dynamic_keywords'])
      {
         $count = 0;
         $page_keywords = array();
         foreach ($post_text as $word)
         {
            $word = str_replace("'", '', $word);
           
            if (strlen($word) > 2)
            {
               if (!empty($page_keywords) && in_array($word, $page_keywords))
               {
                  continue;
               }
               $page_keywords[] = $word;
               $count++;
            }
           
            if ($count == $config['keyword_word_count'])
            {
               break;
            }
         }
         $config_keywords = ($config['append_global_keywords']) ? $config['global_keywords'] : '';
         $page_keywords = ($config['append_keywords_first']) ? $config_keywords . ', ' . implode(', ', $page_keywords) : implode(', ', $page_keywords) . ', ' . $config_keywords;
      }
     
      if ($config['use_dynamic_description'])
      {
         $count = 0;
         $page_description = '';
         foreach ($post_text as $word)
         {
            $page_description .= $word . ' ';
            $count++;
           
            if ($count == $config['description_word_count'])
            {
               break;
            }
         }
      }
   }
 

Заменить найденное на
       // Meta Keywords MOD 2.0
       $stopwords = array("/^about$/","/^1$/","/^after$/","/^2$/","/^all$/","/^also$/","/^3$/","/^an$/","/^4$/","/^and$/","/^5$/","/^another$/","/^6$/","/^any$/","/^7$/","/^are$/","/^8$/","/^as$/","/^9$/","/^at$/","/^0$/","/^be$/","/^$$/","/^because$/","/^been$/","/^before$/","/^being$/","/^between$/","/^both$/","/^but$/","/^by$/","/^came$/","/^can$/","/^come$/","/^could$/","/^did$/","/^do$/","/^each$/","/^for$/","/^from$/","/^get$/","/^got$/","/^has$/","/^had$/","/^he$/","/^have$/","/^her$/","/^here$/","/^him$/","/^himself$/","/^his$/","/^how$/","/^if$/","/^in$/","/^into$/","/^is$/","/^it$/","/^like$/","/^make$/","/^many$/","/^me$/","/^might$/","/^more$/","/^most$/","/^much$/","/^must$/","/^my$/","/^never$/","/^now$/","/^of$/","/^on$/","/^only$/","/^or$/","/^other$/","/^our$/","/^out$/","/^over$/","/^said$/","/^same$/","/^see$/","/^should$/","/^since$/","/^some$/","/^still$/","/^such$/","/^take$/","/^than$/","/^that$/","/^the$/","/^their$/","/^them$/","/^then$/","/^there$/","/^these$/","/^they$/","/^this$/","/^those$/","/^through$/","/^to$/","/^too$/","/^under$/","/^up$/","/^very$/","/^was$/","/^way$/","/^we$/","/^well$/","/^were$/","/^what$/","/^where$/","/^which$/","/^while$/","/^who$/","/^with$/","/^would$/","/^you$/","/^your$/","/^а$/","/^безо$/","/^более$/","/^будем$/","/^будет$/","/^будто$/","/^буду$/","/^будут$/","/^бы$/","/^были$/","/^было$/","/^быть$/","/^в$/","/^в отношении$/","/^в течении$/","/^вас$/","/^ваш$/","/^вблизи$/","/^вбок$/","/^ввосьмером$/","/^в-восьмых$/","/^ввысь$/","/^вдали$/","/^вдаль$/","/^вдвое$/","/^вдвоем$/","/^вдвойне$/","/^вдевятером$/","/^в-девятых$/","/^вдесятеро$/","/^вдогон$/","/^вдогонку$/","/^вдоль$/","/^вдосталь$/","/^вдруг$/","/^верх$/","/^весь$/","/^взамен$/","/^вид$/","/^видно$/","/^вкратце$/","/^вкупе$/","/^вместо$/","/^вне$/","/^внешне$/","/^вниз$/","/^внизу$/","/^вновь$/","/^внутри$/","/^внутрь$/","/^во$/","/^во время$/","/^вовне$/","/^вовсе$/","/^вовсю$/","/^во-первых$/","/^воз$/","/^возле$/","/^воочию$/","/^вопреки$/","/^вот$/","/^впредь$/","/^в-пятых$/","/^вровень$/","/^врознь$/","/^врозь$/","/^вряд ли$/","/^в-седьмых$/","/^все$/","/^всего$/","/^все-таки$/","/^вслед$/","/^всплошную$/","/^вспять$/","/^всюду$/","/^в-третьих$/","/^в-шестых$/","/^вы$/","/^выше$/","/^где$/","/^где-либо$/","/^где-нибудь$/","/^где-то$/","/^да$/","/^дабы$/","/^далее$/","/^де$/","/^для$/","/^до$/","/^другие$/","/^других$/","/^его$/","/^едва$/","/^едва-едва$/","/^ее$/","/^еле$/","/^если$/","/^есть$/","/^еще$/","/^ж$/","/^же$/","/^за$/","/^заключается$/","/^зато$/","/^зачем$/","/^зачем-либо$/","/^зачем-нибудь$/","/^зачем-то$/","/^и$/","/^из$/","/^из-за$/","/^или$/","/^имеющее$/","/^имеющие$/","/^имеющий$/","/^имеющим$/","/^иначе$/","/^итого$/","/^их$/","/^к$/","/^как$/","/^как-либо$/","/^как-нибудь$/","/^какой$/","/^какой-то$/","/^как-то$/","/^кверху$/","/^ко$/","/^когда$/","/^когда-либо$/","/^когда-нибудь$/","/^когда-то$/","/^кое$/","/^кое-где$/","/^кое-как$/","/^кое-какой$/","/^кое-когда$/","/^кое-кто$/","/^кое-куда$/","/^кое-откуда$/","/^кое-чей$/","/^кое-что$/","/^который$/","/^который$/","/^который-либо$/","/^который-нибудь$/","/^кто-либо$/","/^кто-нибудь$/","/^кто-то$/","/^куда$/","/^куда-либо$/","/^куда-нибудь$/","/^куда-то$/","/^ли$/","/^либо$/","/^ль$/","/^мало$/","/^меж$/","/^мимо$/","/^может$/","/^можно$/","/^мы$/","/^на$/","/^над$/","/^надо$/","/^намного$/","/^наш$/","/^не$/","/^него$/","/^некий$/","/^некогда$/","/^некого$/","/^некто$/","/^нем$/","/^немало$/","/^немного$/","/^несколько$/","/^нет$/","/^нечего$/","/^ни$/","/^нигде$/","/^никакой$/","/^никогда$/","/^никто$/","/^никуда$/","/^ним$/","/^нисколько$/","/^ничей$/","/^ничто$/","/^но$/","/^о$/","/^об$/","/^обе$/","/^обо$/","/^однако$/","/^около$/","/^он$/","/^она$/","/^они$/","/^опять$/","/^особенно$/","/^от$/","/^от$/","/^откуда$/","/^откуда-либо$/","/^откуда-нибудь$/","/^откуда-то$/","/^относится$/","/^относятся$/","/^отнюдь$/","/^ото$/","/^отсюда$/","/^оттого$/","/^по$/","/^под$/","/^подле$/","/^подо$/","/^подчас$/","/^позднее$/","/^позже$/","/^пока$/","/^полно$/","/^помимо$/","/^поначалу$/","/^понемногу$/","/^по-прежнему$/","/^порой$/","/^по-своему$/","/^поскольку$/","/^после$/","/^посредине$/","/^постольку$/","/^потом$/","/^потому$/","/^почему$/","/^почему-либо$/","/^почему-нибудь$/","/^почему-то$/","/^почти$/","/^поэтому$/","/^пред$/","/^предо$/","/^представляет$/","/^прежде$/","/^при$/","/^про$/","/^просто$/","/^против$/","/^прямо$/","/^путем$/","/^путем$/","/^ради$/","/^разве$/","/^разом$/","/^ранее$/","/^с$/","/^себе$/","/^сквозь$/","/^сколь$/","/^сколько$/","/^сколько-нибудь$/","/^сколько-то$/","/^сложно$/","/^служащее$/","/^служащие$/","/^служащим$/","/^служит$/","/^сначала$/","/^снова$/","/^со$/","/^собой$/","/^совсем$/","/^содержащее$/","/^содержащий$/","/^содержит$/","/^сообразно$/","/^сперва$/","/^спереди$/","/^сразу$/","/^среди$/","/^средь$/","/^столь$/","/^столько$/","/^та$/","/^так$/","/^такой$/","/^так как$/","/^так что$/","/^также$/","/^там$/","/^то$/","/^тогда$/","/^того$/","/^тоже$/","/^только$/","/^том$/","/^тот$/","/^тут$/","/^у$/","/^уже$/","/^хоть$/","/^хотя$/","/^чего$/","/^чего-то$/","/^чей$/","/^чей-либо$/","/^чей-нибудь$/","/^чей-то$/","/^чем$/","/^через$/","/^что$/","/^что-либо$/","/^что-нибудь$/","/^что-то$/","/^чтоб$/","/^чтобы$/","/^чуть$/","/^чье-либо$/","/^чье-нибудь$/","/^чье-то$/","/^эти$/","/^этим$/","/^этих$/","/^это$/","/^этом$/","/^я$/","/^этот$/","/^оно$/");
       $page_keywords = $config['global_keywords'];
       $page_description = $config['site_desc'];
       
       if (!empty($post_text))
       {
          $post_text = utf8_strtolower(strip_tags($post_text));
          $post_text = explode(" ", $post_text);
          if ($config['use_dynamic_keywords'])
          {
             $count = 0;
             $page_keywords = array();
             foreach ($post_text as $word)
             {
                $word = str_replace("'", '', $word);
                $word = eregi_replace("\n{1,}|\r{1,}|\n\r{1,}","",$word);
                $word = preg_replace($stopwords,"",$word);
                if (strlen($word) > 3)
                {
                   if (!empty($page_keywords) && in_array($word, $page_keywords))
                   {
                      continue;
                   }
                   $page_keywords[] = $word;
                   $count++;
                }
               
                if ($count == $config['keyword_word_count'])
                {
                   break;
                }
             }
             $config_keywords = ($config['append_global_keywords']) ? $config['global_keywords'] : '';
             $page_keywords = ($config['append_keywords_first']) ? $config_keywords . ', ' . implode(', ', $page_keywords) : implode(', ', $page_keywords) . ', ' . $config_keywords;
          }
         
          if ($config['use_dynamic_description'])
          {
             $count = 0;
             $page_description = '';
             foreach ($post_text as $word)
             {
                $word = str_replace("'", '', $word);
                $word = eregi_replace("\n{1,}|\r{1,}|\n\r{1,}","",$word);

                $page_description .= $word . ' ';
                $count++;
               
                if ($count == $config['description_word_count'])
                {
                   break;
                }
             }
          }
       }
       
 

И после этого мод корректно заработает


Руссификация
Открыть 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}" />
 


Настраиваем мод на свой вкус - Админка - Настройки Форума и больше не паримся насчет метатегов


Шаг 2. Заголовки - Просмотр темы, Просмотр форума, Главная страница.
Стандартные заголовки или тайтлы (от названия тега <title>) форума ничего общего с сео-оптимизацией не имеют. Лишние слова, такие как «Просмотр форума», «Просмотр темы», «Главная», и притом одинаковые для всех тем и разделов, мы постараемся убрать в этом шаге.

Избавляемся от «Главная страница»
Открываем index.php и находим
page_header($user->lang['INDEX']);
 

Заменяем на
page_header();
 


Избавляемся от «Просмотр форума»
Открываем viewforum.php и находим
page_header($user->lang['VIEW_FORUM'] . ' - ' . $forum_data['forum_name'], true, $forum_id);
 

Заменяем на
page_header($forum_data['forum_name'], true, $forum_id);
 


Избавляемся от «Просмотр темы»
Открываем viewtopic.php и находим
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);
 


Шаг 3. Оптимизация alt-ов вложенных изображений и картинок
Те, кто знаком с тем, чем хорош валидный код, знают наверняка, что любому изображению в коде должен быть присвоен тег (атрибут) alt, аналог title для ссылок. В phpBB3 присутствует такая наработка, но в alt вложенных изображений выводится само имя картинки. А так как в большинстве своем народ, прилепляющий изображения оригинальностью не блещет, то в alt попадают такие имена картинок как 1.png или безымянный.png. Вообщем логику вы поняли, с помощью таких alt-ов повысить позиции в выдаче ( допустим по поиску картинок) не получится. Надо дорабатывать, а я вам предложу способ как это сделать. На мой взгляд лучше в альт выводить имя темы, в которой расположена картинка.
Для примера вот неоптимизированный alt
Вложение :
Комментарий к файлу: неоптимизированный alt в phpBB3


А вот alt после приведенных ниже правок, различия очевидны
Вложение :
Комментарий к файлу: оптимизированный alt в phpBB3


Итак открываем includes/functions_content.php и находим
  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']), 
 

Открываем styles/ваш стиль/template/attachment.html и 2 раза находим код
alt="{_file.DOWNLOAD_NAME}"
 

Заменяем его на
alt="{_file.TOPIC_TITLE}"
 

Вот и все правки и оптимизация alt-ов вложенных изображений

Шаг 4. Семантическая разметка
1.
2.

Шаг 5. Добавляем номер страницы в тайтл
Выше я описывал способ как убрать из тайтла страницы текст Просмотр форума и Просмотр Темы, если так подумать, то теперь у вас получается, к примеру, в подфоруме есть 3 страницы с темами, но они имеют одинаковый тайтл, а так же если в теме более 1 страницы сообщений, то эти страницы так же имеют одинковый тайтл. Надо это исправить, добавим после имени подфорума (или названия темы) текст - Страница N, где N - число, порядковый номер страницы.
Для страницы просмотра подфорумов, открыть viewforum.php и найти строку начинающуюся с page_header и заменить всю строку на
$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);
 

Для страницы просмотра темы, открыть viewtopic.php и найти строку начинающуюся с page_header и заменить всю строку на
$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 ) : '',
 

Открыть styles/Ваш стиль/template/overall_header.html и найти
{TOPIC_SEO_TITLE}
 

Вставить после найденного
{PAGENUM}
 

Так же нужно открыть language/ru/common.php и найти
'CHANGING_PROFILE'         => 'Изменение настроек профиля',
 

Вставить после найденного
'Page' => 'Страница ',
 


Шаг 6. Убираем имя форума со страницы просмотра подфорумов (viewforum.php)
На досуге посетила одна мысль - а зачем нам вообще отображение имени форума в тайтле страницы просмотра подфорумов (viewforum.php) ??? Там обычно идет (на неоптимизированном форуме) так - Просмотр форума - Имя подфорума(раздела) - Имя форума, после оптимизации, описанной выше у вас должно получиться так - Имя подфорума(раздела) - Имя форума, а после правок, описанных ниже, у вас должно получиться так - - Имя подфорума(раздела). На мой взгляд так более красиво выглядит, вообщем если заинтересовало, то открываем шаблон overall_header.html вашего стиля и находим
 

Вставляем после найденного
<!-- IF SCRIPT_NAME == "viewforum" -->{PAGE_TITLE}<!-- ELSE -->
 

Находим
</title>
 

Вставляем перед найденным
<!-- ENDIF -->
 

Чистим кеш и вуаля :-0=)


Шаг 7. Открываем для индексации картинки-вложения
Внимание !!! Данный метод конфликтует с !!!

Наверняка, многие из вас думали что разрешив ботам скачивать вложения, эти самые боты будут индексировать картинки-вложения. Не тут то было, фигушки. Давайте решим это недоразумение, пусть в индекс и картинки с форума попадают. Для начала открываем корневой .htaccess и добавляем в него
<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>
 

Потом открываем download\file.php и находим
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');
         }
      }
 

Открываем файл includes/functions_content.php и находим
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 .= '&amp;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'] . '&amp;t=1');
               $download_link .= '&amp;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 .= '&amp;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'] . '&amp;t=1');
               $download_link .= '&amp;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;
 

Все, теперь картинки будут видеть боты, кстати, после этого проверьте нормально ли отображаются картинки-вложения

Вот впринципе и все, форум более менее оптимизирован. Успехов в администрировании :(


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
Сео-оптимизация phpbb3, раскрутка phpbb3, метатеги, заголовки, оптимизация альтов вложенных картинок

Последний раз редактировалось DeaDRoMeO 25 окт 2015, 10:32, всего редактировалось 11 раз(а).
Добавлена информация о решении проблем с модом Advanced Meta Tags ( проблема с не выводом русских ключевиков)
          Вернуться наверх  
 


Аватар пользователя

Alex31 писал(а):

Allexxxey, На 1 странице этой темы, все написано.

Да, точно =) Так и есть, замотался... Спасибо


          Вернуться наверх  
 


Аватар пользователя

Allexxxey писал(а):

Спасибо

Не за что))


          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Здравствуйте!

Подскажите насколько эффективно для seo следующие:

1. Убрать из адресной строки f=, т.е. вместо
Код:
viewtopic.php?f=30&t=30

чтобы было
Код:
viewtopic.php?t=30

2. Убрать index.php, т.е. чтобы в сслке на главную страницу этого не было
3. Найти нормальный и актуальный файл robots.txt, затем каждую строчку критически проверить, нужна ли она. Я когда-то такую работу проделал, т.е. почитал форум поддержки, и из всего, что там предлагали, составил свой файл, но это было несколько лет назад, так что оно уже устарело.
4. Обработать логи HTTP-запросов, найти там всех роботов поисковиков, которые хоть иногда ходят на форумы, добавить их как пользователей-роботов.
5. Добавить в ссылки (которые оставляют пользователи на форуме) атрибут rel="nofollow"

1. Потому что тема может быть перенесена из раздела в раздел, и тогда для поисковика при теперешнем варианте она будет вновь появившейся страницей, тогда как старая пропала, а если сделать так - для поисковика это будет все та же страница, которую он уже знает.
2. Чтобы поисковик не индексировал неинформативные страницы
4. Потому что в том списке роботов, что присутствует при установке, многих наших роботов нет, даже яндекса. А у яндекса их много. А есть еще роботы нигмы, рамблера, аппорта, может чего-то еще
ЗЫ. заглянул сейчас в админке в "роботы", из десяти что у нас были (и были опознаны) четырех добавил я. Причем мало где на форуме или еще где тебе подскажут что нужно добавить нигму, яндекс-метрику, яндекс-директ. А может есть какие-то еще, о которых мы не знаем?


          Вернуться наверх  
 


Аватар пользователя

mozg1 писал(а):

1. Убрать из адресной строки f=, т.е. вместо
Код:
viewtopic.php?f=30&t=30

чтобы было
Код:
viewtopic.php?t=30

Сами прикиньте какой толк от этого? Укорачиваение ссылки я? Ставьте сео-мод тогда лучше, а такие преобразования лучше не делать
А вот остальные шаги очень даже рекомендуют сделать, по крайней мере это уж точно не повредит форуму))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Сами прикиньте какой толк от этого?
Толк колоссальный. Если гугль цепляет тему, а она затем переносится в другой подфорум, то гугль решает, что и страницы нет, и ошибка 404 не показывается (а не показывается она потому, что форумский движок всё равно перекидывает читателя на эту тему - хоть она и с другой урлой), что очень хреново. Такие ошибки накапливаются пока не доходит до бана. Если вам нужен живой держатель форума, с которым это приключилось - я к вашим услугам :hi: . Сейчас вот с трудом навёрстываю упущенное (спасибо профессиональному СЕОшнику - растолковал что к чему) и вспоминаю про растворившийся, как сладкий сон, ПР 4.

Я только одного не могу понять... Да, я знаю, что phpBB - самый хреновый двиг. Но почему так длинен список самых базовых, самых элементарных вещей, о которых его создатели не позаботились?

Сообщение добавлено... спустя 2 часа 43 минуты 51 секунду:
Дополнительная причина, по которой мой форум попал под санкции, это большое количество разных страниц с одинаковым тайтлом - с точки зрения поисковика сие есть грех великий. Дело в том, что если в теме более одной страницы, то каждая из ник считается совершенно независимой (т.к. урлы разные), а title у них одинаковый. Решается эта проблема до безобразия просто: в файл overall_header.html, (конкретно - в его фрагмент, формирующий title), надо добавить следующий кусок:

<!-- IF SCRIPT_NAME == 'viewtopic' and ON_PAGE <> '1' --> | {ON_PAGE}<!-- ENDIF -->
 

Он добавляется в самый конец заголовка - прямо перед закрывающим тэгом </title>. Я специально не пишу "найдите то-то и замените на то-то" т.к. чаще всего обсуждаемый фрагмент уже имеет всякие сеошные примочки. Вот, например, как он выглядит у меня:

<title><!-- IF TOPIC_SEO_TITLE -->{TOPIC_SEO_TITLE} | <!-- ELSE --><!-- IF PAGE_TITLE -->{PAGE_TITLE} | <!-- ENDIF --><!-- ENDIF -->Форум Канады<!-- IF SCRIPT_NAME == 'viewtopic' and ON_PAGE <> '1' --> | {ON_PAGE}<!-- ENDIF --></title>
 

Хочу обратить внимание, что в качестве разделителя используются пробел, вертикальная черта и ещё пробел. Нюансов тут два:
1. Они впечатаны в текст файла прямиком, как есть (а не в виде &nbsp;&#124;&nbsp;).
2. Вертикальная черта игнорируется гуглем, причём для СЕО она почему-то (непонятно с какого перепугу) лучше, чем bullet (т.е. кругляшок), а уж о таком ужасе, как впечтывание в тайтл слова "Страница" и говорить не приходится (тайтл - очень важный компонент, и поисковики могут подумать, что в теме речь идёт о каких-то страницах).



Информация о редактировании
Последний раз редактировалось ursego 02 июн 2014, 02:12, всего редактировалось 1 раз.
          Вернуться наверх  
 


Аватар пользователя

Файл: [ROOT]/viewtopic.php
Строка: 2067

[PHP Notice]
Undefined index: Page

В lang-файлах нет записи 'Page' => 'страница'


          Вернуться наверх  
 


Аватар пользователя

Добрый день! Панель инструментов Гугл показывает, что на на первом месте среди ключевых слов слово форум, на втором phpbb, на третьем ответы, на шестом просмотры. Если посмотреть на форум глазами бота через ресурс seo-browser.com - на странице форума отображается много слов Форум, Темы, Сообщения, Последнее сообщение, Пропустить, Просматривают. Большинство перечисленных слов скрыта в стиле условием IF not S_IS_BOT, но они всеравно доступны для поисковиков. Как вывести в топ ключевых слов гугл нужные мне поисковые слова и убрать мусорные слова. Какие файлы для этого править. Стиль я так понимаю здесь не при чем. Для ботов установлен стиль Artodia Mobile & SEO


          Вернуться наверх  
 


Аватар пользователя

Ну может у гугла в запасе есть еще несколько ботов, которые не прописаны в админке, гугл у вас прописан?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

ursego,
ursego писал(а):

Дело в том, что если в теме более одной страницы, то каждая из ник считается совершенно независимой (т.к. урлы разные), а title у них одинаковый. Решается эта проблема до безобразия просто: в файл viewtopic.html, (конкретно - в его фрагмент, формирующий title), надо добавить следующий кусок:


Вы уверены, что эту правку нужно делать именно в viewtopic.html? Я не нашел </title> даже в viewtopic_body.html Единственное место где на моем форуме живет это код overall_header.html, На чистом движке </title> тоже только в overall_header.html
Мой код, после добавления кучи правок с разных SEO форумов выглядит так:
<title><!-- IF SCRIPT_NAME == "viewforum" -->{PAGE_TITLE}<!-- ELSE --><!-- IF TOPIC_SEO_TITLE -->{TOPIC_SEO_TITLE}{PAGENUM}<!-- ELSE -->{SITENAME} &bull; <!-- IF S_IN_MCP -->{L_MCP} &bull; <!-- ELSEIF S_IN_UCP -->{L_UCP} &bull; <!-- ENDIF -->{PAGE_TITLE}<!-- ENDIF --><!-- ENDIF --></title>
 

Как Вы считаете, сюда необходимо добавлять Ваши правки?

Сообщение добавлено... спустя 7 минут 25 секунд:
DeaDRoMeO писал(а):

Ну может у гугла в запасе есть еще несколько ботов, которые не прописаны в админке, гугл у вас прописан?

Прописано несколько разных ботов Гугл, для ботов установлен мобильный стиль Artodia (в котором нет этих кнопок на главной странице), Гугл появляется в статистике форума, когда я захожу как бот. Ввожу условие в код - чтобы бот не видел, нажимаю посмотреть как бот, и бот все что не нужно показывает.... Причем бот смотрит все в реальном времени, т.к. после вывода страницы указывается дата и время входа на страницу....


          Вернуться наверх  
 


Аватар пользователя

Фиг их поймешь, может кеш поисковой не обновился, а может еще что, давно думал над этой бедой, но ничего не придумал, некоторые слова из под условий вытягиваются в индекс


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

И еще маленькая проблемка... в ответ на запрос индексации яндекс пишет на большинство важных страниц, что страница есть в базе, но не выдается в индекс, так как является дублем.... причем пишет он это и про главную страницу (по прямому адресу) и про индексную..... причем все что не надо индексировать, яндекс проиндексировал.... проиндексировал темы по каждому тегу (теги закрыты от ботов условием), проиндексировал техническую ветку, которая закрытая в роботсе (гугл чтит роботс а яндексу по барабану). Как с этим бороться и из за чего это может быть?


          Вернуться наверх  
 


Аватар пользователя

pmebear писал(а):

Вы уверены, что эту правку нужно делать именно в viewtopic.html?
Ой, пардон, я хотел написать "в overall_header.html" - уже исправил в сообщении, спасибо за нахождение бага!


          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

Ну может у гугла в запасе есть еще несколько ботов, которые не прописаны в админке, гугл у вас прописан?

Нашел ошибку. Все оказалось очень просто. Для ботов не были прописаны глобальные права, поэтому боты смотрели сайт как бесправные гости и условия IF not S_IS_BOT не работали.
Остался один вопрос....почему, какой стиль для бота не устанавливай, у меня бот всегда берет за основу стиль установленный для пользователей. Зачем тогда при создании бота вкладка - "стиль для бота" и на что эта вкладка влияет?


          Вернуться наверх  
 


Аватар пользователя

А в насиройках каждого стиля есть пункт - Заменять стиль выбранный пользователем, т.е. когда опция активна, то чтобы пользователь ни выбирал, у него будет один и тот же стиль. Может на ботов это влияет?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

В выдаче Гугл появились файлы sitemap моего форума. Я так понял если sitemap закрыть в robots, то карта работать не будет?


          Вернуться наверх  
 


Аватар пользователя

Будет, но робот не будет иметь к ней доступ


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Добрый день!
Поисковики забанили много страниц моего форума, т.к. title на них был одинаков (косяк php bb)
Посмотрел руководства Яндекс и Гугл - совпадение title - великий косяк, а их отсутствие ведет к кривой индексации.

Поставил Код из темы 325
<title><!-- IF TOPIC_SEO_TITLE -->{TOPIC_SEO_TITLE} | <!-- ELSE --><!-- IF PAGE_TITLE -->{PAGE_TITLE} | <!-- ENDIF --><!-- ENDIF -->{SITENAME}<!-- IF SCRIPT_NAME == 'viewtopic' and ON_PAGE <> '1' --> | {ON_PAGE}<!-- ENDIF --></title>
 


При просмотре сообщений, есть нумерация страниц, при просмотре тем (если тем больше чем одна страница) нумерации нет.

У меня в связи с вышесказанным 2 вопроса:
1) насколько необходимо индексировать КАЖДУЮ страницу форума (темы ведь на страницах разные)? - Посмотрел много форумов, у всех сделано по разному, у кого-то есть, у большинства нет)
2) насколько страшно использовать слово "Страница" при нумерации страниц (форума и темы), т.к. на большинстве форумов (даже самых продвинутых) это слово используется?


          Вернуться наверх  
 


Аватар пользователя

pmebear писал(а):

насколько страшно использовать слово "Страница" при нумерации страниц (форума и темы), т.к. на большинстве форумов (даже самых продвинутых) это слово используется?
Ну так на той-же странице есть и ответ на этот вопрос:
ursego писал(а):

впечтывание в тайтл слова "Страница" и говорить не приходится (тайтл - очень важный компонент, и поисковики могут подумать, что в теме речь идёт о каких-то страницах)
Лишь добавлю, что в тайтле каждое слово значимо - какой смысл добавлять бессмысленное слово? Короче, я предпочёл просто последовать совету использовать вертикальную черту.


          Вернуться наверх  
 


Аватар пользователя

Сделал все рекомендации, без установки мода! Спасибо! Работает! :men:
P.S. Пошел ставить последний мод из серии СЕО :co_ol:
Все поставил, отлично, все три мода работаю, будем ждать результатов. :-00):

У меня только один вопрос по СЕО модам поисковым остался: как убрать &bull; из титла на главной, а также форумов и подфорумов? :du_ma_et: И зачем он вообще нужен этот самый &bull в <title> ?


          Вернуться наверх  
 


Аватар пользователя

VDV_forever писал(а):

И зачем он вообще нужен этот самый &bull в <title>

Как уберете его так и узнаете)) Это точка, разеляющая имя форума и, допустим, название подфорума если мы просматриваем страницу viewforum.php


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Оптимизация: всё по порядку
Что устанавливать и править

Lorem Ipsum

5

782

Аватар пользователя

18 ноя 2012, 21:56

DeaDRoMeO

Аватар пользователя Правильная оптимизация сайта / статьи
В этой статье речь пойдет о том как правильно писать уникальные описания для товаров в интернет магазинах, и просто блогах принцип одинаков и применим ко всем видам сайтов

СТЕПАН

2

1125

Аватар пользователя

13 апр 2014, 17:07

СТЕПАН

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

Evgenij83

1

285

Аватар пользователя

22 июн 2017, 11:34

Atlas

Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля Вопрос по оптимизация работы форума
Оптимизация работы форума

kiev

37

1147

Аватар пользователя

02 мар 2013, 15:42

akella1900

Аватар пользователя Who Views Who phpbb3
Who Views Who - модификация для phpbb3, которая немного расширит информацию предоставляемую на странице Кто Онлайн

DeaDRoMeO

8

2561

Аватар пользователя

30 сен 2013, 20:27

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P