Skip to content

feat(seo): canonical, social cards, robots and sitemap - #42

Merged
JulioMCruz merged 1 commit into
mainfrom
feat/seo-metadata
Aug 5, 2026
Merged

feat(seo): canonical, social cards, robots and sitemap#42
JulioMCruz merged 1 commit into
mainfrom
feat/seo-metadata

Conversation

@JulioMCruz

Copy link
Copy Markdown
Contributor

Why

The site shipped with a title and a description and nothing else:

  • no canonical URL
  • no Open Graph or Twitter tags, so a shared link rendered as a bare URL with no image
  • /robots.txt and /sitemap.xml both returned 404
  • no structured data

What changed

  • app/layout.tsx: metadataBase, canonical, Open Graph (with image), Twitter summary_large_image, explicit robots directives including max-image-preview: large, and a title template so future pages inherit the suffix.
  • app/robots.ts: allow the landing; disallow /admin, /dashboard, /api/, /knowledge/, /skill/ and /healthz, which are either wallet-gated or agent endpoints rather than pages.
  • app/sitemap.ts: the landing, the only public page today.
  • public/og.png: a 1200x630 card built in the site's own palette (accent #7cf7c8, background #08110f), carrying the same message as the hero.
  • JSON-LD on the landing: WebSite, Organization and SoftwareApplication, limited to what the page itself claims.

Verification

npx next build succeeds and lists ○ /robots.txt and ○ /sitemap.xml as static routes. Typecheck reports nothing in the touched files.

Deploy note: served from the VPS, needs a manual deploy after merge.

The site had a title and a description and nothing else. No canonical, no
Open Graph, no Twitter card, and /robots.txt and /sitemap.xml both 404,
so a shared link rendered as a bare URL and crawlers had no guidance.

- layout metadata: metadataBase, canonical, Open Graph, Twitter summary
  card, explicit robots directives, and a title template for subpages.
- app/robots.ts: allow the landing, keep crawlers out of the wallet-gated
  dashboard and admin views and the agent endpoints under /api, /knowledge
  and /skill.
- app/sitemap.ts: the landing, which is the only public page.
- public/og.png: a 1200x630 card in the site's own palette.
- JSON-LD on the landing (WebSite, Organization, SoftwareApplication) so
  search engines and assistants describe the service accurately.

Build verified: /robots.txt and /sitemap.xml are emitted as static routes.
@JulioMCruz
JulioMCruz merged commit 1a1d82e into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant