diff --git a/app/layout.tsx b/app/layout.tsx index 1ad3872..6e82fbc 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -21,8 +21,30 @@ const frutiger = localFont({ }); export const metadata: Metadata = { - title: "Gabriel Kaszewski's Blog", - description: "A personal blog by Gabriel Kaszewski", + metadataBase: new URL("https://blog.gabrielkaszewski.dev"), + title: { + default: "Gabriel Kaszewski's Blog", + template: `%s | Gabriel's Kaszewski Blog`, + }, + description: + "A personal blog by Gabriel Kaszewski about technology, programming, and game development.", + openGraph: { + title: "Gabriel Kaszewski's Blog", + description: + "A personal blog about technology, programming, and game development.", + url: "https://blog.gabrielkaszewski.dev", + siteName: "Gabriel Kaszewski's Blog", + locale: "en_US", + type: "website", + images: [ + { + url: "/default-og-image.avif", + width: 1200, + height: 630, + alt: "Gabriel Kaszewski's Blog", + }, + ], + }, }; export default function RootLayout({ diff --git a/app/robots.tsx b/app/robots.tsx new file mode 100644 index 0000000..3509f3c --- /dev/null +++ b/app/robots.tsx @@ -0,0 +1,15 @@ +import { MetadataRoute } from "next"; + +export default function robots(): MetadataRoute.Robots { + const baseUrl = "https://blog.gabrielkaszewski.dev"; + + return { + rules: [ + { + userAgent: "*", + allow: "/", + }, + ], + sitemap: `${baseUrl}/sitemap.xml`, + }; +} diff --git a/app/sitemap.tsx b/app/sitemap.tsx new file mode 100644 index 0000000..7f92a3e --- /dev/null +++ b/app/sitemap.tsx @@ -0,0 +1,26 @@ +import { MetadataRoute } from "next"; +import { getSortedPostsData } from "@/lib/posts"; + +export default function sitemap(): MetadataRoute.Sitemap { + const baseUrl = "https://blog.gabrielkaszewski.dev"; + + const posts = getSortedPostsData(); + + const postUrls = posts.map((post) => ({ + url: `${baseUrl}/${post.id}`, + lastModified: new Date(post.date).toISOString(), + changeFrequency: "monthly" as const, + priority: 0.8, + })); + + const staticUrls = [ + { + url: baseUrl, + lastModified: new Date().toISOString(), + changeFrequency: "weekly" as const, + priority: 1.0, + }, + ]; + + return [...staticUrls, ...postUrls]; +} diff --git a/public/books.avif b/public/books.avif deleted file mode 100644 index 0854580..0000000 Binary files a/public/books.avif and /dev/null differ diff --git a/public/default-og-image.avif b/public/default-og-image.avif new file mode 100644 index 0000000..7da0417 Binary files /dev/null and b/public/default-og-image.avif differ