X-UA-Compatible
The HTTP X-UA-Compatible response header is an unofficial HTTP header originally introduced to control the document rendering mode in Internet Explorer.
Legacy
This header was designed for Internet Explorer. Modern browsers ignore this header. Many servers still send the header as a defense-in-depth measure for older client environments.
Usage
The X-UA-Compatible header instructed Internet Explorer to use a specific rendering engine version when displaying a page. Internet Explorer included multiple rendering engines for backward compatibility, and this header allowed web developers to override the default engine selection.
The most common value, IE=edge, directed Internet Explorer
to use the highest available rendering mode. This became the
standard recommendation because the latest rendering mode
provided the best standards compliance. Without this header
or a matching <!DOCTYPE> declaration, Internet Explorer
fell back to older compatibility modes, often breaking
modern layouts.
The header performs the same function as the HTML meta tag equivalent:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
The meta tag takes precedence over the HTTP header when both are present, per Microsoft's Internet Explorer Document Compatibility specification. Setting the value at the HTTP level is still common practice for consistency across pages lacking the meta tag.
With Internet Explorer discontinued and replaced by Microsoft Edge (which uses the Chromium rendering engine), the header has no effect in modern browsers. Servers continue sending the header as a backward-compatibility measure for environments where legacy browser access is a possibility.
Note
The "X-" naming convention for HTTP headers, "X" referring to "experimental", has been deprecated and needs to be transitioned to the formal naming convention for HTTP headers.
Values
IE=edge
The IE=edge value directed Internet Explorer to use the
highest rendering mode available. This was the recommended
value for all modern web applications targeting Internet
Explorer.
IE=11
The IE=11 value forced Internet Explorer to use the
IE11 standards mode, providing support for HTML5 and CSS3
features.
IE=10
The IE=10 value forced the IE10 rendering engine,
supporting HTML5 and CSS3 with slightly fewer features
than IE11 mode.
IE=9
The IE=9 value forced the IE9 rendering engine, adding
support for HTML5 (draft), SVG 1.0, and limited CSS3
features.
IE=EmulateIE{version}
The EmulateIE values (such as IE=EmulateIE11,
IE=EmulateIE10, IE=EmulateIE9, IE=EmulateIE8,
IE=EmulateIE7) directed Internet Explorer to consult
the <!DOCTYPE> declaration. Pages with a
standards-compliant DOCTYPE rendered in the specified
version mode, while pages without a DOCTYPE rendered in
quirks mode (IE5).
IE=7, IE=8
These values locked the rendering engine to a specific older version regardless of the DOCTYPE declaration.
IE=5
The IE=5 value forced quirks mode, replicating the
behavior of Internet Explorer 5. This was rarely used
intentionally but appeared in legacy environments.
chrome=1
The chrome=1 value activated Google Chrome Frame, a
browser plugin replacing the Internet Explorer
rendering engine with the Chrome engine. Chrome Frame has
been discontinued.
Example
The most widely deployed value directs Internet Explorer to use its latest rendering mode, avoiding compatibility mode fallback.
X-UA-Compatible: IE=edge
A value combining edge mode with the Chrome Frame plugin activation. If Chrome Frame was installed, the Chrome rendering engine took over. Otherwise, Internet Explorer used edge mode.
X-UA-Compatible: IE=edge,chrome=1
The same directive delivered through an HTML meta tag,
commonly found in the <head> section of legacy web
applications.
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Takeaway
The X-UA-Compatible response header controlled the
rendering mode in Internet Explorer. With Internet Explorer
discontinued, the IE=edge value remains the only
practical setting for servers continuing to send this
header as a backward-compatibility measure.