domaindetails.com
Knowledge Base/Technical Guides/Understanding DNS TTL and Propagation (2025)
Technical Guides

Understanding DNS TTL and Propagation (2025)

Complete guide to DNS TTL (Time To Live) and how it affects DNS propagation. Learn recommended TTL values, how to speed up DNS changes, and troubleshoot propagation issues.

9 min
Published 2025-12-01
Updated 2025-12-01
By DomainDetails Team

Quick Answer

DNS TTL (Time To Live) is a value in seconds that tells DNS servers and browsers how long to cache a DNS record before checking for updates. A TTL of 3600 means "cache this record for 1 hour." Lower TTL (300-600 seconds) enables faster DNS changes but increases DNS query load. Higher TTL (3600-86400 seconds) reduces DNS queries but makes changes propagate slower. For routine operation, use 3600-7200 seconds. Before DNS changes, lower to 300 seconds, make changes, then raise back to normal after propagation.

Table of Contents

What is DNS TTL?

DNS TTL (Time To Live) is a setting that controls how long DNS information is cached before it expires.

TTL Definition

Time To Live (TTL):

  • Measured in seconds
  • Specifies cache duration
  • Applies to all DNS record types
  • Set in DNS zone files
  • Controls propagation speed

Example TTL values:

60 seconds = 1 minute
300 seconds = 5 minutes
3600 seconds = 1 hour
86400 seconds = 24 hours

Why TTL Exists

TTL serves several critical purposes:

  1. Reduces DNS query load

    • Caching reduces queries to authoritative nameservers
    • Saves bandwidth and server resources
    • Improves DNS system scalability
  2. Improves performance

    • Cached responses are faster
    • Reduces latency for end users
    • Decreases dependency on DNS infrastructure
  3. Enables controlled updates

    • Lower TTL = faster propagation
    • Higher TTL = more stable caching
    • Admins control change speed
  4. Prevents DNS infrastructure overload

    • Without TTL, every request would query authoritative servers
    • TTL distributes load across recursive resolvers
    • Critical for DNS system stability

TTL in DNS Records

Every DNS record includes a TTL value:

# DNS Record Format
example.com.    3600    IN    A    192.0.2.1
                ↑
                TTL (seconds)

Breaking down this record:

example.com.  = Domain name
3600          = TTL (1 hour)
IN            = Class (Internet)
A             = Record type
192.0.2.1     = Value (IP address)

How TTL Is Measured

TTL countdown:

When record is cached:
- TTL starts at specified value (e.g., 3600)
- Decreases by 1 every second
- When it reaches 0, cache expires
- Resolver fetches fresh record

Example:
Time 0:00  - Record cached, TTL = 3600
Time 0:30  - TTL = 3570 (3600 - 30)
Time 1:00  - TTL = 0, cache expired
Time 1:01  - Resolver fetches new record

How DNS TTL Works

Understanding TTL requires knowing how DNS caching works across the entire DNS system.

The DNS Resolution Chain

When you visit a website, your DNS query passes through multiple caching layers:

Your Browser
    ↓ (caches DNS for TTL duration)
Operating System
    ↓ (caches DNS for TTL duration)
Local Router
    ↓ (caches DNS for TTL duration)
ISP Recursive Resolver
    ↓ (caches DNS for TTL duration)
Authoritative Nameserver
    ↓ (source of truth)

Each layer caches the DNS record for the TTL duration.

Step-by-Step TTL Process

Initial DNS Query (Record Not Cached):

1. User visits example.com

2. Browser checks cache
   - Not found
   - Asks operating system

3. OS checks cache
   - Not found
   - Asks configured DNS resolver (e.g., 8.8.8.8)

4. Resolver checks cache
   - Not found
   - Queries authoritative nameserver

5. Authoritative nameserver responds:
   example.com.    3600    IN    A    192.0.2.1

6. Resolver caches response
   - Stores: 192.0.2.1
   - TTL: 3600 seconds (1 hour)
   - Returns to OS

7. OS caches response
   - Stores: 192.0.2.1
   - TTL: 3600 seconds
   - Returns to browser

