Руководство по переезду WordPress сайта с HTTP на HTTPS

Logo

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

Руководство по переезду сайта с HTTP на HTTPS

Процесс переезда сайта с HTTP на HTTPS

Для правильного переезда сайта с протокола HTTP на HTTPS необходимо выполнить следующие рекомендации.

  1. Приобрести и настроить сертификат безопасности. Вы можете использовать как платные сертификаты, так и бесплатные, например, от компании Let’s Encrypt. Получить бесплатный сертификат в автоматическом режиме можно у большинства современных хостинг-компаний, например, этой и этой.
  2. Сообщить поисковым роботам о том, что сайт стал доступен по новому протоколу. Для этого его необходимо добавить в панели управления Google Search Console и Яндекс.Вебмастер. При этом добавлены должны быть все версии сайта, то есть, с http, https, с www и без www.
  3. Указать адрес главного зеркала с помощью директивы Host в файле robots.txt. Пример: Host: https://site.com. Также необходимо указать адрес карты сайта с использованием протокола HTTPS. Пример: Sitemap: https://site.com/sitemap.xml. Пример файла robots.txt вы найдете в завершающей части статьи.
  4. Убедиться, что файл robots.txt доступен в обеих версиях сайта (с протоколом HTTP и HTTPS).
  5. Сообщить Яндексу об изменениях в отношении главного зеркала сайта. Сделать это можно на странице «Настройки индексирования — Переезд сайта» в Яндекс.Вебмастер для HTTP версии сайта.
  6. Подождать, пока будет определено главной зеркало сайта в соответствие с заданными указаниями. На это может уйти несколько недель. По завершении переезда в панели управления Яндекс.Вебмастер появится соответствующее уведомление.
  7. Подождать, пока проиндексируется HTTPS версия сайта. При этом количество страниц HTTP версии сайта в Яндекс.Вебмастер будет сокращаться.
  8. Настроить 301 редирект с HTTP версии сайта на HTTPS. Редирект необходимо настраивать только после завершения склейки зеркал в Яндекс.Вебмастер. В противном случае могут возникнуть проблемы с индексацией HTTPS версии сайта в Яндексе. Если же вы ориентированы только на Google, то редирект можно настраивать сразу.

Настройка 301 редиректа с HTTP на HTTPS в WordPress

Процесс настройки 301 редиректа с HTTP на HTTPS в WordPress сводится к следующим операциям.

  1. Закрыть доступ к сайту.
  2. Обновить пути в базе данных.
  3. Настроить 301 редирект.
  4. Открыть доступ к сайту.

Закрыть доступ к сайту

Для закрытия доступа к сайту вы можете использовать как встроенные функции хостинга, так и собственные. Например, на хостинге beget нет встроенной функции блокировки доступа, поэтому в качестве альтернативы я использую файл .htaccess со следующим кодом.

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

где 127.0.0.1 — ваш IP-адрес.

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

Обновление путей в базе данных

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

Также замена путей в базе данных позволяет быстро изменить протокол сайта в общих настройках WordPress. Таким образом, никаких других манипуляций в административной панели сайта производить не придется.

Для обновления путей в базе данных необходимо выполнить следующее:

  1. Сделать резервную копию файлов сайта и базы данных.
  2. Открыть дамп базы данных в редакторе, например, Notepade++.
  3. Заменить строки «http://site.ru» на «https://site.ru» с учетом регистра.
  4. Импортировать базу данных обратно, предварительно очистив таблицы.

Для импорта больших баз данных или при возникновении каких-либо ошибок в процессе импорта, например, в phpMyAdmin, рекомендую использовать программу HeidiSQL или аналогичную.

Настройка 301 редиректа

В связи с низкой гибкостью и частыми проблемами при настройке редиректов с использованием файла .htaccess, я перешел на использование исключительно PHP-редиректов. Для настройки автоматических редиректов с HTTP версии сайта на HTTPS, добавьте следующий код в файл functions.php вашей текущей темы оформления:

if ( ! function_exists( 'https_redirect' ) ) {
/* PHP redirect to HTTPS */
add_action( 'template_redirect', 'https_redirect', 1 );
function https_redirect() {
/* Get protocol */
$https = isset( $_SERVER['HTTPS'] ) ? $_SERVER['HTTPS'] : false;
/* Check protocol */
if ( ! empty( $https ) && $https != 'off' ) {
return;
}
/* Get redirect url */
$redirect_url = sprintf(
"https://%s%s",
$_SERVER['SERVER_NAME'],
$_SERVER['REQUEST_URI']
);
/* Redirect to HTTPS */
wp_redirect( $redirect_url, 301 );
/* Exit */
exit;
} // https_redirect();
}

Вышеприведенный код будет автоматических перенаправлять всех пользователей с HTTP версии сайта на HTTPS без каких-либо манипуляций с файлом .htaccess.

Открыть доступ к сайту

После завершения обновления путей в базе данных и настройки 301 редиректа, необходимо закачать в корень сайта исходный файл .htaccess. После этого желательно авторизоваться на сайте, зайти в «Панель управления – Постоянные ссылки» и сохранить настройки. Если вы используете кеширование, необходимо также очистить кеш.

Пример файла robots.txt

В завершение привожу пример файла robots.txt с указанием главного зеркала и карты сайта.

User-agent: *
Disallow: /*?*
Disallow: /cgi-bin
Disallow: /xmlrpc.php
Disallow: */trackback
Disallow: */feed
Disallow: */embed
Host: https://site.com
Sitemap: https://site.com/sitemap.xml

Данный пример является универсальным и подходит для большинства проектов под управлением WordPress. Если у вас сложности с настройкой файла robots.txt, рекомендую использовать данный пример, предварительно изменив домен на свой.

На этом руководство по переезде сайта с HTTP на HTTPS подошло к концу. Если у вас возникли какие-то вопросы – пишите в комментарии.

Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter

Оставить комментарий

отменить ответ