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


----

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

 Сообщение Сео-оптимизация 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 ( проблема с не выводом русских ключевиков)
          Вернуться наверх  
 


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

http://cmsart.ru/phpbb/phpbb-articles/phpbb-usage/problemyi-seo-i-resheniya-dlya-uluchsheniya-opt#more-377 тут подробнее о том что автор хочет донести. Может кто что поймет? :zvez_ochki:


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


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

На сколько я понял автор имеет ввиду блок на главной странице как на этом форуме "последние сообщения", и пишет что этот блок нужно закрыть от индексации.
Пример:
Имеем два вида ссылок на одну и туже тему.

Берем эту тему "Сео-оптимизация phpbb3" в нее ведут две ссылки из блока "последние сообщения" и с блока phpBB3 - техподдержка популярного форумного движка phpBB3 на главной странице, но ведут они на одну и ту же страницу.

Почему автор решил что внутренняя перелинковка мешает Сео вообще не понятно, наоборот это передает вес с главной страницы на страницы форума, что наоборот подымает конкретную тему в поиске по заданным в поисковике словам.
Да и для бота эти две ссылки ведут на одну и ту же тему.

Если взять "Раздел форума" то там одна ссылка ведет на конкретный форум, а последнее сообщение на конкретную тему и это действительно две разные страницы. Так что дубля опять нет.
Это лично мое мнение, правда у меня нет блока "последние сообщения"(за основу взял этот блок на этом форуме), если взять стандартный вывод в разделах, то там дубля точно нет. Или же я все таки автора вообще не понял.

P.S. в robot.txt можно закрыть все что угодно. Но автор статьи не привел ни одного примера дубля. так статья просто для раскрутки его сайта, такое тоже пишут


_________________
Подпись:
back'up придумали трусы Ваша воля моими руками, но платно. Стучим в skype akella1900.

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


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

DeaDRoMeO писал(а):

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

А изображения с фотоальбомов и залитые, скажем, с радикала, не будут иметь альт, совпадающий с названием темы?


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


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

Нет, надо править ВВ-код
[img][/img]
 


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


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

Всё задаюсь себе вопросом, вот к примеру rutracker, у него появляется контент позже, но он почему-то входит сразу в первые позиции поисковиков, пронализировал наши форумы на чтение контента поисковыми ботами, наткнулся на сервис
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку
вбейте туда ссылку viewtopic.php?f=48&t=1843 и выдаёт ошибку сервера :-(-- вбиваем ссылку такого вида viewtopic.php?t=1843 и всё отлично, всего навсего мы из урла отсекли f=48& так вот интересно как отсечь f=48& и может ли это быть причиной плохой индексации сайта?
где-то давно видил темку в сети и похожий хак о кастрировании f= но щас что-то найти не могу



Теги сообщения
Индексация сайта
          Вернуться наверх  
 


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

не знаю у меня стоит сео мод вполне справляется с чпу


_________________
Подпись:
back'up придумали трусы Ваша воля моими руками, но платно. Стучим в skype akella1900.
          Вернуться наверх  
 


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

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

Знаю f= индификатор как никак и после убития глобальные темы пропадают, вот нужно как-то без ущерба и громозтких модов убрать.


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


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

не знаю насколько это поможет но вот пример как это сделать
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

насколько повлияет это на индексацию не знаю, напишете потом


_________________
Подпись:
back'up придумали трусы Ваша воля моими руками, но платно. Стучим в skype akella1900.
          Вернуться наверх  
 


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

Подобных хаков я не видел к сожалению


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


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

Нашёл, вечерком буду пробовать, если кому надо вот
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку
:-00):


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


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

KinoMan писал(а):

Нашёл, вечерком буду пробовать, если кому надо вот

смотрим два сообщения вверх :-0=)


_________________
Подпись:
back'up придумали трусы Ваша воля моими руками, но платно. Стучим в skype akella1900.
          Вернуться наверх  
 


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

