Бизнес
начинается
с сайта!
главная » портфолио » блоги » Технически оптимизируем Битрикс под поисковые системы

Технически оптимизируем Битрикс под поисковые системы

967fd4fdb74f0acb03584297b12ef9de.png
В данной статье хотелось бы обсудить подготовку сайта, созданного на платформе 1С-Битрикс, к поисковому продвижению, а также рассмотреть вопросы переноса старого сайта на новый домен и немного затронуть тему правильного создания файла robots.txt. Эта статья ни в коем случае не претендует на полноту раскрытия темы продвижения, но может стать хорошим подспорьем веб-мастерам.
Склейка доменов с www и без www

Проблема:
Нередко случается ситуация, когда сайт доступен по адресу с www и без www. Поисковые системы воспринимают это как два разных URL и, соответственно, присваивают этим URL (в зависимости от внешних ссылок) разные характеристики PageRank и Индекса Цитирования. Как этого избежать? Необходимо сделать так, чтобы при обращении к сайту по адресу без www (http://web-promoter.ru), сервер отдавал заголовок "301 Moved Permanently" и переадресовывал посетителя на домен с www (http://www.web-promoter.ru).

HTTP/1.1 301 Moved Permanently означает, что запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.

Решение:
В корне сайта на 1С-Битрикс лежит файл .htaccess
В данном файле есть следующий код:
<IfModule mod_rewrite.c>  
  Options +FollowSymLinks  
  RewriteEngine On  
  RewriteCond %{REQUEST_FILENAME} !-f  
  RewriteCond %{REQUEST_FILENAME} !-l  
  RewriteCond %{REQUEST_FILENAME} !-d  
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$  
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]  
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]  
</IfModule>  

Между <IfModule mod_rewrite.c> </IfModule> необходимо вставить следующий код:
RewriteCond %{HTTP_HOST} !^www\.  
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]  
В итоге вы получите код:
<IfModule mod_rewrite.c>  
  Options +FollowSymLinks  
  RewriteEngine On 

  # редирект host.ru -> www.host.ru  
  RewriteCond %{HTTP_HOST} !^www\.   
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

  # редирект www.host.ru -> host.ru 
RewriteCond %{HTTP_HOST} ^www. host.ru $ [NC] 
RewriteRule ^(.*)$ http://host.ru $1 [R=301,L]

  # подключение ЧПУ битрикса  
  RewriteCond %{REQUEST_FILENAME} !-f  
  RewriteCond %{REQUEST_FILENAME} !-l  
  RewriteCond %{REQUEST_FILENAME} !-d  
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$  
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]  
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]  
</IfModule>  
Проверить выдаваемый заголовок сервера можно на сайте http://mainspy.ru/otvet_servera
9575bffbfebc6159b4e4f1c6571e142c.jpg
Заголовок сервера www.atrix-studio.ru
Теперь при вводе адреса сайта без www, посетитель будет перенаправлен на адрес с www, а поисковый робот получит заголовок "301 Moved Permanently".
Дублирующиеся страницы на сайте

Проблема:
Иногда на сайте присутствуют повторяющиеся страницы вида: http://www. web-promoter .ru/ и http://www. web-promoter .ru/index.php. Данные страницы будут проиндексированы поисковыми системами и обе страницы отдают ответ сервера HTTP/1.1 200 ОК, но при этом имеют одинаковое содержание. Такие страницы создают дубликаты на сайте, а это негативно влияет на продвижение. Необходимо оставить первый вариант страниц без index.php, а для страниц-дубликатов настроить переадресацию с ответом сервера HTTP/1.1 301 Moved Permanently на соответствующие страницы.

Решение:
Для решения проблемы с дубликатами необходимо также дописать в файл .htaccess следующие строки:
RewriteCond %{REQUEST_URI} ^(.*)/$  
RewriteRule .* - [L]  

RewriteCond %{ENV:REDIRECT_STATUS} 200  
RewriteRule .* - [L]  

RewriteCond %{REQUEST_METHOD} =GET  
RewriteCond %{REQUEST_URI} ^(.*)/index.php$  
RewriteRule ^(.*)$ %1/ [R=301,L]  
Итоговый файл .htaccess будет иметь вид:
<IfModule mod_rewrite.c>  
  Options +FollowSymLinks   
  RewriteEngine On 

  # редирект host.ru -> www.host.ru  
  RewriteCond %{HTTP_HOST} !^www\.   
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

  # подключение ЧПУ битрикса  
  RewriteCond %{REQUEST_FILENAME} !-f   
  RewriteCond %{REQUEST_FILENAME} !-l   
  RewriteCond %{REQUEST_FILENAME} !-d   
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$   
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]   
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] 

   # редирект /news/123 -> /news/123/  
   RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$  
   RewriteRule ^(.*)$ http://%{HTTP_HOST}/$_1/ [R=301,L]
   RewriteCond %{REQUEST_URI} ^(.*)/$  
   RewriteRule .* - [L]  
  
  # редирект /news/index.php -> /news/  
  RewriteCond %{ENV:REDIRECT_STATUS} 200  
  RewriteRule .* - [L]  

  RewriteCond %{REQUEST_METHOD} =GET  
  RewriteCond %{REQUEST_URI} ^(.*)/index.php$  
  RewriteRule ^(.*)$ %1/ [R=301,L]  
</IfModule>  
ВНИМАНИЕ: Проверьте файл robots.txt на наличие строки Disallow: /*index.php$ - если этой строки нет, то добавьте ее.
Данная строка запрещает индексировать страницы /index.php поисковым роботам!

ROBOTS.TXT - для 1С-Битрикс

На многих сайтах отсутствует файл robots.txt, который очень важен для поисковых систем. Индексирование сайта начинается именно с данного файла. О нем есть очень много информации в сети, но все же стоит обратиться к пояснениям от самих поисковых систем: Яндекс и Google. Здесь вы найдете множество рекомендаций и полезной информации.

За годы работы с 1С-Битрикс мы собрали файл robots.txt, который берем за эталон. Он не позволяет индексировать страницы, которые являются служебными или просто дублируют уже имеющийся контент. Вы можете скачать данный файл robots.txt с нашего сайта.
Переезд сайта со старого домена на новый

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

Для решения этой проблемы мы поступаем следующим образом. Во первых, регистрируем новый домен и разворачиваем новый сайт. Во вторых, на старом сайте делаем так, чтобы при обращении к старому домену срабатывал 301-редирект, но за исключением файла robots.txt, так как в robots.txt нам необходимо прописать новый домен.

Итак, в файле .htaccess старого домена пишем следующее:
<FilesMatch "robots.txt$">  
  RewriteEngine off  
</FilesMatch>   

<IfModule mod_rewrite.c>  
Options +FollowSymLinks  
RewriteEngine on  
RewriteRule (.*) http://ww.newsite.ru/$1 [R=301,L]  
</IfModule>  
А в файле robots.txt указываем следующее:
User-Agent: *  
Disallow:  
Host: www.newsite.ru
Василий Пуговкин
11 Окт 2014 [Сб]
Вы не могли бы выложить готовые решения для скачивания?
13221814206b85445c418252d8a89f9e.jpg