MusicPrompt 2.1
2.0 交付了工作台,2.1 要解决的是"别人能不能找到它"——而这一版的起点,是一个不太舒服的发现。
2.0 的 SEO 工作从来没有上线
2.0 为搜索做的全部东西——预渲染页面、逐页标题、hreflang、结构化数据、真正的 404——一直躺在一个没有合并的分支上。线上跑的仍然是上一版的纯客户端应用,这意味着每一个英文 URL 返回的都是逐字节相同的 HTML,而 canonical 全部指向首页。我们等于在明确地告诉搜索引擎:除了首页,其他都不值得收录。
这个问题已经修复。它也是这份清单上影响最大的一项;下面所有条目都是在它之上的、真实但小得多的改进。
每页只有一个 h1,每页都有主地标
更新日志页面渲染了两个 h1——一个来自页面本身,一个来自每条发布记录的 markdown——而且每发一个新版本就会再多一个。现在发布标题被降为 h2,无论日志变得多长,页面都只有一个标题根。
提示词库的流派页和情绪页此前从 h1 直接跳到 h3,情绪页更是完全没有 h2。现在蓝图列表上方有了真正的小节标题。/blog、博客文章和指南页面缺少 <main> 地标,现在所有页面类型都恰好有一个。
字体改为自托管
此前每个页面在首次绘制前,都要等待一个来自第三方字体主机的样式表。两套字体都是可变字体,因此现在整套只有两个文件、共 70 KB,与站点同源,并做了预加载。
工作台也被拆分到了独立的 chunk。它是整个应用中最大的组件树,却只有一个路由能到达;此前每个营销页和提示词库页面都在白白下载它。
每种页面类型都有结构化数据
/guides、/blog、/changelog 和 /studio 此前完全没有 JSON-LD。现在它们都带有 ItemList 与 BreadcrumbList,指南和博客详情页补上了面包屑,所有页面还统一带上了站点级的 Organization 与 WebSite 节点。
我们没有添加 SearchAction。提示词库是在内存中筛选的,并没有一个可以接收搜索词的 URL;声明一个无法访问的端点,比不声明更糟。
图标,以及一个真正的 /favicon.ico
此前图标只以 data URI 的形式内联在每个页面里,因此直接请求 /favicon.ico——爬虫和链接预览 bot 都会这么做——拿到的是应用外壳。现在有了真实的图标文件、Apple 触摸图标和 web manifest。
社交卡片也不再共用一张:每个流派都会生成自己的卡片,带上名称和蓝图数量,不同流派的链接预览不再长得一模一样。
指南数量翻倍
四篇指南里有三篇,在扣除页头页脚后正文不足七十词。这三篇都已重写扩充,另外新增了两篇:一篇讲段落标签与歌曲结构,一篇讲如何用好 Exclude 字段而不过度约束。
/blog 也不再自称是操作教程合集。它此前和 /guides 争夺同一批读者,自己却只有一篇文章;现在它回到了它本来的样子——关于这个产品是怎么做出来的记录。
一些小改动
meta description 此前在 155 字符处被硬切、常常切在词中间,现在会在词边界断开。语言切换器原本是两个按钮,导致中英文版本之间没有可抓取的链接,现在渲染为真正的链接。此前有一份写死的关键词列表和作者标签被输出到全部 57 个页面(包括所有中文页),现已移除。