Клиент и контекст проекта
Заказчик — владелец интернет-магазина на 1С-Битрикс с каталогом товаров. Сайт работал несколько лет, приносил заявки и являлся основным каналом продаж. На момент обращения клиент обратился с экстренной задачей: сайт полностью потерян, нужно восстановить в минимально сжатые сроки. Все работы по восстановлению — от развёртывания нового Битрикса до написания парсеров и верстки шаблона — я выполнил лично за 2 недели. Обезличивание: домен сайта, название компании-заказчика, название хостинг-провайдера и контактные данные в публичной версии кейса не приводятся. Я базируюсь в Москве и работаю с заказчиками из любого региона РФ, СНГ и за рубежом — в данном случае все работы были выполнены удалённо.
Проблема
Катастрофа развернулась в результате атаки на хостинг-провайдера клиента. Хостинг лишился всех бэкапов, а также текущих аккаунтов и файлов на них, включая базы данных всех клиентов. Это один из худших сценариев для любого онлайн-бизнеса: данные потеряны не у клиента, а у самого хостинг-провайдера, и традиционные пути восстановления через техподдержку хостинга не работают.
У клиента не было собственной резервной копии
Ситуация осложнялась тем, что у клиента не было собственной резервной копии сайта. Это критическая ошибка, которая часто встречается у малого и среднего бизнеса: владелец полагается на бэкапы хостинга и не хранит отдельную копию. Когда хостинг теряет все данные — теряется всё. Хостинг по понятным причинам не мог предоставить ни текущих данных, ни резервной копии: их просто не существовало.
Единственный источник данных — веб-архив
Единственное место, где осталась хоть какая-то информация о сайте — это веб-архив archive.org. Это публичный сервис, который периодически сохраняет снимки веб-страниц. У сайта клиента в веб-архиве оказались сохранённые версии страниц за разные периоды — это и стало отправной точкой для восстановления. Из веб-архива можно было получить: структуру страниц, текстовый контент, изображения, а также статичные HTML-файлы каталога с информацией о товарах.
Что нужно было восстановить
Клиент просил в минимально сжатые сроки:
- Развернуть сайт на 1С-Битрикс с нуля.
- Воссоздать всю структуру сайта — все страницы, которые ранее существовали.
- Воссоздать весь товар, размещённый в каталоге, — с фотографиями, описаниями, характеристиками.
- Воссоздать верстку шаблона (шапка, подвал, разделы).
- Загрузить весь контент, который был на сайте.
- По завершении — сделать резервную копию и передать заказчику, чтобы подобная катастрофа больше не повторилась.
Решение
Все работы я выполнил лично за 2 недели. Подход — комплексный: параллельно велись работы по развёртыванию Битрикса, написанию парсеров, верстке шаблона и восстановлению контента. Ключевой инструмент — два собственных парсера, которые позволили автоматизировать извлечение данных из веб-архива и статичных файлов каталога. Без парсеров ручное восстановление заняло бы месяцы.
Полная последовательность работ
Ниже — все этапы работы, от развёртывания Битрикса до передачи резервной копии заказчику:
| Этап работы | Описание |
| 1. Развёртывание 1С-Битрикса | С нуля установлен и настроен 1С-Битрикс на новом хостинге, подготовлена базовая структура для восстановления контента. |
| 2. Парсер веб-архива (archive.org) | Написан собственный парсер для выгрузки страниц сайта из веб-архива. Это позволило получить сохранённые версии страниц, структуру, тексты и изображения. |
| 3. Парсер статичных файлов каталога | Написан второй парсер для обхода выгруженных статичных файлов каталога. Извлечены данные товаров (название, описание, характеристики, цена) и фотографии. Сформирован файл для импорта в базу данных Битрикса. |
| 4. Импорт товаров в Битрикс | Данные товаров, извлечённые парсером, импортированы в инфоблоки Битрикса. Фотографии привязаны к соответствующим товарам. |
| 5. Верстка шаблона с нуля | Шаблон шапки, подвала и других разделов утерянного сайта сделан с нуля по сохранившимся в веб-архиве визуальным материалам. Воссоздан оригинальный дизайн сайта. |
| 6. Создание всех страниц | Созданы все страницы, которые ранее существовали на сайте. Контент загружен из выгрузки веб-архива. |
| 7. Резервная копия и передача | После завершения работ создана резервная копия восстановленного сайта и передана заказчику. Теперь у клиента есть и рабочий сайт, и собственная резервная копия. |
Парсер №1. Выгрузка данных из веб-архива
Первый парсер был написан для выгрузки страниц сайта из веб-архива archive.org. Он автоматически обходил все сохранённые в архиве URL, скачивал HTML-страницы, изображения и другие ресурсы. Это дало исходный материал для дальнейшей работы: структуру сайта, текстовый контент страниц, визуальное оформление для последующей верстки шаблона.
- Парсер использует API веб-архива для получения списка сохранённых снимков по каждому URL.
- Скачиваются все доступные версии страниц — выбирается наиболее актуальная с актуальным контентом.
- Скачиваются все изображения, привязанные к страницам.
- Результат — полный локальный архив структуры сайта, готовый к обработке вторым парсером.
Парсер №2. Извлечение данных товаров из статичных файлов каталога
Второй парсер был написан для обхода выгруженных статичных файлов каталога. Его задача — извлечь из HTML-страниц карточек товаров структурированные данные и сформировать файл для импорта в базу данных Битрикса. Это позволило автоматизировать процесс восстановления каталога: вместо ручного переноса десятков и сотен товаров парсер сделал это за минуты.
- Парсер обходит все выгруженные статичные файлы каталога.
- Из каждой карточки товара извлекаются: название, описание, характеристики, цена, фотографии.
- Фотографии скачиваются локально и подготавливаются для импорта в Битрикс.
- Из извлечённых данных формируется файл импорта в формате, совместимом с Битриксом (CSV/XML).
- Файл импорта загружается в Битрикс через стандартный механизм импорта каталога — все товары появляются в инфоблоке с привязанными изображениями.
Верстка шаблона с нуля
Поскольку исходный шаблон был утерян вместе с файлами сайта, верстку пришлось делать с нуля. В качестве образца использовались снимки веб-архива — по ним я воссоздал визуальное оформление оригинального сайта:
- Сделана верстка шапки сайта с навигацией и контактами.
- Сделана верстка подвала с юридической информацией и дополнительными ссылками.
- Сделана верстка разделов — главная страница, страницы каталога, карточки товаров, информационные страницы.
- Шаблон интегрирован с 1С-Битриксом — корректно работает с инфоблоками, компонентами каталога, поиском.
Создание страниц и загрузка контента
- Созданы все страницы, которые ранее существовали на сайте — по данным из выгрузки веб-архива.
- Контент страниц загружен из выгруженных HTML-файлов, с минимальной ручной обработкой.
- Проверена корректность внутренней перелинковки — все ссылки между страницами работают.
- Настроены человекопонятные URL (ЧПУ) — важно для сохранения SEO-позиций после восстановления.
Резервная копия и передача заказчику
- После завершения всех работ создана полная резервная копия восстановленного сайта: файлы + база данных.
- Резервная копия передана заказчику — теперь у клиента есть собственная копия, независимая от хостинга.
- Дополнительно настроено автоматическое резервное копирование по расписанию, чтобы подобная катастрофа больше не повторилась.
Результаты
Все работы выполнены за 2 недели. Сайт на 1С-Битрикс полностью восстановлен из веб-архива: развёрнут с нуля, наполнен всеми товарами каталога, свёрстан оригинальный шаблон, созданы все страницы, загружен весь контент. Заказчик получил не только рабочий сайт, но и резервную копию — теперь он не зависит от единственного хостинга.
| Показатель | Результат |
| Срок восстановления | 2 недели |
| Платформа восстановленного сайта | 1С-Битрикс |
| Что было потеряно | все файлы, база данных, бэкапы — на хостинге и у клиента |
| Источник данных для восстановления | веб-архив archive.org |
| Парсеров разработано | 2 |
| Парсер №1 | выгрузка страниц из веб-архива |
| Парсер №2 | обход статичных файлов каталога, извлечение данных и фото товаров |
| Шаблон | сделан с нуля: шапка, подвал, разделы |
| Передача заказчику | развёрнутый сайт + резервная копия |
Дополнительно клиент получил: понимание критической важности собственных резервных копий — теперь у него есть и ручная копия, и настроенное автоматическое резервное копирование по расписанию; два собственных парсера, которые в будущем можно использовать для любых задач по выгрузке данных из веб-архива; рекомендации по настройке мониторинга доступности сайта, чтобы при будущих инцидентах сразу получать уведомления.
Отступление: критическая важность собственных бэкапов
Хочу сделать важное отступление — потому что этот кейс иллюстрирует системную проблему. Многие владельцы сайтов полагаются на бэкапы хостинг-провайдера и не делают собственные резервные копии. Это бомба замедленного действия. Хостинг-провайдер может:
- Стать жертвой атаки, как в этом кейсе — потерять все данные всех клиентов.
- Закрыться или прекратить работу без предупреждения.
- Заблокировать аккаунт по ошибке или из-за недопонимания.
- Потерять данные из-за технического сбоя оборудования.
В любом из этих сценариев сайт будет потерян без возможности восстановления — если у вас нет собственной резервной копии. Поэтому:
- Делайте резервные копии сайта сами, не полагайтесь только на хостинг.
- Храните резервные копии в независимом месте — например, в облачном хранилище или на отдельном сервере.
- Периодически проверяйте восстанавливаемость резервных копий — копия, которую нельзя восстановить, бесполезна.
- Если у вас уже нет бэкапа и сайт потерян — обращайтесь. В ряде случаев, как в этом кейсе, удаётся восстановить сайт из веб-архива.
Технологический стек
1С-Битрикс PHP MySQL Веб-архив archive.org Кастомные парсеры (PHP) Парсинг HTML (DOM) Импорт каталога (CSV/XML) Bitrix API (инфоблоки) Верстка шаблона с нуля Автоматическое резервное копирование

