After foreign CDN (Cloudflare, Fastly) blockages, static resource load times for users in Russia can increase to 1-2 seconds or more. Selectel CDN is a Russian CDN for websites with points of presence in Moscow, Saint Petersburg, and Amsterdam, optimized for projects with a predominantly Russian audience. Combined with Selectel Object Storage (S3-compatible), it reduces latency by 40-60% compared to foreign alternatives. We help configure the entire infrastructure: from creating a CDN resource to integrating with your project. Order a turnkey Selectel CDN setup — we guarantee faster loading for your Russian audience.
Why foreign CDNs are slow for Russia?
Foreign CDNs often use nodes in Europe or the US, giving Russian users from Siberia or the Far East an RTT of 150-300 ms. Selectel places caching nodes inside Russia, reducing response time to 10-30 ms. This directly impacts LCP and CLS — key Core Web Vitals metrics.
How to solve dynamic content caching?
The common practice is to cache only static content, but for frequently updated sites (news, blogs), fine-tuning is needed. We use edge_cache_settings and browser_cache_settings with different TTLs for different content types. Recommended values:
| Content Type | Edge TTL | Browser TTL |
|---|---|---|
| Images, CSS, JS | 30 days | 1 year |
| Fonts | 30 days | 1 year |
| HTML pages (if cached) | 1 hour | 10 minutes |
| API responses | do not cache | do not cache |
How we do it: stack and configuration
Connecting a CDN resource
In the Selectel panel → CDN → Create resource. Specify the origin server — your website or Object Storage bucket. Get a CNAME like resource-id.cdn.selectel.ru. Add a DNS record: cdn.example.ru → CNAME → resource-id.cdn.selectel.ru.
Or create via API:
curl -X POST \ -H "X-Auth-Token: $SELECTEL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "example-assets", "origin_protocol": "HTTPS", "origins": [{"source": "example.ru", "backup": false}], "options": { "edge_cache_settings": {"enabled": true, "value": "2592000"}, "browser_cache_settings": {"enabled": true, "value": "31536000"}, "gzip_on": {"enabled": true, "value": true}, "force_https": {"enabled": true, "value": true} } }' \ https://api.selectel.ru/cdn/resources/ Example of creating a bucket and syncing static files
aws s3 mb s3://example-assets \ --endpoint-url https://s3.selcdn.ru aws s3 sync ./public/assets s3://example-assets/assets/ \ --endpoint-url https://s3.selcdn.ru \ --cache-control "public, max-age=31536000, immutable" \ --content-encoding gzip Extended case: for an e‑commerce site with 10 million product images per month, we set up automatic preview upload via Laravel + Amazon S3 API (compatible). Average image load time dropped from 1.2 s to 0.15 s. During peak loads (Black Friday), the CDN handled 5000 RPS without a single failure.
Integration with Laravel (S3 + CDN)
// config/filesystems.php 'selectel' => [ 'driver' => 's3', 'key' => env('SELECTEL_KEY'), 'secret' => env('SELECTEL_SECRET'), 'region' => 'ru-1', 'bucket' => env('SELECTEL_BUCKET'), 'endpoint' => 'https://s3.selcdn.ru', 'url' => env('CDN_URL'), 'use_path_style_endpoint' => false, ], Storage::disk('selectel')->put( 'images/' . $filename, $file->getContent(), [ 'visibility' => 'public', 'CacheControl' => 'public, max-age=31536000', 'ContentType' => $file->getMimeType(), ] ); $publicUrl = Storage::disk('selectel')->url('images/' . $filename); // https://cdn.example.ru/images/filename.webp CDN provider comparison
| Feature | Selectel CDN | Cloudflare | VK CDN |
|---|---|---|---|
| HTTP/3 | Yes | Yes | Yes |
| PoP in Russia | 3+ | 0 | 5+ |
| S3 compatibility | Yes | No | Yes |
| API invalidation | Yes | Yes | Yes |
Work process: from audit to deployment
- Analytics — study content structure, current load metrics, server logs, identify problematic resources.
- Design — select optimal TTLs, configure S3 + CDN connection, plan cache invalidation.
- Implementation — create bucket, configure CDN resource, integrate with CMS (WordPress, Laravel, Drupal).
- Testing — verify correct content delivery, HTTP headers, load speed via PageSpeed Insights.
- Deployment and monitoring — redirect traffic to CDN, set up alerts for 4xx/5xx errors.
Setup timeline
From 1 to 3 working days depending on integration complexity. Time includes creating all resources, DNS setup, and test launch. Cost is calculated individually after audit — contact us and we will assess your project.
What's included in turnkey work
- Creating and configuring CDN resource (HTTPS, caching rules)
- Setting up Object Storage and integration with your project
- Documentation on access and support
- Training your team (cache invalidation, adding new buckets)
- Technical support during launch phase
Typical mistakes and how to avoid them
- N+1 requests to origin — if
edge_cache_settingsis not configured, every request hits the server, negating the CDN's benefit. Always set TTL at least 1 day for static content. - Hotlinking — always enable Referer validation or use signed URLs. Otherwise, your traffic may be stolen.
- Incorrect cache invalidation — when updating files, change their names (versioning) or call the API to purge. Waiting 30 days for natural expiration is bad practice.
Contact us for a free consultation. Order a speed audit of your website — we will propose the optimal CDN configuration.







