GNews.cz
GNews — восьмиязычный гигант. Идеальная скорость, идеальное SEO.
- 8 языков
- 40K статических страниц
- <250 мс TTFB
- 100 Lighthouse
- Без трекеров
- Своя аналитика
gnews.cz — переделан под скорость
Идеальная скорость, идеальное SEO — не гипербола. Именно это получено благодаря грамотному планированию и лучшим практикам на современном стеке.
Исходная точка
Gnews.cz — авторитетный независимый чешский новостной бренд, работавший на WordPress и TranslatePress. К 2026 году трещины стало невозможно игнорировать: девятисекундный TTFB, более пятнадцати секунд до полной отрисовки и CMS, надломившаяся под собственным весом.
Хуже всего был слой переводов. TranslatePress дробил каждую статью на сотни фрагментов, хранил их по языкам и пересобирал в SQL при каждом запросе страницы. С 48 000+ статьями на восьми языках база при отрисовке выполняла работу translation memory. Переключение языка означало новый запрос и новый join — каждый раз.
Задача: сохранить контент, сохранить редакционный процесс, сделать один из самых быстрых новостных сайтов в сети.
Новая платформа
Next.js 16 (App Router), TypeScript от и до, React Server Components, Tailwind CSS 4 и собственный аналитический микросервис на Go, заменяющий Google Analytics, Facebook Pixel, Plausible и Intercom одним self-hosted бинарём. Nginx с HTTP/2 и Let's Encrypt спереди, всё под systemd на одном Linux-хосте — без Docker, без Kubernetes, без облачного локина.
Откуда берётся скорость
Incremental Static Regeneration. Каждая статья, страница категории и главная для языка пререндерены. Читатель получает готовый HTML на первом байте, а не скелет. Когда редакция публикует материал, webhook ревалидирует именно затронутые страницы — обновление за секунды, без сброса кеша всего сайта. Тяжёлые виджеты обновляются в фоне; читатель не ждёт аналитический запрос.
Изображения. Каждое фото отдаётся в WebP, преобразуется по запросу под точные размеры слота, с 1x и 2x в srcset. Оригинал на 24 мегапикселя никогда не доходит до браузера. Заголовки статей — лесенка из пяти размеров от 480 до 1600 px; сетки на главной — 320–800 px; лайтбокс — до 2400 px.
Ленивая загрузка. Тяжёлые компоненты ниже первого экрана — включая анимированную карту посетителей в реальном времени — подключаются через intersection observers. Если читатель не прокручивает, JS не качается.
Переводы — как надо
У каждой статьи одна полная строка перевода на язык. Открыли /de/<slug> — ответ это одна строка из одной таблицы, отданная из кеша. Переключение языка — статическая ссылка на эквивалентный URL, а не повторный перевод. Корректный hreflang на каждой странице, отдельные sitemap по языкам (sitemap-cs.xml, sitemap-en.xml, …) для чистой индексации в Google News.
Весь архив статей перенесён на все восемь языков (чешский, английский, немецкий, испанский, французский, итальянский, русский, китайский) без потери ни одного существующего перевода. Нетехнические редакторы могут править любую UI-строку на любом языке через встроенный браузерный редактор.
Lighthouse и SEO
Идеальный Performance с первого билда. SEO 100 — за счёт JSON-LD NewsArticle, полного набора Open Graph и Twitter Card по каждому языку, семантического HTML, локалезависимых canonical и robots, держащего стейджинг вне индекса. Любой формат старых URL WordPress — uploads, ?p=-пермалинки, старые языковые пути TranslatePress — 301-редиректится на уровне nginx, сохраняя десятилетие беклинков и позиций.
Никаких трекеров, никаких сторонних скриптов
Ноль Google Analytics, ноль Facebook Pixel, ноль Intercom, ноль JS, требующего согласия. Кастомный API-маршрут Next.js пишет строки с хэшированными IP в локальную таблицу и питает виджет живой карты мира. Сервис на Go строит rolling-агрегаты из локальных access-логов. Данные читателя не покидают сервер.
Редакционный процесс
WYSIWYG на TinyMCE/Tiptap, повторяющий классический редактор WordPress, к которому редакция привыкла; современная медиатека, drag-and-drop галереи, автоматический WebP при загрузке, переключатели Top Story и GNEWS Exclusive, отложенная публикация, many-to-many категорий/тегов/регионов.
Возможности для читателя
Настоящие аккаунты с тредами комментариев и голосованием, ежедневный новостной квиз с лидербордом, «Прочитать позже», лента сохранённого, тёмная тема, доступное масштабирование шрифтов, полная навигация с клавиатуры и локалезависимые даты, привязанные к таймзоне редакции в Праге.
Результат
Сайт, отдававший первый байт за девять секунд, теперь отдаёт полностью готовый закешированный HTML менее чем за 250 миллисекунд, а полностью отрисованный hero — за ~500 мс на тёплом кеше. Все Core Web Vitals — в верхней части зелёной полосы. Редакция публикует быстрее. Читатели остаются дольше. Google индексирует больше.
Восемь языков. 40 000 индивидуально пререндеренных страниц, каждая отдаётся из кеша — gnews.cz один из самых быстрых новостных сайтов в мире.
Тот же контент. Совершенно другая машина под ним.