Skip to main content
HTML Validation

HTTP resource not retrievable. The HTTP status from the remote server was: 504.

About This HTML Issue

When you submit a URL to the W3C HTML Validator, the validator acts as an HTTP client: it sends a request to your server, downloads the HTML response, and then checks it for errors. A 504 Gateway Timeout status means the validator’s request never received a timely response. The connection either timed out at your server, at an intermediary proxy or CDN, or somewhere along the network path.

This is fundamentally different from an HTML validation error. Your markup isn’t being evaluated at all — the validator simply cannot reach it. Until the retrieval succeeds, no validation can take place.

Common Causes

Several things can prevent the validator from fetching your page:

  • Slow server response — If your page takes a long time to generate (heavy database queries, unoptimized server-side code, resource-intensive CMS), the validator may time out before receiving a response.
  • Firewall or WAF rules — A Web Application Firewall or security plugin may be blocking requests from the validator’s IP addresses or user agent because they don’t look like typical browser traffic.
  • Geographic or IP-based restrictions — If your server restricts access by region or IP range, the validator (hosted in a different location) may be blocked.
  • Private or local network — Sites running on localhost, an intranet, or behind a VPN are not reachable from the public internet.
  • Reverse proxy or CDN misconfiguration — An intermediary like Nginx, Cloudflare, or a load balancer may be timing out while waiting for your origin server.
  • Server is down or overloaded — The server may simply be unresponsive at the time of the request.

How to Fix It

1. Verify your site is publicly accessible

Open your URL in a browser from a different network (for example, using your phone’s mobile data instead of your office Wi-Fi). If you can’t reach it externally, the validator can’t either.

2. Check server response time

Your page should respond within a few seconds. Use tools like curl to test response time from the command line:

curl -o /dev/null -s -w "HTTP Status: %{http_code}\nTime: %{time_total}s\n" https://example.com/your-page

If the response takes more than 10–15 seconds, consider optimizing your server-side code, enabling caching, or upgrading your hosting.

3. Check firewall and security rules

Review your server’s firewall settings, .htaccess rules, or security plugin configuration. Ensure you’re not blocking requests based on user agent strings or IP ranges that would affect the validator. The W3C Validator identifies itself with a specific User-Agent header — make sure it’s not being rejected.

4. Use direct input as a workaround

If you cannot make your site publicly accessible (e.g., it’s a staging environment), you can validate your HTML by pasting it directly into the validator instead of submitting a URL.

Go to https://validator.w3.org/#validate_by_input and paste your HTML source into the text area. This bypasses the network retrieval entirely.

Examples

Validating a page on a private network (will fail with 504)

Submitting a URL like the following to the W3C Validator will fail because the validator cannot reach private or local addresses:

http://192.168.1.50/index.html
http://localhost:3000/about.html
http://my-staging-site.internal/page.html

Using direct input instead (works)

Copy your HTML source and paste it into the validator’s “Validate by Direct Input” tab:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>My Page</title>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>This content can be validated by pasting it directly.</p>
  </body>
</html>

This approach lets you validate your markup regardless of server accessibility.

When to Contact Your Hosting Provider

If your site is intended to be publicly accessible but the validator consistently receives a 504 error, the issue likely lies with your server infrastructure. Contact your web hosting provider or server administrator and ask them to investigate:

  • Whether a reverse proxy (Nginx, Apache, or a CDN) is timing out
  • Whether any rate limiting or bot protection is blocking automated requests
  • Whether the origin server is responding slowly under load

Once your server responds reliably to external HTTP requests, the W3C Validator will be able to fetch and validate your HTML normally.

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Help us improve our guides

Was this guide helpful?
🌍 Trusted by teams worldwide

Validate at scale.
Ship accessible websites, faster.

Automated HTML & accessibility validation for large sites. Check thousands of pages against WCAG guidelines and W3C standards in minutes, not days.

Scheduled Reports
API Access
Open Source Standards
$7 / 7 days

Pro Trial

Full Pro access. Cancel anytime.

Start Pro Trial →

Join teams across 40+ countries