8. Browser caches response
   - Uses IP: 192.0.2.1
   - Caches for TTL duration

Subsequent Query Within TTL (Record Cached):

1. User visits example.com again (within 1 hour)

2. Browser checks cache
   - Found: 192.0.2.1
   - TTL: 2400 seconds remaining (40 minutes)
   - Uses cached IP immediately
   - No query to OS, resolver, or nameserver

Query After TTL Expires:

1. User visits example.com (after 1 hour)

2. Browser checks cache
   - Found but TTL = 0 (expired)
   - Asks operating system for fresh record

3. Process repeats from step 3 above

TTL at Each Cache Layer

Different systems cache DNS differently:

Browser DNS Cache:

Duration: Respects TTL, but often shorter
Chrome: Min 60 seconds, respects TTL
Firefox: Min 60 seconds, respects TTL
Safari: Respects TTL
Edge: Respects TTL

Operating System DNS Cache:

Windows: Respects TTL (default max 24 hours)
macOS: Respects TTL (default max 24 hours)
Linux: Varies by system (systemd-resolved respects TTL)

ISP/Public DNS Resolvers:

Google (8.8.8.8): Respects TTL
Cloudflare (1.1.1.1): Respects TTL
OpenDNS: Respects TTL
ISP resolvers: Usually respect TTL (but may have minimums)

TTL Decrementation

As a DNS record moves through cache layers, TTL decreases:

Authoritative nameserver response:
example.com.    3600    IN    A    192.0.2.1

After 10 seconds at resolver:
example.com.    3590    IN    A    192.0.2.1

After 5 more seconds at OS:
example.com.    3585    IN    A    192.0.2.1

When browser receives it:
example.com.    3585    IN    A    192.0.2.1

This ensures all cache layers expire at approximately the same time.

Understanding DNS Propagation

DNS propagation is the process of DNS changes spreading across the internet's caching infrastructure.

What is DNS Propagation?

DNS Propagation:

  • The time it takes for DNS changes to reach all DNS servers globally
  • Not actual "propagation" but cache expiration
  • Controlled primarily by TTL
  • Can appear inconsistent due to different cache layers

How Propagation Really Works

Common misconception:

"DNS changes propagate across DNS servers globally"

Reality:

"DNS servers gradually expire their cached records and fetch new ones based on TTL"

The truth about propagation:

When you change DNS:

Immediate (0 seconds):
- Change made on authoritative nameserver
- New queries see new value immediately
- Cached queries still use old value

Within TTL (e.g., 1 hour):
- Cached records start expiring
- Servers fetch new value when cache expires
- Mixed state: some see old, some see new

After 2x TTL (e.g., 2 hours):
- Most caches expired
- Most servers see new value
- Stragglers still possible

After 24-48 hours:
- Essentially complete
- Even non-compliant servers updated

Factors Affecting Propagation Time

1. TTL Value (Primary Factor)

TTL 60 seconds: ~5-10 minutes full propagation
TTL 300 seconds: ~15-30 minutes
TTL 3600 seconds: ~2-4 hours
TTL 86400 seconds: ~24-48 hours

2. Multiple Cache Layers

Browser cache: May hold old value
OS cache: May hold old value
Local router: May hold old value
ISP resolver: May hold old value
Public DNS resolver: May hold old value

All must expire before user sees new value

3. Non-Compliant DNS Servers

Some servers ignore TTL
Some enforce minimum TTL
Some cache longer than specified
Can extend propagation time

4. Geographic Distribution

Global DNS infrastructure is distributed
Different regions may update at different times
Based on when their local cache expires
Usually not significant (hours, not days)

Propagation Timeline Example

Scenario: Changing A record from 192.0.2.1 to 192.0.2.2

Before change:

Current TTL: 3600 seconds (1 hour)
Current value: 192.0.2.1
Cached everywhere: Yes

T = 0 (Change made):

Authoritative nameserver: 192.0.2.2 ✅
Recursive resolvers: 192.0.2.1 (cached)
End users: 192.0.2.1 (cached)

