https://vibecheck.itool.tech/

页面构成与技术指标

正文

376

操作候选

4

图片

30

HTML

100 KB

文案

标题字数
18
摘要字数
51
H1
1
H2
0

动作

主要入口

手气不错

表单
1/ 1 输入
站内链接
36
站外链接
0

安全与页面元信息

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

构成

Next.js / Lovable / v0 / Tailwind

脚本
10 ext / 12 inline
语言
zh
第三方域

Lighthouse

移动端模拟 · 性能评分

70 / 100

2026-09-05 · 实验室数据,非真实用户体验数据。

查看详情

移动端模拟 · 实验室数据,非真实用户体验数据
2026-09-05T04:37:54.017Z · Lighthouse 13.4.1

性能70/ 100
可访问性100/ 100
最佳实践100/ 100
SEO100/ 100
LCP · 主要内容出现11,706 ms
CLS · 布局偏移0.001
TBT · 主线程阻塞92 ms
FCP · 首次内容绘制2,706 ms
SI · 视觉加载速度3,028 ms

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

Minimize main-thread work

3.5 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": "styleLayout",
      "duration": 1282.5880000000002,
      "groupLabel": "Style & Layout"
    },
    {
      "group": "other",
      "duration": 1181.0079999999753,
      "groupLabel": "Other"
    },
    {
      "group": "scriptEvaluation",
      "duration": 568.5080000000003,
      "groupLabel": "Script Evaluation"
    },
    {
      "group": "paintCompositeRender",
      "duration": 267.064,
      "groupLabel": "Rendering"
    },
    {
      "group": "scriptParseCompile",
      "duration": 116.95200000000001,
      "groupLabel": "Script Parsing & Compilation"
    },
    {
      "group": "parseHTML",
      "duration": 32.92,
      "groupLabel": "Parse HTML & CSS"
    },
    {
      "group": "garbageCollection",
      "duration": 24.367999999999988,
      "groupLabel": "Garbage Collection"
    }
  ],
  "headings": [
    {
      "key": "groupLabel",
      "label": "Category",
      "valueType": "text"
    },
    {
      "key": "duration",
      "label": "Time Spent",
      "valueType": "ms",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "duration"
  ]
}

Elements with visible text labels do not have matching accessible names.

Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "node": {
        "lhId": "1-0-BUTTON",
        "path": "1,HTML,1,BODY,3,DIV,1,HEADER,0,DIV,2,DIV,0,DIV,0,BUTTON",
        "type": "node",
        "snippet": "<button class=\"language-trigger\" aria-label=\"选择语言\" aria-haspopup=\"menu\" aria-expanded=\"false\" aria-controls=\"_R_tilvivb_\" aria-busy=\"false\">",
        "selector": "div.mx-auto > div.flex > div.language-switch > button.language-trigger",
        "nodeLabel": "中文",
        "explanation": "Fix any of the following:\n  Text inside the element is not included in the accessible name",
        "boundingRect": {
          "top": 12,
          "left": 168,
          "right": 250,
          "width": 82,
          "bottom": 52,
          "height": 40
        }
      }
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "Failing Elements",
      "valueType": "node",
      "subItemsHeading": {
        "key": "relatedNode",
        "valueType": "node"
      }
    }
  ],
  "debugData": {
    "tags": [
      "cat.semantics",
      "wcag21a",
      "wcag253",
      "EN-301-549",
      "EN-9.2.5.3",
      "RGAAv4",
      "RGAA-6.1.5",
      "experimental"
    ],
    "type": "debugdata",
    "impact": "serious"
  }
}

Avoid enormous network payloads

Total size was 3,014 KiB

Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
      "totalBytes": 715973
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
      "totalBytes": 619658
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
      "totalBytes": 282294
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
      "totalBytes": 203564
    },
    {
      "url": "https://vibecheck.itool.tech/images/macbook-pro-front-hardware.png",
      "totalBytes": 142199
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
      "totalBytes": 129168
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
      "totalBytes": 85374
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/media/b53c1142b9136fe1-s.woff2",
      "totalBytes": 76797
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/media/1cd350d5fca802aa-s.woff2",
      "totalBytes": 61932
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/media/b465fe72c6993d96-s.woff2",
      "totalBytes": 60467
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    }
  ],
  "sortedBy": [
    "totalBytes"
  ]
}

Reduce unused CSS

Est savings of 110 KiB

Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.

对应元素与资源
{
  "type": "opportunity",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
      "totalBytes": 112749,
      "wastedBytes": 112728,
      "wastedPercent": 99.98141273954668
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    },
    {
      "key": "wastedBytes",
      "label": "Est Savings",
      "valueType": "bytes"
    }
  ],
  "sortedBy": [
    "wastedBytes"
  ],
  "debugData": {
    "type": "debugdata",
    "metricSavings": {
      "FCP": 450,
      "LCP": 450
    }
  },
  "overallSavingsMs": 450,
  "overallSavingsBytes": 112728
}

