Telegram
Назад к базе знанийКейсы внедрения

Ускорение с 14 до 4 секунд: как я вычистил сайт стоматологии от скрытых угроз и спас SEO-трафик.

Стоматология на WordPress 6.2: 51 плагин, бэкдор в коде и открытая база пациентов. Я не стал продавать клинике разработку нового сайта с нуля — вычистил стек, закрыл уязвимости и пересобрал интерфейс. Скорость загрузки первого экрана выросла в 3 раза, а весь контент и накопленные позиции в поиске остались на месте.

6 мин23 октября 2026 г.
Обложка кейса: WordPress-рефакторинг сайта клиники, LCP 14 → 4,2 секунды

Паспорт проекта

  • Проект: сайт стоматологической клиники (128 страниц, блог, 8 посадочных).

  • Стек после работы: WordPress 7.1, PHP 8.3, 5 плагинов и 11 изолированных микро-модулей.

  • Роль: технический директор (аудит, рефакторинг, безопасность, деплой).

  • Длительность: 8 недель.

Проблема: сайт, который копили, а не проектировали

Сайт клиники жил девять лет. Его собирали разные подрядчики, и каждый добавлял свой плагин под свою задачу: галерею, слайдер, формы, чат. Плагины никто не удалял — их просто выключали «на всякий случай». В итоге на сервере мёртвым грузом лежал 51 плагин.

Аудит показал картину, типичную для тяжёлого IT-наследия:

  • Огромная база данных с десятками таблиц от давно удалённых модулей.

  • Медиатека на 661 МБ с несжатыми фотографиями врачей по 15 МБ.

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

  • Первый экран на мобильном телефоне появлялся через 14 секунд из-за конфликтующих скриптов.

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

Точка невозврата: скрытая угроза бизнесу

На второй день аудита стало понятно, что медленная загрузка — это меньшая из проблем. В коде активной темы был найден чужой скрипт (бэкдор).

  • Вход без пароля. Скрипт позволял любому, кто знает специальную ссылку, зайти в админку с правами владельца без ввода пароля.

  • Утечка базы. Полный дамп базы данных пациентов лежал в корне сайта и скачивался по прямой ссылке. Никакой защиты.

  • Открытые ключи. Токен интеграции с CRM лежал в коде открытым текстом.

Для медицинской клиники это не просто технический баг — это прямая угроза бизнесу, нарушение 152-ФЗ и риск колоссальных репутационных потерь.

Решение: чинить, а не переписывать

Очевидный ответ большинства студий на такой аудит — «нужно всё сносить и делать новый сайт». Я предложил обратное.

  • Контент. Девять лет статей, описаний сложного лечения и профилей врачей. Перенос текстов — это потеря смыслов и месяцы работы редактора.

  • SEO-позиции. Сайт высоко ранжировался в поиске. Переезд на новый движок обрушил бы трафик минимум на квартал.

  • Арифметика. Глубокий рефакторинг стоит кратно дешевле сборки нового портала.

Задача звучала так: сохранить всё, что даёт трафик, и безжалостно вырезать всё, что создаёт уязвимости.

Процесс: хирургическое вмешательство

Я не трогал живой сайт. Первым шагом я развернул полную копию проекта на изолированном локальном сервере. Ни одна правка не выходила на «прод» без проверки и резервной копии.

1. Архитектурная чистка: 51 плагин → 5

Я удалил 46 конфликтующих плагинов. Опасность в том, что «неактивный» плагин часто оставляет после себя невидимые связи в базе данных, без которых сайт рассыпается.

Чтобы сохранить логику, я переписал нужные функции (вывод телефонов, меню, акции) в 11 компактных микро-модулей. Они работают на уровне ядра: не конфликтуют, не тормозят систему, и их невозможно случайно отключить из админки.

2. Умная работа с медиа (вес страницы: 7,9 МБ → 0,6 МБ)

Вместо хаотичной загрузки картинок я внедрил строгую приоритизацию. Главный баннер получает команду грузиться мгновенно, а всё, что находится ниже линии скролла, ждёт своей очереди. Специальный скрипт автоматически пережал 343 тяжёлые фотографии в современный формат WebP. Итог: вес критических медиафайлов снизился на 87%.

3. Единый движок врачей

Раньше профили врачей вставлялись на страницы услуг вручную, разными кусками кода. Это рождало хаос: уволившиеся сотрудники оставались на сайте, а стили разъезжались.

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

4. Отсечение мёртвого трафика

На сайте исторически работал модуль интернет-магазина (WooCommerce), который тянул 16% поискового трафика на страницы ирригаторов и зубной пасты, но давал ноль заявок на лечение. Он замедлял систему и создавал дыры в безопасности. Мы осознанно ампутировали магазин. Клиника платит за реальных пациентов, а не за случайные клики в Google.

5. Надёжность заявок

Формы на сайте отправляли лиды с ошибками или двоили их. Я вынес ключи от CRM в защищённый конфиг сервера, настроил строгую проверку сертификатов и добавил технический след (IP, время согласия с политикой обработки данных) прямо в письмо с заявкой.

Скриншот
Список из 51 плагина «до» и каталог из 11 аккуратных микро-модулей «после».

Урок: цена правок на живом сервере

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

Я восстановил систему из бэкапа за две минуты, но вывод оказался дороже самого инцидента: скорость, которую разработчик экономит на отсутствии тестового стенда, всегда оплачивается минутами простоя бизнеса. После этого — только строгий деплой через Git.

Результат в цифрах

Замеры независимого инструмента Lighthouse на одной и той же странице (мобильное устройство, медленная сеть) «до и после»:

  • Появление первого экрана (LCP): 14,0 с → 4,2 с, ускорение на 70%.

  • Ответ сервера (TTFB): 2,7 с → 0,07 с, ускорение на 97%.

  • Вес страницы: 7,92 МБ → 0,61 МБ.

  • Количество запросов: 221 → 51.

  • Безопасность: бэкдоры устранены, база данных закрыта от публичного доступа.

Скриншот
Два профиля производительности Lighthouse рядом: красный график на 14 с и зелёный на 4,2 с.

Чего я не делал (осознанные компромиссы)

Я не показываю иллюзию идеального продукта. В проекте остался технический долг, согласованный с владельцем:

  • Не отключён тяжёлый скрипт аналитики. Он съедает часть производительности, но без него клиника теряет управление рекламой. Бизнес-контроль оказался важнее синтетических метрик скорости.

  • Не внедрена онлайн-запись. Полноценная интеграция расписания врачей с медицинской информационной системой (МИС) — это отдельный сложный проект, который не входил в рамки базового спасения архитектуры.

Кому это подходит

  • Медицинским клиникам, салонам и локальному бизнесу, чей сайт за 5–10 лет оброс десятками ненужных плагинов.

  • Тем, кто получает заявки, но боится трогать сайт, потому что любая смена текста может обрушить верстку.

  • Владельцам, которым нужно ускорить портал и закрыть уязвимости, но категорически нельзя терять накопленные SEO-позиции.

Рефакторинг — это не про «переписать всё красиво для программистов». Это процесс превращения непредсказуемого чёрного ящика в стабильный бизнес-актив. Заявка доходит, страница открывается мгновенно, а добавление врача не требует вызова инженера.

Если ваш сайт грузится дольше трёх секунд, а список плагинов не помещается на один экран — начните с технического аудита. Два дня, 10 000 ₽. Сумма вычитается из стоимости последующих работ.