Сайт фотографині Pauliny Niewiadomskiej після редизайну на WordPress

З Elementor на Blocksy і Gutenberg: кейс сайту фотографині

WordPress

Вихідна точка

Клієнтка — Пауліна Нєвядомська, фотографиня, яка знімає жіночі, чуттєві та іміджеві фотосесії, проводить воркшопи й продає пресети та електронні книги. Її сайт поєднує портфоліо, блог, кілька десятків сторінок із пропозиціями та магазин WooCommerce, куди замовлення надходять щодня.

Сайт працював на преміум-темі Solene. До неї додавалися Elementor, Qi Addons, Slider Revolution і ще з десяток плагінів, встановлених за роки. Виглядало все гарно, але під капотом:

  • головна сторінка завантажувалася приблизно 8,5 секунди;
  • PageSpeed показував 54 бали на мобільних і 68 на десктопі;
  • тему та її плагін «core» перестали розвивати.

Я поставив собі дві умови. Магазин ані на хвилину не припиняє роботу і жодне замовлення не губиться. Це одразу відкинуло найпростіший шлях: зробити все на копії й перезаписати нею робочий сайт.

Чому не «перенести копію й перезаписати»

Зазвичай переробку роблять на стейджингу, а потім заливають усе цілком через Duplicator або плагін для стейджингу. Тут база на робочому сайті весь час змінювалася: замовлення, клієнти, складські залишки. Перезаписати її копією кількаденної давності означало б втратити дані.

Тому стейджинг слугував мені лише еталоном вигляду, тобто копією старого сайту, з якою я порівнював результат. Усі зміни я вносив на живому сайті, елемент за елементом:

  • налаштування теми;
  • вміст сторінок;
  • віджети;
  • CSS.

Нічого не перезаписував гуртом.

Новий фундамент: Blocksy і Gutenberg

Я обрав Blocksy з дочірньою темою і нативні блоки Gutenberg. Вони легкі, добре працюють із WooCommerce, і немає ризику, що через рік тема зникне з ринку, як Solene.

Відтворення вигляду 1:1

Клієнтка не хотіла нового дизайну. Вона хотіла, щоб сайт виглядав так само, тільки працював краще. Спочатку я виписав зі старого сайту всі «токени» вигляду:

  • шрифти й розміри заголовків H1–H6 разом із міжлітерними інтервалами;
  • кольори, зокрема три відтінки бежевого, які на перший погляд нічим не відрізняються;
  • висоту шапки сайту та закріпленої шапки;
  • стиль меню та підменю;
  • смугу із заголовком підсторінок;
  • компонування футера з печаткою зі слоганом бренду, що обертається.

Усе це я відтворив у Customizer Blocksy та в додатковому CSS.

Портфоліо без втрати даних

Проєкти портфоліо зберігалися як тип запису з плагіна Solene Core. Замість міграції даних я зареєстрував у дочірній темі той самий тип запису й ті самі таксономії під тими самими назвами. Після вимкнення старого плагіна всі проєкти, категорії та старі посилання працювали далі — без зміни жодного запису в базі. Я також додав архів портфоліо та запасну мініатюру: проєкт без зображення запису бере перше фото з галереї.

Конвертер Elementor → Gutenberg

Найбільше роботи було з підсторінками, зібраними в Elementor: пропозиціями, прайсом, «Про мене», воркшопами, ваучером і освітніми сторінками. Ручне переписування кожної з них зайняло б дні, а результат однаково відрізнявся б від оригіналу.

Тож я написав власний конвертер. Він зчитує відрендерену сторінку в браузері, тобто реальні розміри, відступи, фони та шрифти, а не сирі дані Elementor. На цій основі він будує коректні блоки Gutenberg з окремою таблицею стилів для кожної сторінки. Серед іншого він обробляє:

  • колонки з відступами у відсотках;
  • абсолютно позиціоновані елементи, наприклад бежеві фони, «підкладені» під фото;
  • іконки соцмереж;
  • FAQ;
  • карти Google;
  • слайд-шоу з фото у фоні секцій;
  • кнопки.

Кожна конвертована сторінка відкривається в редакторі без жодної помилки блоку, тож клієнтка може й далі редагувати її сама.

Slider Revolution на головній сторінці я замінив власним легким слайдером. У ньому 6 слайдів, анімовані написи та фото, які довантажуються лише перед показом.

Мобільна версія

Сторінки з Elementor часто «розлазяться» на телефоні. Я перевірив кожну підсторінку на ширині 390 px і виправив:

  • фото, що накладаються одне на одне;
  • надто тісні рамки з фоном;
  • заголовки, що переносяться посеред слова;
  • порожні смуги, що лишилися після старих елементів.

Наостанок я написав скрипт, який автоматично пройшов усі 91 опубліковану сторінку в десктопній і мобільній версіях. Він шукав текст, притиснутий до країв блоків із фоном, і горизонтальну прокрутку. Серед іншого він виловив контактну рамку без внутрішнього відступу, яка повторювалася на 66 сторінках під різні локації. Я виправив її одним правилом CSS для всіх одразу.

Продуктивність

  • Кеш: LiteSpeed Cache був увімкнений, але сервер працює на Apache, тож нічого не кешувалося. Після переходу на WP Super Cache час відповіді сервера скоротився з ~1,2 с до ~0,1 с.
  • Зображення: конвертація бібліотеки (майже 99 тис. файлів) у WebP зменшила їхню вагу в середньому приблизно на 42%.
  • Код: сайт більше не завантажує ні Elementor, ні Qi Addons, ні Slider Revolution.

Мобільний результат PageSpeed зріс з 54 до 61. Це ще не той результат, на якому я хочу зупинитися, тож оптимізація мобільної версії — наступний етап.

Результат

  • Вигляд такий самий, як на старому сайті, але на сучасній темі, яку підтримують.
  • Пауліна редагує всі підсторінки у звичайному редакторі WordPress, без конструктора сторінок.
  • Нуль перерв у роботі магазину й нуль втрачених замовлень за весь час робіт.

Результат наживо: paulinaniewiadomskaphotography.pl. Дякую Пауліні за дозвіл описати цей проєкт під її ім’ям.


Ваш сайт на WordPress працює повільно або стоїть на покинутій темі й конструкторі сторінок, який уже ніхто не розвиває? Напишіть мені — і подивимося, що з цим можна зробити.

Читайте також: WordPress не надсилає листи з форми — чому зелене повідомлення «надіслано» не означає, що заявка хоч комусь дійшла.