Should I use the .htm or .html file extension? Which one is correct?
Categories:
.htm vs .html: Which File Extension Should You Use?

Explore the historical context, technical differences, and modern best practices for choosing between the .htm and .html file extensions for your web pages.
When creating web pages, you've likely encountered two common file extensions: .htm
and .html
. This often leads to confusion, especially for newcomers to web development. While both extensions serve the same purpose—identifying a file as an HTML document—their origins and current usage differ slightly. This article will demystify these extensions, explain their historical context, and provide guidance on which one to use in modern web development.
Historical Context: The 8.3 Filename Limit
The primary reason for the existence of the .htm
extension dates back to the early days of computing, specifically the limitations imposed by older operating systems like MS-DOS and early versions of Windows. These systems enforced an "8.3 filename" convention, meaning a filename could have a maximum of eight characters, followed by a period, and then a three-character extension.
When HTML emerged, the natural extension would have been .html
. However, due to the 8.3 limit, developers on these systems were forced to truncate html
to htm
. Unix-like systems, which did not have this limitation, adopted .html
from the start. As operating systems evolved and the 8.3 limit became obsolete, the .html
extension became the de facto standard, though .htm
persisted due to legacy systems and developer habits.
flowchart TD A[Early OS (e.g., MS-DOS)] --> B{8.3 Filename Limit?} B -- Yes --> C[HTML -> HTM] B -- No --> D[HTML -> HTML] C --> E[Modern OS (No Limit)] D --> E E --> F[Both HTM & HTML Supported] F --> G{Current Best Practice} G -- Standardize --> H[.html]
Evolution of HTML File Extensions
Technical Differences and Browser Compatibility
From a technical standpoint, there is absolutely no difference between a file named index.htm
and index.html
in how modern web browsers interpret them. Both are recognized as HTML documents and are rendered identically. Web servers are typically configured to serve both extensions as HTML content.
The MIME type (Multipurpose Internet Mail Extensions) for both .htm
and .html
files is text/html
. This is what tells the browser how to interpret the file's content. Therefore, you won't encounter any rendering issues or compatibility problems by using one over the other in a modern web environment.
Modern Best Practices and Recommendations
Given that there are no technical advantages to using .htm
over .html
in contemporary web development, the strong recommendation is to use the .html
extension. Here's why:
- Clarity and Readability:
.html
is more explicit and immediately recognizable as an HTML document. The full extension leaves no ambiguity. - Industry Standard: The vast majority of new web projects and frameworks default to
.html
. Adhering to this standard makes your codebase more familiar and maintainable for other developers. - Consistency: Using
.html
aligns with other common four-character extensions like.css
,.js
,.php
, etc., creating a more consistent naming convention across your project. - Future-Proofing: While
.htm
is unlikely to be deprecated,.html
is the universally accepted and preferred standard, ensuring better long-term compatibility and understanding.
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My HTML Page</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
A standard HTML file using the recommended .html
extension.
.htm
files, it's generally best to maintain that convention unless there's a compelling reason to refactor. Changing extensions across an entire site can lead to broken links and SEO issues if not handled carefully with proper redirects.