Последнее обновление — 15 января 2023 в 15:14
Постараюсь максимально коротко и понятно рассказать о том, как изменить доменное имя сайта, работающего под управлением CMS WordPress. Покажу, как это сделать с минимально возможными потерями для позиций сайта, если они были. Пару дней назад я уже проделал такие действия и сменил адрес одного бложика с ИКС 80, у которого в поиске 89 страниц.
Содержание:
- Действия с файлами сайта на хостинге
- Как сменить ссылки на изображения
- Как оповестить поисковики о смене домена
- Видеоинструкция
Сразу оговорюсь, что в случае необходимости (ребрендинг, наложенные санкции поисковых систем и так далее), имеет смысл менять домен тогда, когда сайт наполнен достаточно большим количеством контента. Если же мы говорим о двух-трёх страницах, находящихся в поиске, то всё можно сделать значительно проще – просто забыть (перестать обслуживать) старый домен и зарегистрировать новый, с которым дальше работать.
Действия с файлами сайта на хостинге
Процесс смены домена буду рассматривать на примере хостинга TimeWEB. Но, по сути, принцип один и тот же. Поэтому, думаю, что порядок действий подойдёт и пользователям других хостингов.
Step 1. Итак, надеюсь, что вы уже зарегистрировали новый домен для своего блога (сайта) и прописали у регистратора доменных имён DNS для хостинга (в моём случае TimeWEB). Осталось “прикрутить” его к уже работающем проекту. Для этого, в личном кабинете на хостинге добавим новый сайт в разделе “Сайты”, чтобы создать каталог, где в дальнейшем будут размещаться файлы проекта.
Step 2. Далее, идём в раздел “Домены и поддомены”, где также добавим новый домен с привязкой к сайту (каталогу), созданному в предыдущем пункте. Если вы ранее уже регистрировали сайт на хостинге, то эта стандартная процедура не должна у вас вызывать никаких затруднений.
Step 3. Следующим шагом, средствами хостинга создаём резервную копию файлов сайта, работавшего на старом домене, и созданный архив с файлами сохраняем на жёстком диске компьютера, либо оставляем прямо на хостинге (у меня бэкапы сохраняются в корневой директории аккаунта).
И здесь хочу кое-что уточнить. Перед тем как сделать бекап, если вы использовали плагин кэширования, желательно удалить закешированные файлы и временно отключить этот плагин, чтобы дальнейшие производимые изменения корректно отображались.
Step 4. Устанавливать движок WordPress в только что созданную директорию не придётся. Необходимо просто взять архив с файлами сайта и скопировать в корневую директорию (папку) сайта с новым доменом, после чего разархивировать.
Step 5. Теперь сайт начнёт открываться по двум адресам. Чтобы это исключить, надо настроить 301 редирект с URL-адресов старого сайта на аналогичные страницы нового. Для этого переходим в корневую директорию прежнего домена и открываем файл .htaccess на редактирование. Все строки, которые там присутствуют, можно смело удалять. Вместо них сделать следующую запись:
RewriteEngine on
RewriteRule ^(.*)$ https://newdomain.ru/$1 [R=301,L]
Где https://newdomain.ru – адрес вашего нового домена. Теперь, открывая любую страницу вашего старого сайта, посетитель будет попадать на соответствующую страницу с новым доменным именем. После проведённых действий, в общем-то, можно удалить из корневой директории старого сайта вообще все файлы и папки, кроме файла .htaccess.
Step 6. Но это ещё не всё. Не забудьте открыть на редактирование файл robots.txt в корневой директории нового сайта и также сменить там адрес.
Кроме того, просмотрите все файлы, где ранее вы вносили правки и прописывали абсолютные пути до файлов. В них также надо заменить адрес сайта. Например, содержимое файла robots.txt может выглядеть следующим образом:
User-agent: *
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-admin/
Sitemap: https://NEW-DOMAIN.ru/sitemap.xml
Step 7. Базу данных мы будем использовать старую, но в ней надо кое что изменить. Зайдите в БД через phpMyAdmin и откройте таблицу wp_options. Здесь надо поправить два поля: siteurl и home. А именно, указать новый домен. Теперь административную панель сайта будет открываться как и ранее, с прежними логином и паролем.
Тот же самый результат можно получить, если добавить всего две строки в файл wp-config.php нового сайта. При этом, “ковырять” вручную базу данных не придётся. Вот как выглядит код, который надо вставить перед строкой /* Это всё, дальше не редактируем. Успехов! */:
define('WP_SITEURL', 'https://NEW-DOMAIN.ru');
define('WP_HOME', 'https://NEW-DOMAIN.ru');
Как сменить ссылки на изображения
Step 8. Кроме того, крайне желательно изменить ссылки на изображения в записях и на страницах сайта. Я заметил, что URL-адреса картинок в медиатеке изменились с учётом нового домена. Но вот в статьях изображения имели прежние URL старого доменного имени. Чтобы исправить это, я воспользовался плагином Search and Replace, установив его из официального репозитория WordPress.
Здесь всё элементарно. В первое поле вставляем URL старого домена, а во второе – нового. Например, если прежняя ссылка на изображение выглядела так: https://olddomain.ru/wp-content/uploads/2019/02/image.jpg, то нам необходимо изменить её на такую: https://newdomain.ru/wp-content/uploads/2019/02/image.jpg. Соответственно, в первое поле я внёс значение: https://olddomain.ru, а во второе – https://newdomain.ru. Отмечаем чекбоксы “Posts” и “Pages”, кликаем по кнопке “Go” и получаем желаемый результат!
Как оповестить поисковики о смене домена
Step 9. Когда техническая часть работы выполнена, давайте уведомим и поисковые системы о смене доменного имени. Думаю, достаточно это сделать в личном кабинете Яндекс.Вебмастер и в Google Search Console.
Зайдите в Яндекс.Вебмастер и зарегистрируйте новый домен. После этого, в Вебмастере откройте старый сайт и перейдите по ссылкам “Индексирование” -> “Переезд сайта”. Далее, в выпадающем списке выберите новое доменное имя и кликните по кнопке “Сохранить”.
В результате, вы должны увидеть такую запись: “В ближайшее время в результатах поиска вместо домена https://olddomain.ru появится https://newdomain.ru.”. В следующий раз, когда вы зайдёте в этот раздел, то увидите такую картинку, как на фото ниже.
В Google всё работает примерно так же. Заходим в свой аккаунт Google Search Console, регистрируем новый ресурс. И далее, заходим на страницу со старым ресурсом, открываем “Настройки”. Кликаем по ссылке “Изменение адреса” и указываем новый сайт.
Результатом будет вот такая запись: “Выполняется перенос этого сайта”.
Через 2-3 недели, когда все страницы сайта полностью переиндексируются, можно удалить сведения о старом веб-ресурсе из Яндекс.Вебмастер и в Google Search Console.
Видеоинструкция
А теперь, предлагаю посмотреть эту пошаговую видеоинструкцию по переносу сайта на новый домен. Просмотр займёт у вас не более 9 минут. Благодарю за внимание!
Всем WEB!
При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.
Что такое переадресация 301
Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.
Настроить код состояния HTTP 301 можно разными способами:
-
с помощью HTML и PHP;
-
через панель управления или плагины соответствующей CMS;
-
при помощи специальных скриптов (программ);
-
на уровне хостинг-провайдера;
-
внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.
Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.
Альтернативные методы переадресации
- Редирект 302. Применяется в случае временной переадресации с одного url на другой. При его использовании поисковая система индексирует все доступные версии сайта или страницы. Объединения ссылочного веса и внутренних метрик на приоритетном ресурсе не происходит.
- 307 Temporary Redirect рекомендуется применять в исключительных случаях. Например, при техническом обслуживании сайта, когда он недоступен некоторое время.
- Обновления Meta Refresh выполняют переадресацию не на уровне сервера, а непосредственно на сайте. Пользователь сталкивается с временной задержкой (обычно около пяти секунд), после чего для перехода на нужную страницу должен принудительно запустить определенную команду. Этот метод часто приводит к падению посетительского интереса и проседанию поисковых индексов.
- Редирект rel=«canonical». Позволяет сохранить доступ посетителям ресурса к контенту дублирующихся страниц. При этом для поисковиков наличие команды canonical на одной из страниц говорит о том, что только она подлежит индексации в поиске.
В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.
Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений.
В каких случаях используется постоянный редирект 301
-
Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.
-
Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.
-
Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.
-
Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.
-
Исключение дублирующихся страниц из индекса.
-
Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.
-
Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.
-
Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.
Создание постоянной переадресации 301 через настройки и плагины CMS
В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:
-
Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.
-
Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.
-
Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».
-
Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.
Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.
Чтобы настроить 301 редирект в CMS OpenCart в файле .htaccess необходимо прописать:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
Для Битрикс кодировка будет выглядеть следующим образом:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]
RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
С конструкторами сайтов все не так однозначно. Например, один из наиболее популярных CMS-конструкторов WIX не предоставляет возможности создания файла .htaccess.
Но настроить редирект 301 довольно просто в базовом редакторе.
Настройка 301 редирект в .htaccess
Файл с расширением .htaccess – это дополнительный конфигурационный файл web-сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.
Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трех директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.
Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.
Предварительная подготовка
-
Для создания 301 редиректа перейдите в панель управления вашего сайта.
-
Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html, если используете WordPress). Если файл отсутствует, создайте его.
-
Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess.
<IfModule mod_rewrite.c> </IfModule>
-
Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.
-
Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].
Разберем наиболее распространенные варианты создания 301 редиректа через .htaccess.
Склейка зеркал сайта (www / без www)
Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.
В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess.
Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:
RewriteCond %{HTTP_HOST} ^www.name.site$ [NC]
RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:
RewriteCond %{HTTP_HOST} ^v name.site$ [NC]
RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
Редирект с http на https для всего сайта
В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https. Для этого в файл .htaccess добавьте:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Если данная конструкция не сработает, попробуйте другой вариант:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Если редирект не работает и в этом случае, попробуйте такой вариант:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
В результате пройдет перенаправление на https всех пользователей и поисковых систем.
Постранично
Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Для одной страницы
Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Редирект сайта с https на http
Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://name.site/$1 [R=301,L]
Изменение домена
В том случае. если необходимо перейти на другой домен, при этом сохранив SEO-позиции, в файл .htaccess прописывают следующее:
RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
Редирект на страницу с другим url (без параметров)
Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв вес страниц. В этом случае в файл .htaccess прописывают следующее:
RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]
Редирект для url (с параметрами)
Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:
RewriteCond %{QUERY_STRING} section=1
RewriteRule ^index.php http://name.site/articles.php? [R=301,L]
Редирект с index.php на главную страницу
В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://name.site/ [R=301,L]
Редирект со страниц со слешем на без слеша (для всего сайта)
Для избегания дублей в файле .htaccess используют следующую конструкцию:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]
Или более короткий вариант:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Редирект со страниц без слеша на слеш (для всего сайта)
Обратный вариант применяется, когда нужно использовать адреса со слешем.
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
301 редирект с 404 Not Found
Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.
301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:
ErrorDocument 404 http://www.site.com/301.html
Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.
Финальный вид файла .htaccess
Пример файла htaccess, после добавления в него редиректов:
Options -Indexes
ErrorDocument 404 /404.php
php_flag register_globals off
php_value pcre.recursion_limit 1000
#Условия 301 редиректа
<IfModule mod_rewrite.c>
RewriteEngine On
# склейка зеркал
RewriteCond %{HTTP_HOST} ^my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC]
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
# без слеша
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
</IfModule>
php_value default_charset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml
Синтаксис для регулярных выражений в .htaccess
|
. |
точка заменяет произвольный символ |
|
[abc] |
обозначает перечень знаков, совпадающих с буквами a, b, или с |
|
[^abc] |
список символов вне указанного диапазона (кроме a, b, с) |
|
* |
указывает на то, что предыдущий знак может повторяться 0 или больше раз |
|
[abc]* |
команда найдет идущие подряд символы из заданного набора |
|
[^abc]* |
приводит к противоположному эффекту |
|
.* |
заменяет любой набор символов |
|
«.*» |
ищет все подстроки между кавычками |
|
^ |
начало строки (когда используется в начале выражения) |
|
$ |
означает конец строки |
|
w |
цифра, буква или подчеркивание _ |
|
d |
заменяет любую цифру |
|
D |
может заменить любой знак, кроме цифры |
|
[0-9] |
для замены любой цифры |
|
[a-z] |
для всех букв от a до z в нижнем регистре |
|
[A-Z] |
для каждой буквы от A до Z в верхнем регистре |
|
[a-zA-Z] |
любая буква от a до Z во всех регистрах |
|
[a-Z] |
аналогично |
Важно учитывать, что настройка редиректа путем редактирования файла .htaccess доступна исключительно для веб-серверов Apache.
Другие способы создания переадресации 301
Через PHP
Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:
if($_SERVER['REQUEST_URI'] == "/index.php") {
header("Location: /",TRUE,301);
exit();
}
(в первой строке укажите старый url, а во второй — новый)
Второй способ — перенаправление при помощи отправки заголовков (скрипта):
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>
ASP-редирект
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.new-url.com" response.end %>
ASP.NET редирект
Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.new-url.com");
}
</script>
ColdFusion редирект
<.cfheader statuscode="301″ statustext="Moved permanently"> <.cfheader name="Location" value="http://www.new-url.com">
JSP (Java) редирект
Данный способ подойдет для небольшой корректировки простых сайтов. Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав:
<script type="text/javascript" src="redirect.js"></script> <script type="text/javascript"> location="https://yandex.ru"; </script>
CGI-скрипт на PERL
$q = new CGI;
print $q->redirect("http://www.new-url.com/");
Ruby on Rails
def old_action headers["Status"] = "301 Moved Permanently" redirect_to "http://www.new-url.com/" end
Редирект в Nginx
if ($host = 'www.domain.com' ) {
rewrite ^(.*)$ http://domain.com$1 permanent;
}
HTML-редирект
Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:
<meta http-equiv="refresh" content="5;https://livepage.pro">
Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.
Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.
Редирект 301 в панелях управления сервера
Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.
Cpanel
Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:
-
В строке «Тип» выбрать «Постоянный 301».
-
В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).
-
В строке «Перенаправляет на» указать для домена адрес http://example.ru.
-
В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».
-
Сохранить изменения кликом на «Добавить».
ISPmanager
В этой панели можно вручную править файлы nginx.config или .htaccess, но есть и встроенный механизм переадресации. Например, для настройки редиректа на https/http нужно снять галочку с соответствующего пункта в разделе «WWW-домены».
Автоматическое создание переадресации
При отсутствии знаний и опыта самостоятельной настройки редиректа можно воспользоваться сервисами автоматической генерации:
-
Seomagnifier — 301 для www;
-
301 Redirect Code Generator Tool — для доменов и страниц;
-
Generate .htaccess— для страниц, разделов сайтов, доменов.
Проверка корректности настроек 301 редиректа
Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.
Для автоматической проверки можно воспользоваться специальными сервисами:
-
Redirect Checker, bertal.ru или Header Checker Tool для тестирования отдельных страниц;
-
программой Screaming Frog Seo Spider, способной просканировать весь сайт.
Существует ряд ошибок, которые следует избегать при настройке редирект 301:
-
использование перенаправлений между страницами сайта без изменения их url в ссылках;
-
установка временной переадресации вместо постоянной;
-
неправильный выбор типа редиректа;
-
перенаправление файла robots.txt;
-
непонимание разницы между rel=canonical и кодом 301;
-
редирект на нерелевантный контент;
-
переадресация, которая не приводит к 200-й странице.
Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.
Заключение
Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.
Инструментов для настройки корректной работы Permanent Redirect 301 существует достаточно много. Наиболее удобный и правильный – внесение записей в файл .htaccess. Недостаток этого метода в том, что он доступен только для веб-серверов Apache. При использовании IIS придется настраивать web.config. Для создания сложных правил переадресации более всего подходит PHP, но в этом случае без помощи программиста не обойтись. Еще одним вариантом настройки 301 редиректа может быть обращение к хостинг-провайдеру с целью подключения услуги web-форвардинга.
26 сентября 2019
18 353
7
Время чтения ≈ 19 минут
Содержание:
- Что такое редирект 301
- Для чего он нужен
- Способы настройки
- Настройка 301 редиректа в .htaccess
- Предварительная подготовка
- Склейка зеркал сайта
- Редирект http/https (с http на https, с https на http)
- Изменение домена
- Редирект на страницу с другим url (без параметров, с параметрами)
- Редирект с index.php на главную
- Редирект со страниц со слешем на без слеша (без слеша на слеш)
- Код 404 Not Found
- Как должен выглядеть файл .htaccess
- Постоянный редирект для Nginx (на «с www», на «без www»)
- Редирект для PHP
- Редирект в разных панелях управления хостингом
- 301 редирект для популярных CMS
- Автоматическое создание кода
- Циклическое перенаправление
- Проверка работоспособности
- Заключение
Во время работы с сайтом может возникнуть ситуация, требующая создания автоматического перенаправления с одного url-адреса на другой, которые принято называть словом «редирект». Это часто происходит при переезде ресурсе на новый домен, при переходе на обновлённый адрес, а также изменении адресов страниц. Чтобы пользователи смогли найти страницу по новому адресу, их должно автоматически «перекидывать» со старого адреса на новый.
Правильно сделать такое перенаправления поможет постоянный редирект или 301 Redirect. Что это такое и как настроить расскажем в этой статье.
Редирект — это процесс, при котором пользователь перенаправляется с неактуальной страницы на актуальную. Это может быть http и https или адрес с/без www. Редирект может выполняться как на сервере, так и в браузере. Но первый вариант считается предпочтительным, так как серверный редирект не замедляет загрузку страниц.
Permanent Redirect 301 («301 редирект», «постоянный редирект», «код состояния HTTP 301» или «301 редирект страницы») – один из двух наиболее распространённых видов редиректа, наряду с Temporary Redirect 302. Этот ответ сервера на запрос браузера или поисковой системы означает, что произошла перманентная переадресация страницы. Она больше не доступна по текущему адресу, так как переместилась на новый адрес навсегда. Её прежний url стал недействительным, а вес с него переместился на новый адрес.
Для чего он нужен
Правильная настройка 301 переадресации имеет особое значение для SEO-продвижения ресурса. Только при этом условии изменение домена или перемещение контента могут пройти без потерь в поисковых значениях. Поисковая система поймёт, что страница была перемещена по всем правилам, после чего сохранит её прежний вес и позицию в выдаче.
Также полезно знать как настроить редирект при следующих обстоятельствах:
- Переезд сайта на новый адрес. Нужно настроить перенаправление, чтобы все запросы к old_site.com перенаправлялись на new_site.com.
- Установка SSL-сертификата. Чтобы запросы к страницам, которые начинаются на http, перенаправлялись на адреса с префиксом
- Смена URL страницы. Это может быть связано с переходом на другую CMS или SEO-оптимизацией. Нужно, чтобы с example.ru/1hdkr5 был настроен редирект на example.ru/page_adress.
- Перенос разделов на субдомены. Было www.example.ru/example, а нужно example.site.ru.
- Для аккумуляции трафика с онлайн-бренда, расположенного в разных доменных зонах. Вебмастер покупает домены example.com, example.ru, example.net, example.org и example.biz и на четырех последних сайтах настраивает редирект на example.com.
- Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.
Способы настроить редирект 301
- Плагины для CMS. Особенно часто данный способ применяется для настройки 301 редиректа в WordPress.
- Настройка через PHP. Редирект осуществляется через задания дополнительного условия в PHP-скрипте. При обращении к корневому файлу php браузер получает указание открыть одну страницу вместо другой.
- Настройка при помощи HTML. Используется в случае, если необходимо изменить лишь одну страницу на статическом сайте. Редирект происходит путём добавления специальной метки (тега), в заголовок html-документа.
- JavaScript — операция через браузер. Скрипт загружается в ПО, это более медленный способ. Работает только при включенном JavaScript в браузере. Используются преимущественно для редиректа с задержкой, когда сначала посетитель сайта видит страницу с обратным отсчетом и текстом. Для настройки в тег <head> добавляется скрипт.
- Изменение файла .htaccess, отвечающего за дополнительную конфигурацию в серверах на Apache. Удобнее всего это сделать через панель управления хостингом.
Последний способ переадресации считается наиболее надежным, поэтому разберём его практически со всеми возможными вариантами.
Настройка 301 редиректа в .htaccess
Файл с расширением .htaccess – это дополнительный конфигурационный файл сервера Apache. Его используют для настройки веб-сервера, а также для обработки различных URL-адресов.
Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трёх директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.
Найти файл можно через панель управления хостинга (Cpanel, ISPmanager), либо использовать FTP-клиент. При любом варианте, нужно включить отображение скрытых файлов.
Предварительная подготовка
- Для создания 301 редиректа перейдите в панель управления вашего сайта.
- Проверьте наличие .htaccess файла в корневом каталоге сайта (public_html). Если файл отсутствует, создайте его.
- Рекомендуем все условия редирект записывать в блоке IfModule дабы избежать ошибок при выполнении файла htaccess.
<IfModule mod_rewrite.c> </IfModule>
- Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine), при помощи команды:
RewriteEngine On
- Хостинги применяют по умолчанию 302 или любой другой 3xx редирект, В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].
Далее разберём наиболее распространенные варианты 301 редиректа через .htaccess.
Склейка зеркал сайта (www / без www)
Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.
В поисковой системе сайт по одному адресу будет проиндексирован, а по второму адресу сайт будет зафиксирован как дубль, что может повлиять на продвижение ресурса. Для избегания дублей необходимо сделать так называемую «склейку» сайта, то есть прописать 301 редирект в .htaccess.
Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:
RewriteCond %{HTTP_HOST} ^www.name.site$ [NC]
RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:
RewriteCond %{HTTP_HOST} ^v name.site$ [NC]
RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
Редирект с http на https
Для всего сайта
В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https, для этого в файл .htaccess добавьте:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Если данная конструкция не сработает, попробуйте другой вариант:
RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Если циклическое перенаправление на страницах осталось, попробуйте такой вариант:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Если редирект не работает и в этом случае, попробуйте такой вариант:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
В результате пройдет перенаправление на https всех пользователей и поисковых систем, SEO значения при этом сохранятся.
Постранично
Бывают случаи, когда необходимо провести редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Для одной страницы
Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Редирект с https на http
Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://name.site/$1 [R=301,L]
Изменение домена
В том случае если необходимо перейти на другой домен, при этом сохранив SEO позиции, в файл .htaccess прописывают следующее:
RewriteCond %{HTTP_HOST} ^www.old_name.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old_name.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
Редирект на страницу с другим url (без параметров)
Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв SEO значения. В этом случае в файл .htaccess прописывают следующее:
RewriteRule ^(.*)old_page.html$ http://vash-sait.ru/new_page.html [R=301,L]
Редирект для url (с параметрами)
В случае когда адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:
RewriteCond %{QUERY_STRING} section=1
RewriteRule ^index.php http://name.site/articles.php? [R=301,L]
Редирект с index.php на главную
В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://name.site/ [R=301,L]
Редирект со страниц со слешем на без слеша (для всего сайта)
Для избегания дублей в файле .htaccess используют следующую конструкцию:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]
Или более короткий вариант:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Редирект со страниц без слеша на слеш (для всего сайта)
Обратный вариант применяется, когда нужно использовать адреса со слешем.
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
301 редирект с 404 Not Found
Код 404 Not Found (страница не найдена) присваивается удалённой или несуществующей странице на сайте, а также часто возникает при попутке неправильно ввести url-адрес. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса, при виде ошибки.
301 редирект для страниц 404 Not Found сделать совсем несложно. Например, этот код перенаправит со всех 404-страниц на главную сайта:
ErrorDocument 404 http://www.site.com/301.html
Однако, делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.
Финальный вид файла .htaccess
Пример файла htaccess, после добавления в него редиректов.
Options -Indexes
ErrorDocument 404 /404.php
php_flag register_globals off
php_value pcre.recursion_limit 1000
#Условия 301 редиректа
<IfModule mod_rewrite.c>
RewriteEngine On
# склейка зеркал
RewriteCond %{HTTP_HOST} ^my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru$ [NC]
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.my_site.ru
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
# без слеша
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
</IfModule>
php_value default_charset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml
Постоянный редирект для Nginx
Этот веб-сервер наиболее часто используется в VPS-хостинге в связке с сервером Apache. В нем 301 редирект настраивается добавлением строк в конфигурационном файле nginx.config в секции server.
C www на без www
server {#...
if($host~ * www.(.*)) {
set $host_without_www $1;
rewrite ^ (.*) $ http: //$host_without_www$1 permanent;
}#...
}
Без www на с www
server {#...
if($host~ * ^ [ ^ .] + .[ ^ .] + $) {
rewrite ^ (.*) $ $scheme: //www.$host$1 permanent;
}#...
}
После сохранения изменений в файле нужно перезапустить сервер выполнением команды «service nginx restart».
Редирект для PHP
Этот вариант действует на уровне сервера. Он используется в тех случаях, когда редирект необходимо создать для большого количества страниц, не все из которых имеются на платформе.
- Загрузите файл index.php на жесткий диск.
- Сгенерируйте код.
- Вставьте код в текстовый файл, сохраните его и загрузите на сервер.
- Укажите основной URL в настройках сайта.
Редирект 301 в разных панелях управления хостингом
Cpanel
Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:
- в строке «Тип» выбрать «Постоянный 301»;
- в строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru);
- в строке «Перенаправляет на» указать для домена адрес http://example.ru;
- в блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www»;
- сохранить изменения кликом на «Добавить».
ISPmanager
В этой панели можно править файлы nginx.config или .htaccess, но есть в панели и встроенный механизм переадресации. Например, для настройки редиректа на https/http, нужно снять галочку с соответствующего пункта в разделе «WWW-домены».
Особенности редиректа для популярных CMS
WordPress
Для самой массовой CMS существуют десятки плагинов для создания постоянного редиректа. Наиболее популярные среди них: Redirection, Simple 301 Redirects, Quick Page, SEO Redirection и Safe Redirect Manager.
Для примера, разберём перенаправление через плагин Redirection. Его настройка производится через консоль сайта во вкладке «Инструменты» или через раздел плагинов. Чтобы сделать переадресацию, достаточно заполнить два поля — Source URL и Target URL. Соответственно, в первой графе будет указан старый адрес, во второй — новый, без или с www.
Сделать это можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключить к нему, потребуется использовать FTP-клиент. Процесс не отличается от общей инструкции для .htaccess.
OpenCart
Для Opencart редактируется файл .htaccess. Код переадресации выглядит так:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
Битрикс
Для перенаправления на новую страницу достаточно отредактировать файл .htaccess, внеся в него такой редирект:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]
RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
Joomla
В панели администратора этой CMS нужно перейти в раздел «Компоненты» => «Перенаправление». В окне можно настраивать правила редиректа для различных страниц, а также отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
MODX
Для гибкой настройки переадресации стоит использовать плагин Redirector.
Автоматическое создание кода
Если самостоятельно создать код не получается из-за отсутствия знаний и опыта, можно попросить помощи у специалиста технической поддержки или воспользоваться автоматическими онлайн-генераторами.
Серверы для генерации кода
- Seomagnifier — 301 для www.
- 301 Redirect Code Generator Tool — для доменов и страниц.
- Generate .htaccess— для страниц, разделов сайтов, доменов.
Циклическое перенаправление
Одна из самых распространённых проблем при настройке 301 редиректа — вероятность создания не одинарного перенаправления, а целой цепочки редиректов. Это может быть вызвано некорректной настройкой файла .htaccess, плагина CMS или прямым действием вируса. В очень вероятной перспективе такие «цепочки» приводят к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS».
Обнаружить циклическое перенаправление помогут бесплатные онлайн-сервисы проверки редиректа. Среди наиболее популярных:
- Prcy-info;
- Website Planet;
- Redirect Detective;
- Mainspy;
- Seogift.
Можно также установить специальные браузерные расширения для Google Chrome и Mozilla Firefox.
Действия при циклическом редиректе
- Если ошибка возникла в процессе настройки. Следует проверить корректность соблюдения правил работы 301 редиректа для конкретных адресов, по которым выдаётся ошибка.
- Если циклический редирект вызван вирусом. Когда зацикливание возникает при попытке открыть любой адрес на сайте, выход может быть один — откат к последней работоспособной версии, сохранённой в бекапе.
- Если зацикливание вызвано слишком длинной цепочкой редиректов (более пяти). Нужно сократить цепочку перенаправлений до одного шага.
Как узнать, что переадресация работает правильно
Проверить редирект лучше всего обычным тестированием. Нужно ввести в адресную строку браузера www.example.ru и нажать Enter. Если все правильно, то должен открыться сайт по адресу example.ru.
Для более точной информации можно использовать онлайн-сервисы отслеживания. С ними можно работать «в 1 клик» — достаточно просто вставить ссылку на интересующую страницу.
Для примера, разберём работу в сервисе Redirect Checker. После ввода ссылки перенаправления при нормальной работе внизу появится надпись «Everything seems to be fine», то есть «все работает». Сервис автоматически проверит редирект и сообщит, если он работает некорректно. Если переадресация не действует, пользователь увидит такие сообщения: «Редирект для домена больше не работает» или «Перенаправление не настроено».
Заключение
Для того чтобы поисковая система считала два разных адреса одним сайтом, должна работать постоянная переадресация. 301 редирект — удобный и надежный инструмент для оптимизации сайта, исправления ошибок и недоработок на сайте.
Использовать данный инструмент необходимо с осторожностью. Ведь неправильная настройка может привести к сбою в работе или потере поисковых позиций сайта.
Чтобы сайт после редиректа не только открывался по нужному адресу, но и работал без сбоев, ему нужна надёжная хостинг-площадка. Размещайтесь на VPS от Eternalhost, чтобы забыть о технических сложностях и полностью сосредоточиться на развитии своего интернет-ресурса!
Оцените материал:
[Всего голосов: 3 Средний: 3.7/5]
Иногда владельцу проекта требуется перенести сайт своей компании на другой домен. Например, если у организации сменилось наименование. Важно знать, что переезд отрицательно отразится на SEO-продвижении сайта. Он может утратить позиции по поисковым запросам или даже пропасть из поисковой выдачи на 1-2 месяца.
Чтобы минимизировать потери при переезде и не потерять поисковый трафик, нужно переносить сайт правильно. В статье рассмотрим 7 шагов грамотного переезда и оставим краткую памятку в конце.
Если вы не хотите тратить время на самостоятельную настройку домена, специалисты RU-CENTER сделают это за вас — оставьте заявку с указанием нужных настроек.
Причины переезда на другой домен
Убедитесь, что для переноса сайта с поисковым трафиком есть весомые причины. Если ваш сайт создан недавно и ещё не индексируется поисковыми системами, при смене домена можно не заботиться о сохранении SEO-трафика. Так, легче зарегистрировать новый домен, привязать его к услуге хостинга и копировать в новый корневой каталог файлы вашего сайта.
Сайт стоит переносить на другой домен с сохранением трафика, если:
- нашлось более релевантное доменное имя, которое лучше отражает концепцию проекта;
- произошёл ребрендинг или изменилось фирменное наименование компании;
- организация вышла на международный уровень и требуется сменить национальную доменную зону (.ru, .de и др.) на международную (.org, .site и др.).
Алгоритм действий при переносе сайта на другой домен
Шаг 1. Зарегистрируйте новый домен
Мы подготовили рекомендации по выбору в инструкции «Регистрация доменов». Обратите внимание, что для переноса сайта вам не понадобится хостинг на новом домене, поэтому не добавляйте эту услугу в процессе заказа домена.
Шаг 2. Укажите для домена DNS-серверы
Если в первом шаге вы заказали домен в RU-CENTER, укажите для домена DNS-серверы и подождите, пока он начнёт работать. Время ожидания — от 2 до 24 часов. За этот период времени обновляется кэш корневых DNS-серверов и на них поступает информация о новых доменах. Если вы не знакомы с принципами работы DNS, но не прочь разобраться, загляните в статью Часто задаваемые вопросы о DNS.
Шаг 3. Настройте 301-й редирект
Настройте автоматическое перенаправление со всех страниц сайта исходного домена на соответствующие страницы нового домена. Для корректной работы «связки» доменов обязательно использовать 301-й (постоянный) редирект. Тогда поисковые системы переиндексируют сайт по новому адресу.
RU-CENTER предлагает 3 варианта настройки редиректа:
- Вручную в .htaccess → Добавьте директиву по инструкции с заголовком 2. Постоянное перенаправление с кодом 301.
- Автоматически при заказе услуги Перенаправление домена → После заказа и активации услуги воспользуйтесь статьёй Настройка услуги «Перенаправление домена».
- Автоматически в панели управления хостингом → Настройте редирект в несколько кликов, как показано в гайде.
Если вы используете услуги иного хостинг-провайдера, обратитесь к специалистам техподдержки этой компании или разработчикам своего сайта.
Шаг 4. Проверка редиректа
Проверьте, работает ли редирект. Для этого введите в адресную строку браузера URL-адреса страниц или файлов со старым доменом. Если переадресация настроена корректно, у вас сразу будет открываться страница с новым доменом в адресе.
Выполните шаги 5 и 6, если ранее сайт уже был добавлен в Яндекс.Вебмастер и Search Console (Google).
Шаг 5. Склейка сайтов в Яндекс.Вебмастере
Объедините старый и новый домены в Яндекс.Вебмастере. Эта процедура необходима для того, чтобы поисковые роботы Яндекс не воспринимали новый домен как отдельный сайт и вам не потребовалось наращивать посещаемость с нуля.
Чтобы склеить сайты:
1. Авторизуйтесь в Яндекс.Вебмастере и нажмите плюс в верхней панели. Введите домен, зарегистрированный в первом шаге, и нажмите Добавить:
2. Подтвердите право на владение доменом одним из способов, предложенных Яндекс (через метатег, добавление HTML-файла в корневой директории или верификацию TXT-записью). Затем нажмите «Проверить»:
Прежний домен сайта также должен быть подтверждён в системе Яндекс.Вебмастер.
3. Перейдите в раздел «Индексирование» — «Переезд сайта»:
4. Выберите домен, добавленный ранее, и нажмите «Сохранить»:
Склейка займет несколько недель. Вы можете подписаться на уведомления от Яндекс.Вебмастера, чтобы узнать, когда Яндекс посчитает новый домен главным зеркалом. После этого переезд сайта будет завершен и он станет индексироваться по новому адресу.
Шаг 6. Изменение адреса в Search Console (Google)
Чтобы восстановить поисковый трафик по прошлому домену на новом:
1. Авторизуйтесь в Google-аккаунте и перейдите в Search Console.
2. Добавьте новый ресурс (домен, зарегистрированный в первом шаге):
3. Подтвердите право собственности на домены (исходный и целевой), добавив в их зону TXT-запись. Затем нажмите «Подтвердить»:
Исходный ресурс должен быть подтверждён в Google Search.
4. Перейдите на страницу инструмента «Изменение адреса».
5. Выберите добавленный ранее домен и нажмите «Проверить и обновить данные».
Далее произойдет склейка сайтов. Она займёт некоторое время.
Шаг 7. Настройка robots.txt (≈ через месяц)
Чтобы завершить переезд, нужно закрыть старый сайт от индексации в файле robots.txt. Делается это приблизительно через месяц после самой склейки. Найдите файл robots.txt в корневом каталоге вашего сайта на хостинге и добавьте в него директиву:
старый_сайт.ru/robots.txt
User-agent: *
Disallow: /
Сохраните изменения.
Обещанная памятка переезда
Чтобы после переезда со старого домена сайт восстановил позиции в поиске, переносить его следует по правилам:
- Подготовьте новый домен и делегируйте его (укажите DNS-серверы), чтобы сайт, который вы переадресуете на новый домен отображался в интернете.
- Настройте 301-й редирект, чтобы все запросы с прошлого домена поступали на новый и при этом отображался существующий сайт.
- Сообщите поисковым системам Яндекс и Google о переезде сайта.
- Через месяц после склейки закройте старый сайт от индексации в robots.txt.
Переиндексация (переобход поисковыми роботами) займёт некоторое время. Сначала в поисковых системах будет фигурировать старый домен. При переходе на сайт будет срабатывать 301-й редирект на новый домен. Спустя несколько апдейтов поисковик начнет показывать в выдаче новый домен. Когда в поисковиках перестанет отображаться старый домен (приблизительно через месяц), закрываем его от индексации в robots.txt.
HTML redirect играют важную роль для масштабных веб-проектов. Возможность переадресации трафика с одного сайта на другой помогает лучше управлять потоками посетителей и выполнять реструктуризацию ресурса.
С помощью редиректов пользователи могут отправлять сообщения с одинаковым содержанием на разных доменах, не позволяя их классифицировать как дублированный контент. Кроме этого перенаправления доменов являются эффективными способом для поисковой оптимизации.
Редиректы выполняются с помощью .htaccess, PHP скрипт, HTML мета-тегов и JavaScript.
- Перенаправление доменов сайта
- Типы редиректов
- Серверные редиректы
- Перенаправление через .htaccess
- .htaccess перенаправление из подкаталога на другой URL
- Перенаправления с помощью PHP
- Клиентские редиректы
- Переадресация с помощью HTML метатега refresh
- Переадресация с помощью JavaScript
Редиректы используются для информирования серверов о том, что контент сайта был перенесен с одного URL-адреса на другой. Делать это необходимо, когда исходный веб-адрес (цель входящей ссылки) занимает высокие позиции в выдаче поисковых систем (SERP). В этом случае редирект сообщает поисковому роботу, что нужный контент был перенесен, предоставляя пользователю ссылку на новый адрес.
Без таких переадресаций веб-мастера столкнулись бы со страницей ошибки 404 вместо искомого сайта. Это то, чего коммерческие ресурсы особенно стремятся избежать. Онлайн-магазины предлагают постоянно меняющийся ассортимент товара, который отображается на многих страницах. Как только товар перестает продаваться, потенциальных клиентов перенаправляют на страницу с аналогичным продуктом. Это позволяет более эффективно управлять потоком посетителей, а также уменьшить показатель отказов.
Кроме этого перенаправление позволяет одинаковому контенту быть доступным по различным веб-адресам. Все альтернативные адреса перенаправляются в сторону приоритетного домена сайта:
Различают клиентские и серверные HTML meta redirect. В случае с серверными перенаправлениями происходит передача кодов состояния HTTP пользовательским агентам (браузерам и поисковым роботам).
Когда дело доходит до перенаправлений на стороне клиента, все выглядит по-другому: они выполняются без какого-либо ответа, и никакие коды состояний не передаются. Именно поэтому не все системы поддерживают редирект. Это может привести к ситуациям, когда посетители остаются на оригинальном сайте и не перенаправляются на новую страницу.
Такие недостатки делают использование серверных редиректов более предпочтительным. Поэтому клиентские решения должны применяться только тогда, когда перенаправления домена на стороне сервера невозможно из-за технических препятствий.
В большинстве случаев серверные перенаправления домена выполняются через конфигурационный файл .htaccess или PHP скрипт. Преимущество этих методов состоит в том, что можно индивидуально определить, какой код состояния HTTP должен быть выведен на экран пользовательскому агенту. Это позволяет веб-мастерам помечать перенаправления, как постоянные или временные.
Ниже приведены актуальные коды состояния HTTP 301 и 302:
- redirect 301 HTML – перемещен навсегда: запрашиваемый ресурс теперь постоянно доступен по новому URL. Старый URL с этого момента становится недействительным;
- 302 – перемещен временно: запрашиваемый ресурс доступен по новому URL. При этом исходный URL по-прежнему сохраняет свою актуальность.
Если код состояния HTTP не определен явно, сервер передает код состояния 302 во время редиректа. Это не всегда необходимо и рекомендуется вручную вводить нужный код состояния при каждой переадресации, так как это позволяет снизить вероятность ошибки индексации, как в ситуации взлома URL. В отличие от редиректа 301, код состояния 302 сообщает поисковым роботам, что первоначальный URL должен оставаться индексируемым. Предназначенный для постоянной работы адрес редиректа конкурирует с адресом, указанным в индексе поисковой системы.
.htaccess представляет собой конфигурационный файл на сервере Apache, используемый для перезаписи центральной конфигурации на уровне каталогов. Этот файл позволяет администраторам сайта выполнять специфичные настройки каталога для доменов и их подкаталогов. Одна из функций файла .htaccess включает в себя серверные перенаправления отдельных адресов на другие URL.
После того, как файл .htaccess со следующим кодом помещается в основные каталоги, запросы на исходный домен перенаправляются серверной стороной на домен www.example.com ‘‘:
.htaccess перенаправление на новый домен redirect 301 / http://www.example.com/
Строка кода начинается с redirect 301 HTML и определяет код состояния HTTP, который будет передан сервером. Далее следует путь к контенту, который должен быть перенаправлен. В данном случае будет перенаправлено все содержимое. В заключении целевой URL перенаправляется на URL пользовательского агента: ‘http://www.example.com’.
Этот метод позволяет перенаправить отдельные файлы. Следующий код показывает редирект с одного сайта на другой:
Вот как выглядит постоянное перенаправление на сервере Apache с активным модулем mod_rewrite:
RewriteEngine On RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]
В первой строке кода модуль mod_rewrite сервера Apache активируется с помощью команды ‘RewriteEngine On’. После этого указывается «RewriteRule» с путем к файлу перенаправления и адресом назначения. Символы ^ и $ обозначают начало и конец пути, а L означает последнее правило для соответствующего запроса. R = 301 пересылает статус HTTP 301.
При настройке редиректа с помощью .htaccess ошибочные записи могут серьезно повлиять на работу сайта. Учитывая, что эти изменения вступают в силу сразу после сохранения файла .htaccess, нужно тщательно проверять соответствующие конфигурации.
HTML redirect на другую страницу может также быть выполнен PHP скриптом (например, в index.php). Следующий код отображает постоянное перенаправление к целевому URL ‘www.example.com’:
<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.beispiel.de");
exit;
?>
При передаче через PHP скрипт код состояния HTTP определяется с помощью функции «header» во второй строке кода. В этом примере должен быть выполнен постоянный 301 редирект. Учитывая, что серверные перенаправления обычно выполняются на временной основе, то для постоянного редиректа нужно явно указать код состояния 301. Адрес назначения перенаправления также прописан в ‘header‘.
В примере перенаправление происходит на ‘http://www.example.com‘. Функция ‘exit‘ в четвертой строке кода заканчивает сценарий и препятствует выполнению следующей строки. Чтобы редиректы работали через PHP скрипт, блок кода должен быть расположен в начале HTML страницы. Это препятствует передаче сервером содержимого HTML на страницу перенаправления.
Если выполнение перенаправления на стороне сервера невозможно по техническим причинам, то можно использовать клиентское решение. Для этого применяется HTML метатег «refresh» и JavaScript. Недостатком перенаправления на стороне клиента является то, что серверы не передают коды состояния HTTP запрашивающим браузерам или поисковым роботам.
Более того, перенаправления на стороне клиента не поддерживаются всеми пользовательскими агентами, а это значит, есть риск того, что не все посетители сайта будут перенаправлены.
Redirect HTML index на стороне клиента оказывают негативное влияние на поисковый индекс. С клиентскими редиректами 301 не происходит явного исключения из индексации через код состояния HTTP. Это может привести к перенаправлению доменов, конкурирующих с доменами назначения, когда речь заходит о поисковых запросах, связанных с рейтингом. В отличие от серверных редиректов, которые остаются невидимыми для пользователей, клиентские всегда сопровождаются задержками.
HTML перенаправления реализуются через метатеги с атрибутом ‘http-equiv’. Для этого нужен простой HTML-файл и соответствующий тег в заголовке для создания перенаправления. Чтобы посетители получали информацию о редиректе, в HTML-документе должно быть установлено соответствующее уведомление: «Пожалуйста, подождите. Вы будете перенаправлены … ‘. Простое перенаправление с помощью refresh выглядит следующим образом:
<meta http-equiv="refresh" content="10; url=http://www.example.com/">
Клиенту будет предложено перенаправление на новую страницу через метатег http-equiv = «refresh». То, как это происходит, определяется в атрибуте ‘content’. Приведенный выше пример перенаправляет пользователей на домен ‘www.example.com‘ через десять секунд.
JavaScript предлагает простую возможность HTML redirect домена на стороне клиента. Но JavaScript поддерживается не всеми браузерами из-за соображений безопасности. Использование данного решения также может создать проблемы для поисковых роботов и пользователей с активными дополнениями NoScript. Вот как выглядит код перенаправления с помощью JavaScript:
<script>
<!--
window.location.replace('http://www.example.com');
//-->
</script>
Самое главное здесь это третья строка кода. Объект ‘window.location‘ используется, чтобы сделать ссылку на текущий адрес сайта. Команда ‘replace‘ инструктирует браузер направить пользователя к домену назначения (‘www.example.com‘).



























