novostroy96.ru - техSEO и доработки OpenCart

Сделал бесплатный тех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.

Результат

  • Согласованный пакет техSEO внедрён, крошки корзины осознанно вычеркнуты
  • Единый 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 темы
  • Стрелки и сетка выглядят единообразно с магазином