Правильний перехід на HTTPS: зберігаємо трафік і позиції
Навіть при здаваній простоті зміни протоколу — випустити сертифікат і налаштувати редирект — у багатьох проєктів після міграції просідає трафік через mixed content, редиректні ланцюжки та дублі сторінок. Ми виконали понад 200 міграцій і знаємо кожну пастку. Наприклад, на одному проєкті з 50 000 сторінок клієнт втратив 20% трафіку через те, що в базі залишилися посилання на HTTP-ресурси. Виправлення mixed content зайняло всього 4 години — і трафік повернувся.
Чому перехід на HTTPS критичний для SEO?
Пошукові системи віддають перевагу HTTPS-сайтам. Браузери позначають HTTP як небезпечний, що знижує довіру та підвищує bounce rate. Після переходу важливо одразу оновити дані в Google Search Console та Яндекс.Вебмастері, інакше індексація може тимчасово впасти. Згідно з нашим досвідом, 90% сайтів після правильної міграції отримують оцінку A+ на SSL Labs, що позитивно впливає на Core Web Vitals та ранжування.
SSL-сертифікат: безкоштовний чи платний?
Let's Encrypt — безкоштовно, автоматично оновлюється, достатньо для більшості сайтів. Економія від використання Let's Encrypt порівняно з платними сертифікатами може досягати тисяч гривень на рік. Однак для інтернет-магазинів та корпоративних порталів рекомендується OV-сертифікат від Sectigo або DigiCert.
# Certbot на Ubuntu sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d mysite.com -d www.mysite.com # Автооновлення (вже налаштовується Certbot) sudo systemctl enable certbot.timer Платні сертифікати (Sectigo, DigiCert) потрібні для EV-валідації та wildcard на кілька рівнів.
| Критерій | Let's Encrypt | Платні (Sectigo) |
|---|---|---|
| Ціна | Безкоштовно | Платний |
| Термін дії | 90 днів | 1-2 роки |
| Автооновлення | Є (certbot) | Вручну |
| Підтримка wildcard | Так | Так |
| EV-валідація | Ні | Так |
Let's Encrypt у 10 разів дешевший за платні сертифікати при порівнянному рівні безпеки, але потребує автоматичного оновлення раз на 90 днів.
Nginx: HTTPS + HTTP→HTTPS редирект
# HTTP → HTTPS редирект server { listen 80; server_name mysite.com www.mysite.com; return 301 https://mysite.com$request_uri; # без www } # HTTPS server { listen 443 ssl http2; server_name mysite.com; ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem; # Сучасна конфігурація TLS (Mozilla SSL Config Generator) ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # HSTS (додавати тільки після перевірки, що HTTPS працює!) add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # ...решта конфігурації... } Що таке HSTS і навіщо він потрібен?
HSTS (HTTP Strict Transport Security) — заголовок, який змушує браузер завжди використовувати HTTPS при зверненні до сайту, навіть якщо користувач ввів http://. Це запобігає атакам Man-in-the-Middle та знижує ризик mixed content. Налаштування HSTS — один з останніх кроків після повної перевірки HTTPS, тому що якщо десь залишиться помилка, браузер не дозволить зайти по HTTP. Переконайтеся, що всі ресурси завантажуються по HTTPS, і тільки потім додавайте заголовок.
Як усунути mixed content після переходу?
Після переходу браузер блокує HTTP-ресурси на HTTPS-сторінці. Шукаємо:
# Сканування mixed content npx mixed-content-scanner https://mysite.com # Або в Chrome DevTools: Console → фільтр "Mixed Content" У WordPress — плагін Better Search Replace для заміни http:// → https:// у БД. Для інших CMS:
-- PostgreSQL UPDATE posts SET content = replace(content, 'http://mysite.com', 'https://mysite.com'); UPDATE posts SET content = replace(content, 'http://old-cdn.com', 'https://new-cdn.com'); Типові проблеми та їх вирішення
| Проблема | Вирішення |
|---|---|
| Mixed content у WordPress | Плагін Better Search Replace |
| Редиректні ланцюжки | Використовувати лише 301, уникати ланцюжків |
| Невідповідність canonical | Оновити canonical на HTTPS |
| HSTS блокує HTTP | Вмикати лише після повної перевірки |
Процес міграції: покроково
- Аудит поточної конфігурації сервера та CMS — перевірка existing redirects, mixed content, дублів.
- Випуск та встановлення SSL-сертифіката (безкоштовного чи платного) — з налаштуванням автоматичного оновлення.
- Налаштування 301 редиректів з HTTP на HTTPS та з www на non-www (або навпаки).
- Усунення mixed content у базі даних та шаблонах — з використанням SQL-запитів або плагінів.
- Оновлення sitemap та подання до пошукових систем через Google Search Console та Яндекс.Вебмастер.
- Тестування на SSL Labs — оцінка A або A+ — та перевірка відсутності помилок у Chrome DevTools.
- Увімкнення HSTS після верифікації всіх сторінок.
Чекліст після переходу
- [ ] Всі сторінки відкриваються по HTTPS
- [ ] HTTP редиректить на HTTPS (301)
- [ ] www редиректить на non-www (або навпаки)
- [ ] Canonical теги вказують на HTTPS
- [ ] Sitemap містить HTTPS URL
- [ ] Немає mixed content попереджень
- [ ] HSTS заголовок присутній
- [ ] SSL Labs оцінка A або A+
Що входить у роботу
- Аудит поточної конфігурації сервера та CMS
- Випуск та встановлення SSL-сертифіката
- Налаштування 301 редиректів
- Усунення mixed content
- Оновлення sitemap та подання до пошукових систем
- Тестування на SSL Labs та перевірка помилок
- Інструкція з обслуговування сертифіката
Терміни та вартість
Перехід на HTTPS для стандартного сайту займає 4–8 годин. Складні проєкти з кастомними CMS можуть потребувати до 2 днів. Вартість розраховується індивідуально залежно від обсягу робіт та використовуваних сертифікатів. Зв'яжіться з нами для точної оцінки. Наші інженери сертифіковані та працюють з Nginx, Apache, IIS, а також усіма популярними CMS. Отримайте консультацію прямо зараз — ми підкажемо оптимальний план міграції.