T = 30 minutes:

Authoritative nameserver: 192.0.2.2 ✅
Some recursive resolvers: 192.0.2.2 ✅ (early cache expiry)
Most recursive resolvers: 192.0.2.1 (cached)
Most end users: 192.0.2.1 (cached)

T = 1 hour (TTL expires):

Authoritative nameserver: 192.0.2.2 ✅
Most recursive resolvers: 192.0.2.2 ✅
Many end users: 192.0.2.2 ✅
Some end users: 192.0.2.1 (cached at other layers)

T = 2 hours:

Authoritative nameserver: 192.0.2.2 ✅
All recursive resolvers: 192.0.2.2 ✅
Most end users: 192.0.2.2 ✅
Few stragglers: 192.0.2.1

T = 24 hours:

Everyone: 192.0.2.2 ✅
Propagation complete

Different use cases require different TTL values.

Standard TTL Recommendations

For normal operation:

3600 seconds (1 hour)
or
7200 seconds (2 hours)

Reasoning:
- Good balance between performance and flexibility
- Allows changes to propagate within 2-4 hours
- Reduces DNS query load
- Industry standard

For stable, rarely-changing records:

86400 seconds (24 hours)
or
43200 seconds (12 hours)

Reasoning:
- Minimizes DNS queries
- Maximum caching benefit
- Suitable for established infrastructure
- Use for MX, NS records

Before planned DNS changes:

300 seconds (5 minutes)
or
600 seconds (10 minutes)

Reasoning:
- Enables quick propagation
- Allows rapid rollback if needed
- Temporary setting before changes
- Return to normal after propagation

For dynamic/frequently changing records:

60 seconds (1 minute)
or
300 seconds (5 minutes)

Reasoning:
- Enables rapid updates
- Useful for load balancing
- Dynamic DNS applications
- Failover scenarios

TTL by Record Type

A and AAAA Records:

Standard websites: 3600 (1 hour)
Load-balanced services: 300-600 (5-10 minutes)
Dynamic DNS: 60-300 (1-5 minutes)
Stable servers: 7200-86400 (2-24 hours)

CNAME Records:

Standard: 3600 (1 hour)
CDN configurations: 300-3600 (5 minutes - 1 hour)
Service integrations: 3600-7200 (1-2 hours)

MX Records:

Standard: 3600-7200 (1-2 hours)
Stable mail infrastructure: 86400 (24 hours)
During migration: 300-600 (5-10 minutes)

TXT Records:

SPF/DKIM/DMARC: 3600-7200 (1-2 hours)
Verification records: 3600 (1 hour)
Rarely changed: 86400 (24 hours)

NS Records:

Standard: 86400 (24 hours)
Very stable: 172800 (48 hours)
Never use low TTL for NS records

SOA Record Minimum TTL:

Standard: 300-3600 (5 minutes - 1 hour)
This controls NXDOMAIN (domain not found) caching
Lower value allows faster addition of new subdomains

TTL Value Comparison Table

TTL (seconds) Duration Use Case Pros Cons
60 1 minute Dynamic DNS, failover Rapid changes High query load
300 5 minutes Before migrations, active changes Fast propagation Increased queries
600 10 minutes Short-term flexibility Balance of speed/load Still higher queries
1800 30 minutes Moderate flexibility Reasonable balance Less common
3600 1 hour Recommended default Good balance Standard propagation
7200 2 hours Stable configurations Lower queries Slower changes
43200 12 hours Very stable infrastructure Very low queries Very slow changes
86400 24 hours NS records, rarely-changed Minimum queries 24-48h propagation

How to Check Your DNS TTL

Several methods exist to check current TTL values.

Method 1: Using dig (Linux/Mac)

# Check A record TTL
dig example.com

# Output:
;; ANSWER SECTION:
example.com.    3600    IN    A    192.0.2.1
                ↑
                TTL in seconds

# Check specific record type
dig example.com MX
dig example.com TXT

# Compact output
dig example.com +noall +answer

# Query specific nameserver
dig @8.8.8.8 example.com