не внимательность :-0=) В общем заказал у 9caratt переделку, кроме его ещё один человек подтвердил что то как минимум улучшит индексацию форума/трекера, доработку этого хака, он поддержал, но инструкцию нужно переделывать, доводить в похожих темах php код, в модах ссылающиеся на топики и самое главное протестировать на влияние поисковиков, но как я понял на поисковики это не должно повлиять, как только у брата время будет, займёмся, тестанём и в паблик доделанный вариант :-00): Если Серёгу зацепила такая идея линков и может и общими силами допилим этот хак до 3.0.11 версии )
Кто слишком не терпеливый и так же заинтересовало, ставьте пока таким макаром, чтобы в случае бага, раскоментировать старое.

ещё эти якоря не пойму для чего
 


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


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

 

по моему это не якорь, а html пробел
одного ток не пойму, не сильно силен в этом
если примером как написано
KinoMan писал(а):

вбейте туда ссылку viewtopic.php?f=48&t=1843 и выдаёт ошибку сервера

то в гугл веб мастер у вас бы была запись что ошибка, и номер ошибки сервера котрую он выдал
KinoMan писал(а):

ещё один человек подтвердил что то как минимум улучшит индексацию форума

можно подробнее как?


_________________
Подпись:
back'up придумали трусы Ваша воля моими руками, но платно. Стучим в skype akella1900.
          Вернуться наверх  
 


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

Пробел вот он
 

Насчёт гугла, да, и так и так выдало HTTP/1.1 200 OK
Подробнее можно: Когда ты переносишь тему, она меняет идентификацию, к примеру это f=72&t=104 мы перенесли в другой форум и в итоге мы получаем f=85&t=104 тоесть мы теряем урл с индекса этот f=72&t=104 так как мы его перенесли. После установки хака и после переноса темы, мы не тереяем урл, он как расположен, так и будет, к примеру t=1568 после переноса тот же и будет t=1568. После установки хака сайт не выпадает из индекса и после переноса темы, тема не выпадает из индекса, это явные плюсы.


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


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

Здравствуйте уважаемые форумчане. Спасибо за мод. Я себе тоже установил. Вроде бы встало как надо в настройках всё появилось. У меня такой вопрос: в глобальных ключевых словах у меня появились слова на английском языке, так должно быть? Или слова должны быть русскими?
Вот прилагаю скриншот.
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


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


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

Они сами чтоли появились??) Лучше их замените русскими)


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


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

Спасибо! Поменяю


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


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

serioga81 писал(а):

Добрый день
Форум работает (правка написанная вами помогла) но вот списка пользовотелей кто онлайн нет)
И хотелось бы услышать в чём была причина?

Не там надо менять - правку отмените - нужно в файле includes/functions.php заменить
function page_header($page_title = '', $display_online_list = true, $post_text = '') // true, post_text added by Advanced Meta Tags MOD
на
function page_header($page_title = '', $display_online_list = true, $post_text = '', $item_id = 0, $item = 'forum') // true, post_text added by Advanced Meta Tags MOD

Определенно баг мода!


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


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

Viktor.TSedrik, действительно, мод конечно не ахти какой, но аналогов нету, лучше использовать тройку сео-модов и вручную все вбивать


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


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

После установки этого мода, рухнул сайт.Пишет -
Общая ошибка
SQL ERROR [ mysqli ]

Unknown column 's.session__id' in 'where clause' [1054]

SQL

SELECT s.session_user_id, s.session_ip, s.session_viewonline FROM phpbb_sessions s WHERE s.session_time >= 1362150210 AND s.session__id = 0 AND s.session_user_id <> 1

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions.php
LINE: 4208
CALL: dbal_mysqli->sql_query()

FILE: [ROOT]/includes/functions.php
LINE: 4547
CALL: obtain_users_online()

FILE: [ROOT]/index.php
LINE: 209
CALL: page_header()

Что делать ? Все правки вернул назад а ошибка осталась таже.


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


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

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

Lorem Ipsum

5

782

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

18 ноя 2012, 21:56

DeaDRoMeO

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

СТЕПАН

2

1124

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

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