Skip to main content

更新日志

产品上线了什么、修了什么、为什么值得你知道。

2026 年 4 月 — 搭建 SEO 平台基础

2026年4月24日

本月,Aedifex 为接下来 6 到 12 个月的增长打下了地基:真实的内容、真实的可被发现性,以及真实的测试覆盖。

新路由

  • /blog — 写给建筑师、设计师和业主看的文章。第一篇手把手讲解如何设计一套 30 平方米的小公寓。
  • /solutions/{floor-plan,interior,ai-designer} — 按使用场景设计的落地页,文案围绕关键词组织,并带有结构化数据。
  • /showcase — 社区发布的 3D 设计作品。任何拥有 Pro 账户的用户都能一键把项目发布到公开目录。

底层改动

  • SEO 关键指标已纳入测试。 一套包含 12 个用例的 Playwright 测试会逐一校验每个公开路由的 title、description、canonical URL、JSON-LD 结构化数据、robots.txtsitemap.xml 和 hreflang 备用语言标签。CI 会对落地页、解决方案页、博客、作品展示和访客 demo 全部把关。
  • 分享页拆成两次查询。 /view/[shareId] 页面过去每次被爬虫抓取,都要加载好几兆字节的场景 JSON。如今拆成 getPublicProjectMetadata(轻量)和 getPublicProjectScene(重载)两部分,搜索引擎抓一次只需消耗几 KB。
  • 基于 KV 的增量缓存。 OpenNext 现在用一个 Cloudflare KV 命名空间来存放 ISR 页面、sitemap 和 fetch-cache。爬虫流量不会再每次请求都让路由处理器重新查询 D1。
  • 可供爬虫抓取的 SSR 正文。 即便 3D 视图是在客户端挂载,分享页和作品展示页也会把项目名称、作者和说明文字直接渲染进 HTML,并附带 Schema.org 的 CreativeWorkBreadcrumbList

新数据库字段

  • slug/showcase/{slug} 对应的规范 URL 片段
  • summary — 一句话的 meta description,发布时由 LLM 重新生成
  • isListed — 是否进入公开作品目录的开关(与只控制分享链接的 isPublic 相互独立)
  • publishedAt — 作品展示信息流的排序依据
  • locale — 项目级语言提示的占位字段

现有项目已自动回填,无需任何操作。

UI

  • 分享对话框现在有两个相互独立的开关:"公开访问"(任何拿到链接的人都能查看)和"发布到社区作品展示"(项目进入公开目录并获得 SEO 元数据)。
  • 页脚新增了 Blog / Solutions / Showcase 入口。语言切换入口已经显示出来,但暂时禁用——等中文和日文翻译就绪后再开放。

开发体验

  • pnpm test:e2e — 在 localhost 上运行 SEO 回归测试套件。
  • pnpm test:e2e:prod — 部署后针对 aedifex.app 运行同一套测试。
  • pnpm typecheck:local — TypeScript 检查只覆盖我们自己的代码,过滤掉上游 aedifex 的干扰信息。

已知不足

  • 项目级的 Open Graph 图片目前会回退到全站统一的静态卡片。动态 next/og 生成与 OpenNext 的 WASM 打包器存在冲突,已记为待办事项。
  • 中文和日文界面文案尚未上线。我们已经声明了 hreflang x-defaulten-US,这样将来正式上线时不会出现 SEO 回退。

下个月计划:扩充内容(Q2 博客路线图)、用 Satori 实现动态 OG,并为 zh-CN 上线准备内容。