SEO оптимизация DataLife Engine Часть 2 » Techno-сo — Портал для вебмастера

Вторая часть SEO оптимизации DataLife Engine, в статье описывается полное убирание слеша на конце в ссылках, разные редиректы которые убирают дубли и не существующие страницы сайта. Так же о XML и HTML карте и кроме этого работа с модулем DonBot который убирает с индекса не нужные дубли.7) Убираем слешы на конце урла «/»

Убираем слешы

1) Открываем файл /engine/engine.php и находим (самое первое вхождение кода):

if ($do == "cat" and $category != '' and $subaction == '') {

И ниже вставляем :

//решение проблемы с категориями, редирект на верный урл, удаление слеша в конец
                        if( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {
 
                                $re_cat = get_url( $category_id );
 
                                if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) == '/' ) {
                                        $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
                                        $re_url = reset ( $re_url );
 
                                        header("HTTP/1.0 301 Moved Permanently");
                                        header("Location: {$re_url}{$re_cat}");
                                        die("Redirect");
                                }
                        }
//решение проблемы с категориями, редирект на верный урл, удаление слеша в конец

2) Открываем файл .htaccess что в главной директории (там где index.php), находим код :

# Редиректы
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]

И выше вставляем :

# Убираем слеш в конце
RewriteRule ^(.+)/$ $1 [R=301,L]

3) Открываем файл /engine/modules/functions.php и находим код :

if( $config['allow_alt_url'] ) $list = "{$cat_info[$id]['name']}";

Меняем на:

if( $config['allow_alt_url'] ) $list = "{$cat_info[$id]['name']}";

Далее ищем код :

if( $config['allow_alt_url'] ) $list = "{$cat_info[$parent_id]['name']}" . "{$separator} " . $list;

И меняем на :

if( $config['allow_alt_url'] ) $list = "{$cat_info[$parent_id]['name']}" . "{$separator} " . $list;

Далее ищем код:

if( $config['allow_alt_url'] ) $list = "{$cat_info[$id]['name']}";

И меняем на:

if( $config['allow_alt_url'] ) $list = "{$cat_info[$id]['name']}";

Далее ищем код:

if( $config['allow_alt_url'] ) $list = "{$cat_info[$parent_id]['name']}" . " {$separator} " . $list;

И меняем на:

if( $config['allow_alt_url'] ) $list = "{$cat_info[$parent_id]['name']}" . " {$separator} " . $list;

4) Открываем файл /engine/modules/show.full.php находим код (2 раза):

if( $config['allow_alt_url'] ) $my_cat_link[] = "{$cat_info[$element]['name']}";

И меняем на:

if( $config['allow_alt_url'] ) $my_cat_link[] = "{$cat_info[$element]['name']}";

Далее, если вы не удаляли теги с сайта то делаем этот пункт, если же удалили пропускаем!Ищем код:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

И меняем на:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

Все с тегами покончили.

Далее ищем код (2 раза):

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Меняем на:

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Далее ищем код :

$short_link = $config['http_home_url'] . $c_url . "/";

Меняем на:

$short_link = $config['http_home_url'] . $c_url;

Далее ищем код:

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $category_id ) . "/" );

Меняем на:

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $category_id ) );

Далее ищем код :

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] ) . "/";

Меняем на:

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] );

5) Открываем файл /engine/modules/show.short.php находим код :

if( $config['allow_alt_url'] ) $my_cat_link[] = "{$cat_info[$element]['name']}";

Меняем на:

if( $config['allow_alt_url'] ) $my_cat_link[] = "{$cat_info[$element]['name']}";

Далее, если вы не удаляли теги с сайта то делаем этот пункт, если же удалили пропускаем!Ищем код:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

И меняем на:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

Все с тегами покончили.Далее ищем код :

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Меняем на:

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Далее ищем (2 раза):

pages .= "$j ";

Меняем на:

pages .= "$j ";

Далее ищем код (2 раза):

$pages .= "$j ";

Меняем на:

$pages .= "$j ";