Method 2: Using nslookup (Windows/Mac/Linux)

# Windows Command Prompt or PowerShell
nslookup -type=A example.com

# Look for "Time to live" in output

Method 3: Using online tools

DomainDetails.com:

1. Visit https://domaindetails.com
2. Enter your domain
3. View TTL for all DNS records
4. See remaining cache time

Other tools:

  • MXToolbox.com/DNSLookup
  • DNSChecker.org
  • WhatIsMyDNS.net

Method 4: Browser Developer Tools

1. Open browser DevTools (F12)
2. Network tab
3. Load website
4. Find DNS lookup
5. View timing information

Interpreting TTL Values

Fresh query (from authoritative nameserver):

example.com.    3600    IN    A    192.0.2.1

TTL = 3600 = Full TTL value
This is the original TTL

Cached query (from resolver):

example.com.    2847    IN    A    192.0.2.1

TTL = 2847 = Remaining cache time
Original TTL was higher
Cache expires in 2847 seconds (47 minutes)

Checking multiple times:

First query:  TTL = 3600
After 5 min:  TTL = 3300
After 10 min: TTL = 3000

TTL is counting down
Will expire in 3000 more seconds (50 min)

How to Change DNS TTL

Changing TTL involves updating your DNS zone file settings.

Where to Change TTL

TTL is configured at your DNS hosting provider:

If using registrar's nameservers:

GoDaddy: DNS Management → Manage Zones → Edit TTL
Namecheap: Advanced DNS → Edit TTL column
Google Domains: DNS → Custom Records → TTL dropdown

If using third-party DNS:

Cloudflare: DNS → Edit record → TTL dropdown
AWS Route 53: Hosted zones → Record sets → TTL field
DigitalOcean: Networking → Domains → TTL column

Step-by-Step TTL Change Process

Step 1: Access DNS Settings

1. Log into your DNS provider
2. Navigate to DNS management
3. Locate the domain
4. Find DNS records section

Step 2: Identify Current TTL

1. Note current TTL for each record
2. Document which records you'll change
3. Note when changes are made (for tracking)

Step 3: Update TTL Value

1. Click edit on the DNS record
2. Find TTL field (may be dropdown or text input)
3. Enter new TTL in seconds
4. Save changes

Step 4: Verify Changes

1. Query authoritative nameserver directly
2. Confirm new TTL is returned
3. Wait for old TTL to expire

Cloudflare:

Auto (default)
2 minutes (120)
5 minutes (300)
10 minutes (600)
30 minutes (1800)
1 hour (3600)
2 hours (7200)
5 hours (18000)
12 hours (43200)
1 day (86400)

AWS Route 53:

Free-form entry in seconds
Minimum: 60 (1 minute)
Maximum: 2147483647 (24+ days, not recommended)
Default: 300 (5 minutes)

Google Cloud DNS:

Free-form entry in seconds
Recommended: 300 (5 minutes) or 3600 (1 hour)
Can set per-record

TTL Strategy for DNS Changes

A proper TTL strategy prevents downtime during DNS changes.

Pre-Change TTL Reduction

Why reduce TTL before changes:

Problem: High TTL = slow propagation
Solution: Lower TTL before changes = faster propagation
Result: Minimize downtime and mixed states

The TTL change strategy:

Step 1: Lower TTL (24-48 hours before change)
Current: 3600 (1 hour)
Change to: 300 (5 minutes)
Wait: 24-48 hours for old TTL to expire

Step 2: Make DNS changes
All caches now using 5-minute TTL
Changes propagate in 5-15 minutes
Much faster than waiting hours

Step 3: Verify changes propagated
Check from multiple locations
Test website functionality
Confirm email works

Step 4: Raise TTL back to normal
Change from: 300 (5 minutes)
Change to: 3600 (1 hour)
Reduces ongoing DNS query load

Complete Migration Timeline

Example: Moving website to new server

Day -2 (48 hours before):
- Lower A record TTL from 3600 to 300
- Wait for change to propagate
- Old IP: 192.0.2.1, TTL: 300

