From 04853aadc3b2fc5db2911090ca944790fbd69b3d Mon Sep 17 00:00:00 2001 From: sushantoray Date: Mon, 11 Aug 2025 13:13:32 +0600 Subject: [PATCH 1/5] add robot.ts --- app/robots.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 app/robots.ts diff --git a/app/robots.ts b/app/robots.ts new file mode 100644 index 0000000..b6aa819 --- /dev/null +++ b/app/robots.ts @@ -0,0 +1,19 @@ +/** + * FILE PATH: app/robots.ts + * + * This file should be placed in the root app/ directory of your Next.js project. + * It generates robots.txt for search engine crawling. + */ + +import { MetadataRoute } from 'next' + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: '*', + allow: '/', + disallow: ['/api/', '/_next/', '/admin/'], + }, + sitemap: 'https://muradianconvertor.com/sitemap.xml', + } +} From edacf5ac6f7561fd96aaf0f3c46c78723018117c Mon Sep 17 00:00:00 2001 From: sushantoray Date: Mon, 11 Aug 2025 13:14:16 +0600 Subject: [PATCH 2/5] add sitemap file.ts --- app/sitemap-index.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 app/sitemap-index.ts diff --git a/app/sitemap-index.ts b/app/sitemap-index.ts new file mode 100644 index 0000000..ba1bfdf --- /dev/null +++ b/app/sitemap-index.ts @@ -0,0 +1,17 @@ +/** + * FILE PATH: app/sitemap-index.ts + * + * This file should be placed in the root app/ directory of your Next.js project. + * It generates a sitemap index for better organization. + */ + +import { MetadataRoute } from 'next' + +export default function sitemapIndex(): MetadataRoute.Sitemap { + return [ + { + url: 'https://muradianconvertor.com/sitemap.xml', + lastModified: new Date(), + }, + ] +} From 426c61b8cb41bb5479eda8548ce184cb3662b610 Mon Sep 17 00:00:00 2001 From: sushantoray Date: Mon, 11 Aug 2025 13:14:47 +0600 Subject: [PATCH 3/5] add sitemap.ts --- app/sitemap.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/sitemap.ts diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..76c8a72 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,33 @@ +/** + * FILE PATH: app/sitemap.ts + * + * This file should be placed in the root app/ directory of your Next.js project. + * It generates a dynamic sitemap for better SEO. + */ + +import { MetadataRoute } from 'next' + +export default function sitemap(): MetadataRoute.Sitemap { + const baseUrl = 'https://muradianconvertor.com' + + return [ + { + url: baseUrl, + lastModified: new Date(), + changeFrequency: 'daily', + priority: 1, + }, + { + url: `${baseUrl}/about`, + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 0.8, + }, + { + url: `${baseUrl}/privacy-policy`, + lastModified: new Date(), + changeFrequency: 'yearly', + priority: 0.5, + }, + ] +} From 0aa6bd095196230640a6d8efbf8c711bc54f2390 Mon Sep 17 00:00:00 2001 From: sushantoray Date: Mon, 11 Aug 2025 13:15:34 +0600 Subject: [PATCH 4/5] add manifest.ts --- app/manifest.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 app/manifest.ts diff --git a/app/manifest.ts b/app/manifest.ts new file mode 100644 index 0000000..c5a5a89 --- /dev/null +++ b/app/manifest.ts @@ -0,0 +1,32 @@ +/** + * FILE PATH: app/manifest.ts + * + * This file should be placed in the root app/ directory of your Next.js project. + * It generates a web app manifest for PWA capabilities. + */ + +import { MetadataRoute } from 'next' + +export default function manifest(): MetadataRoute.Manifest { + return { + name: 'MuradianConvertor - Free Unlimited File Converter', + short_name: 'MuradianConvertor', + description: 'Transform images, videos, and audio files with cutting-edge technology. No registration, no limits, no watermarks.', + start_url: '/', + display: 'standalone', + background_color: '#ffffff', + theme_color: '#7c3aed', + icons: [ + { + src: '/images/logo.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: '/images/logo.png', + sizes: '512x512', + type: 'image/png', + }, + ], + } +} From d21be807e5f133dbe147bc21f56417add37d1667 Mon Sep 17 00:00:00 2001 From: sushantoray Date: Mon, 11 Aug 2025 13:16:07 +0600 Subject: [PATCH 5/5] improve seo done --- app/next-sitemap.config.js | 58 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 app/next-sitemap.config.js diff --git a/app/next-sitemap.config.js b/app/next-sitemap.config.js new file mode 100644 index 0000000..35242be --- /dev/null +++ b/app/next-sitemap.config.js @@ -0,0 +1,58 @@ +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: process.env.SITE_URL || 'https://muradianconvertor.com', + generateRobotsTxt: true, + generateIndexSitemap: true, + exclude: ['/admin/*', '/api/*'], + robotsTxtOptions: { + policies: [ + { + userAgent: '*', + allow: '/', + disallow: ['/api/', '/_next/', '/admin/'], + }, + ], + additionalSitemaps: [ + 'https://muradianconvertor.com/sitemap.xml', + ], + }, + changefreq: 'daily', + priority: 0.7, + sitemapSize: 5000, + transform: async (config, path) => { + // Custom transformation for different page types + if (path === '/') { + return { + loc: path, + changefreq: 'daily', + priority: 1.0, + lastmod: new Date().toISOString(), + } + } + + if (path === '/about') { + return { + loc: path, + changefreq: 'monthly', + priority: 0.8, + lastmod: new Date().toISOString(), + } + } + + if (path === '/privacy-policy') { + return { + loc: path, + changefreq: 'yearly', + priority: 0.5, + lastmod: new Date().toISOString(), + } + } + + return { + loc: path, + changefreq: config.changefreq, + priority: config.priority, + lastmod: new Date().toISOString(), + } + }, +}