Page prevented back/forward cache restoration

3 failure reasons

Many navigations are performed by going back to a previous page, or forwards again. The back/forward cache (bfcache) can speed up these return navigations. Learn more about the bfcache

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "reason": "Pages with cache-control:no-store header cannot enter back/forward cache.",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "frameUrl": "https://vibecheck.itool.tech/zh"
          }
        ]
      },
      "failureType": "Actionable",
      "protocolReason": "CacheControlNoStoreHTTPOnlyCookieModified"
    },
    {
      "reason": "Pages whose main resource has cache-control:no-store cannot enter back/forward cache.",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "frameUrl": "https://vibecheck.itool.tech/zh"
          }
        ]
      },
      "failureType": "Not actionable",
      "protocolReason": "MainResourceHasCacheControlNoStore"
    },
    {
      "reason": "Back/forward cache is disabled because some JavaScript network request received resource with Cache-Control: no-store header.",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "frameUrl": "https://vibecheck.itool.tech/zh"
          }
        ]
      },
      "failureType": "Not actionable",
      "protocolReason": "JsNetworkRequestReceivedCacheControlNoStoreResource"
    }
  ],
  "headings": [
    {
      "key": "reason",
      "label": "Failure reason",
      "valueType": "text",
      "subItemsHeading": {
        "key": "frameUrl",
        "valueType": "url"
      }
    },
    {
      "key": "failureType",
      "label": "Failure type",
      "valueType": "text"
    }
  ]
}

Use efficient cache lifetimes

Est savings of 820 KiB

A long cache lifetime can speed up repeat visits to your page. Learn more about caching.

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
      "totalBytes": 715973,
      "wastedBytes": 286389.2,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
      "totalBytes": 619658,
      "wastedBytes": 247863.2,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
      "totalBytes": 282294,
      "wastedBytes": 112917.6,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
      "totalBytes": 203564,
      "wastedBytes": 81425.6,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/images/macbook-pro-front-hardware.png",
      "totalBytes": 142199,
      "wastedBytes": 56879.600000000006,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
      "totalBytes": 85374,
      "wastedBytes": 34149.6,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/images/macbook-pro-front-source.jpg",
      "totalBytes": 46499,
      "wastedBytes": 18599.600000000002,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://vibecheck.itool.tech/images/crayon-underline.svg",
      "totalBytes": 3785,
      "wastedBytes": 1514,
      "cacheLifetimeMs": 86400000
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "Request",
      "valueType": "url"
    },
    {
      "key": "cacheLifetimeMs",
      "label": "Cache TTL",
      "valueType": "ms",
      "displayUnit": "duration"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes",
      "displayUnit": "kb",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "wastedBytes"
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 839738.3999999999
  },
  "skipSumming": [
    "cacheLifetimeMs"
  ]
}

Improve image delivery

