Content · Web Development · HTML

HTML dns-prefetch and modulepreload Links

Learn dns-prefetch and modulepreload links with a clear explanation, practical HTML markup, a walkthrough and common mistakes to avoid.

1 views Published Oct 19, 2026 Updated Oct 19, 2026 Admin

A small piece of HTML can change what a visitor sees or how the browser understands a page. In this lesson, you will explore dns-prefetch and modulepreload links using a short example that you can inspect and change.

The Idea in Plain English


Modulepreload lets the browser fetch and parse a JavaScript module before normal module discovery. It is intended for module graphs, not classic scripts.

You can test this using a small local HTML file. Change one part at a time and check the result in the browser before adding more code.

A Working Example


Read the sample once before copying it. Notice the element names and attribute values, then compare them with the explanation below.

<head>
    <link rel="modulepreload" href="/js/dashboard.js">
    <script type="module" src="/js/dashboard.js"></script>
</head>

What Each Part Does


  • The link element declares a relationship such as a stylesheet or alternate language.
  • The script element can load code or hold data; the type attribute tells the browser how to treat its contents.
  • The head holds page metadata, not the visible lesson content.
  • rel describes the relationship between the current page and a linked resource.
  • href is the URL or fragment destination of a link.
  • type chooses the relevant kind of script, input, media or embedded object.

The browser can prepare the module; module code still executes according to the module loading rules.

Keep the example small while learning. Once it behaves as expected, try it inside a larger page and make sure the URLs, files and surrounding HTML are correct.

Try It Yourself


Try this next: add a modulepreload for an entry dependency. Then inspect the page and explain what changed.

Common Beginner Mistakes


  • Using modulepreload on an unrelated script or expecting the hint by itself to execute JavaScript.
  • Copying the code without checking whether its linked files or endpoints exist; sample addresses and file paths need real resources.
  • Choosing a tag only because its default appearance looks right, without checking whether it describes the content correctly.

Key Takeaways


  • Modulepreload lets the browser fetch and parse a JavaScript module before normal module discovery. It is intended for module graphs, not classic scripts.
  • The browser can prepare the module; module code still executes according to the module loading rules.
  • Test the markup in a browser, and check accessibility and real-world behavior where relevant.
Share this resourceSend this page to someone who may find it useful.