diff --git a/next-sitemap.config.mjs b/next-sitemap.config.mjs
new file mode 100644
index 0000000..2826e5a
--- /dev/null
+++ b/next-sitemap.config.mjs
@@ -0,0 +1,7 @@
+/** @type {import('next-sitemap').IConfig} */
+const config = {
+ siteUrl: "https://planpostai.com",
+ generateRobotsTxt: true,
+};
+
+export default config;
diff --git a/package-lock.json b/package-lock.json
index a3d4639..60b0219 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
"framer-motion": "^12.4.7",
"lucide-react": "^0.476.0",
"next": "15.1.7",
+ "next-sitemap": "^4.2.3",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"tailwind-merge": "^3.0.2",
@@ -47,6 +48,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@corex/deepmerge": {
+ "version": "4.0.43",
+ "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz",
+ "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==",
+ "license": "MIT"
+ },
"node_modules/@emnapi/runtime": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
@@ -3067,7 +3074,6 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -3084,7 +3090,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -4328,7 +4333,6 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -4455,6 +4459,39 @@
}
}
},
+ "node_modules/next-sitemap": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.2.3.tgz",
+ "integrity": "sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==",
+ "funding": [
+ {
+ "url": "https://github.com/iamvishnusankar/next-sitemap.git"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@corex/deepmerge": "^4.0.43",
+ "@next/env": "^13.4.3",
+ "fast-glob": "^3.2.12",
+ "minimist": "^1.2.8"
+ },
+ "bin": {
+ "next-sitemap": "bin/next-sitemap.mjs",
+ "next-sitemap-cjs": "bin/next-sitemap.cjs"
+ },
+ "engines": {
+ "node": ">=14.18"
+ },
+ "peerDependencies": {
+ "next": "*"
+ }
+ },
+ "node_modules/next-sitemap/node_modules/@next/env": {
+ "version": "13.5.11",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.11.tgz",
+ "integrity": "sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==",
+ "license": "MIT"
+ },
"node_modules/next/node_modules/postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
diff --git a/package.json b/package.json
index 67c0dc0..64e9f67 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"framer-motion": "^12.4.7",
"lucide-react": "^0.476.0",
"next": "15.1.7",
+ "next-sitemap": "^4.2.3",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"tailwind-merge": "^3.0.2",
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..aadc14d
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,9 @@
+# *
+User-agent: *
+Allow: /
+
+# Host
+Host: https://planpostai.com
+
+# Sitemaps
+Sitemap: https://planpostai.com/sitemap.xml
diff --git a/public/sitemap.xml b/public/sitemap.xml
new file mode 100644
index 0000000..39fed00
--- /dev/null
+++ b/public/sitemap.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 5dc7dc9..e9070ff 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -16,11 +16,27 @@ const geistMono = Geist_Mono({
});
export const metadata: Metadata = {
- title: "PlanPost AI",
- description: "Generate Schedule Automate",
+ title: "AI Marketing Assistant – Content, Ads & SEO | PlanPost AI",
+ description:
+ "PlanPost AI is your all-in-one AI marketing assistant. Generate social media posts, ad copy & SEO-optimized content in seconds to grow faster.",
other: {
"google-site-verification": "Rn-ac8EjV1gz0_r88occ0drnrpdHj636Us5SZvm5o5I",
},
+ openGraph: {
+ title: "AI Marketing Assistant – Content, Ads & SEO | PlanPost AI",
+ description:
+ "PlanPost AI is your all-in-one AI marketing assistant. Generate social media posts, ad copy & SEO-optimized content in seconds to grow faster.",
+ url: "https://planpostai.com",
+ siteName: "PlanPost AI",
+ locale: "en_US",
+ type: "website",
+ },
+ twitter: {
+ card: "summary",
+ title: "AI Marketing Assistant – Content, Ads & SEO | PlanPost AI",
+ description:
+ "PlanPost AI is your all-in-one AI marketing assistant. Generate social media posts, ad copy & SEO-optimized content in seconds to grow faster.",
+ },
};
export default function RootLayout({
@@ -49,7 +65,9 @@ export default function RootLayout({
`}