Day 0 (Migration day):
- Update A record from 192.0.2.1 to 192.0.2.2
- TTL: 300 (already lowered)
- Change propagates in 5-15 minutes

Day 0 + 2 hours (After verification):
- Verify new IP working globally
- Check website from multiple locations
- Test all functionality

Day 0 + 4 hours (After stabilization):
- Raise TTL back from 300 to 3600
- Reduces query load
- Returns to normal operation

Day 1+:
- Monitor for any issues
- Keep old server running for 24-48 hours (safety)
- Can decommission old server after 48 hours

TTL Strategy for Different Changes

Nameserver changes:

1. Lower TTL on NS records 48-72 hours before
   From: 86400 to 3600

2. Change nameservers

3. Wait 48-72 hours for complete propagation

4. Raise TTL back
   From: 3600 to 86400

Email server changes (MX records):

1. Lower MX TTL 48 hours before
   From: 3600 to 300

2. Change MX records to new mail server

3. Keep old mail server running for 24-48 hours
   (Accepts delayed email during propagation)

4. After 24-48 hours, raise TTL
   From: 300 to 3600

5. Decommission old mail server after 72 hours

Load balancer/CDN setup:

1. Lower A record TTL
   From: 3600 to 300

2. Add new load balancer/CDN IP

3. Verify traffic distribution

4. Can keep low TTL (300-600) for dynamic load balancing
   Or raise to 3600 for stability

Emergency Rollback

If changes cause issues:

Benefit of low TTL:
- Changes propagate quickly in both directions
- Can rollback in 5-15 minutes
- Minimizes downtime

Rollback process:
1. Change DNS back to original values
2. Wait for propagation (5-15 minutes with low TTL)
3. Verify rollback successful
4. Investigate issue
5. Try again when resolved

Common TTL Values Explained

60 Seconds (1 Minute)

When to use:

  • Dynamic DNS services
  • Failover configurations
  • Load balancing with health checks
  • Development/testing environments

Pros:

  • Near-instant propagation
  • Rapid failover capability
  • Easy testing and changes

Cons:

  • Very high DNS query load
  • Can overwhelm DNS infrastructure
  • Potential cost increase (some DNS providers charge per query)
  • Battery drain on mobile devices

Example use case:

Home network with dynamic IP
- IP changes frequently
- Need quick updates
- Personal use (low query volume)

300 Seconds (5 Minutes)

When to use:

  • Before planned DNS changes
  • Active migration periods
  • Services requiring quick failover
  • Temporary configuration

Pros:

  • Fast propagation (5-15 minutes)
  • Manageable query load
  • Good for migrations
  • Quick rollback if needed

Cons:

  • Higher query volume than standard
  • Not ideal for long-term use
  • Slight performance impact

Example use case:

Website migration in progress
- Moving to new hosting
- Need quick propagation
- Will raise TTL after migration

3600 Seconds (1 Hour)

When to use:

  • Standard production websites
  • Most DNS records
  • General purpose configuration
  • Balanced approach

Pros:

  • Industry standard
  • Good performance/flexibility balance
  • Reasonable propagation time (2-4 hours)
  • Low enough for changes, high enough for caching

Cons:

  • Changes take 2-4 hours to fully propagate
  • Not ideal for dynamic services

Example use case:

Standard business website
- Stable infrastructure
- Occasional changes
- Good performance

86400 Seconds (24 Hours)

When to use:

  • NS records
  • Very stable infrastructure
  • Rarely changed records
  • Maximum caching benefit

Pros:

  • Minimum DNS query load
  • Maximum caching efficiency
  • Best performance
  • Lowest cost

Cons:

  • Changes take 24-48 hours to propagate
  • Difficult to rollback quickly
  • Not suitable for dynamic content

Example use case:

Nameserver (NS) records
- Almost never change
- Want maximum stability
- Propagation time not critical

TTL and Performance Impact

TTL settings affect both DNS infrastructure and end-user performance.

Performance Benefits of Higher TTL

Reduced DNS queries:

