Implement comprehensive homepage improvements and SEO optimization
Major homepage and SEO enhancements based on optimization document: **Homepage Content Updates:** - Updated H1 titles with SEO-optimized text for both RO/EN - Enhanced hero descriptions with targeted keywords - Improved feature descriptions for better clarity - Updated daily verse section with keyword-rich titles - Added new footer description with SEO focus **SEO Implementation:** - Added dynamic metadata generation with locale-specific SEO - Implemented Open Graph tags for social media sharing - Added Twitter Card metadata for enhanced sharing - Integrated Schema.org JSON-LD structured data - Set up hreflang tags for international SEO - Added canonical URLs to prevent duplicate content - Included targeted keywords for both languages **Technical Improvements:** - Migrated from Docker to PM2 deployment - Removed Docker files and updated deployment scripts - Updated README with PM2 instructions - Fixed console log cleanup for production - Added proper favicon with Next.js app directory - Increased memory limit to 4GB for better performance - Updated port configuration to 0.0.0.0:3010 - Set Romanian (/ro) as default locale with proper redirects **Translation Updates:** - Enhanced Romanian translations with SEO-optimized content - Updated English translations with matching SEO improvements - Added new 'seo' namespace for metadata translations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { NextResponse } from 'next/server'
|
||||
import type { NextRequest } from 'next/server'
|
||||
// Avoid importing Node-only modules in Middleware (Edge runtime)
|
||||
import createIntlMiddleware from 'next-intl/middleware'
|
||||
import { locales } from './i18n'
|
||||
|
||||
// Internationalization configuration
|
||||
const intlMiddleware = createIntlMiddleware({
|
||||
locales: ['ro', 'en'],
|
||||
defaultLocale: 'ro'
|
||||
locales: [...locales],
|
||||
defaultLocale: 'ro',
|
||||
localePrefix: 'always'
|
||||
})
|
||||
|
||||
// Note: Avoid using Prisma or any Node-only APIs in Middleware.
|
||||
@@ -71,10 +72,11 @@ export const config = {
|
||||
// Match all pathnames except for
|
||||
// - api routes
|
||||
// - _next (Next.js internals)
|
||||
// - _vercel
|
||||
// - static files (images, etc.)
|
||||
'/((?!api|_next|_vercel|.*\\..*).*)',
|
||||
// However, match all pathnames within `/api`, except for the Middleware to run there
|
||||
'/api/:path*',
|
||||
'/dashboard/:path*'
|
||||
// - favicon.ico, robots.txt, sitemap.xml
|
||||
'/((?!api|_next|_vercel|.*\\..*|favicon.ico|robots.txt|sitemap.xml).*)',
|
||||
// Match internationalized pathnames
|
||||
'/(ro|en)/:path*'
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user