Max Potential First Input Delay
2,010 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
正文
972
操作候选
9
图片
5
HTML
97 KB
主要入口
中文
Next.js / Tailwind
移动端模拟 · 性能评分
2026-09-05 · 本次测试有警告,结果可能不完整。
移动端模拟 · 实验室数据,非真实用户体验数据
2026-09-05T16:46:23.809Z · Lighthouse 13.4.1
本次测试有警告,结果可能不完整: The page loaded too slowly to finish within the time limit. Results may be incomplete. · The page may not be loading as expected because your test URL (https://www.deepseek.com/harness/) was redirected to https://www.deepseek.com/harness/en/. Try testing the second URL directly.
分数会受服务器、网络和测试环境影响,独立于品味/转化评分。诊断保留 Lighthouse 原文。
2,010 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
176.8 s
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
Est savings of 920 ms
Redirects introduce additional delays before the page can be loaded. Learn how to avoid page redirects.
{
"type": "opportunity",
"items": [
{
"url": "https://www.deepseek.com/harness/",
"wastedMs": 922.9028
},
{
"url": "https://www.deepseek.com/harness/en/",
"wastedMs": 0
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "wastedMs",
"label": "Time Spent",
"valueType": "timespanMs"
}
],
"overallSavingsMs": 922.9028
}179.6 s
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
{
"type": "table",
"items": [
{
"group": "other",
"duration": 176664.89600000065,
"groupLabel": "Other"
},
{
"group": "scriptEvaluation",
"duration": 1728.7159999999917,
"groupLabel": "Script Evaluation"
},
{
"group": "styleLayout",
"duration": 616.6120000000001,
"groupLabel": "Style & Layout"
},
{
"group": "scriptParseCompile",
"duration": 338.6240000000001,
"groupLabel": "Script Parsing & Compilation"
},
{
"group": "paintCompositeRender",
"duration": 128.9720000000012,
"groupLabel": "Rendering"
},
{
"group": "garbageCollection",
"duration": 108.47200000000001,
"groupLabel": "Garbage Collection"
},
{
"group": "parseHTML",
"duration": 50.91599999999999,
"groupLabel": "Parse HTML & CSS"
}
],
"headings": [
{
"key": "groupLabel",
"label": "Category",
"valueType": "text"
},
{
"key": "duration",
"label": "Time Spent",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"duration"
]
}1.8 s
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.
{
"type": "table",
"items": [
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/app/%5Blocale%5D/page-f752721b763e9f77.js",
"total": 165819.52800000008,
"scripting": 198.88400000000004,
"scriptParseCompile": 22.156
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/26fbc61a-ceed69912acb9826.js",
"total": 7327.268000000001,
"scripting": 29.383999999999954,
"scriptParseCompile": 40.483999999999995
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/194.9af4cd38a39a29b3.js",
"total": 1717.9520000000005,
"scripting": 46.86000000000002,
"scriptParseCompile": 22.391999999999996
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/813-c2428501b5dbabee.js",
"total": 1599.1520000000003,
"scripting": 28.98799999999999,
"scriptParseCompile": 87.768
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/696-a8b1cdf47b7f00af.js",
"total": 1180.747999999994,
"scripting": 992.4879999999939,
"scriptParseCompile": 19.036
},
{
"url": "Unattributable",
"total": 887.8759999999771,
"scripting": 99.668,
"scriptParseCompile": 0
},
{
"url": "https://www.deepseek.com/harness/en/",
"total": 598.5560000000003,
"scripting": 12.971999999999998,
"scriptParseCompile": 9.795999999999998
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/2c7bdfb3.e1e07d3bc4ed5087.js",
"total": 131.97600000000003,
"scripting": 45.04800000000001,
"scriptParseCompile": 86.54400000000001
},
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/523.ccc6e89073db6172.js",
"total": 55.408000000000015,
"scripting": 53.84800000000001,
"scriptParseCompile": 0.52
}
],
"summary": {
"wastedMs": 1796.835999999994
},
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "total",
"label": "Total CPU Time",
"valueType": "ms",
"granularity": 1
},
{
"key": "scripting",
"label": "Script Evaluation",
"valueType": "ms",
"granularity": 1
},
{
"key": "scriptParseCompile",
"label": "Script Parse",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"total"
]
}Source maps translate minified code to the original source code. This helps developers debug in production. In addition, Lighthouse is able to provide further insights. Consider deploying source maps to take advantage of these benefits. Learn more about source maps.
{
"type": "table",
"items": [
{
"subItems": {
"type": "subitems",
"items": [
{
"error": "Large JavaScript file is missing a source map"
}
]
},
"scriptUrl": "https://www.deepseek.com/harness/_next/static/chunks/2c7bdfb3.e1e07d3bc4ed5087.js"
}
],
"headings": [
{
"key": "scriptUrl",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "error"
}
},
{
"key": "sourceMapUrl",
"label": "Map URL",
"valueType": "url"
}
]
}Using ARIA attributes in roles where they are prohibited can mean that important information is not communicated to users of assistive technologies. Learn more about prohibited ARIA roles.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-0-SPAN",
"path": "1,HTML,1,BODY,0,DIV,2,MAIN,6,FOOTER,1,DIV,0,DIV,0,DIV,0,SPAN,0,SPAN",
"type": "node",
"snippet": "<span class=\"w-5 h-5 flex items-center justify-center\" aria-label=\"WeChat\">",
"selector": "div.flex > div.ds-qr-trigger > span.flex > span.w-5",
"nodeLabel": "WeChat",
"explanation": "Fix all of the following:\n aria-label attribute cannot be used on a span with no valid role attribute.",
"boundingRect": {
"top": 7175,
"left": 113,
"right": 133,
"width": 20,
"bottom": 7195,
"height": 20
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2",
"RGAAv4",
"RGAA-7.1.1"
],
"type": "debugdata",
"impact": "serious"
}
}When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. Learn how to make buttons more accessible.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-1-BUTTON",
"path": "1,HTML,1,BODY,0,DIV,0,DIV,0,DIV,2,BUTTON",
"type": "node",
"snippet": "<button class=\"md:hidden flex items-center justify-center w-10 h-10 text-ds-primary\">",
"selector": "div.relative > div.ds-header-wrapper > div.ds-header-bar > button.md:hidden",
"nodeLabel": "div.relative > div.ds-header-wrapper > div.ds-header-bar > button.md:hidden",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 13,
"left": 347,
"right": 387,
"width": 40,
"bottom": 53,
"height": 40
}
}
},
{
"node": {
"lhId": "1-2-BUTTON",
"path": "1,HTML,1,BODY,0,DIV,1,DIV,0,DIV,1,BUTTON",
"type": "node",
"snippet": "<button class=\"flex items-center justify-center w-10 h-10 text-ds-primary\">",
"selector": "div.relative > div.ds-mobile-menu > div.ds-mobile-menu-header > button.flex",
"nodeLabel": "div.relative > div.ds-mobile-menu > div.ds-mobile-menu-header > button.flex",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 13,
"left": 347,
"right": 387,
"width": 40,
"bottom": 53,
"height": 40
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT",
"RGAAv4",
"RGAA-11.9.1"
],
"type": "debugdata",
"impact": "critical"
}
}Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-3-A",
"path": "1,HTML,1,BODY,0,DIV,1,DIV,0,DIV,0,A",
"type": "node",
"snippet": "<a class=\"flex items-center text-[var(--ds-color-brand-medium-reverse)]\" href=\"/harness/en/\">",
"selector": "div.relative > div.ds-mobile-menu > div.ds-mobile-menu-header > a.flex",
"nodeLabel": "div.relative > div.ds-mobile-menu > div.ds-mobile-menu-header > a.flex",
"explanation": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute",
"boundingRect": {
"top": 22,
"left": 25,
"right": 168,
"width": 143,
"bottom": 45,
"height": 23
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT",
"RGAAv4",
"RGAA-6.2.1"
],
"type": "debugdata",
"impact": "serious"
}
}Est savings of 22 KiB
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
{
"type": "opportunity",
"items": [
{
"url": "https://www.deepseek.com/harness/_next/static/chunks/813-c2428501b5dbabee.js",
"totalBytes": 22388,
"wastedBytes": 22348,
"wastedPercent": 99.82070911582089
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "source",
"valueType": "code"
}
},
{
"key": "totalBytes",
"label": "Transfer Size",
"valueType": "bytes",
"subItemsHeading": {
"key": "sourceBytes"
}
},
{
"key": "wastedBytes",
"label": "Est Savings",
"valueType": "bytes",
"subItemsHeading": {
"key": "sourceWastedBytes"
}
}
],
"sortedBy": [
"wastedBytes"
],
"debugData": {
"type": "debugdata",
"metricSavings": {
"FCP": 0,
"LCP": 150
}
},
"overallSavingsMs": 150,
"overallSavingsBytes": 22348
}hreflang links tell search engines what version of a page they should list in search results for a given language or region. Learn more about `hreflang`.
{
"type": "table",
"items": [
{
"source": {
"lhId": "1-45-LINK",
"path": "1,HTML,0,HEAD,21,LINK",
"type": "node",
"snippet": "<link rel=\"alternate\" hreflang=\"zh-CN\" href=\"/harness/\" />",
"selector": "head > link",
"nodeLabel": "head > link",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "Relative href value"
}
]
}
},
{
"source": {
"lhId": "1-46-LINK",
"path": "1,HTML,0,HEAD,22,LINK",
"type": "node",
"snippet": "<link rel=\"alternate\" hreflang=\"en-US\" href=\"/harness/en/\" />",
"selector": "head > link",
"nodeLabel": "head > link",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "Relative href value"
}
]
}
},
{
"source": {
"lhId": "1-47-LINK",
"path": "1,HTML,0,HEAD,23,LINK",
"type": "node",
"snippet": "<link rel=\"alternate\" hreflang=\"x-default\" href=\"/harness/\" />",
"selector": "head > link",
"nodeLabel": "head > link",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "Relative href value"
}
]
}
}
],
"headings": [
{
"key": "source",
"label": "",
"valueType": "code",
"subItemsHeading": {
"key": "reason",
"valueType": "text"
}
}
]
}Canonical links suggest which URL to show in search results. Learn more about canonical links.
{
"finalUrl": "https://www.deepseek.com/harness/en/",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.0.0 Safari/537.36",
"formFactor": "mobile",
"throttlingMethod": "simulate",
"throttling": {
"rttMs": 150,
"throughputKbps": 1638.4,
"requestLatencyMs": 562.5,
"uploadThroughputKbps": 675,
"cpuSlowdownMultiplier": 4,
"downloadThroughputKbps": 1474.5600000000002
},
"metrics": [
{
"id": "largest-contentful-paint",
"unit": "millisecond",
"value": 5093.9028
},
{
"id": "cumulative-layout-shift",
"unit": "unitless",
"value": 0.001633655803097624
},
{
"id": "total-blocking-time",
"unit": "millisecond",
"value": 164431
},
{
"id": "first-contentful-paint",
"unit": "millisecond",
"value": 1222.9027999999998
},
{
"id": "speed-index",
"unit": "millisecond",
"value": 14426.20565205807
}
]
}01 / 值得借鉴
首屏右侧(移动端下方)直接以高辨识度的终端卡片呈现 '$ npx @deepseek-ai/dsh web' 并附带一键复制,让开发者无需翻阅繁琐教程即可在数秒内启动体验。
页面基于 '#0a0a0a' 深色基底,结合精致的半透明边框与 Fragment Mono 代码字体,整体视觉极度收敛且工业感明确。
02 / 下一步
当前首屏底部同时陈列了白色实心的 GitHub 按钮与三个半透明辅助按钮,在 390px 移动视口下产生多行堆叠,分散了终端一键运行的核心转化意图。
精简首屏底部按钮群:仅保留“查看 GitHub”(主)与“开发者文档”(次),将“社区插件”和“Cordis 论文”移至顶部导航或下方生态章节。在 390px 视口下验证按钮不再产生拥挤折行。
在 390px 移动端视口中,“一键使用”和“源码安装”切换标签贴合在终端边框左上方,上下留白较小,在移动端容易误触。
将移动端模式切换标签容器高度设为至少 44px,改用分段选择器药丸背景,并在移动端设备模拟器中验证点按区域。
03 / 设计语言
背景
#0a0a0a文字
#ffffff表达也可以更准确
模型、工具、技能、会话、沙箱、存储、循环、调度、UI 等所有 Agent 能力均由插件组合而成,可以自由替换和灵活重组。
从模型、工具到沙箱与调度,所有 Agent 能力皆为 Cordis 插件。配置即装配,无需修改核心源码。
原文一口气并列了 9 个词汇,略显冗长;精简后更能突出“配置即装配、无需改源码”的核心架构收益。04 / 检查依据
逐项查看观察、建议与采集记录。
在 X、Slack 或微信里展开成空白或套话,等于浪费已经拿到的点击。这是分发,不是装饰。
补上 og:title、og:description,以及一张和线上标题一致的 1200x630 图。
og:title=no og:image=no
陌生人落到一个看起来像 AI、没有作者、没有客户、没有联系方式的站点上,不会把邮箱给你。
加上真名、真脸、真实联系方式,或一句真实客户的话。
no about, no first-person, no quote
看不到谁跳出,就不知道下一次修改有没有用。没有计数就等于盲飞。
在公开页放上 Plausible、PostHog 或 GA4。一段脚本就够。
no gtag / plausible / posthog / umami
没有 Strict-Transport-Security,第一次访问仍可能被降到 http。浏览器不会钉死 HTTPS。
在边缘设置 Strict-Transport-Security: max-age=31536000; includeSubDomains。
strict-transport-security missing
CSP 是限制脚本源的标准做法。vibe 页面常常什么都加载,包括被注入的脚本。
先开 report-only CSP,再收成 default-src 'self' 和明确的 script-src。
content-security-policy missing
没有 nosniff,浏览器可能按错误类型解释文件。这是一行响应头。
设置 X-Content-Type-Options: nosniff。
x-content-type-options missing
默认 referrer 可能把站内路径和查询串漏给第三方。
设置 Referrer-Policy: strict-origin-when-cross-origin。
referrer-policy missing
05 / 开始动手
优化指令用于调整这个页面;设计指令用于借鉴它的视觉语言。「做同款」会附带截图与实施步骤。复制后粘贴到你的代码助手中。
针对 DeepSeek Harness 页面首屏行动点与终端组件进行重构: 1. 优化首屏底部按钮群:保留主按钮“查看 GitHub”('--ds-btn-primary-bg: #fff',文字 '#0a0a0a')与次按钮“开发者文档”(边框 '1px solid rgba(255, 255, 255, 0.15)');将“社区插件”与“Cordis 论文”移入顶部导航栏及下方生态板块,避免在 390px 视口下发生 4 按钮混乱折行。 2. 针对终端运行卡片上方“一键使用”与“源码安装”标签,将移动端触控目标高度提升至 44px,并确保与下方代码框保持 8px 间距。 3. 严格保留现有设计变量:页面底色 '#0a0a0a',标题字体 'Montserrat',正文字体 'DM Sans',代码字体 'Fragment Mono',胶囊圆角 100px。在 1440px 与 390px 视口下回归验证无水平溢出。