Оновлений матеріал, вперше опублікований у червні 2018 року
Бажаєте зробити свій сайт безпечним, швидким і підняти його в топі Google? Тоді 301 редірект із HTTP на HTTPS — ваш надійний помічник. Це схоже на те, щоб скерувати всіх гостей свята через головний вхід, уникаючи хаосу. У цьому гайді ми розкажемо, як правильно налаштувати редірект для Apache та Nginx, зберегти SEO-позиції та уникнути типових проблем. Оновлено для актуальних стандартів 2025 року.
Якщо ваш сайт доступний за різними адресами (наприклад, http://site.com, https://site.com, http://www.site.com), Google може вважати їх окремими сайтами, розпорошуючи ваш SEO-потенціал. 301 редірект — це спосіб зібрати всіх — відвідувачів і пошукові системи — на одну правильну адресу, зберігаючи трафік і рейтинги.
HTTPS став стандартом безпеки, який шифрує дані користувачів і приносить бонусні бали від Google в ранжуванні. Без редіректу ви ризикуєте відлякати відвідувачів, адже браузери, як Chrome, показують попередження «Небезпечно» на HTTP-сторінках. Редіректи також незамінні при ребрендингу, злитті сайтів або переході на HTTPS.
Коли використовувати 301 редірект?
Цікавий факт: У 2018 році оновлення Chrome зробило HTTPS майже обов’язковим. Хочете знати більше? Дізнайтесь у статті Як випуск Chrome 68 у липні 2018 року може вплинути на ваш веб-сайт?.
1. Перевірте готовність HTTPS Перед налаштуванням редіректу переконайтеся, що HTTPS працює. Отримайте SSL-сертифікат — безкоштовний від Let’s Encrypt ідеально підходить. Використовуйте хостинг-панель (cPanel, Plesk) або CDN від Hostiserver для спрощення. Перевірте сертифікат через SSL Labs і прагніть до оцінки A чи A+.
2. Налаштуйте 301 редірект для Apache Для серверів Apache редірект налаштовується через файл .htaccess. Переконайтеся, що модуль mod_rewrite активний. Якщо ні, додайте до конфігурації сервера:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Перезавантажте Apache командою:
sudo apache2ctl restart
Відредагуйте .htaccess у кореневій папці сайту. Для базового редіректу з HTTP на HTTPS використайте:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Щоб позбутися www (або зберегти його), приклад для https://site.com без www:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC] RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
Увага до деталей у .htaccess — ключ до успіху, тож перевіряйте синтаксис.
3. Налаштуйте 301 редірект для Nginx На Nginx редіректи налаштовуються в конфігурації віртуального хоста (vhost), наприклад, у nginx.conf або sites-enabled/site.conf. Для простого редіректу з HTTP на HTTPS:
server { listen 80; server_name site.com www.site.com; return 301 https://$server_name$request_uri; }
Редірект на HTTPS із www:
server { listen 80; server_name site.com www.site.com; return 301 https://www.site.com$request_uri; }
Редірект на HTTPS без www:
server { listen 80; server_name site.com www.site.com; return 301 https://site.com$request_uri; }
Редірект HTTPS без www на HTTPS із www:
server { listen 443 ssl http2; server_name site.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; return 301 https://www.site.com$request_uri; } server { listen 443 ssl http2; server_name www.site.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; root /var/www/site; # Додаткові налаштування... }
Якщо хостинг-панель обмежує створення окремих vhost, додайте редірект у головний блок:
server { listen 80; listen 443 ssl http2; server_name www.site.com site.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; root /var/www/site; if ($scheme = http) { return 301 https://$server_name$request_uri; } # Додаткові налаштування... }
4. Перевірте редірект Після налаштування протестуйте його за допомогою Redirect Checker. Відкрийте сайт через HTTP — чи перенаправляє на HTTPS? У браузерах (Chrome, Firefox) перевірте на помилки «змішаного вмісту» (mixed content). Їх потрібно виправити, щоб уникнути проблем.
Порада: Захист від змішаного вмісту складний? Дізнайтесь більше в статті Як захистити свій веб-сайт від проксі-дзеркал?.
5. Оновіть Google Search Console Щоб Google знав про перехід на HTTPS:
Додайте https://site.com як новий ресурс у Google Search Console.
Надішліть оновлений sitemap.xml.
Перегляньте «Помилки сканування» та виправте їх.
Скористайтеся інструментом «Перевірка URL» для запиту переіндексації.
Пропуск оновлення Search Console може затримати відновлення рейтингів.
6. Додайте HSTS для безпеки HTTP Strict Transport Security (HSTS) змушує браузери використовувати лише HTTPS. Додайте до конфігурації:
Для Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Для Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Для максимального захисту розгляньте додавання сайту до HSTS Preload List.
7. Спростіть із CMS Якщо у вас WordPress, Joomla чи PrestaShop, уникайте коду. Для WordPress встановіть плагін Really Simple SSL — він автоматично перенаправить HTTP на HTTPS. У cPanel або Plesk увімкніть «Примусовий HTTPS» у налаштуваннях домену. Це швидко й зручно.
Нещодавно ми допомагали київському інтернет-магазину одягу перейти на HTTPS. Старий сайт на HTTP втрачав позиції в Google через попередження браузерів. Ми налаштували 301 редірект через Nginx, усунули змішаний вміст, і за два місяці трафік зріс на 12%, а показник відмов упав із 50% до 41%. Тестування перед запуском стало вирішальним. До того ж, CDN від Hostiserver додало прискорення сайту.