Est savings of 1,815 KiB

Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
      "node": {
        "lhId": "page-0-IMG",
        "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,11,A,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/api/v1/scans/lovable-dev/screenshot?kind=desktop\" alt=\"Lovable\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
        "selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
        "nodeLabel": "Lovable",
        "boundingRect": {
          "top": 443,
          "left": 3495,
          "right": 3813,
          "width": 318,
          "bottom": 618,
          "height": 175
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
            "wastedBytes": 525604
          },
          {
            "reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
            "wastedBytes": 675873
          }
        ]
      },
      "totalBytes": 715554,
      "wastedBytes": 705020
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
      "node": {
        "lhId": "page-1-IMG",
        "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,14,A,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/api/v1/scans/readymag-com/screenshot?kind=desktop\" alt=\"Readymag\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
        "selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
        "nodeLabel": "Readymag",
        "boundingRect": {
          "top": 741,
          "left": 3314,
          "right": 3632,
          "width": 318,
          "bottom": 916,
          "height": 175
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
            "wastedBytes": 429343
          },
          {
            "reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
            "wastedBytes": 584950
          }
        ]
      },
      "totalBytes": 619293,
      "wastedBytes": 608759
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
      "node": {
        "lhId": "page-2-IMG",
        "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,10,A,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/api/v1/scans/cursor-com/screenshot?kind=desktop\" alt=\"Cursor\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
        "selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
        "nodeLabel": "Cursor",
        "boundingRect": {
          "top": 443,
          "left": 3155,
          "right": 3473,
          "width": 318,
          "bottom": 618,
          "height": 175
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
            "wastedBytes": 92077
          },
          {
            "reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
            "wastedBytes": 266387
          }
        ]
      },
      "totalBytes": 282027,
      "wastedBytes": 271493
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
      "node": {
        "lhId": "page-3-IMG",
        "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,10,A,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/api/v1/scans/teenage-engineering/screenshot?kind=desktop\" alt=\"teenage engineering\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
        "selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
        "nodeLabel": "teenage engineering",
        "boundingRect": {
          "top": 741,
          "left": 1954,
          "right": 2272,
          "width": 318,
          "bottom": 916,
          "height": 175
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
            "wastedBytes": 13474
          },
          {
            "reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
            "wastedBytes": 192143
          }
        ]
      },
      "totalBytes": 203424,
      "wastedBytes": 192890
    },
    {
      "url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
      "node": {
        "lhId": "page-4-IMG",
        "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,11,A,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/api/v1/scans/gumroad-com/screenshot?kind=desktop\" alt=\"Gumroad\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
        "selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
        "nodeLabel": "Gumroad",
        "boundingRect": {
          "top": 741,
          "left": 2294,
          "right": 2612,
          "width": 318,
          "bottom": 916,
          "height": 175
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
            "wastedBytes": 80567
          }
        ]
      },
      "totalBytes": 85297,
      "wastedBytes": 80567
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "",
      "valueType": "node"
    },
    {
      "key": "url",
      "label": "URL",
      "valueType": "url",
      "subItemsHeading": {
        "key": "reason",
        "valueType": "text"
      }
    },
    {
      "key": "totalBytes",
      "label": "Resource Size",
      "valueType": "bytes"
    },
    {
      "key": "wastedBytes",
      "label": "Est Savings",
      "valueType": "bytes",
      "subItemsHeading": {
        "key": "wastedBytes",
        "valueType": "bytes"
      }
    }
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 1858729
  }
}

LCP request discovery

Optimize LCP by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading

对应元素与资源
{
  "type": "list",
  "items": [
    {
      "type": "checklist",
      "items": {
        "eagerlyLoaded": {
          "label": "LCP resources should not use loading=lazy",
          "value": false
        },
        "priorityHinted": {
          "label": "fetchpriority=high should be applied",
          "value": false
        },
        "requestDiscoverable": {
          "label": "Request is discoverable in initial document",
          "value": true
        }
      }
    },
    {
      "lhId": "page-5-IMG",
      "path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,0,A,0,DIV,0,IMG",
      "type": "node",
      "snippet": "<img src=\"/api/v1/scans/cursor-com/screenshot?kind=desktop\" alt=\"Cursor\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
      "selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
      "nodeLabel": "Cursor",
      "boundingRect": {
        "top": 443,
        "left": -245,
        "right": 73,
        "width": 318,
        "bottom": 618,
        "height": 175
      }
    }
  ]
}

Legacy JavaScript

Est savings of 11 KiB

Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "signal": "Array.prototype.at",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 166927,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Array.prototype.flat",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 166315,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Array.prototype.flatMap",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 166428,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Object.fromEntries",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 166804,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Object.hasOwn",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 167062,
              "urlProvider": "network"
            }
          },
          {
            "signal": "String.prototype.trimEnd",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 166057,
              "urlProvider": "network"
            }
          },
          {
            "signal": "String.prototype.trimStart",
            "location": {
              "url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
              "line": 0,
              "type": "source-location",
              "column": 165972,
              "urlProvider": "network"
            }
          }
        ]
      },
      "wastedBytes": 11629
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url",
      "subItemsHeading": {
        "key": "location",
        "valueType": "source-location"
      }
    },
    {
      "key": null,
      "label": "",
      "valueType": "code",
      "subItemsHeading": {
        "key": "signal"
      }
    },
    {
      "key": "wastedBytes",
      "label": "Wasted bytes",
      "valueType": "bytes"
    }
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 11629
  }
}

Render-blocking requests

Est savings of 1,310 ms

Requests are blocking the page's initial render, which may delay LCP. Deferring or inlining can move these network requests out of the critical path.

对应元素与资源
{
  "type": "table",
  "items": [
    {
      "url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
      "wastedMs": 750,
      "totalBytes": 129168
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/css/bf7aa8067a46f911.css",
      "totalBytes": 16179
    },
    {
      "url": "https://vibecheck.itool.tech/_next/static/css/7d01a8ed4214f82b.css",
      "totalBytes": 944
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    },
    {
      "key": "wastedMs",
      "label": "Duration",
      "valueType": "timespanMs"
    }
  ]
}
测试环境与原始指标
{
  "finalUrl": "https://vibecheck.itool.tech/zh",
  "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": 11706.028
    },
    {
      "id": "cumulative-layout-shift",
      "unit": "unitless",
      "value": 0.0010256316695518653
    },
    {
      "id": "total-blocking-time",
      "unit": "millisecond",
      "value": 91.5
    },
    {
      "id": "first-contentful-paint",
      "unit": "millisecond",
      "value": 2706.0280000000002
    },
    {
      "id": "speed-index",
      "unit": "millisecond",
      "value": 3027.5598642231025
    }
  ]
}

