互客鱼 返回主站

运营

SEO 表面

每个公共路由都会发出每页 SEO 块 — 标题、描述、规范 URL、Open Graph 卡片、Twitter 卡片和 JSON-LD 结构化数据 — 无需在 React 层中进行任何每页工作。 运行白标签安装的买家继承相同的机制;在 /settings/branding 中替换品牌名称,元块会跟随。

开箱即用的内容

  • Per-route titles + descriptions. 定义在 App\Support\SeoMeta::ROUTE_DEFAULTS 中。像 {brand} 这样的 token 在渲染时插值,因此重命名的安装永远不会将源产品名称泄漏到元块中。
  • Canonical URLs. 每个页面通过 <link rel="canonical"> 声明其规范 URL,锚定在 config('app.url') + 路由路径上。搜索引擎永远不必猜测哪个变体是主版本。
  • Open Graph + Twitter cards. 共享社交预览覆盖 og:typeog:site_nameog:titleog:descriptionog:urlog:image,以及 twitter:card="summary_large_image" 伴侣。OG 图像默认为 public/og-image.png;在那里放入您自己的以覆盖。
  • JSON-LD structured data. 三个块层叠在标准元数据之上:
    • Organization — 每个页面。品牌名称、规范 URL 和(如果存在)徽标。
    • SoftwareApplication — 仅首页。让 Google 的丰富结果选择器将我们呈现为带有优惠 + 免费层价格的应用。
    • FAQPage — 仅首页,来自管理员在设置 → 营销中编辑的营销 FAQ。编辑自动流转到结构化数据 — Google 的丰富结果选择器直接在匹配查询的搜索片段下呈现 Q+A。
  • /sitemap.xml — 每个营销页面、每个文档 slug 和每个发布的变更日志版本。在控制器级别缓存 1 小时,因此新的变更日志条目会在缓存窗口内显示。
  • /robots.txt — 允许公共表面;禁止 /admin/app/api//settings 和认证流程;引用站点地图,以便爬虫在首次嗅探时找到它。

为新路由添加 SEO

添加新公共页面时要触及的两个地方:

  1. SeoMeta::ROUTE_DEFAULTS 中注册默认值,带有 title / description / path。对任何应出现安装名称的地方使用 {brand}
  2. 在控制器中,将 SEO 有效负载传递给 Inertia:
    return Inertia::render('your/page', [
        // ... your props
        'seo' => SeoMeta::for('your-route-key'),
    ]);

Inertia 根布局(resources/views/app.blade.php)读取 props.seo 并自动发出元块。 无需每页 Blade 工作。

需要按行变化描述(例如每个版本的变更日志页面)?传递覆盖:

'seo' => SeoMeta::for('changelog.show', [
    'title' => "v1.1.0 — what's new in {brand}",
    'description' => "Released " . $entry->released_at_human . " — " . $entry->summary,
])

自定义 Open Graph 图像

public/og-image.png 放置 1200×630 PNG(或 JPG)。 运行自己安装的买家可以通过 SFTP 或部署主机的文件管理器直接交换文件。 SeoMeta 解析器在渲染时检查文件是否存在;如果不存在, 元块静默省略 og:imagetwitter:image,而不是指向 404。

站点地图缓存

站点地图在 seo:sitemap.xml 下缓存 1 小时。 要在发布期待已久的变更日志条目后强制刷新:

php artisan tinker --execute 'cache()->forget("seo:sitemap.xml");'

繁忙安装上的爬虫流量否则将是 O(crawl rate) 数据库命中; 缓存将其平铺为每个节点每小时一次重建。

排除的路由

路由前缀为什么排除
/admin/*平台管理员表面。租户感知数据。
/app/*工作区仪表板。需要认证,工作区范围。
/api/*API 表面 — JSON,不适合爬虫。
/login, /register, password reset认证流程 — 无 SEO 价值,没有供爬虫索引的内容。
/settings/*需要认证的用户/平台设置。