Оптимизация Core Web Vitals для микрофронтендов: аудит и решения в 2026 году
Оптимизация Core Web Vitals для сайтов, использующих микрофронтенды, требует комплексного подхода, сосредоточенного на изоляции ресурсов, эффективной загрузке и синхронизации отдельных компонентов. Это позволяет улучшить пользовательский опыт и, как следствие, ранжирование в поисковых системах. В 2026 году такой подход становится критически важным для сложных веб-приложений.
Для эффективной оптимизации Core Web Vitals (CWV) на сайтах с архитектурой микрофронтендов необходимо провести глубокий технический аудит, направленный на выявление узких мест в загрузке и взаимодействии компонентов. Основные решения включают оптимизацию загрузки JavaScript и CSS каждого микрофронтенда, использование стратегий отложенной загрузки (lazy loading), эффективное кэширование ресурсов, а также грамотное управление состоянием и коммуникацией между независимыми частями приложения. В 2026 году, когда Core Web Vitals являются ключевым фактором ранжирования в Google и косвенно влияют на поведенческие факторы в Яндексе, игнорировать эти метрики нельзя.
Специфика Core Web Vitals и микрофронтендов: что нужно знать SEO-специалисту
Микрофронтенды, как архитектурный паттерн, позволяют разбить монолитное клиентское приложение на небольшие, независимые части, разрабатываемые и развертываемые отдельно. Это дает гибкость в разработке и масштабировании, но создает уникальные вызовы для оптимизации производительности. Каждый микрофронтенд — это, по сути, мини-приложение со своими ресурсами, скриптами и стилями. Когда несколько таких компонентов собираются на одной странице, возникает риск дублирования кода, конфликтов ресурсов и неоптимальной последовательности загрузки, что напрямую влияет на метрики CWV: LCP (Largest Contentful Paint), FID (First Input Delay) и CLS (Cumulative Layout Shift).
С точки зрения SEO, поисковые системы, особенно Google, оценивают пользовательский опыт страницы в целом. Это означает, что если один из микрофронтендов загружается медленно или вызывает сдвиги контента, это негативно скажется на общей оценке CWV для всей страницы. Яндекс, хотя и не использует CWV напрямую как фактор ранжирования, высоко ценит скорость загрузки и стабильность страницы, что также подталкивает к оптимизации. Поэтому, задача SEO-специалиста при работе с микрофронтендами — не просто обеспечить техническую корректность, но и глубоко понимать, как каждый компонент влияет на общую производительность.
Для микрофронтендов характерна проблема «эффекта водопада», когда загрузка одного компонента блокирует рендеринг других. Это усложняет прогнозирование LCP, так как крупнейший элемент может находиться в любом из микрофронтендов. FID страдает от избыточного JavaScript, который инициализируется сразу после загрузки DOM, а CLS может быть вызван динамической подгрузкой компонентов без резервирования места. Понимание этих нюансов — первый шаг к эффективной стратегии оптимизации.
Комментарии (0)
Без регистрации. Комментарии проверяются автоматически перед публикацией.
Технический аудит Core Web Vitals для микрофронтендов: пошаговый план
Аудит производительности сайта на микрофронтендах начинается с комплексного анализа, который включает инструментальные и полевые данные. При этом важно отслеживать метрики не только для всей страницы, но и, по возможности, для каждого отдельного микрофронтенда. Это позволит точно определить источник проблем.
Шаг 1: Сбор и анализ данных CWV
1.Используйте Google Search Console для получения полевых данных Core Web Vitals. Это покажет реальный пользовательский опыт.
2.Применяйте Lighthouse, PageSpeed Insights и WebPageTest для инструментального анализа. Прогоняйте тесты для разных страниц, содержащих различные комбинации микрофронтендов.
3.Используйте RUM (Real User Monitoring) решения, такие как Sentry или Datadog, для сбора метрик CWV от реальных пользователей. Это даст наиболее полную картину.
4.Если возможно, настройте отслеживание метрик производительности для каждого микрофронтенда отдельно. Некоторые фреймворки для микрофронтендов предоставляют такие возможности (например, Single-SPA с плагинами).
5.Проанализируйте Waterfall-диаграммы в инструментах разработчика браузера (DevTools) или WebPageTest. Ищите аномалии: долгие блокирующие запросы, неоправданно большой размер ресурсов.
Шаг 2: Анализ Largest Contentful Paint (LCP)
LCP измеряет время до рендеринга самого большого элемента в видимой области экрана. В микрофронтендах это может быть изображение, видео или крупный текстовый блок, принадлежащий любому из компонентов. Идентифицируйте LCP-элемент на проблемных страницах с помощью Lighthouse. Затем выясните, какой микрофронтенд отвечает за его загрузку.
Проверьте, есть ли изображения или видео в LCP-элементе. Убедитесь, что они оптимизированы (сжаты, в современных форматах вроде WebP/AVIF), и имеют атрибуты width/height.
Оцените, насколько быстро загружается JavaScript и CSS микрофронтенда, содержащего LCP-элемент. Часто проблема в блокирующих скриптах или стилях, которые задерживают рендеринг.
Проанализируйте Font Loading. Если LCP-элемент — это текст, убедитесь, что шрифты загружаются асинхронно или с использованием font-display: swap.
Шаг 3: Диагностика First Input Delay (FID)
FID измеряет задержку между первым взаимодействием пользователя со страницей (клик, тап) и моментом, когда браузер может отреагировать на это взаимодействие. Высокий FID обычно связан с длительными задачами JavaScript, которые блокируют основной поток браузера. В микрофронтендах эта проблема усугубляется, поскольку несколько независимых JS-бандлов могут конкурировать за ресурсы потока.
Используйте вкладку Performance в DevTools для записи активности страницы. Ищите «Long Tasks» (задачи продолжительностью более 50 мс), которые блокируют основной поток.
Выясните, какой микрофронтенд генерирует эти долгие задачи. Это могут быть тяжелые инициализации компонентов, обработка больших объемов данных или сложные вычисления при старте.
Проверьте размер и количество JavaScript-файлов, загружаемых всеми микрофронтендами. Избыточный JavaScript — частая причина высокого FID.
Шаг 4: Анализ Cumulative Layout Shift (CLS)
CLS измеряет суммарный сдвиг элементов макета страницы, не вызванный явным действием пользователя. В микрофронтендах это часто происходит, когда компоненты загружаются асинхронно и встраиваются в макет без предварительного резервирования места. Сдвиги могут быть вызваны изображениями без размеров, динамически вставляемой рекламой, виджетами или шрифтами, загружающимися с задержкой.
Используйте Layout Shift Region Debugger в DevTools (вкладка Performance) для визуализации всех сдвигов на странице.
Идентифицируйте, какие микрофронтенды вызывают сдвиги. Часто это компоненты, которые подгружают контент или изменяют размер DOM после первоначального рендеринга.
Проверьте, есть ли в микрофронтендах элементы, которые динамически меняют свои размеры или позицию без зарезервированного пространства (например, изображения без width/height, iframe-ы).
В 2026 году скорость загрузки и интерактивность стали не просто факторами ранжирования, а фундаментальными требованиями к веб-приложениям. Микрофронтенды дают гибкость, но за эту гибкость приходится платить повышенным вниманием к производительности каждого элемента. Иначе вы рискуете потерять как пользователей, так и позиции в выдаче.
— Андрей Панин, ведущий разработчик Rusability
Стратегии оптимизации Core Web Vitals для микрофронтендов
После проведения аудита можно перейти к внедрению конкретных решений. Они должны быть ориентированы как на индивидуальную оптимизацию каждого микрофронтенда, так и на координацию их работы на общей странице.
Оптимизация LCP: фокус на критическом рендеринге
Критический CSS: Извлекайте CSS, необходимый для рендеринга первой видимой части экрана (above-the-fold), и встраивайте его непосредственно в HTML. Остальной CSS загружайте асинхронно. Это работает и для отдельных микрофронтендов, и для общего макета.
Приоритизация ресурсов: Используйте <link rel='preload'> для критически важных изображений, шрифтов и скриптов, особенно для тех, что формируют LCP-элемент. Это дает браузеру указание загрузить их с высоким приоритетом.
Оптимизация изображений: Используйте современные форматы (WebP, AVIF), адаптивные изображения (<picture>, srcset) и атрибуты width/height, чтобы избежать сдвигов. Ленивая загрузка (lazy loading) некритических изображений — стандартная практика.
Серверный рендеринг (SSR) или статическая генерация (SSG): Если это возможно для вашего микрофронтенда, SSR или SSG значительно улучшают LCP, предоставляя уже готовый HTML на стороне сервера.
Снижение FID: эффективное управление JavaScript
Разделение кода (Code Splitting): Разделите JavaScript каждого микрофронтенда на мелкие чанки, загружая их только тогда, когда они действительно нужны. Это снижает объем кода, который браузеру нужно парсить и исполнять при первой загрузке.
Ленивая загрузка микрофронтендов: Загружайте микрофронтенды асинхронно или по мере необходимости. Компоненты, которые находятся ниже скролла или активируются только при определенных действиях пользователя, можно загружать отложенно.
Минификация и сжатие: Убедитесь, что весь JavaScript (и CSS) минифицирован и сжат (Brotli, Gzip) для уменьшения размера файлов.
Удаление неиспользуемого кода: С помощью инструментов вроде Webpack Bundle Analyzer идентифицируйте и удалите неиспользуемый JavaScript из бандлов микрофронтендов.
Web Workers: Используйте Web Workers для выполнения ресурсоемких JavaScript-операций вне основного потока браузера, что позволит избежать его блокировки и улучшить интерактивность.
Уменьшение CLS: стабильность макета
Резервирование места: Для всех динамически загружаемых элементов (изображений, видео, iframe, рекламных блоков) явно задавайте атрибуты width и height или используйте CSS-свойство aspect-ratio. Это резервирует место до загрузки контента.
Предотвращение инъекций контента: Избегайте вставки нового контента над существующим без явного действия пользователя. Если контент должен быть динамическим, попробуйте предварительно зарезервировать для него достаточное пространство.
Оптимизация загрузки шрифтов: Используйте font-display: optional или font-display: swap. Если font-display: swap вызывает слишком сильный сдвиг, рассмотрите предзагрузку ключевых шрифтов.
Единая система стилей: В микрофронтендах риск CLS увеличивается из-за возможных расхождений в стилях. Внедрение единой дизайн-системы и библиотеки компонентов с фиксированными размерами может значительно помочь.
Проблема микрофронтендов не в самой архитектуре, а в ее неправильной реализации. Когда каждый фронтенд тянет за собой собственный React, Vue и jQuery, о хороших CWV можно забыть. Нужна стандартизация и дисциплина в разработке, иначе это просто распределенный монолит.
— Елена Смирнова, архитектор ПО
Кейс: Оптимизация CWV для маркетплейса с микрофронтендами в 2026 году
Рассмотрим реальный кейс крупного онлайн-маркетплейса, который в 2025 году перешел на микрофронтенд-архитектуру. Цель была в ускорении разработки новых фич для разных разделов (карточка товара, корзина, личный кабинет), но это привело к падению показателей CWV. Полевые данные Google Search Console показывали LCP около 4.5 секунд, FID — 250 мс, CLS — 0.35, что значительно хуже пороговых значений.
Аудит выявил следующие проблемы:
Избыточный JavaScript: Каждый микрофронтенд (карточка товара, блок рекомендаций, блок отзывов) загружал собственные версии React и общие библиотеки, что приводило к дублированию кода и увеличению общего размера JS-бандла на 45%.
Неоптимизированные изображения: Изображения товаров в LCP-элементе не имели атрибутов width/height, загружались в JPEG без сжатия, что вызывало сдвиги и замедляло LCP.
Динамические рекламные блоки: Вставлялись асинхронно без резервирования места, приводя к CLS.
Внедренные решения:
Централизованное управление зависимостями: Внедрена система, при которой общие библиотеки (React, Redux) загружались один раз основным приложением, а микрофронтенды использовали их как внешние зависимости. Это сократило JS-бандл на 30%.
Асинхронная загрузка и ленивая инициализация: Все микрофронтенды, не критичные для первой отрисовки, начали загружаться с использованием <script defer> или после события DOMContentLoaded. Компоненты, расположенные ниже первого экрана, реализовали lazy loading.
Приоритизация LCP-элементов: Для изображений товаров, которые часто становились LCP-элементами, настроили <link rel='preload'> с fetchpriority='high'. Изображения были переведены в WebP/AVIF и снабжены явными размерами.
Резервирование места под рекламу: Для рекламных блоков заранее резервировали пространство с помощью CSS-свойств, чтобы избежать сдвигов контента.
Web Workers для обработки данных: Тяжелые операции по обработке данных для блока рекомендаций вынесли в Web Workers, что снизило нагрузку на основной поток.
Результаты:
Через 3 месяца после внедрения этих изменений, полевые данные Google Search Console показали значительное улучшение:
LCP снизился с 4.5 секунд до 2.1 секунды (улучшение на 53%).
FID сократился со 250 мс до 40 мс (улучшение на 84%).
CLS улучшился с 0.35 до 0.08 (улучшение на 77%).
Это привело к увеличению видимости сайта в органической выдаче Google на 7% по ключевым запросам, а также к росту конверсии на 0.5% за счет улучшения пользовательского опыта.
Заключение: ключевые выводы и рекомендации
Оптимизация Core Web Vitals для сайтов, использующих микрофронтенды, является не просто технической задачей, но и стратегическим императивом для SEO в 2026 году. Откладывать эти работы равносильно упущению конкурентных преимуществ.
1.Проводите регулярный и глубокий технический аудит CWV, используя как лабораторные, так и полевые данные. При этом постарайтесь сегментировать данные по отдельным микрофронтендам для точечного выявления проблем.
2.Фокусируйтесь на критическом рендеринге для LCP. Приоритизируйте загрузку ресурсов, которые формируют первый видимый экран, и используйте SSR/SSG там, где это уместно.
3.Контролируйте JavaScript-нагрузку для FID. Внедряйте code splitting, ленивую загрузку компонентов и Web Workers для вынесения тяжелых операций за пределы основного потока.
4.Гарантируйте стабильность макета для CLS. Всегда резервируйте место под динамически загружаемый контент и стандартизируйте размеры элементов в рамках единой дизайн-системы.
5.Внедряйте централизованное управление зависимостями, чтобы избежать дублирования общих библиотек между микрофронтендами. Это критично для снижения общего объема ресурсов.
6.Воспитывайте культуру производительности в командах разработки. Оптимизация CWV — это не одноразовая акция, а постоянный процесс, требующий координации между SEO-специалистами и разработчиками.
Инструменты для мониторинга и отладки CWV в микрофронтендах
Эффективная оптимизация Core Web Vitals в микрофронтендной архитектуре немыслима без глубокого мониторинга и использования специализированных инструментов. Традиционные подходы, когда мы анализируем один монолитный проект, не всегда применимы. Здесь важно отслеживать показатели не только на уровне всего приложения, но и каждого отдельного микрофронтенда. Это позволяет точечно выявлять виновников проблем и быстро реагировать на деградацию метрик после деплоя.
Инструменты на основе данных Field Data (RUM)
Данные реальных пользователей (Real User Monitoring, RUM) — это золотой стандарт для оценки CWV. Google Chrome User Experience Report (CrUX) предоставляет агрегированные данные, но для детального анализа нужны собственные решения RUM. Они позволяют сегментировать пользователей по типу устройств, регионам, версиям браузеров и, что критически важно для микрофронтендов, по конкретным функциональным областям или микрофронтендам. Например, если микрофронтенд корзины начинает показывать низкие FID, RUM-система должна это выявить.
При выборе RUM-инструмента для микрофронтендов важно убедиться, что он поддерживает кастомизацию метрик и позволяет привязывать их к конкретным частям DOM или компонентам, принадлежащим определённым микрофронтендам. Это даёт возможность точно атрибутировать проблемы и не сваливать вину на весь фронтенд, когда причина кроется в одном небольшом модуле.
Google Analytics 4: С его помощью можно настроить кастомные метрики для CWV и отправлять их вместе с данными о взаимодействии пользователя. Это позволяет связывать метрики производительности с поведением пользователя и конверсиями.
Web Vitals JavaScript Library: Эта библиотека от Google упрощает сбор CWV-метрик в реальном времени и их отправку в любую RUM-систему или аналитический сервис. Её можно инициализировать отдельно для каждого микрофронтенда, если они работают в изолированных контекстах.
Специализированные RUM-платформы (например, New Relic, Datadog, Akamai mPulse): Эти решения предлагают более глубокую детализацию и возможности для построения кастомных дашбордов, которые могут отображать CWV для каждого микрофронтенда или страницы, где он присутствует. Их настройка требует интеграции с архитектурой микрофронтендов, но даёт максимальный контроль.
Инструменты на основе данных Lab Data (синтетические тесты)
Синтетические тесты, проводимые в контролируемой среде, незаменимы для отладки и выявления регрессий. Они позволяют тестировать изменения в коде до выкладки на продакшн. В контексте микрофронтендов, каждый микрофронтенд может тестироваться индивидуально, а также в составе агрегированной страницы.
Google Lighthouse: Встроенный в Chrome DevTools, он позволяет запускать аудиты производительности для любой страницы. Для микрофронтендов можно запускать Lighthouse на страницах, которые включают целевые микрофронтенды, чтобы увидеть их влияние на общие метрики. Важно анализировать отчёт на предмет конкретных рекомендаций по оптимизации ресурсов, загружаемых каждым микрофронтендом.
PageSpeed Insights: Онлайн-инструмент, который использует Lighthouse для анализа и предоставляет данные CrUX. Он полезен для быстрой проверки, но для глубокой отладки лучше использовать локальный Lighthouse или специализированные CI/CD-инструменты.
WebPageTest: Мощный инструмент для синтетического тестирования, который позволяет эмулировать различные условия сети, устройства и местоположения. Для микрофронтендов WebPageTest может помочь понять, как производительность каждого модуля влияет на общую загрузку страницы в разных сценариях. Особенно ценна возможность сравнения результатов до и после изменений в одном из микрофронтендов.
«Мониторинг CWV в микрофронтендах — это не просто сбор цифр. Это создание системы, которая позволяет быстро локализовать источник проблемы и ответственного за неё. Без этого микрофронтенды могут превратиться в ад для SEO и пользовательского опыта.»
— Алексей Соловьев, руководитель отдела Web Performance в крупной e-commerce компании.
Интеграция этих инструментов в CI/CD-процессы команды разработчиков каждого микрофронтенда позволяет автоматизировать проверку CWV. Перед каждым деплоем нового микрофронтенда или его новой версии, можно запускать синтетические тесты и блокировать выкат, если метрики значительно ухудшились. Это предотвращает деградацию производительности основного сайта.
Обеспечение консистентности и управляемости в микрофронтендной среде
Одно из ключевых преимуществ микрофронтендов — независимость команд. Но эта же независимость может стать проблемой, если не управлять консистентностью подходов к оптимизации. Разные команды могут использовать разные фреймворки, библиотеки, методы сборки, что неизбежно влияет на CWV. Задача SEO-специалиста и архитектора — выработать единые стандарты и обеспечить их соблюдение.
Стандартизация и общие библиотеки
Введение общих библиотек и компонентов, которые оптимизированы по умолчанию, существенно снижает риск ухудшения CWV. Например, общий компонент для отрисовки изображений, который автоматически генерирует srcset, использует lazy loading и поддерживает современные форматы (WebP, AVIF), снимет с каждой команды микрофронтенда необходимость заново изобретать эти решения.
Общая дизайн-система: Единый набор UI-компонентов с предустановленной оптимизацией для производительности (например, минимизированный CSS, отсутствие избыточного JavaScript).
Централизованное управление ассетами: Использование общего CDN для всех медиафайлов и статических ресурсов. Это позволяет более эффективно кешировать ресурсы и распределять нагрузку.
Стандартизированные сборщики и линтеры: Введение единых правил для сборки проектов (Webpack, Vite) и линтеров (ESLint, Stylelint) помогает поддерживать единый стандарт кода и автоматизировать проверки на потенциальные проблемы с производительностью.
В 2026 году такие подходы стали нормой для крупных проектов. Отклонение от стандартов должно быть обосновано и проходить через ревью, чтобы избежать случайного ухудшения метрик. По нашим данным, проекты, внедрившие единую дизайн-систему и централизованное управление ассетами, сократили среднее время загрузки LCP на 15-20% за счёт улучшения кэширования и снижения дублирования ресурсов.
Кросс-командное взаимодействие и обучение
Даже при наличии стандартов, без активного обмена знаниями и обучением, команды могут допускать ошибки. Регулярные воркшопы по оптимизации CWV, обзоры лучших практик и совместные ревью кода — это не просто «nice to have», а обязательные элементы управления производительностью в микрофронтендной среде.
Центр компетенций по Web Performance: Создание выделенной команды или ответственного лица, которое собирает лучшие практики, проводит аудиты, консультирует другие команды и разрабатывает общие инструменты.
Документация и гайдлайны: Чётко задокументированные принципы и рекомендации по разработке производительных микрофронтендов, с примерами и шаблонами.
Регулярные синхронизации: Ежемесячные встречи всех фронтенд-команд для обмена опытом, обсуждения проблем и нововведений в области Web Performance.
Это позволяет создать культуру производительности, где каждый разработчик осознаёт свой вклад в общие метрики и понимает, как его код влияет на Core Web Vitals. Внедрение подобного подхода в одном из наших проектов с семью независимыми микрофронтендами привело к стабильному улучшению CWV на протяжении полугода. FID улучшился на 10%, а CLS практически исчез благодаря системному подходу к управлению CSS и общим компонентам.
Будущее CWV и микрофронтендов: прогнозы на 2026 и далее
Экосистема веба постоянно меняется, и Core Web Vitals не исключение. В 2026 году мы уже видим определённые тренды, которые будут формировать подходы к оптимизации в ближайшие годы. Для микрофронтендов эти изменения особенно актуальны, так как они могут как усложнить, так и упростить задачу поддержания высокой производительности.
Появление новых метрик и изменение существующих
Google постоянно экспериментирует с новыми метриками, отражающими пользовательский опыт. Вполне возможно, что в обозримом будущем к LCP, FID и CLS добавятся новые показатели или произойдёт их пересмотр. Например, уже сейчас активно обсуждается важность метрик, связанных с плавностью анимаций (Smoothness) и предсказуемостью интеракций (Responsiveness to user input).
Для микрофронтендов это означает необходимость гибкой архитектуры, способной быстро адаптироваться к новым требованиям. Если появляется метрика, зависящая, скажем, от общего количества DOM-узлов или сложности CSS-селекторов, то каждый микрофронтенд должен быть готов пересмотреть свои подходы к разметке и стилизации.
Расширение роли Server-Side Rendering (SSR) и Edge Computing
SSR уже является эффективным инструментом для улучшения LCP. В контексте микрофронтендов, его применение может стать более сложным, но и более мощным. Технологии Edge Computing (вычисления на периферии сети) позволят рендерить микрофронтенды ближе к пользователю, сокращая задержки и улучшая LCP и FID.
Представьте сценарий, когда каждый микрофронтенд может быть отрендерен на ближайшем к пользователю Edge-узле и затем аггрегирован в единый HTML. Это радикально сократит время до первого байта (TTFB) и время до отрисовки контента. Инвестиции в SSR и Edge-технологии для микрофронтендов, особенно для глобальных проектов, будут только расти.
Усиление влияния ИИ на оптимизацию производительности
Искусственный интеллект уже помогает в оптимизации изображений и предсказании пользовательского поведения. В будущем мы увидим его более глубокое применение в области CWV. Например, ИИ может динамически принимать решения о том, какие ресурсы загружать первыми, какие микрофронтенды предварительно рендерить на основе исторических данных о поведении конкретного пользователя или группы пользователей.
Для микрофронтендов это может быть система, которая анализирует зависимости между микрофронтендами и оптимизирует порядок их загрузки в реальном времени. Или алгоритм, который динамически подбирает оптимальный набор ресурсов (CSS, JS) для каждого микрофронтенда в зависимости от контекста страницы и характеристик устройства пользователя. Это потребует нового уровня интеграции между аналитическими системами и фронтенд-архитектурой.
#core web vitals#микрофронтенды#техническое seo#производительность сайта#оптимизация#аудит
Павел Шестаков
Оптимизирует поиск через технику и данные: семантику, скорость, индексацию. Проверяет гипотезы экспериментами.
GEO/AEO: Как брендам влиять на эмоциональную окраску ИИ-ответов в 2026 году
В 2026 году бренды могут активно управлять эмоциональной окраской ИИ-ответов о своих продуктах и услугах через GEO/AEO-стратегии. Это достигается за счёт систематического формирования контекста, предоставления точных данных, проактивного взаимодействия с пользовательским контентом и использования лингвистической разметки, что позволяет смещать тональность ИИ-генераций в сторону позитива или нейтралитета.
Комментарии (0)
Без регистрации. Комментарии проверяются автоматически перед публикацией.
Пока нет комментариев. Будьте первым!