Техническое задание: Оптимизация скорости сайта на OpenCart 3

Необходимо провести комплексную работу по ускорению загрузки страниц интернет-магазина, работающего на CMS OpenCart 3. Проблема проявляется в долгом отклике сервера и медленной загрузке ключевых разделов: главной страницы, карточек товаров и страниц категорий.

Ключевая задача

Выявить и устранить «узкие места», вызывающие низкую производительность. Решение должно быть программным, так как увеличение характеристик виртуального сервера (VDS) не рассматривается как вариант.

Основные направления для анализа и оптимизации

1. Анализ текущего состояния

  • Замер текущей скорости загрузки страниц с помощью инструментов (Google PageSpeed Insights, GTmetrix, WebPageTest).
  • Анализ логов сервера и базы данных на предмет медленных запросов.
  • Проверка конфигурации сервера (PHP, MySQL, веб-сервер).

2. Оптимизация OpenCart и базы данных

  • Ревизия и оптимизация SQL-запросов, особенно в популярных модулях и на «тяжелых» страницах.
  • Настройка корректного кеширования (OPCache, кеш OpenCart).
  • Проверка и отключение неиспользуемых модулей.
  • Оптимизация индексов в базе данных.

3. Оптимизация фронтенда

  • Объединение и минификация CSS и JavaScript файлов.
  • Оптимизация и ленивая загрузка изображений (Lazy Load).
  • Настройка сжатия (Gzip/Brotli) и кеширования на стороне браузера.

4. Ожидаемый результат

  • Значительное сокращение времени до полной загрузки страниц (TTFB, LCP).
  • Улучшение показателей в инструментах оценки скорости.
  • Стабильная и быстрая работа сайта при текущих мощностях сервера.

Исполнителю необходимо предоставить план работ с приоритетными действиями, провести оптимизацию и представить отчет о проделанной работе и достигнутых результатах.

Разработка Telegram-бота администратора для игрового сообщества с розыгрышем призов

Требуется создать и внедрить в существующую Telegram-группу бота для автоматизации проведения игры с выбором номеров и определением победителей. Бот должен управлять списками участников, обрабатывать их выбор и отображать информацию в группе.