The 'Stalled' status for Time To First Byte (TTFB) in Google Chrome indicates that the browser is waiting indefinitely for a response from the server, often due to DNS resolution failures, connection timeouts, or blocked requests. Resolving this requires checking your network connectivity, verifying DNS settings, and ensuring that no extensions or security software are interfering with the initial handshake.
Understanding the Stalled TTFB State
When you inspect network performance in Chrome’s DevTools, a request showing as "Stalled" means the browser has not yet begun sending data to the server. This phase occurs before any network traffic is generated. It typically points to issues within the local machine rather than the remote server. The browser is either queuing the request, waiting for a previous request to finish, or failing to resolve the domain name quickly enough.
This delay can be caused by several factors. Common culprits include exhausted connection pools, where too many concurrent requests are already active. Another frequent cause is DNS resolution latency, especially if the system struggles to translate the hostname into an IP address. Additionally, background processes or aggressive firewall rules might block the initial TCP connection attempt, leaving the browser in a holding pattern.
Distinguishing Stalled from Other States
It is crucial to differentiate between "Stalled," "Waiting," and "Downloading." A "Waiting" state (often labeled TTFB) means the connection was established, but the server is processing the request. In contrast, "Stalled" happens before the connection is even made. If you see "Stalled," the problem lies in getting the request out of your browser and onto the wire. Understanding this distinction helps narrow down whether the issue is local configuration or server-side performance.
Step-by-Step Troubleshooting Guide
To resolve the stalled issue, follow these systematic steps to isolate the root cause. Start with the simplest solutions and move toward more complex network configurations.
- Clear Browser Cache and Cookies: Corrupted cache files can sometimes interfere with network requests. Navigate to
Settings>Privacy and security>Delete browsing data. Select cached images and files, then restart Chrome. - Disable Extensions: Third-party extensions, particularly ad blockers or privacy tools, may intercept and stall requests. Go to
chrome://extensions/, disable all extensions, and reload the page. If the issue resolves, re-enable extensions one by one to identify the culprit. - Check Network Connectivity: Ensure your internet connection is stable. Try loading other websites to rule out general connectivity issues. If other sites load slowly, the problem may be with your ISP or router.
- Flush DNS Cache: An outdated or corrupted DNS cache can cause resolution delays. On Windows, open Command Prompt and run
ipconfig /flushdns. On macOS, usedscacheutil -flushcachefollowed bysudo killall -HUP mDNSResponder.
Advanced DNS and Network Configurations
If basic troubleshooting does not resolve the issue, deeper network configurations may be at fault. DNS resolution is a common bottleneck for TTFB stalls. Modern browsers support DNS-over-HTTPS (DoH), which encrypts DNS queries. However, misconfigured DoH settings can lead to resolution failures.
Investigating DNS-over-HTTPS Settings
Chrome allows users to enable secure DNS via settings. If your provider’s DoH endpoint is unreachable, requests may stall while waiting for a fallback. Check your DNS settings by navigating to Settings > Privacy and security > Security > Use secure DNS. Try switching between "With your current service provider" and "Custom" providers like Cloudflare or Google Public DNS. See our guide on Is DNS-over-HTTPS Dependent on Regular DNS Queries? for more details on how these settings interact.
Checking for Connection Limits
Browsers enforce limits on the number of concurrent connections per domain. If a site uses many subdomains or resources, you might hit this limit, causing new requests to stall. You can monitor this in DevTools under the Network tab. Look for multiple pending requests. Reducing the number of parallel requests or optimizing resource loading can alleviate this pressure.
Firewall and Security Software Interference
Local security software, including antivirus programs and firewalls, often inspect outgoing traffic. Some of these tools may delay requests to scan them, resulting in a stalled TTFB. Temporarily disable your firewall or antivirus to test if the issue persists. If it does, add Chrome or your browser executable to the exclusion list.
Additionally, corporate networks or public Wi-Fi environments may have strict proxy settings. Incorrect proxy configurations can prevent Chrome from establishing direct connections. Verify your proxy settings in Settings > System > Open computer proxy settings. Ensure that "Automatically detect settings" is enabled unless a specific proxy is required.
Server-Side Considerations
While less common for "Stalled" states, server misconfigurations can sometimes manifest as client-side stalls. For example, if a server drops TCP connections immediately after the handshake, Chrome may interpret this as a stall. Check server logs for dropped connections or timeout errors. If you control the server, ensure that keep-alive settings are configured correctly to maintain persistent connections.
For further insights on DNS-related delays, refer to Unable to resolve DNS manually and Unable to resolve host: No address associated with hostname error.
Frequently Asked Questions
Why does my TTFB show as stalled only on specific websites?
This usually indicates a domain-specific issue, such as problematic DNS records or server-side restrictions. Check if the website uses HTTP/2 or HTTP/3, as protocol mismatches can cause stalls. Also, verify if the site blocks certain user agents or regions.
Can disabling JavaScript fix a stalled TTFB?
No, JavaScript execution happens after the HTML is received, so it does not affect the initial TTFB. However, heavy scripts might delay subsequent requests. Disabling JavaScript will not resolve a pre-connection stall issue.
How do I check if my ISP is throttling my connection?
Run a speed test using different services and compare results. Use tools like ping or traceroute to check for packet loss or high latency to specific servers. If latency spikes occur during peak hours, throttling might be the cause.
What is the difference between stalled and queued requests?
A "stalled" request is ready to send but cannot because of local constraints like DNS or connection limits. A "queued" request is still being prepared by the browser or application layer. Both result in delayed responses but originate from different stages of the request lifecycle.
Should I switch to a public DNS like Google or Cloudflare?
Switching to a public DNS can improve resolution times and reliability if your ISP’s DNS is slow or unreliable. Configure this in your OS network settings or within Chrome’s secure DNS options. Monitor performance improvements after making the change.