TTL 60 (1 min): 1,440 queries per day per cache
TTL 3600 (1 hour): 24 queries per day per cache
TTL 86400 (24 hours): 1 query per day per cache

86400 TTL = 99.9% fewer queries than 60 TTL

Faster page load:

Cached DNS: ~0ms (instant)
Uncached DNS: ~20-100ms (query time)

Higher TTL = More requests use cache = Faster overall

Lower costs:

Some DNS providers charge per query:
- Amazon Route 53: $0.40 per million queries
- Google Cloud DNS: $0.20 per million queries

Higher TTL = Fewer queries = Lower costs

Reduced DNS server load:

Your authoritative nameservers receive fewer queries
Lower bandwidth usage
Lower server resource usage
Improved reliability

Performance Drawbacks of Lower TTL

Increased query volume:

TTL 60: Queries every minute
TTL 300: Queries every 5 minutes
TTL 3600: Queries every hour

Lower TTL = More frequent queries

Battery drain (mobile):

Mobile devices make DNS queries
Lower TTL = More frequent queries
More queries = More battery usage
Noticeable with TTL < 300

Potential resolver limits:

Some resolvers limit query frequency
Very low TTL may hit rate limits
Can cause temporary resolution failures

Finding the Right Balance

Consider these factors:

  1. Change frequency

    • Frequent changes: Lower TTL (300-600)
    • Rare changes: Higher TTL (3600-86400)
  2. Service criticality

    • Mission critical: Higher TTL for stability
    • Development: Lower TTL for flexibility
  3. Infrastructure stability

    • Stable servers: Higher TTL
    • Dynamic/load-balanced: Lower TTL
  4. Cost considerations

    • High traffic: Higher TTL reduces costs
    • Low traffic: TTL less impactful
  5. Geographic distribution

    • Global audience: Moderate TTL (3600)
    • Local audience: Can use higher TTL

Recommended balanced approach:

Most situations: 3600 (1 hour)
- Good caching benefits
- Reasonable change propagation
- Industry standard
- Works for 90% of use cases

Troubleshooting Propagation Issues

Common problems and solutions.

Problem 1: Changes Not Propagating

Symptoms:

  • DNS changes made hours ago
  • Still seeing old values
  • Some locations see new, others see old

Diagnosis:

Check actual TTL:

dig example.com

# Look for TTL value in answer
example.com.    2847    IN    A    192.0.2.1

Solutions:

  1. Wait for TTL to expire

    Current TTL: 2847 seconds (47 minutes)
    Must wait: 47 minutes + propagation buffer
    Total wait: ~1-2 hours
    
  2. Check if changes were actually saved

    Query authoritative nameserver directly:
    dig @ns1.yournamserver.com example.com
    
    Verify new value is returned
    If old value returned, changes not saved
    
  3. Flush local caches

    Browser: Clear browser cache
    OS: Flush DNS cache
      Windows: ipconfig /flushdns
      Mac: sudo dscacheutil -flushcache
      Linux: sudo systemd-resolve --flush-caches
    

Problem 2: Propagation Too Slow

Symptoms:

  • Changes taking many hours
  • Need faster propagation
  • Migration delayed

Solutions:

  1. Lower TTL before changes

    Should have lowered 24-48h before
    If not done: Must wait current TTL to expire
    Then lower TTL, then make changes
    
  2. Use multiple DNS checkers

    whatsmydns.net
    dnschecker.org
    Check from multiple locations
    Identify which regions are slow
    
  3. Wait 2x the original TTL

    Original TTL: 3600 (1 hour)
    Wait time: 7200 (2 hours)
    Accounts for edge cases
    

Problem 3: Mixed/Inconsistent Results

Symptoms:

  • Some users see old values
  • Others see new values
  • Inconsistent behavior

Explanation:

This is normal during propagation
Different cache layers expire at different times
Will resolve after TTL period

Solutions:

  1. Wait for full propagation

    Time = 2x original TTL
    After this, should be consistent
    
  2. Identify affected users

    Ask them to flush DNS cache
    Temporary workaround
    Will fully resolve after propagation
    
  3. Monitor propagation status

    Use DNS propagation checker tools
    Track which regions updated
    Communicate status to users
    

