From 06878f2d36a4e49587235965dc4213dad943e54c Mon Sep 17 00:00:00 2001 From: Din Date: Wed, 4 Mar 2026 01:23:11 +0000 Subject: [PATCH] fix(www): SEO/AEO audit improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add robots.txt with sitemap reference - Add Organization JSON-LD structured data site-wide - Add BreadcrumbList JSON-LD to doc and component pages - Fix heading hierarchy on homepage (h3 → h2) - Add noindex to 404 page - Fix og:type from website to article on component pages - Add aria-hidden to decorative SVGs on landing page - Support robotsMeta and structuredData props in root layout Co-Authored-By: Oz --- apps/www/public/robots.txt | 6 ++++ .../landing/components-overview.astro | 2 +- apps/www/src/components/landing/cta.astro | 16 +++++----- .../www/src/components/landing/features.astro | 12 +++---- apps/www/src/components/landing/shadcn.astro | 4 +-- apps/www/src/components/structured-data.astro | 12 +++++++ apps/www/src/layouts/root-layout.astro | 23 +++++++++++-- apps/www/src/pages/404.astro | 1 + apps/www/src/pages/docs/[...slug].astro | 24 ++++++++++++++ .../pages/docs/components/[component].astro | 32 ++++++++++++++++++- 10 files changed, 112 insertions(+), 20 deletions(-) create mode 100644 apps/www/public/robots.txt create mode 100644 apps/www/src/components/structured-data.astro diff --git a/apps/www/public/robots.txt b/apps/www/public/robots.txt new file mode 100644 index 00000000..ba358d88 --- /dev/null +++ b/apps/www/public/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Allow: / + +Disallow: /api/ + +Sitemap: https://ui.shipbase.xyz/sitemap-index.xml diff --git a/apps/www/src/components/landing/components-overview.astro b/apps/www/src/components/landing/components-overview.astro index b654c2c6..e05b31ea 100644 --- a/apps/www/src/components/landing/components-overview.astro +++ b/apps/www/src/components/landing/components-overview.astro @@ -4,7 +4,7 @@ import ExampleCards from "../example-cards/index.astro"
-

Everything you need to build

+

Everything you need to build

A comprehensive component library with 30+ production-ready components, rich examples, and ready-to-use blocks. Built on Ark UI primitives with diff --git a/apps/www/src/components/landing/cta.astro b/apps/www/src/components/landing/cta.astro index 35c8228d..94e1206a 100644 --- a/apps/www/src/components/landing/cta.astro +++ b/apps/www/src/components/landing/cta.astro @@ -59,19 +59,19 @@ import Vue from "@/assets/logos/vue.svg"

- +
- +
- +
- +
@@ -85,19 +85,19 @@ import Vue from "@/assets/logos/vue.svg"

- +
- +
- +
- +
diff --git a/apps/www/src/components/landing/features.astro b/apps/www/src/components/landing/features.astro index 3f4047ef..b6ff74b3 100644 --- a/apps/www/src/components/landing/features.astro +++ b/apps/www/src/components/landing/features.astro @@ -12,7 +12,7 @@ import { cn } from "@/lib/utils"
-

Framework Agnostic

+

Framework Agnostic

Works with any React, Vue, Solid, Svelte stack. Whether you're using Next.js, Nuxt, Astro, or SvelteKit. our components integrate seamlessly @@ -51,7 +51,7 @@ import { cn } from "@/lib/utils"

-

Composable Design

+

Composable Design

Every component uses a common, composable interface. Build complex UIs effortlessly with modular components that work seamlessly together. @@ -62,7 +62,7 @@ import { cn } from "@/lib/utils"

-

Fully Accessible

+

Fully Accessible

Screen reader tested. Keyboard navigation perfected. Built-in focus management. Accessibility isn't an afterthought—it's the foundation. @@ -76,7 +76,7 @@ import { cn } from "@/lib/utils"

-

Beautiful Defaults

+

Beautiful Defaults

Thoughtfully crafted default styles that look professional from day one. Beautiful foundations, endless customization possibilities. @@ -87,7 +87,7 @@ import { cn } from "@/lib/utils"

-

Code Ownership

+

Code Ownership

No vendor lock-in. No hidden dependencies. Install via CLI or copy-paste. All components live in your repo — you own your codebase. @@ -102,7 +102,7 @@ import { cn } from "@/lib/utils" "before:absolute before:inset-0 before:bg-gradient-to-br before:from-transparent before:to-primary/5 before:opacity-0 hover:before:opacity-100 before:transition-opacity before:duration-300" )} > -

Open Source

+

Open Source

MIT licensed. Transparent development. Community contributions welcome. Built by developers, for developers, with developers. diff --git a/apps/www/src/components/landing/shadcn.astro b/apps/www/src/components/landing/shadcn.astro index 21c6f660..4fe8f854 100644 --- a/apps/www/src/components/landing/shadcn.astro +++ b/apps/www/src/components/landing/shadcn.astro @@ -6,7 +6,7 @@ import ShadcnXTitle from "@/components/landing/shadcn-x-title.astro"

-

+

Inspired by shadcn/ui -

+

shadcn/ui is a game changer that revolutionized the way to build component libraries through Composition, Distribution system, and AI-Ready. diff --git a/apps/www/src/components/structured-data.astro b/apps/www/src/components/structured-data.astro new file mode 100644 index 00000000..cb0efbf1 --- /dev/null +++ b/apps/www/src/components/structured-data.astro @@ -0,0 +1,12 @@ +--- +export interface Props { + data: Record | Record[] +} + +const { data } = Astro.props +const items = Array.isArray(data) ? data : [data] +--- + +{items.map((item) => ( +