Далее ищем код:

if( $config['allow_alt_url'] ) $pages .= "1 {$lang['nav_trennen']} ";

Меняем на:

if( $config['allow_alt_url'] ) $pages .= "1 {$lang['nav_trennen']} ";

Далее ищем код:

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $row['category'] ) . "/" );

Меняем на:

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $row['category'] ) );

Далее ищем код:

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] ) . "/";

Меняем на:

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] );

Далее ищем код:

$prev_page = $url_page . "/";

Меняем на:

$prev_page = $url_page;

Далее ищем код:

$prev_page = $url_page . "/page/" . $prev . "/";

Меняем на :

$prev_page = $url_page . "/page/" . $prev;

Далее ищем код:

$next = $url_page . '/page/' . $next_page . '/';

Меняем на:

$next = $url_page . '/page/' . $next_page;

6) Открываем файл /engine/modules/show.costum.php находим код :

$next = $url_page . '/page/' . $next_page . '/';

Меняем на:

$next = $url_page . '/page/' . $next_page;

Далее ищем код:

if( $config['allow_alt_url']) $my_cat_link[] = "{$cat_info[$element]['name']}";

Меняем на:

if( $config['allow_alt_url']) $my_cat_link[] = "{$cat_info[$element]['name']}";

Далее, если вы не удаляли теги с сайта то делаем этот пункт, если же удалили пропускаем!Ищем код:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

И меняем на:

if( $config['allow_alt_url'] ) $tags[] = "" . $value . "";

Все с тегами покончили.Далее ищем код:

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Меняем на:

if( $config['allow_alt_url'] ) $value3[] = "" . $value2 . "";

Далее ищем (

2 раза

):

pages .= "$j ";

Меняем на:

pages .= "$j ";

Далее ищем код (2 раза):

$pages .= "$j ";

Меняем на:

$pages .= "$j ";

Далее ищем код :

if( $config['allow_alt_url'] ) $pages .= "1 {$lang['nav_trennen']} ";

Меняем на:

if( $config['allow_alt_url'] ) $pages .= "1 {$lang['nav_trennen']} ";

Далее ищем :

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $row['category'] ) . "/" );

Меняем на:

$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $row['category'] ) );

Далее ищем:

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] ) . "/";

Меняем на:

$go_page = $config['http_home_url'] . "user/" . urlencode( $row['autor'] );

Далее ищем код:

$prev_page = $url_page . "/";

Меняем на:

$prev_page = $url_page;

Далее ищем:

$prev_page = $url_page . "/page/" . $prev . "/";

Меняем на:

$prev_page = $url_page . "/page/" . $prev;

7) Открываем файл /engine/init.php, находим код:

$tpl->set( '{profile-link}', $config['http_home_url'] . "user/" . urlencode ( $member_id['name'] ) . "/" );

Меняем на:

$tpl->set( '{profile-link}', $config['http_home_url'] . "user/" . urlencode ( $member_id['name'] ) );

8) Если вы не удаляли тегов, то делаем этот пункт!

Открываем файл /engine/modules/tagscloud.php, находи код (2 раза):

$tags[] = "".$value['tag']."";

И меняем на:

$tags[] = "".$value['tag']."";

Далее ищем код:

$tpl->result['tags_cloud'] .= "

".$lang['all_tags']."";

Меняем на:

$tpl->result['tags_cloud'] .= "

".$lang['all_tags']."";

Далее открываем файл /engine/engine.php, находим код (это продолжение того же 8 пункта):

if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} " . $lang['tag_cloud'] . " {$config['speedbar_separator']} " . $tag;

Меняем на:

if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} " . $lang['tag_cloud'] . " {$config['speedbar_separator']} " . $tag;

Далее открываем .htaccess что в главной директории, находим код:

# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

Меняем на:

# вывод отдельному тегу
RewriteRule ^tags$ index.php?do=tags [L]
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

9) Открываем файл /engine/modules/profile.php, находим код:

