feat: SEO improvements — Twitter cards, canonical URL, sitemap, robots, llms.txt
Adds metadataBase, og:image, og:url, Twitter card tags, canonical URL, sitemap.ts, robots.ts with AI crawler directives, and llms.txt.
This commit is contained in:
@@ -17,11 +17,13 @@ const jetbrainsMono = JetBrains_Mono({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL("https://codeboard.vectry.tech"),
|
||||
title: "CodeBoard — Understand any codebase in 5 minutes",
|
||||
description:
|
||||
"Paste a GitHub URL and get interactive onboarding documentation with architecture diagrams, module breakdowns, and getting started guides. Built by Vectry AI consultancy.",
|
||||
keywords: ["code analysis", "documentation", "github", "codebase", "AI", "developer tools"],
|
||||
authors: [{ name: "Vectry" }],
|
||||
creator: "Vectry",
|
||||
icons: {
|
||||
icon: [
|
||||
{ url: "/favicon.ico", sizes: "any" },
|
||||
@@ -35,6 +37,31 @@ export const metadata: Metadata = {
|
||||
description:
|
||||
"Paste a GitHub URL and get interactive onboarding documentation with architecture diagrams, module breakdowns, and getting started guides.",
|
||||
type: "website",
|
||||
url: "https://codeboard.vectry.tech",
|
||||
siteName: "CodeBoard",
|
||||
locale: "en_US",
|
||||
images: [
|
||||
{
|
||||
url: "/og-image.png",
|
||||
width: 1200,
|
||||
height: 630,
|
||||
alt: "CodeBoard — Understand any codebase in 5 minutes",
|
||||
},
|
||||
],
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: "CodeBoard — Understand any codebase in 5 minutes",
|
||||
description:
|
||||
"Paste a GitHub URL and get interactive onboarding documentation with architecture diagrams, module breakdowns, and getting started guides.",
|
||||
images: ["/og-image.png"],
|
||||
},
|
||||
alternates: {
|
||||
canonical: "https://codeboard.vectry.tech",
|
||||
},
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
20
apps/web/src/app/robots.ts
Normal file
20
apps/web/src/app/robots.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { MetadataRoute } from "next";
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: [
|
||||
{ userAgent: "GPTBot", allow: "/" },
|
||||
{ userAgent: "ClaudeBot", allow: "/" },
|
||||
{ userAgent: "PerplexityBot", allow: "/" },
|
||||
{ userAgent: "CCBot", disallow: "/" },
|
||||
{ userAgent: "Google-Extended", disallow: "/" },
|
||||
{ userAgent: "Bytespider", disallow: "/" },
|
||||
{
|
||||
userAgent: "*",
|
||||
allow: "/",
|
||||
disallow: ["/api/"],
|
||||
},
|
||||
],
|
||||
sitemap: "https://codeboard.vectry.tech/sitemap.xml",
|
||||
};
|
||||
}
|
||||
8
apps/web/src/app/sitemap.ts
Normal file
8
apps/web/src/app/sitemap.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { MetadataRoute } from "next";
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const baseUrl = "https://codeboard.vectry.tech";
|
||||
return [
|
||||
{ url: baseUrl, lastModified: new Date(), changeFrequency: "weekly", priority: 1.0 },
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user