TL;DR

  • 一天之内对五个公开仓库和几个私有仓库执行了相同的 SEO + 分析清单。
  • 不同技术栈(Laravel、Next.js、Astro),相同的清单:meta/OG、canonical、sitemap、robots、JSON-LD、通过环境变量驱动的分析。
  • 经验:SEO 是一个可以移植的清单,而不是每个项目都要重新发明的功能。

今天是一个主题日。没有给一个仓库添加大功能,而是几乎整个作品集都得到了相同的处理:搜索引擎和分析相关的基础设施。跨不同技术栈连续操作后,模式变得明显——概念完全相同,只有语法不同。

跨技术栈移植的清单

每个站点都获得了相同的项目。不同之处仅在于每个框架如何表达它们:

项目 Laravel Next.js Astro
Sitemap artisan 命令 / 路由 sitemap.ts @astrojs/sitemap
Robots 动态 /robots.txt robots.ts public/_redirects + 文件
Canonical + OG Blade head 部分 layout.tsx metadata BaseLayout.astro
结构化数据 JSON-LD Blade 部分 <JsonLd> 组件 内联 <script type="ld+json">
Analytics 通过环境变量驱动的 GA/GTM NEXT_PUBLIC_GA_ID 通过环境变量驱动的 GA

相同的五行,三种语言。一旦完成一次,剩下的就是翻译。

公开仓库

Laravel 启动套件 Kickoff 获得了最大的改动——一个完整的管理员可编辑 SEO & 分析基线(我今天专门为此写了一篇文章)。它的营销站点 kickoff-web 进行了落地页重新设计,并加入了 SEO 基础设施、规范域名和 hreflang/schema 图。

在 Astro 方面,g8suite-web 增加了结构化数据图(WebSite / WebPage / Breadcrumb / SoftwareApplication)、OG 图像和站点地图索引。gatherhub-web 获得了 sitemap、robots、canonicals、JSON-LD 和 GA——此外还进行了令人满意的清理,删除了已失效的模板代码。DevHub 网站 提供了每路由 SEO、生成的站点地图、通过环境变量控制的 GA4,以及一个新的培训目录,每个页面都有正确的 FAQ schema。

私有工作(匿名化)

在一个私有 Laravel 活动平台上,我执行了相同的 SEO 阶段——meta/OG 基础设施、在公开页面上使用 JSON-LD 结构化数据、可配置的分析——然后进入性能阶段:WebP 图像转换、懒加载和 LCP 优先提示。可复用的思路是:通过小型可调用操作类(BuildEventJsonLdBuildSitemap)构建 JSON-LD,使 schema 逻辑可测试且脱离视图。

我还花时间为即将开展的培训计划起草课程内容和营销图片包——主要是整理材料,而非编写代码。

收获

将 SEO 视为可移植的清单,而不是每个项目的临时应对,将一整天“枯燥的基础设施”工作变成了快速、可重复的任务。写一次清单,记在脑中(或文档中),每个新项目都能提前三步。