if( $config['allow_alt_url'] ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/";

Меняем на:

if( $config['allow_alt_url'] ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] );[/spoiler]

8) Редирект с несуществующих страниц пагинации на правильные и существующие

Редирект с несуществующих страниц

Открываем файл /engine/modules/show.short.php и в самом низу находим:

}
?>

Выше вставляем:

//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая
$all_pages_count = @ceil( $count_all / $config['news_number'] );
        if ($cstart > $all_pages_count) {
                if ($all_pages_count > 1) {
                        header('HTTP/1.1 301 Moved Permanently');
                        header ('Location: ' . $url_page . '/page/' . $all_pages_count . '/');
                        die();
                } else {
                        header('HTTP/1.1 301 Moved Permanently');
                        header ('Location: ' . $url_page . '/');
                        die();
                }
        } 
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая

9) Редирект с несуществующих страниц пагинации комментариев на правильные

Редирект с несуществующих страниц пагинации комментариев

Открываем файл /engine/classes/comments.class.php и в самом низу находим:

   }
 
}
?>

Выше вставляем:

//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
        if ( $this->cstart > $enpages_count ) {
                header('HTTP/1.1 301 Moved Permanently');
                header('Location: ' . $url);
                die();
        }
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая

10) Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса

Редирект со ссылок с лишними символами

Открываем файл .htaccess что в главной директории (там где index.php), находим код :

# Редиректы
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]

Выше вставляем:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*).html(.+) [OR]
RewriteCond %{REQUEST_URI} ^(.*).htm$ [OR]
RewriteCond %{REQUEST_URI} ^(.*).ht$ [OR]
RewriteCond %{REQUEST_URI} ^(.*).h$ [OR]
RewriteCond %{REQUEST_URI} ^(.*).$
RewriteRule ^(.*).(.*) $1.html [R=301,L]

11) Редирект с разделов или категорий, которых больше не существует, на главную страницу

Редирект с разделов или категорий которых больше не существует

Открываем файл /engine/engine.php и находим:

if (!$category_id) $category_id = 'not detected';

Меняем на:

//решение проблемы с категориями, которых не существует
                        if (!$category_id AND $view_template != "rss") {
                                        header("HTTP/1.0 301 Moved Permanently");
                                        header("Location: {$config['http_home_url']}");
                                        die("Redirect");
                        }
//решение проблемы с категориями, которых не существует

12) Редирект для публикаций, у которых отсутствует ID, на главную страницу

Редирект для публикаций у которых отсутствует ID

Открываем файл /engine/modules/static.php и находим в самом конце:

 @header( "HTTP/1.0 404 Not Found" );
        $lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']);
        msgbox( $lang['all_err_1'], $lang['static_page_err'] );

Меняем на:

// 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц
        header("HTTP/1.0 301 Moved Permanently");
        header("Location: {$config['http_home_url']}");
        die("Redirect");
// 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц

13) Редирект для удаленных или несуществующих новостей на главную

Редирект для удаленных или несуществующих новостей на главную

Открываем файл /engine/modules/show.full.php и находим:

        elseif( !$news_found ) {
                @header( "HTTP/1.0 404 Not Found" );
                msgbox( $lang['all_err_1'], $lang['news_err_12'] );
        }

Меняем на:

// 301 редирект на главную, если новость не найдена/не существует
        elseif( ! $news_found ) {
                                        header("HTTP/1.0 301 Moved Permanently");
                                        header("Location: {$config['http_home_url']}");
                                        die("Redirect");
        }
// 301 редирект на главную, если новость не найдена/не существует

14) Добавляем тег rel=”canonical” для страниц просмотра полной новости

Добавляем тег canonical

Открываем файл /engine/modules/show.full.php и находим:

} else {
 
                        $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
                        $print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
                        $short_link = "";
                        $link_page = "";
                        $news_name = "";
 
                }

Ниже вставляем:

$full_canonical = $full_link;

Далее открываем файл /engine/engine.php и находим:

if ($config['allow_rss']) $metatags .=