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

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 темы
  • Стрелки и сетка выглядят единообразно с магазином

filters.su - правки вёрстки и SEO

На filters.su поправил вёрстку после кривого импорта описаний, выровнял карточки, собрал блок «Надёжность проверенных брендов», подчистил футер и закрыл SEO-дыры: HTTPS в config, 404, дубли и пустые title/description.

Задача

Нужен был пакет правок: наезд блоков из-за мусорных inline-стилей в описаниях, разная высота карточек и скролл внутри них, кривые тексты, некликабельный email, лишние пункты в футере, слайдер брендов заменить на блок с логотипами, проверить мобильную вёрстку и после работ убрать дубли title/description.

Решение

  • Удалил лишние inline-стили в описаниях товаров SQL-запросом по таблице описаний
  • Выровнял высоту карточек и убрал нижний скролл, почистил лишние неразрывные пробелы
  • Выровнял тексты на витрине и сделал email в шапке кликабельным
  • Убрал из футера акции, сертификаты, партнёрскую программу и рассылки
  • Проверил адаптив главной, категорий и карточек на эмуляторах и реальном телефоне
  • Заменил слайдер брендов на блок «Надёжность проверенных брендов» с редактируемыми баннерами
  • Включил HTTPS в config.php, убрал дубли URL и починил страницы с 404
  • Заполнил и уникализировал title и description, убрал перепутанные названия в мета

Витрина filters.su

Магазин поставки фильтров и масла для компрессорного оборудования. После импорта в описаниях остались лишние inline-стили — блоки наезжали друг на друга. Почистил описания через БД, выровнял карточки и тексты на витрине.

Блок проверенных брендов

Вместо нижнего слайдера собрал секцию «Надёжность проверенных брендов»: логотипы плашками с кликабельными ссылками. Баннеры добавляются и правятся из админки без правки шаблона.

Каталог и SEO-чистка

После скана нашёл дубли title из-за чужих названий в мета, пустые description и отсутствие принудительного HTTPS в config.php. Исправил редирект на https, 404 и заполнил уникальные мета-теги по страницам.

Результат

  • Ровная вёрстка карточек и описаний без наездов блоков
  • Редактируемый блок брендов на главной
  • Мобильная версия проверена и подчищена
  • HTTPS, без дублей URL и с уникальными title/description

gmr-gifts.ru - ускорение категорий OpenCart

На B2B-магазине корпоративных сувениров gmr-gifts.ru медленно открывались категории и поиск. Разобрал тяжёлые SQL, добавил индексы и ускорил подгрузку данных: вместо 6-7 секунд сервер отвечает примерно за 1.67 с.

Задача

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

Решение

  • Профилирование медленных SQL на страницах категорий и поиска
  • Оптимизация запросов подгрузки товаров, фильтров и связанных данных
  • Добавление индексов в таблицы, которые тормозили выборку
  • Проверка, что долгих запросов в логе больше нет
  • Замер в браузере и контроль через Google PageSpeed

Каталог бизнес-сувениров

gmr-gifts.ru — B2B-витрина корпоративных подарков и мерча на OpenCart. При большом каталоге страницы категорий и поиска открывались по 6-7 секунд — для ежедневной работы с ассортиментом это критично.

Разбор тяжёлых SQL

Профилирование показало узкие места в подгрузке товаров, фильтров, скидок и связанных таблиц. Оптимизировал запросы и добавил индексы там, где выборка шла по неиндексированным полям.

Быстрее переходы по каталогу

После правок долгих запросов не осталось: по замерам в браузере ответ сервера около 1.67 с. Google PageSpeed вывел страницу категории в зелёную зону по скорости.

Каталог без ожидания

Поиск и листинг товаров стали ощутимо быстрее без смены темы и без потери функционала фильтров. Магазин остаётся тем же OpenCart, просто перестаёт тормозить на типовых страницах каталога.

Результат

  • Ответ сервера на категории ~1.67 с вместо 6-7 с
  • Долгие SQL убраны, индексы на месте
  • PageSpeed по скорости категории в зелёной зоне