01 / 值得借鉴

好设计,具体好在哪

鲜明的字体排版层级与品牌对比

主标题采用 72px 加粗无衬线字体,搭配 Caveat 手写体重点词与橙色下划线 (#ff5500),在保持整洁的同时强化了品牌识别度。

标杆案例卡片带来直观的专业背书

展示网格直接罗列了 Cursor、Lovable、Stripe 等行业标杆案例,并同步展示调色板色块与等宽域名标签,即时建立专业感。

02 / 下一步

值得继续打磨的地方

  1. 01

    在输入框旁增加即时审计报告样例预览

    首次访问的用户不清楚'深度审计'产出的是评分、CSS 变量还是 AI 提示词,导致在尝试前直接跳出。

    在输入框下方增加显眼的'查看示例报告'链接或展开卡片,预览包含 Token 测量值与 AI 提示词片段的实际报告。在 1440px 与 390px 视口下验证点击交互与数据渲染。

  2. 02

    将精选案例卡片转化为一键运行试用入口

    在移动端输入 URL 或在桌面端另找网址门槛较高,直接点击现有案例卡片能将测试阻力降到最低。

    将所有展示卡片设为可点击并带有'试运行'悬停状态,点击时直接将目标域名(如 linear.app)填入主输入框并启动检测流程。在桌面点击和移动端触摸下验证填充与加载状态。

03 / 设计语言

把气质拆成可复用的参数

色彩

背景

#fafafc

文字

#0b0f19

强调

#0b0f19

表面

#ffffff

字体与尺度

标题字体
Inter
正文字体
Inter
标题 / 正文
72px / 16px

间距与形状

区块间距
64px
组件内距
0px
卡片圆角
10px
按钮圆角
7px

表达也可以更准确

文案润色对照

现在

网页上线深度审计。 一键提取标杆设计 Token,让 AI 照着复刻高水准网页。

建议表达

网页上线前深度体检。一键提取标杆设计 Token 与 AI 提示词,直出高水准代码。

明确具体的产出形式(Token 与系统提示词规则),替代抽象的复刻表述,增强说服力。

04 / 检查依据

观察与实测依据

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

转化6 项观察

分享卡片不完整

高优先级

在 X、Slack 或微信里展开成空白或套话,等于浪费已经拿到的点击。这是分发,不是装饰。

补上 og:title、og:description,以及一张和线上标题一致的 1200x630 图。

og:title=yes og:image=no

表单没有 action

高优先级

没有 action 的等待名单或联系表单是转化死路。看起来能用,点下去什么也不发生。

把表单接到一个接口、Formspark、Basin,或你真正会处理的 server action。

<form>

页面上没有人或证明

中优先级

陌生人落到一个看起来像 AI、没有作者、没有客户、没有联系方式的站点上,不会把邮箱给你。

加上真名、真脸、真实联系方式,或一句真实客户的话。

no about, no first-person, no quote

线上页没有统计

中优先级

看不到谁跳出,就不知道下一次修改有没有用。没有计数就等于盲飞。

在公开页放上 Plausible、PostHog 或 GA4。一段脚本就够。

no gtag / plausible / posthog / umami

找不到真人联系方式

中优先级

想买、想问、想投诉的人没有出口。这是转化漏洞,也是信任漏洞。

页脚放一个能用的邮箱、表单,或真实社交账号。一个就够。

no mailto / telegram / x / github / email

标签标题和 H1 对不上

标签、分享卡、首屏各说各的,访客就记不住这是同一个产品。

让 title、og:title 和 H1 共用同一个名词。

title="VibeCheck · 网站气质检测" h1="从 Vibe 到专业"
上线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

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

查看完整指令
在完全保留现有设计 Token(#fafafc 背景、#0b0f19 字体颜色、JetBrains Mono 标签字体、7px 按钮圆角、10px 卡片圆角以及 'Vibe' 专用的 Caveat 字体)的前提下,优化 VibeCheck 首页转化流程。1. 在 URL 输入框下方增加一个'查看示例报告'互动入口,点击后展示包含评分、提取调色板及可复制 DESIGN.md 提示词的示例弹层或抽屉。2. 为展示卡片(Cursor、Lovable、Stripe 等)添加点击交互,点击任意卡片即可将对应域名填入搜索框并直接触发检测。3. 保持响应式间距、顶部导航及移动端适配逻辑。在 1440x900 与 390x844 视口下验证对齐方式与聚焦状态。