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?
- How DNS TTL Works
- Understanding DNS Propagation
- Recommended TTL Values
- How to Check Your DNS TTL
- How to Change DNS TTL
- TTL Strategy for DNS Changes
- Common TTL Values Explained
- TTL and Performance Impact
- Troubleshooting Propagation Issues
- TTL Best Practices
- Frequently Asked Questions
- Key Takeaways
- Next Steps
- Research Sources
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:
-
Reduces DNS query load
- Caching reduces queries to authoritative nameservers
- Saves bandwidth and server resources
- Improves DNS system scalability
-
Improves performance
- Cached responses are faster
- Reduces latency for end users
- Decreases dependency on DNS infrastructure
-
Enables controlled updates
- Lower TTL = faster propagation
- Higher TTL = more stable caching
- Admins control change speed
-
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
Recommended TTL Values
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
Common TTL Settings at Popular Providers
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:
-
Change frequency
- Frequent changes: Lower TTL (300-600)
- Rare changes: Higher TTL (3600-86400)
-
Service criticality
- Mission critical: Higher TTL for stability
- Development: Lower TTL for flexibility
-
Infrastructure stability
- Stable servers: Higher TTL
- Dynamic/load-balanced: Lower TTL
-
Cost considerations
- High traffic: Higher TTL reduces costs
- Low traffic: TTL less impactful
-
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:
-
Wait for TTL to expire
Current TTL: 2847 seconds (47 minutes) Must wait: 47 minutes + propagation buffer Total wait: ~1-2 hours -
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 -
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:
-
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 -
Use multiple DNS checkers
whatsmydns.net dnschecker.org Check from multiple locations Identify which regions are slow -
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:
-
Wait for full propagation
Time = 2x original TTL After this, should be consistent -
Identify affected users
Ask them to flush DNS cache Temporary workaround Will fully resolve after propagation -
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:
-
Caching proxy/CDN
Check CDN configuration CDN may cache DNS independently Purge CDN cache -
Secondary nameservers not updated
Changes made to primary NS Secondaries not synced Wait for SOA refresh interval Or manually notify secondaries -
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.
What's the minimum recommended TTL?
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.comshows current TTL and remaining cache time - Document your TTL strategy - Track values, changes, and reasons
Next Steps
Check Your DNS TTL
-
View Current TTL
- Visit DomainDetails.com
- Enter your domain
- View TTL for all DNS records
- Compare against recommendations
-
Verify TTL Configuration
- Check if TTL matches your needs
- Identify records with inappropriate TTL
- Plan TTL optimization
Optimize Your DNS TTL
-
Audit Current Configuration
- List all domains and their TTL values
- Identify records with very low or very high TTL
- Determine if changes are needed
-
Adjust TTL Values
- Change to recommended values
- Document changes made
- Monitor for any issues
-
Set Up Monitoring
- Track DNS resolution times
- Monitor propagation during changes
- Alert on DNS failures
Plan Your Next DNS Change
-
Create Migration Plan
- Schedule change date
- Lower TTL 48 hours before
- Document rollback procedure
- Communicate with stakeholders
-
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 -
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
Related Articles
- DNS Record Types Explained: A, CNAME, MX, TXT & More
- What is DNS and How Does It Work?
- How Do Domain Names Work?
- Understanding EPP Status Codes
Research Sources
- RFC 1035 - Domain Names - Implementation and Specification
- RFC 2181 - Clarifications to the DNS Specification (TTL section)
- IETF DNS Operations Working Group - TTL Best Practices
- Cloudflare - Understanding DNS TTL
- AWS Route 53 - TTL Documentation
- Google Cloud DNS - TTL Best Practices
- ICANN - DNS TTL Guidelines
- DNS Performance Studies - TTL Impact Analysis
- Major DNS Provider Documentation (Cloudflare, AWS, Google)
- Internet Systems Consortium - BIND TTL Configuration