模板里那行 x-ua-compatible 还能不能删:27 个首页只有 2 个还在发

2026-09-06 抓取的 27 个首页里,只有 2 个还带着 x-ua-compatible 这个 meta 标签,以响应头形式发的一个都没有。MDN 说浏览器现在忽略它,微软说这个功能不会在任何版本的 Edge 上实现。留着它的两个站,取值和位置都对不上。

抓取与收录7 分钟读完1377 次阅读
模板里那行 x-ua-compatible 还能不能删:27 个首页只有 2 个还在发

实测 · 2026-09-06 · 27 个首页 · 每站一次请求 · 一个为已退役浏览器准备的标签

样本 / 口径:2026-09-06 当天对 30 个首页各发一次 GET,桌面 Chrome UA(Chrome/128,macOS),跟随跳转,不执行 JavaScript,出口在日本。stackoverflow.com、medium.com、www.reddit.com 三个站返回 403,剔除后纳入 27 个。

多数人第一次注意到 x-ua-compatible,是在一份继承来的模板、或者一段没人动过的反向代理配置里看见了那一行,然后想知道能不能删。27 个首页今天只有 2 个还在发这个 meta 标签,以响应头形式发的一个都没有。MDN 说现在的浏览器已经忽略这条指令。留着它的两个站,取值还不一样。

怎么测的

每个站一次 GET,用桌面 Chrome UA 而不是 Googlebot,跟随跳转,原始 HTML 先落盘再解析。在每个 head 里列出所有带 http-equiv 属性的 meta 元素,取值逐字读出,并数清它前面有多少个元素。响应头小写后按同一个名字查一遍。表里数的是声明条数,站数在需要的地方单独写。

# 在你自己的页面上读同样两处
curl -sL -A 'Mozilla/5.0' https://example.com/ \
  | grep -io '<meta[^>]*http-equiv[^>]*>'

# 响应头形式,本次面板上没有一个站这么发
curl -sI -A 'Mozilla/5.0' https://example.com/ | grep -i x-ua-compatible

这次测量做不到的四件事,写在正文里而不是脚注里:

  1. 只测首页,每站一次。首页不等于整个站。
  2. 没有执行 JavaScript,运行时才写进去的标签数不到。对一条 meta http-equiv 来说这个风险不大,但不是零。
  3. 没有测任何浏览器行为。这里说明不了哪个浏览器拿这个标签会做什么,只说明服务器发了什么。
  4. 一次响应分不出「没有」是有人决定去掉,还是从来就没写过。这两种我们分不开。

27 个首页一共 9 条 http-equiv,只落在 4 个站上

27 个首页加起来只有 9 条 http-equiv 声明,分布在 4 个站上,其余 23 个站一条都没有。

声明的取值条数哪个站MDN 收录
x-ua-compatible2www.wired.com、slack.com
content-language1www.wired.com
refresh1slack.com,包在 noscript 里
x-pjax-version1github.com
x-pjax-csp-version1github.com
x-pjax-css-version1github.com
x-pjax-js-version1github.com
content-security-policy1about.gitlab.com
一条都没有0其余 23 个站

MDN 给这个属性记了七个取值:content-languagecontent-typecontent-security-policydefault-stylerefreshset-cookiex-ua-compatiblemeta http-equiv,MDN,2026-09-06 访问)。GitHub 那四个 x-pjax-* 不在里面,四条的 content 各是一串 64 位十六进制摘要。也就是说,本面板上 9 条声明里有 4 条在文档记录的范围之外。

这张表里有一行是改过的。第一遍我们把 slack.com 的 refresh 当成普通声明和其他几条一起计入;回原始 HTML 复看才发现它包在 noscript 里,是没有 JavaScript 时的兜底,不是每个访客都会拿到的东西。表已经按修正后的结果写。这一行该怎么读也跟着变了:不是「这个首页会跳转」,而是「这个首页给什么都跑不起来的情况留了一手」。

模板里那一行到底能不能删

先说结论:这份测量里没有任何一条支持继续留着它。27 个首页有 25 个没有这一行,MDN 说浏览器现在忽略它,微软说这个功能不会在任何版本的 Edge 上实现。但删之前有一个顺序,别跳步。

  1. 先看你实际发的是什么。上面那两条命令几秒钟就有结果,模板里写了不一定发得出去,反向代理也可能替你加。
  2. 再看取值是不是 IE=edge。不是的话,那一行大概率是从别处抄来的,抄的时候连它的历史一起抄了。
  3. 最后看你的用户是谁。Edge 的 IE 模式按微软的说法「will be supported through at least 2029」,我们这次一个浏览器都没测;给企业内网做的后台和给海外用户做的官网,在这件事上不是同一个问题。

那一行在两种地方出现,两处都要找。写在模板里长这样,写在反向代理里长另一样:

# 模板 head 里最常见的写法,先搜这个字符串
<meta http-equiv="X-UA-Compatible" content="IE=edge">

# 以响应头形式加的写法(本次 27 个首页里 0 个这么发)
add_header X-UA-Compatible "IE=edge" always;

两个站的 x-ua-compatible 取值不一样,位置差 45 个元素

MDN 对取值写得很死:「If specified, the content attribute must have the value "IE=edge".」两个站里只有一个发的正是这个,另一个发的是 IE=edge,chrome=1

站点发的取值等于 IE=edge 吗head 里第几个
www.wired.comIE=edge第 3 个
slack.comIE=edge,chrome=1第 48 个

