From 28f1c6bb8151cada11bf3f3ccbe6cd213b89762a Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Fri, 6 Mar 2026 14:49:59 -0800 Subject: [PATCH] update: improve SEO - absolute OG image URLs, add sitemap and robots.txt - Use absolute URLs for OG/Twitter images (required by LinkedIn, WhatsApp) - Add image type and descriptive alt text for OG image - Add robots.txt allowing all crawlers - Add dynamic sitemap.xml with all public pages Co-Authored-By: Claude Opus 4.6 --- app/layout.tsx | 14 +++++++++++--- app/sitemap.ts | 15 +++++++++++++++ public/robots.txt | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 app/sitemap.ts create mode 100644 public/robots.txt diff --git a/app/layout.tsx b/app/layout.tsx index ef3851d..71065f3 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -28,10 +28,11 @@ export const metadata: Metadata = { siteName: "Crypto Commons Gathering", images: [ { - url: "/og-image.jpg", + url: "https://cryptocommonsgather.ing/og-image.jpg", width: 1200, height: 630, - alt: "Crypto Commons Gathering 2026 - Austrian Alps", + alt: "Commons Hub in Austria's Höllental Valley with yellow tulips in foreground", + type: "image/jpeg", }, ], locale: "en_US", @@ -42,7 +43,14 @@ export const metadata: Metadata = { title: "Crypto Commons Gathering 2026 | CCG", description: "The sixth annual hack-ademic confluence of commons praxis and the latest cryptographic technologies in the Austrian Alps. August 16-23, 2026.", - images: ["/og-image.jpg"], + images: [ + { + url: "https://cryptocommonsgather.ing/og-image.jpg", + width: 1200, + height: 630, + alt: "Commons Hub in Austria's Höllental Valley with yellow tulips in foreground", + }, + ], }, } diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..8a5ab79 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,15 @@ +import type { MetadataRoute } from "next" + +export default function sitemap(): MetadataRoute.Sitemap { + const baseUrl = "https://cryptocommonsgather.ing" + + return [ + { url: baseUrl, lastModified: new Date(), changeFrequency: "weekly", priority: 1.0 }, + { url: `${baseUrl}/register`, lastModified: new Date(), changeFrequency: "weekly", priority: 0.9 }, + { url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.8 }, + { url: `${baseUrl}/directions`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 }, + { url: `${baseUrl}/transparency`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.6 }, + { url: `${baseUrl}/gallery`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.6 }, + { url: `${baseUrl}/sponsorships`, lastModified: new Date(), changeFrequency: "monthly", priority: 0.5 }, + ] +} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..1786aad --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://cryptocommonsgather.ing/sitemap.xml