Add full SEO optimization for Spanglish social and language events

- Add comprehensive metadata to root layout with Open Graph, Twitter cards
- Create dynamic sitemap.ts for all pages and events
- Create robots.ts with proper allow/disallow rules
- Add JSON-LD Event structured data to event detail pages
- Add page-specific metadata to events, community, contact, FAQ pages
- Add FAQ structured data schema
- Update footer with local SEO text for Asunción, Paraguay
- Add web manifest for mobile SEO
- Create 404 page with proper noindex
- Optimize image alt text and add lazy loading
- Add NEXT_PUBLIC_SITE_URL env variable
- Add about/ folder to gitignore
This commit is contained in:
root
2026-01-30 21:05:25 +00:00
parent d0ea55dc5b
commit 47ba754f05
40 changed files with 2659 additions and 420 deletions

View File

@@ -94,25 +94,28 @@ export default function HomePage() {
{/* Hero Image Grid */}
<div className="relative">
<div className="grid grid-cols-2 gap-4">
<div className="space-y-4">
<div className="relative rounded-card h-32 flex items-center justify-center overflow-hidden">
<Image
src="/images/2026-01-29 13.10.08.jpg"
alt="Language exchange event"
fill
sizes="(max-width: 1024px) 50vw, 25vw"
className="object-cover"
/>
<div className="space-y-4">
<div className="relative rounded-card h-32 flex items-center justify-center overflow-hidden">
<Image
src="/images/2026-01-29 13.10.08.jpg"
alt="Spanglish language exchange social event in Asunción"
fill
sizes="(max-width: 1024px) 50vw, 25vw"
className="object-cover"
loading="eager"
priority
/>
<div className="absolute inset-0 bg-primary-yellow/60" />
<ChatBubbleLeftRightIcon className="relative z-10 w-16 h-16 text-primary-dark opacity-50" />
</div>
<div className="relative rounded-card h-48 overflow-hidden">
<Image
src="/images/2026-01-29 13.10.23.jpg"
alt="Group language practice"
alt="English and Spanish language practice session in Asunción"
fill
sizes="(max-width: 1024px) 50vw, 25vw"
className="object-cover"
loading="lazy"
/>
</div>
</div>
@@ -120,19 +123,21 @@ export default function HomePage() {
<div className="relative rounded-card h-48 overflow-hidden">
<Image
src="/images/2026-01-29 13.10.16.jpg"
alt="Community meetup"
alt="Spanglish community meetup in Paraguay"
fill
sizes="(max-width: 1024px) 50vw, 25vw"
className="object-cover"
loading="lazy"
/>
</div>
<div className="relative rounded-card h-32 flex items-center justify-center overflow-hidden">
<Image
src="/images/2026-01-29 13.09.59.jpg"
alt="Language exchange group"
alt="Language exchange group practicing English and Spanish"
fill
sizes="(max-width: 1024px) 50vw, 25vw"
className="object-cover"
loading="lazy"
/>
<div className="absolute inset-0 bg-secondary-brown/40" />
<UserGroupIcon className="relative z-10 w-16 h-16 text-secondary-brown opacity-70" />