chrome=1 那半截指向的是 Chrome Frame。Chromium 官方博客当年这样介绍它:「a secure plug-in that brings a modern engine to old versions of Internet Explorer」,后来又这样结束它:「Given these factors we've decided to retire Chrome Frame, and will cease support and updates for the product in January 2014.」(Retiring Chrome Frame,Chromium Blog,2013-06-13,2026-09-06 访问。)换句话说,本面板上有一个首页,还在向一个已退役的浏览器要一个 2014 年 1 月就停止支持的插件。

位置的差距和取值的差距一样大。在 www.wired.com 上,这个标签是 head 里第 3 个元素,前面只有 title 和一个 meta。在 slack.com 上它是第 48 个,前面排着 18 个 link、17 个别的 meta、10 个 script,还有一个 title 和一个 noscript

这两个位置我们只当测量报,不当合格与否判。早年的微软文档说过这个标签要放在 head 靠前的位置,但我们找不到现在还挂着这句原话的微软页面,所以只数元素,数完就停。

响应头形式的 x-ua-compatible:0 / 27

27 条响应里没有一条带 X-UA-Compatible 响应头。两个还在声明它的站,都只写在 HTML 里。

微软自己的规范把两种形式当成同一条指令,并给了优先级:「If both of these instructions are sent, the developer's preference (meta element) takes precedence over the web server setting (HTTP header).」同一页还给了取值表 —— IE=edge 是「The highest supported document mode of the browser」,IE=5 是 Quirks Mode,IE=EmulateIE7 在有合法 DOCTYPE 时给 IE7 模式、否则给 Quirks Mode —— 然后对整个功能下了一句:「This functionality will not be implemented in any version of Microsoft Edge.」(X-UA-Compatibility Meta Tag and HTTP Response Header,Microsoft Learn,2026-09-06 访问。)

两个首页还在对一个早已停止发行的浏览器说话,用的是它的继任者从未实现过的语法。

微软的生命周期页把这一圈收了口:「Internet Explorer (IE) 11 is the last major version of Internet Explorer. On June 15, 2022, the Internet Explorer 11 desktop application ended support on certain versions of Windows 10.」(Internet Explorer 11 end of support,Microsoft Learn,2026-09-06 访问。)Edge 里的 IE 模式是另一回事,同一页说它「will be supported through at least 2029」。那个我们没测。

同一批首页上另一件老家具

同样 27 个首页,再顺手数一件旧习惯:<meta name="keywords"> 今天还在 2 个站上,www.nytimes.com 和 www.wired.com。那件老家具 2 / 27,这件说给已停止发行的浏览器听的,同样 2 / 27。www.wired.com 两张清单上都有。

这处重叠是本次测量里最像规律的一处,但它只有一个站,我们不打算在上面建理论。同样 27 个首页、一次一个标签地数:meta keywords 还有谁在发数的是前一个标签,网页编码声明位置实测数的是同一个 head 里的编码声明。

这对你意味着什么

这件事和搜索没有关系。它不改变抓取和收录,这份数据里也没有排名信息。它的价值是一个维护信号:head 里躺着一条说给已经不存在的软件听的指令,通常意味着那份模板很久没人打开过了。

  1. 先读自己发了什么,再决定别的。跨端做的官网,模板往往是从某个主题或者脚手架继承来的,那一行常常比现在这套代码还老。
  2. 取值不是 IE=edge 的,尤其是带 chrome=1 的,删的理由更硬 —— 它要的那个插件 2014 年 1 月就停止支持了。
  3. 新页面不要再加这个标签。MDN 说浏览器现在忽略它,微软说这功能不会在任何版本的 Edge 上实现。
  4. 要给企业客户的内网系统留兼容,那是另一件事,先在 Edge 的 IE 模式里试,别拿这份公开首页的测量当依据。

head 里剩下的那些声明大多还在真干活,想一次看完一个 AI 爬虫从你的页面上实际拿到什么,可以用 AI 爬虫可达性检查

常见问题

你们是怎么测的

2026-09-06 当天,30 个首页各发一次 GET,纳入 27 个,桌面 Chrome UA,跟随跳转,不执行 JavaScript,出口在日本。head 里每一个带 http-equiv 属性的 meta 元素都被列出,取值逐字读出,并数清它前面的元素个数;响应头按同一个名字查过一遍。三个站返回 403,剔除。

模板里这一行删掉会不会出事

这份测量给不出「会出事」的证据:27 个首页有 25 个本来就没有它。真正的风险只在一个地方 —— 你的用户里还有多少人走 Edge 的 IE 模式。我们一个浏览器都没测,这个数只有你自己有。

x-ua-compatible 影响 SEO 吗

这里没有任何证据说影响。这份测量不含排名数据,而这个标签是对一个浏览器家族讲文档模式的,不是爬虫会去执行的东西。

IE=edge 到底是什么意思

微软的取值表把它定义为「The highest supported document mode of the browser」。同一张表里 IE=5 是 Quirks Mode,IE=EmulateIE7 是有合法 DOCTYPE 时给 IE7 模式。这些定义讲的都是 Internet Explorer,而它的桌面版在 2022 年 6 月 15 日结束支持。

这个标签必须放在 head 最前面吗

这条我们答不了。早年的微软文档要求它靠前,但我们找不到现在还写着这句原话的微软页面,所以上面两个位置只是元素计数,我们没有对哪个位置下判断。

模板里那行 x-ua-compatible 还能不能删:27 个首页只有 2 个还在发