Search code examples
htmlperformancednsprefetch

DNS prefetching of subdomains


Do I have to prefetch a subdomain separately?

E.g. when I have <link rel="dns-prefetch" href="//example.com"> do I need an additional tag for //static.example.com as well?


Solution

  • I've made the following test: first created simple HTML page

    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="dns-prefetch" href="//example.com/">     
      </head>
      <body>
        <a href="http://example.com">Test link</a>
        <a href="http://sub.example.com">Test link 2</a>
      </body>
    </html>
    

    For the domain and subdomain for which I own dns nameserver. Then I cleaned dns cache and opened this page in firefox private window. I observed in the logs of my dns nameserver that only request for "example.com" was made and no requests for subdomains.

    Then I changed the page as follows:

    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="dns-prefetch" href="//example.com/">     
        <link rel="dns-prefetch" href="//sub.example.com/">
      </head>
      <body>
        <a href="http://example.com">Test link</a>
        <a href="http://sub.example.com">Test link 2</a>
      </body>
    </html>
    

    Again cleared dns cache and opened this page in firefox private window. Now I observed that dns requests we made for both domain and it's subdomain.

    So I can conclude that yes - you have to prefetch subdomains separately.