https://www.deepseek.com/harness/

页面构成与技术指标

正文

972

操作候选

9

图片

5

HTML

97 KB

文案

标题字数
29
摘要字数
82
H1
1
H2
6

动作

主要入口

中文

表单
0
站内链接
4
站外链接
18

安全与页面元信息

HTTPS
有
HSTS
无
CSP
无
nosniff
无
viewport
有
图标
有
JSON-LD
无
统计
无

构成

Next.js / Tailwind

脚本
10 ext / 11 inline
语言
zh-CN
第三方域
无

Lighthouse

移动端模拟 · 性能评分

41 / 100

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.

性能41/ 100
可访问性87/ 100
最佳实践100/ 100
SEO85/ 100
LCP · 主要内容出现5,094 ms
CLS · 布局偏移0.002
TBT · 主线程阻塞164,431 ms
FCP · 首次内容绘制1,223 ms
SI · 视觉加载速度14,426 ms

分数会受服务器、网络和测试环境影响,独立于品味/转化评分。诊断保留 Lighthouse 原文。

Avoid multiple page redirects

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
}

Minimize main-thread work

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"
  ]
}

Reduce JavaScript execution time

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"
  ]
}

Missing source maps for large first-party JavaScript

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"
    }
  ]
}

Elements use prohibited ARIA attributes

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"
  }
}

Buttons do not have an accessible name

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"
  }
}

Links do not have a discernible name

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"
  }
}

Reduce unused JavaScript

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
}

Document doesn't have a valid `hreflang`

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"
      }
    }
  ]
}
测试环境与原始指标
{
  "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 / 下一步

值得继续打磨的地方

  1. 01

    明确首屏操作按钮的主次层级,收拢转化路径

    当前首屏底部同时陈列了白色实心的 GitHub 按钮与三个半透明辅助按钮,在 390px 移动视口下产生多行堆叠,分散了终端一键运行的核心转化意图。

    精简首屏底部按钮群:仅保留“查看 GitHub”(主)与“开发者文档”(次),将“社区插件”和“Cordis 论文”移至顶部导航或下方生态章节。在 390px 视口下验证按钮不再产生拥挤折行。

  2. 02

    优化移动端代码终端标签页的点击热区与紧凑度

    在 390px 移动端视口中,“一键使用”和“源码安装”切换标签贴合在终端边框左上方,上下留白较小,在移动端容易误触。

    将移动端模式切换标签容器高度设为至少 44px,改用分段选择器药丸背景,并在移动端设备模拟器中验证点按区域。

03 / 设计语言

把气质拆成可复用的参数

色彩

背景

#0a0a0a

文字

#ffffff

字体与尺度

标题字体
Montserrat
正文字体
DM Sans
标题 / 正文
46px / 16px

间距与形状

区块间距
0px
组件内距
—
卡片圆角
—
按钮圆角
100px

表达也可以更准确

文案润色对照

现在

模型、工具、技能、会话、沙箱、存储、循环、调度、UI 等所有 Agent 能力均由插件组合而成,可以自由替换和灵活重组。

建议表达

从模型、工具到沙箱与调度,所有 Agent 能力皆为 Cordis 插件。配置即装配,无需修改核心源码。

原文一口气并列了 9 个词汇,略显冗长;精简后更能突出“配置即装配、无需改源码”的核心架构收益。

04 / 检查依据

观察与实测依据

逐项查看观察、建议与采集记录。

转化3 项观察

分享卡片不完整

高优先级

在 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
上线4 项观察

没有 HSTS 响应头

中优先级

没有 Strict-Transport-Security,第一次访问仍可能被降到 http。浏览器不会钉死 HTTPS。

在边缘设置 Strict-Transport-Security: max-age=31536000; includeSubDomains。

strict-transport-security missing

没有 Content-Security-Policy

CSP 是限制脚本源的标准做法。vibe 页面常常什么都加载,包括被注入的脚本。

先开 report-only CSP,再收成 default-src 'self' 和明确的 script-src。

content-security-policy missing

没有 X-Content-Type-Options

没有 nosniff,浏览器可能按错误类型解释文件。这是一行响应头。

设置 X-Content-Type-Options: nosniff。

x-content-type-options missing

没有 Referrer-Policy

默认 referrer 可能把站内路径和查询串漏给第三方。

设置 Referrer-Policy: strict-origin-when-cross-origin。

referrer-policy missing

05 / 开始动手

把下一步,交给你的 AI

优化指令用于调整这个页面;设计指令用于借鉴它的视觉语言。「做同款」会附带截图与实施步骤。复制后粘贴到你的代码助手中。

查看完整指令
针对 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 视口下回归验证无水平溢出。