Користувач із Токіо відкриває сайт, хостинг якого знаходиться в Москві. Кожен запит іде через півсвіту — TTFB 500 мс, конверсія падає на 30%. Таке бачимо регулярно. Ми знаємо, як це виправити: Edge Computing переносить частину обчислень на граничні вузли CDN, обробляючи запит максимально близько до користувача, що особливо важливо для регіонального завантаження та глобальної продуктивності.
Edge Computing — це розподілена парадигма, яка наближає обробку даних до джерела. Це дозволяє досягти TTFB 40–80 мс для віддалених регіонів, що в 10 разів швидше центрального сервера. Наші сертифіковані інженери мають понад 5 років досвіду з Edge-архітектурами, гарантуючи результат. Зв'яжіться з нами для консультації — оцінимо ваш проект.
Проблеми регіональних затримок
Чому затримка так критична для бізнесу?
Для сайтів з глобальною аудиторією кожні 100 мс затримки знижують конверсію на 7%, а Core Web Vitals (особливо LCP) вище 2.5 с збільшує показник відмов. Традиційні центральні сервери неефективні: запит із Токіо до Москви йде 200–300 мс, плюс час обробки. Edge-вузли, розташовані в десятках точок світу, вирішують цю проблему, виконуючи логіку на найближчому до користувача вузлі.
Як Edge Computing скорочує TTFB?
DNS направляє запит на найближчий Edge-вузол. Там виконується код (наприклад, Cloudflare Worker), який може перевірити геолокацію, віддати регіональний контент, виконати A/B тестування або завантажити дані з кешу KV-сховища. Час відповіді з Edge-вузла становить 5–10 мс, тоді як до центрального сервера — 200–500 мс. Додатково Edge-функції дозволяють уникнути N+1 запитів до origin, використовуючи кеш.
Edge-функції: Workers, Middleware та сховища
Cloudflare Workers і Vercel Edge Middleware
// workers/geo-personalization.js
export default {
async fetch(request, env) {
const country = request.cf.country;
const city = request.cf.city;
const response = await fetch(request);
const html = await response.text();
const personalized = html
.replace('{{COUNTRY}}', country)
.replace('{{SHIPPING_NOTICE}}', getShippingNotice(country))
.replace('{{CURRENCY}}', getCurrency(country));
return new Response(personalized, {
headers: response.headers,
status: response.status,
});
}
};
function getShippingNotice(country) {
const notices = {
'RU': 'Безкоштовна доставка по Росії від 3 000 ₽',
'DE': 'Kostenloser Versand ab 50 €',
'US': 'Free shipping on orders over $50',
};
return notices[country] ?? 'Free international shipping';
}
// middleware.ts (Next.js)
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const url = request.nextUrl.clone();
const country = request.geo?.country ?? 'US';
const locale = countryToLocale(country);
if (url.pathname === '/') {
url.pathname = `/${locale}`;
return NextResponse.redirect(url, { status: 302 });
}
const bucket = request.cookies.get('ab_bucket')?.value
?? (Math.random() < 0.5 ? 'a' : 'b');
const response = NextResponse.next();
response.cookies.set('ab_bucket', bucket, { maxAge: 86400 * 30 });
response.headers.set('X-AB-Bucket', bucket);
return response;
}
export const config = {
matcher: ['/', '/(ru|en|de|fr)/:path*'],
runtime: 'edge',
};
Сховище Edge KV та SSR на Durable Objects
Cloudflare Workers KV — глобальне key-value сховище з реплікацією на всі Edge-вузли. Затримка читання < 1 мс:
async function getRegionalPricing(country, env) {
const cacheKey = `pricing:${country}`;
const cached = await env.PRICING_KV.get(cacheKey, 'json');
if (cached) return cached;
const pricing = await fetch(`https://api.example.com/pricing?country=${country}`)
.then(r => r.json());
await env.PRICING_KV.put(cacheKey, JSON.stringify(pricing), { expirationTtl: 3600 });
return pricing;
}
Durable Objects дозволяють запускати SSR на Edge без центрального сервера. Для Next.js, Nuxt або Remix це знижує TTFB з 300–500 мс до 50–80 мс. Детальніше — у Cloudflare Workers.
Що входить у роботу
При замовленні послуги ви отримуєте:
- Аудит поточної архітектури з виявленням вузьких місць.
- Проектування Edge-шару з вибором провайдера та інструментів.
- Розробку Workers, Middleware та налаштування KV/Durable Objects.
- Тестування з різних регіонів та звіт за метриками.
- Документацію щодо впроваджених рішень та навчання команди.
- Моніторинг продуктивності та підтримку після запуску.
Замовте аудит архітектури — це перший крок до глобальної швидкості.
Результати та метрики
Порівняння до та після
| Метрика | До (центральний сервер) | Після (Edge вузли) |
|---|---|---|
| TTFB (Токіо) | 450-550 мс | 40-80 мс |
| TTFB (Берлін) | 200-300 мс | 20-50 мс |
| LCP | 3.2 с | 1.1 с |
Економія на інфраструктурі може досягати 30-40% при переході на Edge, а окупність проекту — від 2 місяців.
Порівняння провайдерів Edge
| Провайдер | Runtime | Кеш | SSR | Ціна |
|---|---|---|---|---|
| Cloudflare Workers | V8 | KV, Durable Objects | Так (Pages) | Безкоштовно до 100k запитів/день |
| Vercel Edge | Node.js, V8 | Edge Config | Так (Next.js) | За запитом |
| Netlify Edge | V8 | Netlify Edge | Ні | Безкоштовно 100k запитів/міс |
Ключові метрики та інструменти виміру
До та після впровадження заміряйте TTFB, FCP, LCP та Core Web Vitals. Використовуйте WebPageTest з вибором регіону або curl з різних точок:
curl -w "\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
-o /dev/null -s https://example.com
Google Search Console покаже розподіл Core Web Vitals по країнах.
Впровадження Edge-оптимізації
Етапи роботи
- Аудит архітектури: аналізуємо маршрути, географію користувачів, вузькі місця.
- Проектування Edge-шару: вибираємо провайдера та визначаємо завдання для Edge.
- Реалізація: пишемо Workers, Middleware, налаштовуємо KV та Durable Objects.
- Тестування: навантажувальне тестування з регіонів, замір метрик.
- Моніторинг: алерти на TTFB та Core Web Vitals, регулярні перевірки.
Терміни та вартість
Базова оптимізація (редиректи, геолокалізація) — 3–5 днів. Перенесення SSR на Edge — 10–15 днів. Вартість впровадження залежить від складності, але в середньому окупається за 2-4 місяці за рахунок зниження втрати конверсії. Отримайте консультацію — зв'яжіться з нами.
Приклад коду для SSR на Edge
// workers/ssr.js (Cloudflare Pages)
import { renderToString } from 'react-dom/server';
import App from './App';
export default {
async fetch(request, env) {
const html = renderToString(<App />);
return new Response(html, {
headers: { 'Content-Type': 'text/html' },
});
},
};
Наші інженери сертифіковані Cloudflare і мають понад 5 років досвіду з Edge-архітектурами. Замовте аудит — ми допоможемо вашому сайту працювати швидко по всьому світу.







