Перейти к содержимому
Skip to content
← Все статьи

DNS и производительность: оптимизация резолвинга

Влияние DNS на скорость загрузки

Каждый HTTP-запрос начинается с DNS-резолвинга — преобразования доменного имени в IP геолокацию. Этот процесс занимает от 20 до 120 мс, а при первом обращении к домену — до 200-300 мс. На странице с ресурсами из 10 разных доменов DNS-lookups могут добавить до 1-2 секунд к загрузке.

DNS-резолвинг — часто упускаемый из виду фактор производительности, который можно оптимизировать без изменения кода.

Как работает DNS-резолвинг

  1. Браузер проверяет свой DNS-кэш
  2. Если не найдено — запрос к ОС (hosts-файл, системный кэш)
  3. ОС обращается к рекурсивному резолверу (обычно ISP или public DNS)
  4. Резолвер проходит цепочку: root → TLD → авторитативный DNS-сервер
  5. Полученный IP-адрес кэшируется на каждом уровне согласно TTL

Используйте DNS Lookup на Enterno.io для проверки DNS Lookup и времени резолвинга вашего домена.

Выбор DNS-провайдера

Скорость авторитативного DNS-сервера напрямую влияет на время первого обращения. Публичные DNS-провайдеры с anycast-сетями обеспечивают время ответа 5-20 мс из любой точки мира.

Критерии выбора

Популярные DNS-провайдеры

Оптимизация TTL

TTL (Time To Live) определяет, как долго DNS-запись кэшируется. Правильный TTL — баланс между производительностью и гибкостью.

Рекомендации по TTL

Слишком низкий TTL (менее 60 секунд) увеличивает нагрузку на DNS-серверы и замедляет резолвинг. Слишком высокий (более 86400) затрудняет оперативные изменения.

DNS Prefetch

DNS Prefetch — механизм предварительного резолвинга доменов, от которых загружаются ресурсы страницы:

<link rel="dns-prefetch" href="//cdn.example.com">
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//analytics.google.com">

Браузер выполняет DNS-lookup заранее, пока парсит HTML. Когда ресурс понадобится, IP-адрес уже будет в кэше.

Preconnect — шаг дальше

Для критических ресурсов используйте preconnect — он выполняет DNS + TCP + TLS handshake заранее:

<link rel="preconnect" href="https://cdn.example.com" crossorigin>

Используйте preconnect для 2-3 самых важных внешних доменов. Для остальных — dns-prefetch.

Минимизация DNS Lookups

Сокращайте количество доменов

Каждый уникальный домен требует отдельного DNS-lookup. Сократите количество внешних доменов:

Domain sharding — устаревшая техника

В эпоху HTTP/1.1 ресурсы разделяли по нескольким доменам для параллельных загрузок. С HTTP/2 это антипаттерн — мультиплексирование позволяет загружать всё через одно соединение. Дополнительные домены только добавляют DNS-lookups.

Мониторинг DNS

DNS-проблемы часто остаются незамеченными, потому что сайт «работает» для большинства пользователей (их DNS-кэш ещё актуален).

Итоги

DNS-оптимизация — низко висящий фрукт, который можно собрать без изменения кода. Выберите быстрый DNS-провайдер с anycast, настройте правильные TTL, используйте dns-prefetch и preconnect для внешних доменов, и минимизируйте количество уникальных доменов на странице. Эти меры могут сэкономить 100-500 мс на каждой загрузке.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: DNS
DNS
DNS over HTTPS (DoH): конфиденциальность, безопасность и принцип работы
16.03.2026 · 20 просм.
DNS
TTL в DNS: оптимальные значения для каждого типа записи
16.03.2026 · 16 просм.
DNS
DNS Failover: автоматическое переключение трафика для высокой доступности
16.03.2026 · 12 просм.
DNS
Типы DNS записей: A, AAAA, MX, CNAME, TXT и другие
10.03.2025 · 24 просм.