Сделал бесплатный техSEO-аудит novostroy96.ru и закрыл согласованный пакет Issue: единый https без www, пагинация и canonical, живой sitemap вместо старых XML, robots без лишних Disallow, OG, lazy и сжатие баннеров, иерархия h1. Отдельно доработал модуль Яндекс.Турбо (отбор по EAN) и вывод единицы измерения рядом с ценой, плюс ссылки Telegram в шапке и футере.
Задача
У интернет-магазина стройматериалов Новострой в Екатеринбурге на OpenCart 2 накопились технические SEO-проблемы: www уходил через http, дубли URL и пагинации, битые и устаревшие sitemap, лишние Disallow в robots, слабая иерархия заголовков и тяжёлые баннеры. Параллельно нужны были доработки витрины: фильтр товаров в выгрузке Яндекс.Турбо и понятная единица рядом с ценой.
Решение
Бесплатный технический SEO-аудит live + код по чеклисту, Word-отчёт со списком Issue и ценами
Один 301: www и http сразу на https://novostroy96.ru, нормализация двойного слэша и слеша ЧПУ
Пагинация: канон и title без дублей page=1 и последующих страниц
robots.txt: открыли акции и /catalog/view/, убрали грубый Disallow /*?
Sitemap: отключили старые sitemap1-15, редирект на живой фид Яндекса
noindex служебных, canonical info-страниц, OG, schema телефона и типа магазина, favicon, noopener
h1 на главной, убрали лишние h3 в модулях каруселей
Lazy, alt, сжатие баннеров и WebP слайдера
Яндекс.Турбо: отбор товаров по EAN = да
Карточка товара: единица из UPC рядом с ценой
Ссылки Telegram (и мессенджеры) в шапке, футере и контактах
Новострой в Екатеринбурге
novostroy96.ru — интернет-магазин строительных и отделочных материалов на OpenCart 2 и теме emarket. Большой каталог, акции, доставка по городу. Задача: сначала честный техSEO-аудит, потом внедрение без переписывания половины сайта.
Каталог после канонизации
Убрал цепочку www через http на https, выровнял ЧПУ и пагинацию, навёл canonical. Категории вроде изоляционных материалов открываются с одним понятным URL, без дублей со слешем и index.php-мусором в индексе.
Карточка и единица у цены
В карточке товара вывел единицу измерения из поля UPC рядом с ценой (например /уп), без лишней подписи. Параллельно модуль Яндекс.Турбо научил выгружать только позиции с EAN = да — клиент сам помечает, что уходит в фид.
Акции снова в индексе
В robots раздел /specials/ был в Disallow при живом пункте меню. Убрал запрет, оставил защиту служебных путей. Страница акций снова доступна поисковику наравне с витриной.
Контакты и мессенджеры
На контактах схема проезда и форма связи. В шапке и футере добавлены рабочие ссылки Telegram рядом с привычными каналами связи — клиент просил Max и Telegram с тем же номером, что был в WhatsApp.
Единый https-адрес и актуальный sitemap вместо XML 2022
Акции индексируются, служебные URL закрыты
Фид Турбо фильтруется по EAN, единица видна у цены
Клиенту отдан Word-отчёт: пункт аудита и что сделано
db812.ru - качество фото на ocStore
Интернет-магазин стоматологических материалов Dental Base на ocStore 3.0.3.7 (тема CyberStore). Фото после «оптимизации» мылились: виноват был не модуль сжатия, а штатный GD-ресайз в image/cache и слишком мелкие размеры в теме. Слайдер MegaSlider Pro отдает оригинал, для товаров — аккуратный ресайз с лёгкой резкостью и увеличенные размеры в настройках темы.
Задача
На db812.ru изображения после оптимизации выглядели недостаточно чётко: баннеры MegaSlider и фото в карточках товаров «мылились» сильнее исходников. Нужно было найти причину в настройках/модулях ocStore 3.0.3.7, подобрать параметры без заметной потери детализации и дать инструкцию, как дальше загружать фото.
Решение
Разбор админки и кода: отдельного модуля TinyPNG/WebP-сжатия нет, «уровень сжатия» в настройках — это GZIP HTML, не JPEG
Диагностика: JPEG quality уже 100, мыло даёт GD-ресайз в image/cache (баннер 3840×928 → 1920×464) и мелкие размеры темы (товар 400, popup 700)
MegaSlider Pro: отдача оригинала баннера без прогона через model_tool_image->resize
system/library/image.php: лёгкий unsharp после уменьшения для товарных превью, WebP с тем же quality
Увеличение размеров изображений в теме CyberStore (товар 800, popup 1400, список 500, похожие 400) и очистка image/cache
Инструкция клиенту: как грузить баннеры в MSPRO desktop/mobile и исходники товаров 1200–1600 px
Магазин Dental Base
db812.ru — интернет-магазин стоматологических материалов на ocStore 3.0.3.7 и теме CyberStore. Главная крутит акции через MegaSlider Pro, каталог полный фотографий титановых оснований и комплектующих — любое «мыло» на баннере и в карточке сразу бросается в глаза.
Причина была не в «сжатии»
Отдельного модуля автосжатия фото не оказалось. JPEG quality на сервере уже 100. Баннер мылился из-за даунскейла GD в image/cache: оригинал 3840×928 резался до 1920×464. В карточках тему добивали мелкие размеры — большое фото 400×400 и popup 700×700 растягивались CSS и выглядели хуже исходника.
Слайдер и карточки после правок
В MegaSlider Pro убрал ресайз — на витрину уходит оригинал из catalog, браузер масштабирует чётче GD. Для товаров оставил штатный ресайз, но с лёгким unsharp и увеличенными размерами в CyberStore: товар 800, popup 1400, список 500. Карточка снова читается резко, без лишнего зума «в кашу».
Результат
Баннеры слайдера без GD-мыла, как загруженный оригинал
Фото в карточке и каталоге заметно чётче за счёт размеров темы
Есть понятная схема дальнейшей загрузки баннеров и товаров
Arbiz - продажа серверного оборудования
Собрал интернет-магазин Arbiz на OpenCart для продажи серверного оборудования в Кыргызстане: парсинг каталога зарубежного поставщика, категории, фильтры, карточки с атрибутами и checkout.
Задача
Нужен был интернет-магазин серверного оборудования для рынка Кыргызстана: большой каталог с техническими характеристиками, удобный поиск по категориям и атрибутам, оформление заказа. Ассортимент брался из базы зарубежного поставщика — вручную заводить тысячи позиций было нереально.
Решение
Установка OpenCart и подключение дополнительных модулей
Парсинг базы оборудования зарубежного поставщика и заливка товаров с артикулами и атрибутами
Настройка категорий: SSD, SAS/SATA, память, контроллеры, блоки питания и др.
Фильтры и листинг с характеристиками (ёмкость, форм-фактор, condition и т.д.)
Карточка товара с галереей, ценой, наличием и таблицей атрибутов
Checkout для Кыргызстана: гостевой заказ и быстрый заказ через менеджера
Главная и навигация по каталогу
Собрал витрину с поиском, меню категорий и промо-блоками (SSD, процессоры и др.). Покупатель сразу попадает в нужный раздел серверного железа.
Каталог по типам оборудования
Категории SSD, SAS/SATA, Fibre, память, контроллеры — с тегами брендов (Dell, IBM, EMC и др.). Структура отражает каталог поставщика после парсинга.
Листинг с атрибутами
В списке товаров — артикул, наличие, цена и блок характеристик (ёмкость, форм-фактор, category, condition). Удобно сравнивать позиции без захода в каждую карточку.
Карточка товара
Галерея, цена, наличие, бренд и таблица атрибутов. Кнопки «в корзину» и быстрый заказ — сценарий B2B/технических закупок.
Оформление заказа
Checkout с страной Kyrgyzstan, гостевым заказом и быстрым заказом: менеджер перезванивает и дооформляет покупку.
Результат
Каталог серверного оборудования из базы поставщика
Фильтры и карточки с техническими атрибутами
Checkout и быстрый заказ для клиентов из Кыргызстана
mskstroy.com - стройматериалы на OpenCart
Для поставщика стройматериалов и звукоизоляции сделал магазин mskstroy.com под ключ на OpenCart. Поднял CMS и тему, разложил дерево категорий (тепло/шумоизоляция, Ruspanel, отделка, сад), загрузил ассортимент с артикулами и остатками, настроил витрину: хиты, новинки, поиск, корзину, доставку и контакты.
Задача
Нужен полноценный интернет-магазин стройматериалов и звукоизоляции с нуля на OpenCart: не лендинг, а каталог с глубокой иерархией (изоляция, стройматериалы, отделка, сад), загрузка ассортимента с кодами товаров и наличием, нормальная карточка, поиск, корзина и сервисные страницы под продажи.
Решение
Установка OpenCart, тема, базовые модули и адаптив
Дерево категорий: изоляционные материалы (тепло/шум/гидро), стройматериалы, отделка, сад и огород + вложенные линейки (Ruspanel, акустика и т.д.)
Загрузка товаров: названия, коды, цены, остатки «на складе / нет в наличии», фото
Главная: баннеры, сетка каталога, блоки хитов/новинок/популярного
Карточка: цена, код, наличие, купить и быстрый заказ, избранное/сравнение
Поиск по товарам и категориям, корзина, страницы о компании / доставка / контакты / возврат
Главная витрины
МСК СТРОЙ — продажа стройматериалов и звукоизоляции. На главной: поиск, категории, промо TECHNO SONUS / RPG, сетка разделов каталога — сразу уводит в нужную ветку ассортимента.
Каталог и иерархия
Разложил разделы: изоляция (тепло, шум, гидро, плёнки, Ruspanel), стройматериалы, отделка, сад. ЧПУ-URL вроде /izolyatsionnye-materialy/shumoizolyatsiya/ — удобно и для людей, и для SEO.
Загрузка товаров
Ассортимент заведён с кодами (OM-, CC-, артикулы брендов), ценами и статусом склада. На главной — хиты, новинки, популярное: витрина не пустая после запуска.
Карточка SKU
Типичная карточка: фото, хлебные крошки по дереву категорий, код товара, наличие, цена, «Купить» и «Быстрый заказ», избранное и сравнение.
Сервис и адаптив
Страницы о компании, доставка и оплата, контакты, возврат. Шапка и каталог читаются на мобилке — магазин готов принимать заказы с телефона.
Результат
OpenCart-магазин стройматериалов с нуля
Каталог с товарами, кодами и наличием
Покупка, поиск и сервисные страницы на месте
novicam.spb.ru - фид Яндекс.Маркет OpenCart
У дилера Novicam в СПб старый модуль фида в админке не отображался. Через FTP поставил Yandex.YML for OpenCart, собрал фид на весь каталог и отдал URL для кабинета Маркета. Через месяц по запросу клиента поправил некорректные остатки и фото в YML — без доплаты.
Задача
OpenCart 3.0.3.2 (trs-3.0.2.0): нужен рабочий плагин выгрузки на Яндекс.Маркет по всем товарам. Старый модуль был в системе, но в админке не отображался. Позже в кабинете Маркета криво показывались остатки и фото — нужна правка фида. Дальше клиент планировал отдельные кворки на Ozon, WB, Сбер.
Решение
Проверил админку: старый модуль фида не виден в интерфейсе
Через FTP установил модуль Yandex.YML for OpenCart (ocStore)
Настроил выгрузку всего каталога, отдал URL фида для кабинета Яндекс.Маркета
По обратной связи поправил остатки (count) и блоки picture в офферах YML
Каталог Novicam на OpenCart
novicam.spb.ru — официальный представитель Novicam в СПб: видеонаблюдение, домофоны, СКУД. Нужна была выгрузка всего ассортимента в Яндекс.Маркет без ручной сборки прайса.
YML-фид модуля
Поставил Yandex.YML for OpenCart, фид открывается по route extension/feed/yandex_yml: shop, категории, offers с ценой, vendor, description и картинками. URL отдал клиенту для кабинета Маркета.
Правка остатков и фото
Через месяц: в Маркете криво остатки и фото. В оффере поправил несколько picture и count (например 48 шт. у MASK FHD BLACK) — фид снова принимается без доплаты.
Карточка в каталоге
Данные для фида берутся из карточек OpenCart: название, цена, наличие, галерея. Дальше по плану клиента — отдельные выгрузки на Ozon, Wildberries и Сбер.
Результат
Фид Яндекс.Маркета подключён и отдаёт каталог
Остатки и изображения в YML исправлены
Модуль готов как база под другие маркетплейсы
phelon.ru - формы и каталог OpenCart
Для каталога аналитического оборудования phelon.ru на ocStore 3 сделал формы лидов в шапке и на карточке товара, навёл иерархию меню и витрину «Каталог оборудования», убрал Jivo и раздражающую авто-ссылку в текстовом редакторе.
Задача
Нужны кнопка и форма «Обратный звонок» в шапке и «Узнать цену» на карточке товара с письмами на email клиента (данные формы, IP, URL). Hover у кнопок. Третий уровень в левом меню, сетка каталога в 3 ряда, отключить Jivo и авто-ссылку по ПКМ в редакторе. Потом — правки по высоте/цветам кнопок и полному выводу подкатегорий в модуле каталога.
Решение
Кнопка «Обратный звонок» в шапке под телефоном, hover-смена цвета, зелёный акцент текста
Модальная форма обратного звонка по ТЗ: поля + IP + страница отправки, письмо на email клиента
На карточке: кнопка «Узнать цену» вместо старого блока, форма с заголовком как на кнопке
Левое меню: третий уровень иерархии с отступами подкатегорий
«Каталог оборудования»: сетка разделов в 3 ряда, показ подкатегорий через UniShop2 «Стена категорий»
Отключил Jivo; в редакторе убрал авто-ссылку по ПКМ — ссылка только при выделении текста
Обратный звонок в шапке
В правом верхнем углу под телефоном — кнопка «Обратный звонок» с hover. Форма по макету из ТЗ: заявка уходит на email клиента вместе с IP и адресом страницы, с которой отправили.
Узнать цену на карточке
Вместо старого информационного блока — кнопка «Узнать цену». Заголовок формы подтягивается из текста кнопки. Письмо менеджеру с полями формы, IP и URL товара.
Меню и каталог 3 уровня
В сайдбаре появился третий уровень (например Термический анализ → дилатометры, DSC…). Страница «Каталог оборудования» — сетка разделов в три колонки с подкатегориями.
Подкатегории в модуле
Если на витрине не все подкатегории — включаются галочками в UniShop2 «Стена категорий / Каталог товаров». Клиенту показал, где ставить галочки для полного списка.
Результат
Лид-формы в шапке и на товаре с письмами на email
Меню и каталог с трехуровневой иерархией
Jivo отключён, редактор без навязчивой вставки ссылок
makmen.ru - блог, клиенты и Telegram
Доработал makmen.ru на OpenCart: переименовал новости в блог (/blog/, title и H1), поменял YouTube на Telegram в футере, добавил блок «больше о проектах в Telegram» на карточку товара и переделал /klienti в слайдер с логотипом, текстом и несколькими фото внутри слайда.
Задача
Нужен раздел блог со ссылками в шапке и футере и понятным добавлением статей (текст, фото, видео). В подвале заменить YouTube на Telegram. На карточке товара — блок с приглашением в Telegram. Раздел /klienti переделать в слайдер: переключение между клиентами и несколько фото внутри слайда, заполнение из админки.
Решение
Раздел новостей переименовал в блог: URL /blog/, title «Блог компании MakMen», H1 «Блог», ссылки в шапке и футере
Показал SEO-slug статей и поправил стили картинок в записях; пагинацию блога зафиксировал в коде (10 на страницу)
В футере: VK и Telegram с нужными ссылками и иконками
На карточке товара: жирный текст «Больше о наших проектах в телеграм канале компании» + крупная синяя иконка Telegram
Клиенты: слайдер на баннерах OpenCart — логотип, заголовок, несколько фото в текстовом поле, стрелки между клиентами
Инструкция клиенту: как вставлять фото в редактор баннера (50% + обтекание) для 2+ изображений в слайде
Блог вместо новостей
Раздел открывается по /blog/, в меню и футере — «Блог», title и H1 «Блог компании MakMen». Статьи с текстом, изображениями и SEO-slug (например kak-vybrat-parokonvectomat). Клиенту объяснил, как добавлять записи в uni_news.
Слайдер клиентов
Страница /klienti: слайдер по клиентам со стрелками. У Самбери — логотип, заголовок, два фото магазина и текст. Движок на баннерах OpenCart: клиент сам наполняет слайды из админки.
Telegram на карточке товара
Под характеристиками: жирный призыв перейти в канал компании и увеличенная синяя иконка Telegram. Без отдельного макета дизайнера — блок в шаблоне карточки.
Как заполнять из админки
Несколько фото в слайде клиента — через «Вставить изображение» в поле заголовка/текста баннера. Размер ~50% и обтекание, чтобы два кадра стояли рядом. SEO-slug статьи задаётся в карточке новости.
Результат
Блог с ЧПУ и статьями в шапке/футере
Слайдер клиентов с мультифото
Telegram в подвале и на карточках товаров
khoroshiyvkus.ru - доставка продуктов
На khoroshiyvkus.ru доработал OpenCart под минимальный сценарий заказа продуктов: каталог по категориям, корзина, оформление без регистрации с ФИО/телефоном/адресом, капча, фиксированная доставка и отправка заказа на email.
Задача
Нужна была доработка готового OpenCart под доставку продуктов: убрать лишнее, оставить категории и товары, корзину, заказ без регистрации с капчей, обязательные ФИО и телефон, страницы доставки и контактов, поиск с подсказками. После первой сдачи клиент попросил упростить адрес до одной строки, убрать способы оплаты, объединить имя/фамилию в ФИО, сделать email необязательным и настроить письма на нужный адрес. Доступа к админке сначала не было — сбросил пароль через БД с хостинга.
Решение
Сброс доступа в админку через БД, очистка демо-данных
Категории: мясная гастрономия, бакалея, молочка, корма, заморозка, бытовая химия — с фото групп
Импорт товаров из прайса: название, категория, описание, цена, единая картинка товара
Заказ без регистрации, капча на оформлении
Checkout упрощён: одно поле ФИО, телефон, адрес одной строкой, email необязателен
Убраны способы оплаты, оставлена фиксированная доставка с настройкой из админки
Уведомления о заказах на email магазина
Показал клиенту, где править доставку, страницы Доставка/Оплата и соцсети в теме
Упрощённое оформление заказа
Стандартный checkout OpenCart с страной, регионом и обязательным email мешал простому сценарию доставки продуктов. Оставил обязательными ФИО, телефон и адрес одной строкой, email сделал необязательным, способы оплаты убрал. После оформления заказ уходит письмом на email магазина.
Адрес одной строкой
Вместо страны/региона/города с ошибками валидации клиент попросил одну строку, куда ввести адрес приезда. Переделал блок адреса под этот сценарий — меньше полей, меньше отказов на оформлении.
Доставка из админки
Фиксированная доставка 390 ₽ настраивается в Модули → Доставка. Клиенту показал, где менять стоимость и статус, чтобы дальше править самому без разработчика.
Страницы и соцсети
Тексты Доставка и Оплата правятся в Каталог → Статьи. VK и WhatsApp — в настройках шаблона Cyber Store, блок подвала → социальные сети. Передал клиенту короткую инструкцию по админке.
Результат
Каталог и категории заполнены по ТЗ
Заказ без регистрации с капчей и упрощённым checkout
Уведомления о заказах на email магазина
Клиент может сам править доставку, страницы и соцсети
yonka-online.ru - атака бота и падение сайта
На yonka-online.ru OpenCart стал отдавать ошибки и не грузиться: хостинг упирался в лимиты. Выяснил, что нагрузку давал спам-бот на странице контактов, заблокировал атакующие IP и убрал самоссылку в футере на contact-us, чтобы бот не крутил цикл запросов.
Задача
Магазин на OpenCart стал выдавать ошибки и не грузиться. В админку зайти получалось не всегда, доступ был по FTP. Хостинг писал, что услуга превышает лимиты и сайт зависает — нужна оптимизация. По факту нагрузку создавал спам-бот, который постоянно слал сообщения со страницы контактов.
Решение
Диагностика недоступности сайта и ответов хостинга по лимитам ресурсов
Выявление спам-бота, который крутил страницу contact-us и слал сообщения
Блокировка группы атакующих IP-адресов
Убрал ссылку на контакты в футере именно на странице контактов, чтобы бот не зацикливался
Проверка, что на остальных страницах ссылка в футере осталась на месте
Магазин снова в работе
yonka-online.ru — официальный магазин-партнёр косметики YON-KA на OpenCart. После атаки бота на форму контактов сайт упирался в лимиты хостинга и переставал открываться. Убрал источник нагрузки: бот больше не крутит contact-us по ссылке из футера, а атакующие адреса были отсечены.
Результат
Сайт снова открывается без ошибок и зависаний
Снята лишняя нагрузка со спам-формы контактов
Защита без постоянной гонки за новыми IP бота
printbar.az - доработка слайдера OpenCart 3
На printbar.az модуль слайдера 2OC ломал вёрстку из-за переопределённого Bootstrap и более новых скриптов темы. Разобрал конфликт CSS/JS, поправил стили под шаблон и вернул рабочее переключение сетки и стрелок.
Задача
Слетела вёрстка модуля слайдера. Модуль куплен у 2OC, автор не делал доработку под шаблон и советовал только адаптировать стили под переопределённый Bootstrap. На практике ломались и стили, и скрипты: тема использовала более новые версии, которые перебивали модуль.
Решение
Разбор конфликта стилей слайдера с Bootstrap и CSS темы
Поиск и устранение конфликтов JavaScript модуля и темы
Адаптация стрелок слайдера: белые на красном полупрозрачном фоне в стиле шаблона
Исправление стилей режима сетки и проверка переключения
Проверка карусели товаров на витрине после правок
Витрина PrintBar
printbar.az — магазин печати на одежде на OpenCart 3 с кастомной темой. Купленный слайдер рассчитан на стоковый стек, а тема тянет более новые стили и скрипты — из-за этого модуль «плыл» на витрине.
Сломанная вёрстка каталога
На каталоге из-за конфликта появлялись лишние элементы и горизонтальный скролл. Пришлось не только подкрутить CSS, но и разобрать скрипты модуля: без этого правка стилей не держалась.
Слайдер в стиле шаблона
Стрелки сделал белыми на красном полупрозрачном фоне, как в дизайне PrintBar. Режим сетки тоже поправил — переключение снова работает без поломок раскладки.
Результат
Слайдер корректно работает в кастомной теме OpenCart 3
Убраны конфликты стилей и скриптов с Bootstrap темы