diff --git a/app/layout.tsx b/app/layout.tsx
index e7ddb11..6ab47a5 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -2,13 +2,77 @@ import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import { Providers } from "./providers";
+import { JsonLd } from "@/components/JsonLd";
const inter = Inter({ subsets: ["latin"] });
+const SITE_URL = "https://songs2vid.com";
+const SITE_NAME = "Songs2VID";
+const DEFAULT_TITLE =
+ "Songs2VID - Fast Audio to Video Converter for YouTube | TunesToTube Alternative";
+const DEFAULT_DESCRIPTION =
+ "Convert MP3, WAV, and audio files into YouTube videos instantly. The fastest, privacy-focused online tool to upload music, beats, and podcasts directly to YouTube.";
+const OG_TITLE = "Songs2VID - Fast Audio to Video Converter for YouTube";
+const OG_DESCRIPTION =
+ "Convert MP3 & audio files into YouTube videos instantly without heavy editing.";
+const TWITTER_DESCRIPTION = "Convert MP3 & audio files into YouTube videos instantly.";
+
export const metadata: Metadata = {
- title: "Songs2VID",
- description:
- "Songs2VID is an automation tool that converts your audio and image files into high-quality videos and uploads them directly to YouTube.",
+ metadataBase: new URL(SITE_URL),
+ title: {
+ default: DEFAULT_TITLE,
+ template: `%s | ${SITE_NAME}`,
+ },
+ description: DEFAULT_DESCRIPTION,
+ keywords: [
+ "mp3 to youtube",
+ "audio to video converter",
+ "upload audio to youtube",
+ "tunestotube alternative",
+ "song to video",
+ "podcast to youtube",
+ "convert mp3 to mp4",
+ ],
+ authors: [{ name: SITE_NAME, url: SITE_URL }],
+ creator: SITE_NAME,
+ publisher: SITE_NAME,
+ applicationName: SITE_NAME,
+ alternates: {
+ canonical: SITE_URL,
+ },
+ openGraph: {
+ title: OG_TITLE,
+ description: OG_DESCRIPTION,
+ url: SITE_URL,
+ siteName: SITE_NAME,
+ type: "website",
+ locale: "en_US",
+ images: [
+ {
+ url: "/logo.png",
+ width: 512,
+ height: 512,
+ alt: SITE_NAME,
+ },
+ ],
+ },
+ twitter: {
+ card: "summary_large_image",
+ title: OG_TITLE,
+ description: TWITTER_DESCRIPTION,
+ images: ["/logo.png"],
+ },
+ robots: {
+ index: true,
+ follow: true,
+ googleBot: {
+ index: true,
+ follow: true,
+ },
+ },
+ icons: {
+ icon: "/favicon.png",
+ },
};
export default function RootLayout({
@@ -19,6 +83,7 @@ export default function RootLayout({
return (
+
{children}
diff --git a/app/page.tsx b/app/page.tsx
index 4b77fd4..712a8e1 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -41,8 +41,9 @@ export default async function HomePage() {
2VID
- Songs2VID is an automation tool that converts your audio and image files into
- high-quality videos and uploads them directly to YouTube.
+ Convert MP3, WAV, and audio files into YouTube videos instantly — a fast, privacy-focused
+ audio to video converter and TunesToTube alternative that uploads music, beats, and
+ podcasts directly to your channel.
diff --git a/app/privacy/page.tsx b/app/privacy/page.tsx
index 828896b..6aff5ad 100644
--- a/app/privacy/page.tsx
+++ b/app/privacy/page.tsx
@@ -3,8 +3,9 @@ import { LegalPageLayout } from "@/components/LegalPageLayout";
import { LEGAL_OPERATOR } from "@/lib/legal/constants";
export const metadata: Metadata = {
- title: "Privacy Policy | Songs2VID",
+ title: "Privacy Policy",
description: "How Songs2VID collects, uses, and protects your personal data.",
+ alternates: { canonical: "https://songs2vid.com/privacy" },
};
export default function PrivacyPage() {
diff --git a/app/refund/page.tsx b/app/refund/page.tsx
index 5e96adf..8b15c4a 100644
--- a/app/refund/page.tsx
+++ b/app/refund/page.tsx
@@ -4,8 +4,9 @@ import { LegalPageLayout } from "@/components/LegalPageLayout";
import { LEGAL_OPERATOR } from "@/lib/legal/constants";
export const metadata: Metadata = {
- title: "Refund Policy | Songs2VID",
+ title: "Refund Policy",
description: "Refund and cancellation policy for Songs2VID paid plans.",
+ alternates: { canonical: "https://songs2vid.com/refund" },
};
export default function RefundPage() {
diff --git a/app/robots.ts b/app/robots.ts
new file mode 100644
index 0000000..332d58c
--- /dev/null
+++ b/app/robots.ts
@@ -0,0 +1,11 @@
+import type { MetadataRoute } from "next";
+
+export default function robots(): MetadataRoute.Robots {
+ return {
+ rules: {
+ userAgent: "*",
+ allow: "/",
+ },
+ sitemap: "https://songs2vid.com/sitemap.xml",
+ };
+}
diff --git a/app/sitemap.ts b/app/sitemap.ts
new file mode 100644
index 0000000..796b3f3
--- /dev/null
+++ b/app/sitemap.ts
@@ -0,0 +1,20 @@
+import type { MetadataRoute } from "next";
+
+const SITE_URL = "https://songs2vid.com";
+
+export default function sitemap(): MetadataRoute.Sitemap {
+ return [
+ {
+ url: SITE_URL,
+ lastModified: new Date(),
+ changeFrequency: "daily",
+ priority: 1.0,
+ },
+ {
+ url: `${SITE_URL}/privacy`,
+ lastModified: new Date(),
+ changeFrequency: "monthly",
+ priority: 0.3,
+ },
+ ];
+}
diff --git a/app/terms/page.tsx b/app/terms/page.tsx
index 7587897..281b4f0 100644
--- a/app/terms/page.tsx
+++ b/app/terms/page.tsx
@@ -4,8 +4,9 @@ import { LegalPageLayout } from "@/components/LegalPageLayout";
import { LEGAL_OPERATOR } from "@/lib/legal/constants";
export const metadata: Metadata = {
- title: "Terms of Service | Songs2VID",
+ title: "Terms of Service",
description: "Terms and conditions for using the Songs2VID hosted service.",
+ alternates: { canonical: "https://songs2vid.com/terms" },
};
export default function TermsPage() {
diff --git a/components/JsonLd.tsx b/components/JsonLd.tsx
new file mode 100644
index 0000000..f3b4c9c
--- /dev/null
+++ b/components/JsonLd.tsx
@@ -0,0 +1,23 @@
+export function JsonLd() {
+ const schema = {
+ "@context": "https://schema.org",
+ "@type": "WebApplication",
+ name: "Songs2VID",
+ url: "https://songs2vid.com",
+ operatingSystem: "Web",
+ applicationCategory: "MultimediaApplication",
+ description: "Online tool to convert audio files into YouTube videos.",
+ offers: {
+ "@type": "Offer",
+ price: "0",
+ priceCurrency: "USD",
+ },
+ };
+
+ return (
+
+ );
+}