Problem 4: Changes Reverted

Symptoms:

  • Changes were working
  • Suddenly reverted to old values
  • DNS provider shows new values

Possible causes:

  1. Caching proxy/CDN

    Check CDN configuration
    CDN may cache DNS independently
    Purge CDN cache
    
  2. Secondary nameservers not updated

    Changes made to primary NS
    Secondaries not synced
    Wait for SOA refresh interval
    Or manually notify secondaries
    
  3. DNSSEC issues

    If DNSSEC enabled, check signatures
    Invalid signatures cause resolution failures
    May fall back to old cached values
    

TTL Best Practices

Best Practice 1: Use Appropriate Defaults

A/AAAA records: 3600 (1 hour)
MX records: 3600-7200 (1-2 hours)
TXT records: 3600-7200 (1-2 hours)
NS records: 86400 (24 hours)
CNAME records: 3600 (1 hour)

Best Practice 2: Plan Ahead for Changes

Timeline:
Day -2: Lower TTL to 300
Day 0: Make changes
Day 0+2h: Verify propagation
Day 0+4h: Raise TTL back to 3600

Best Practice 3: Document TTL Values

Keep records of:

  • Current TTL for each record
  • When TTL was last changed
  • Reason for current TTL
  • Planned future changes

Best Practice 4: Monitor During Changes

Use propagation checkers
Monitor from multiple locations
Check for error patterns
Have rollback plan ready

Best Practice 5: Never Use Extremely Low TTL

Avoid: TTL < 60 seconds
Reason: High load, unstable, risky
Exception: Very specific use cases only

Best Practice 6: Consider Your Audience

Global audience: 3600 (1 hour)
Regional: 3600-7200 (1-2 hours)
Local: 7200+ (2+ hours)

Best Practice 7: Test Before Production

Test DNS changes in staging
Use low TTL in staging (300)
Verify all services work
Then apply to production

Frequently Asked Questions

What is a good TTL for DNS records?

For most use cases, 3600 seconds (1 hour) is the recommended TTL. This provides a good balance between caching efficiency and change flexibility. Use 300-600 seconds (5-10 minutes) before planned changes, and 86400 seconds (24 hours) for very stable records like NS records.

How long does it take for DNS changes to propagate?

DNS propagation time depends on your TTL value. With a 3600-second TTL, expect 2-4 hours for full propagation. With a 300-second TTL, propagation takes 15-30 minutes. For fastest propagation, lower your TTL to 300 seconds 24-48 hours before making changes.

Why is my DNS not updating?

DNS changes may not appear immediately because records are cached for the TTL duration. Check your current TTL value using dig example.com and wait for that time period to elapse. Also verify that changes were actually saved at your DNS provider by querying the authoritative nameserver directly.

What happens if I set TTL too low?

Very low TTL (under 300 seconds) increases DNS query load significantly, can increase costs with some DNS providers, may drain battery on mobile devices, and can overwhelm DNS infrastructure. Use low TTL only temporarily during migrations or for specific use cases requiring rapid updates.

Can I have different TTLs for different records?

Yes, each DNS record can have its own TTL value. It's common to use longer TTL (86400) for stable NS records, moderate TTL (3600) for A records, and shorter TTL (300) for records you're actively changing. Set TTL per-record based on how frequently each record changes.

Should I lower TTL before changing nameservers?

Yes, absolutely. Lower NS record TTL from 86400 to 3600-7200 at least 48-72 hours before changing nameservers. This ensures the old nameserver information expires from caches faster, allowing quicker propagation of the new nameservers. Without this step, nameserver changes can take days to fully propagate.

How do I check my current DNS TTL?

Use the dig command on Linux/Mac: dig example.com and look for the number before "IN" in the answer section. On Windows, use nslookup -type=A example.com. You can also use online tools like DomainDetails.com, MXToolbox, or DNSChecker to view TTL values.

