diff --git a/web/src/app/icons/page.tsx b/web/src/app/icons/page.tsx index 20a5832c..dcd4b350 100644 --- a/web/src/app/icons/page.tsx +++ b/web/src/app/icons/page.tsx @@ -8,7 +8,7 @@ export async function generateMetadata(): Promise { const totalIcons = icons.length return { - title: "Browse Icons | Dashboard Icons", + title: "Browse Icons | Free Dashboard Icons", description: `Search and browse through our collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, keywords: [ "browse icons", @@ -21,7 +21,7 @@ export async function generateMetadata(): Promise { "app directory", ], openGraph: { - title: "Browse Dashboard Icons Collection", + title: "Browse Icons | Free Dashboard Icons", description: `Search and browse through our collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, type: "website", url: `${BASE_URL}/icons`, @@ -37,7 +37,7 @@ export async function generateMetadata(): Promise { }, twitter: { card: "summary_large_image", - title: "Browse Dashboard Icons Collection", + title: "Browse Icons | Free Dashboard Icons", description: `Search and browse through our collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, images: ["/og-image-browse.png"], }, diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index 2d8eb492..0734f2e8 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -8,6 +8,7 @@ import { Inter } from "next/font/google" import { Toaster } from "sonner" import "./globals.css" import { ThemeProvider } from "./theme-provider" +import { getDescription, websiteTitle } from "@/constants" const inter = Inter({ variable: "--font-inter", @@ -29,8 +30,8 @@ export async function generateMetadata(): Promise { return { metadataBase: new URL("https://dashboardicons.com"), - title: "Dashboard Icons - Your definitive source for dashboard icons", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), keywords: ["dashboard icons", "service icons", "application icons", "tool icons", "web dashboard", "app directory"], robots: { index: true, @@ -44,8 +45,8 @@ export async function generateMetadata(): Promise { siteName: "Dashboard Icons", type: "website", locale: "en_US", - title: "Dashboard Icons - Your definitive source for dashboard icons", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), url: "https://dashboardicons.com", images: [ { @@ -61,8 +62,8 @@ export async function generateMetadata(): Promise { card: "summary_large_image", site: "@homarr_app", creator: "@homarr_app", - title: "Dashboard Icons - Your definitive source for dashboard icons", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), images: ["/og-image.png"], }, applicationName: "Dashboard Icons", diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx index 65768b45..659a98c8 100644 --- a/web/src/app/page.tsx +++ b/web/src/app/page.tsx @@ -1,6 +1,6 @@ import { HeroSection } from "@/components/hero" import { RecentlyAddedIcons } from "@/components/recently-added-icons" -import { BASE_URL, REPO_NAME } from "@/constants" +import { BASE_URL, getDescription, REPO_NAME, websiteTitle } from "@/constants" import { getRecentlyAddedIcons, getTotalIcons } from "@/lib/api" import type { Metadata } from "next" @@ -8,12 +8,12 @@ export async function generateMetadata(): Promise { const { totalIcons } = await getTotalIcons() return { - title: "Dashboard Icons - Beautiful icons for your dashboard", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), keywords: ["dashboard icons", "service icons", "application icons", "tool icons", "web dashboard", "app directory"], openGraph: { - title: "Dashboard Icons - Your definitive source for dashboard icons", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), type: "website", url: BASE_URL, images: [ @@ -26,8 +26,8 @@ export async function generateMetadata(): Promise { ], }, twitter: { - title: "Dashboard Icons - Your definitive source for dashboard icons", - description: `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.`, + title: websiteTitle, + description: getDescription(totalIcons), card: "summary_large_image", images: ["/og-image.png"], }, diff --git a/web/src/constants.ts b/web/src/constants.ts index e0f11781..aa3b705e 100644 --- a/web/src/constants.ts +++ b/web/src/constants.ts @@ -3,3 +3,8 @@ export const REPO_PATH = "https://github.com/homarr-labs/dashboard-icons" export const METADATA_URL = "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/refs/heads/main/metadata.json" export const WEB_URL = "https://dashboardicons.com" export const REPO_NAME = "homarr-labs/dashboard-icons" + +export const getDescription = (totalIcons: number) => + `A collection of ${totalIcons} curated icons for services, applications and tools, designed specifically for dashboards and app directories.` + +export const websiteTitle = "Free Dashboard Icons - Download High-Quality UI & App Icons" \ No newline at end of file