/ Настройка robots.txt и sitemap.xml для мультидоменного сайта

Настройка robots.txt и sitemap.xml для мультидоменного сайта

16 окт 2018
Дмитрий М.
7919

Для эффективного SEO продвижения мультидоменных сайтов необходимо, чтобы для каждого поддомена были свои robots.txt и sitemap.xml. В том случаи если структура поддоменов одинаковая, т.е. если речь идёт об интернет-магазине, то можно использовать способ описанный ниже...

Как настроить robots.txt и sitemap.xml для мультидоменных сайтов?

Рассмотрим настройку robots.txt и sitemap.xml для мультидоменных сайтом на примере CMS Bitrix. Будем полагать что мультисайтовость настроена таким образом, что все поддомены смотрят в одну папку на сервере а контент формируется динамически в зависимости от выбранного поддомена (т.е файловая структура всех сайтов одинаковая ).

В корневой папке сайта создадим файл robots.php со следующим содержанием ( robots будет иметь стандартный набор правил и ограничений для CMS Bitrix):

<?php
$host = $_SERVER["HTTP_HOST"];
$host = preg_replace("/\:\d+/is", "", $host);
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"){
    $http = "https";
}
else{
    $http = "http";
}
header("Content-Type: text/plain");?>
User-Agent: *
Disallow: */index.php
Disallow: /bitrix/
Disallow: /*show_include_exec_time=
Disallow: /*show_page_exec_time=
Disallow: /*show_sql_stat=
Disallow: /*bitrix_include_areas=
Disallow: /*clear_cache=
Disallow: /*clear_cache_session=
Disallow: /*ADD_TO_COMPARE_LIST
Disallow: /*ORDER_BY
Disallow: /*PAGEN
Disallow: /*?print=
Disallow: /*?list_style=
Disallow: /*?sort=
Disallow: /*?set_filter=
Disallow: /*?arrFilter*
Disallow: /*?order=
Disallow: /*&print=
Disallow: /*print_course=
Disallow: /*?action=
Disallow: /*&action=
Disallow: /*register=
Disallow: /*forgot_password=
Disallow: /*change_password=
Disallow: /*login=
Disallow: /*logout=
Disallow: /*auth=
Disallow: /*backurl=
Disallow: /*back_url=
Disallow: /*BACKURL=
Disallow: /*BACK_URL=
Disallow: /*back_url_admin=
Disallow: /*?utm_source=
Disallow: /order/
Disallow: /*download*
Disallow: /test.php
Allow: /bitrix/components/
Allow: /bitrix/cache/
Allow: /bitrix/js/
Allow: /bitrix/templates/
Allow: /bitrix/panel/
Host: <?=$http?>://<?=$host.PHP_EOL;?>
Sitemap: <?=$http?>://<?=$host;?>/sitemap.xml
        

Так же создадим в корневой папке файл sitemap.php - со следующим содержанием (скрипт обрабатывает существующие файлы карты сайта и генерирует на их основе динамическую карту сайта):

<?php
function sitemap_gen($sitemap_path, $site_url, $new_path){
    if (substr($sitemap_path, 0, 1) != '/'){
        $sitemap_path = '/'.$sitemap_path;
    }
    $sitemap_path = $_SERVER["DOCUMENT_ROOT"].$sitemap_path;
    if (substr($new_path, 0, 1) != '/'){
        $new_path = '/'.$new_path;
    }
    $new_path = $_SERVER["DOCUMENT_ROOT"].$new_path;

    $dyn_sitemap = '<?'.PHP_EOL.'$host = preg_replace("/\:\d+/is", "", $_SERVER["HTTP_HOST"]);'.PHP_EOL.
        'if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on"){'.PHP_EOL.
        '	$http = "https";'.PHP_EOL.
        '}'.PHP_EOL.
        'else{'.PHP_EOL.
        '	$http = "http";'.PHP_EOL.
        '}'.PHP_EOL.
        'header("Content-Type: text/xml");'.PHP_EOL;

    $sitemap = file_get_contents($sitemap_path);
    if (!$sitemap){
        return false;
    }

    // замены
    $search = Array(
        $site_url,
        'http:',
        'https:',
    );
    $replace = Array(
        '<?=$host?>',
        '<?=$http?>:',
        '<?=$http?>:'
    );

    $sitemap = str_replace($search, $replace, $sitemap);

    $sitemap = preg_replace('/(\<\?xml[^\>]+\>)/i', "echo '$1';?>".PHP_EOL, $sitemap);

    $dyn_sitemap .= $sitemap;

    if (!file_put_contents($new_path, $dyn_sitemap)){
        return false;
    }
    return true;
}
sitemap_gen('sitemap_000.xml', 'адрес_вашего_сайта_без_http', 'sitemap_dyn.php');
?>
        

Теперь необходимо сгенерировать файлы sitemap, для этого админке сайта переходим в Маркетинг - Поисковая оптимизация - Настройка Sitemap.xml. Добавляем sitemap для сайта, настраиваем условия формирования sitemap, сохраняем и обязательно необходимо Запустить генерацию файлов sitemap.

map_sett.png

После генерации карты сайта необходимо запустить скрип создания динамической для этого нужно просто перейти по ссылке http://ваш-сайт.ру/sitemap.php. Скрип сгенерирует в корне сайта файл с динамической картой сайта sitemap_dyn.phpВнимание! Каждый раз после генерации карты сайта через в Настройках sitemap.xml необходимо запускать скрипт для генерации динамической карты сайта ).

Теперь необходимо настроить редирект на созданные нами файлы robots.php и sitemap_dyn.php, для того чтобы они открывались вместо оригинальных файлов robots.txt и sitemap.xml. Для этого в корне сайта откроем файл .htaccess и добавим в него следующий код:

RewriteRule ^robots\.txt$ /robots.php [L]
RewriteRule ^sitemap\.xml$ /sitemap_dyn.php [L]
        

На этом создание динамических robots.txt и sitemap.xml закончено.

Статья была полезна? Поблагодарите автора.

Самые читаемые
#1С Битрикс, #Bitrix CMS, #.htaccess, #настройка редиректов
4 авг 2019
#Хлебные крошки, #1С Битрикс, #Bitrix CMS, #bitrix:breadcrumbs, #component_epilog, #кэширование
1 окт 2018
#bitrix:news, #сортировка, #фильтрация, #bitrix:catalog, #catalog.section, #news.list
16 дек 2020
#ресайз изображений, #1С Битрикс, #Bitrix CMS
3 мар 2019
#bitrix, #свойства элементов, #обработчик событий, #OnBeforeIBlockElementUpdate, #OnIBlockElementSetPropertyValues
21 июл 2020
#Bitrix CMS, #breadcrumb, #bitrix:breadcrumbs, #хлебные крошки, #настройка
13 фев 2019
#bitrix, #robots.txt, #sitemap.xml, #поддомены, #мультисайтовость
16 окт 2018
#bitrix, #bitrix:catalog.section, #скидки, #товары со скидкой, #страница скидок, #страница со скидками
4 окт 2018
#bitrix, #пользовательские свойства, #тип свойств, #привязка к элементам
27 ноя 2019