The minimum recommended TTL for production environments is 300 seconds (5 minutes). Avoid going below 60 seconds unless absolutely necessary. Most DNS providers enforce a minimum TTL of 60 seconds. Extremely low TTL values can cause performance and reliability issues.

Does TTL affect SEO?

TTL has no direct impact on SEO rankings. However, very low TTL can indirectly affect SEO through slower page load times (more DNS queries) and potential downtime during DNS issues. Using appropriate TTL (3600 seconds) ensures stable, fast DNS resolution which contributes to good user experience.

How long should I wait after changing TTL?

After lowering TTL, wait at least 2x the original TTL before making DNS changes. For example, if your original TTL was 3600 seconds, wait at least 7200 seconds (2 hours) to ensure the new lower TTL has propagated. After making DNS changes, wait 2x the new TTL before raising it back to normal.

Key Takeaways

  • TTL controls cache duration - Measured in seconds, determines how long DNS records are cached
  • Default TTL should be 3600 - 1 hour provides the best balance for most use cases
  • Lower TTL before changes - Reduce to 300 seconds 24-48 hours before DNS changes
  • Propagation = cache expiration - Not actual propagation, but caches expiring based on TTL
  • Higher TTL = better performance - Fewer queries, faster load times, lower costs
  • Lower TTL = faster changes - Quick propagation but increased query load
  • Wait 2x TTL for full propagation - Accounts for all cache layers and edge cases
  • NS records need high TTL - Use 86400 seconds for nameserver records
  • Plan migrations carefully - Lower TTL → make changes → verify → raise TTL
  • Never use extremely low TTL - Avoid under 60 seconds in production
  • Check TTL with dig command - dig example.com shows current TTL and remaining cache time
  • Document your TTL strategy - Track values, changes, and reasons

Next Steps

Check Your DNS TTL

  1. View Current TTL

    • Visit DomainDetails.com
    • Enter your domain
    • View TTL for all DNS records
    • Compare against recommendations
  2. Verify TTL Configuration

    • Check if TTL matches your needs
    • Identify records with inappropriate TTL
    • Plan TTL optimization

Optimize Your DNS TTL

  1. Audit Current Configuration

    • List all domains and their TTL values
    • Identify records with very low or very high TTL
    • Determine if changes are needed
  2. Adjust TTL Values

    • Change to recommended values
    • Document changes made
    • Monitor for any issues
  3. Set Up Monitoring

    • Track DNS resolution times
    • Monitor propagation during changes
    • Alert on DNS failures

Plan Your Next DNS Change

  1. Create Migration Plan

    • Schedule change date
    • Lower TTL 48 hours before
    • Document rollback procedure
    • Communicate with stakeholders
  2. Follow TTL Strategy

    Day -2: Lower TTL to 300
    Day 0: Make DNS changes
    Day 0+2h: Verify propagation
    Day 0+4h: Raise TTL to 3600
    
  3. Monitor and Verify

    • Use propagation checker tools
    • Test from multiple locations
    • Verify all services working
    • Document results

Monitor DNS with DomainDetails Pro

Upgrade to DomainDetails Pro for comprehensive DNS monitoring:

  • TTL tracking - Monitor TTL values across all records
  • Propagation monitoring - Track DNS changes globally
  • Change alerts - Get notified when DNS records change
  • Historical data - See TTL and DNS changes over time
  • Bulk checking - Monitor multiple domains at once

Start Your Free Trial →

Research Sources

  1. RFC 1035 - Domain Names - Implementation and Specification
  2. RFC 2181 - Clarifications to the DNS Specification (TTL section)
  3. IETF DNS Operations Working Group - TTL Best Practices
  4. Cloudflare - Understanding DNS TTL
  5. AWS Route 53 - TTL Documentation
  6. Google Cloud DNS - TTL Best Practices
  7. ICANN - DNS TTL Guidelines
  8. DNS Performance Studies - TTL Impact Analysis
  9. Major DNS Provider Documentation (Cloudflare, AWS, Google)
  10. Internet Systems Consortium - BIND TTL Configuration