Технический аудит и план доработки интернет-магазина homeharvest.ru
Задача
Разобраться, почему магазин с тремя тысячами товаров теряет поисковый трафик, и определить, что делать: точечно чинить существующий сайт или переписывать его заново. Задачу осложняло то, что владелец уже держал на столе несколько противоречивых предложений — от сжатия картинок до полной замены витрины на современный фреймворк.
Заказчик
HomeHarvest — интернет-магазин оборудования для выращивания растений: светодиодное освещение, гидропонные системы, субстраты, удобрения, вентиляция, приборы контроля pH и EC. В каталоге более трёх тысяч товаров и почти шестьсот разделов. Сайт работает на 1С-Битрикс.

Что сделали
Обычно аудит сайта заканчивается списком рекомендаций. Мы пошли дальше: получили доступ к серверу и базе данных и проверили каждое утверждение фактами — прочитали исходники шаблона, посмотрели настройки платформы, сверили карту сайта с реальным каталогом. Не выборочно, а целиком: все 4109 адресов.
Результат оказался неожиданным для всех участников.
Детектив с пропавшим каталогом
Первое, что мы проверили, — видит ли поисковая система товары. Выяснилось, что в значительной части не видит.

- Карта сайта вела в никуда. Файл не обновлялся полтора года, и 1200 адресов из 4109 отдавали ошибку 404. Магазин сам сообщал поисковику о тысяче двухстах несуществующих страниц.
- 318 живых товаров в карту не попали вовсе. Их не было ни в карте, ни в доступных роботу ссылках.
- Причина оказалась банальной. Сбой генератора: более пятисот адресов разделов записывались без завершающего слеша и поэтому не открывались. Половина проблемы решалась не тысячей редиректов, а одной настройкой.
А дальше выяснилось, что и обходного пути у поисковика нет.

Запрет на адреса страниц пагинации в robots.txt вместе с подгрузкой товаров через JavaScript означал одно: робот видит первую страницу раздела, а дальше каталог для него заканчивается.
Поиск, который не находит
Покупатель, который ищет конкретную модель, — самый готовый к покупке. Мы проверили поиск по точному названию.

Товар находился, но порядок результатов работал против магазина: основная модель в выпадающем списке оказывалась ниже уценки и ниже другого типа товара, в описании которого упоминалась та же модель.
Все товары в наличии. Все три тысячи
Затем мы открыли шаблон карточки товара и увидели, что данные для поисковых систем записаны прямо в коде константами.

Поисковику сообщалось, что у всех товаров один и тот же артикул производителя, все они в наличии, все бывшие в употреблении, а цена действительна до конца 2023 года. Фактически в наличии была примерно треть каталога.

Для поисковых систем это прямой сигнал, что данным магазина доверять нельзя. Исправление — несколько часов работы с одним файлом. Но пока ошибка жила в шаблоне, она тиражировалась на все три тысячи карточек.
Фильтр, в котором нечего фильтровать
В магазине оборудования покупатель выбирает по мощности, площади освещения, диаметру, объёму. Сайт предлагал фильтровать только по цене.

Причина нашлась в базе данных. Свойств у каталога оказалось 1025, но 929 из них — свободные текстовые строки, а у 833 не было даже символьного кода. Для фильтра 200 Вт, 200вт и 200 w — три разных значения.
Вывод неприятный, но важный: включить фильтр за пару часов нельзя. Сначала свойства нужно привести в порядок и только потом строить на них посадочные страницы под запросы вида светодиодный светильник 200 вт купить.
Телефон: половину экрана занимает баннер

Высота баннера задана так, что на экране обычного смартфона он занимает около 491 пикселя — больше половины первого экрана. Строка поиска по умолчанию скрыта, базовый текст набран двенадцатым кеглем, а увеличивать страницу пальцами запрещено настройкой.
Главный вывод: переписывать сайт не нужно
К этому моменту на столе лежало предложение перевести магазин на отдельную витрину — с обещанием, что сайт станет в разы быстрее и поднимется в выдаче.
Мы измерили скорость по частям. Сервер отдавал готовую страницу за 0,5—0,9 секунды: серверная часть работала нормально. Вся задержка возникала уже в браузере.

- На главную загружалось 72 изображения общим весом 14,1 МБ, в подборках выводились оригиналы до 4422 × 2948 пикселей.
- На сервере хранилось 5 ГБ неоптимизированных оригиналов.
- Тринадцать файлов стилей блокировали отрисовку, объединение и минификация были отключены.
- Кэширование не было настроено вообще, хотя лицензия магазина это позволяет.
- Защита форм загружалась на каждой странице сайта, а не при заполнении формы.
Ни одна из этих причин не связана с технологией, на которой построен сайт. Все они устраняются в текущем шаблоне.

Мы рекомендовали сайт не переписывать.
Решение
Вместо общих рекомендаций заказчик получил план работ из конкретных задач с часами, выстроенный по приоритету.
- Сначала деньги, а не трафик. Проверка и восстановление поиска товаров, оформления заказа и выбора города. Пока покупатель не может завершить заказ, любой привлечённый трафик не окупается.
- Затем видимость. Открытие пагинации, перенастройка карты сайта, обработка удалённых адресов, склейка зеркал, canonical, исправление шаблонов мета-тегов. Самая дешёвая часть плана и самая результативная для поиска.
- Потом данные о товарах. Замена констант в разметке на реальные наличие, цену и состояние.
- Скорость. Миниатюры вместо оригиналов, современные форматы изображений, кэширование, оптимизация стилей и скриптов.
- Удобство. Мобильная версия, нормализация свойств и запуск полноценного фильтра, релевантность поиска по сайту: порядок результатов должен быть правильным и в выпадающем списке, и в карточках товаров на странице результатов, особенно на мобильном.
- Фундамент. Тестовый стенд, обновление версий PHP и MySQL до поддерживаемых платформой, заголовки безопасности.
Результаты
- Точная картина вместо предположений. Все выводы подтверждены данными сервера и базы: не карта сайта устарела, а 1200 конкретных битых адресов с разбором причин по каждой категории.
- План на 193 часа вместо 550—820. Заказчик получил детальную смету работ по текущему сайту — втрое дешевле переписывания витрины и без риска потерять позиции на переезде.
- Отказ от лишних трат. Из предложений, которые рассматривал владелец, отсеяно то, что не даёт эффекта или создаёт риск санкций поисковых систем.
- Понятный порядок действий. Работы выстроены так, что каждый следующий этап опирается на результат предыдущего, а эффект можно измерить.
Заключение
Сайту на 1С-Битрикс редко нужна замена платформы. Гораздо чаще ему нужен человек, который откроет исходники, сверит карту сайта с базой и посчитает, сколько страниц поисковик на самом деле может увидеть.
В случае HomeHarvest именно это и решило вопрос: вместо дорогой переделки — точный список задач, который возвращает магазину видимость в поиске и работающую покупку.
такие работы