Özet
Sultanahmet'teki Hotel Perula için TR/EN/HU üç dilli bir web sitesi geliştirdim. Macar turizm pazarına yönelik özel içerik stratejisi (Útikalauz blog), üç dil için doğru hreflang yapısı ve Cloudflare Pages üzerinde tamamen statik bir mimari ile butik otel için modern bir dijital varlık oluşturduk.
İstanbul'a gelen turistlerin önemli bir kısmı kalacakları oteli henüz uçaktayken seçmemiş oluyor. Telefonlarını çıkarıyor, kendi dillerinde "Sultanahmet otel" araması yapıyor ve ilk birkaç sonuçtan birini seçiyor. Otel için web sitesi artık marka vitrini değil — doğrudan rezervasyon kaynağı.
Hotel Perula, 2011'den beri Sultanahmet'in tam göbeğinde, Binbirdirek Mahallesi Peykhane Sokak'ta hizmet veren bir butik otel. Kek Mecsete (Sultanahmet Camii) yüz metre, Hagia Sophia'ya 250 metre — neredeyse her ikonik İstanbul yapısına yürüyüş mesafesinde. Hedef kitlesi yerel TR pazardan çok uluslararası turist; özellikle Macar pazarı belirgin bir öncelik.
Bu yazı, otel için geliştirdiğim üç dilli (TR/EN/HU) web sitesinin teknik mimarisini ve içerik stratejisini detaylandırıyor.
Üç Dil: Neden Macarca?
Çok dilli web sitesi tasarlarken en kritik karar hangi dillerin destekleneceği. İngilizce zorunlu, Türkçe yerel pazar için zorunlu, ama üçüncü dil seçimi stratejik bir karardır. Hotel Perula için bu dil Macarca oldu.
Sebep ikili: Birincisi, Sultanahmet'te konaklayan Macar turistlerinin hatırı sayılır bir hacmi var ve Macar dilinde içerik üreten otel sayısı parmakla sayılacak kadar az — açık bir SEO fırsatı. İkincisi, otel sahipliğinin Macar dilinde içerik üretebilme kapasitesi vardı, bu da hem ilk içerik üretimini hem de uzun vadeli güncellemeleri sürdürülebilir kıldı.
Bu karar pratikte şu sonucu verdi: Macarca "Isztambul szállás Sultanahmet" ya da "Kék Mecset közelében hotel" gibi sorgularda otel ilk sayfada yer almaya başladı — burada rekabet İngilizce'ye göre çok daha düşük.
Teknik Stack
Platform için her zamanki tercihim olan Next.js'i seçtim. Hotel Perula, Optima Gravitas, Günaydın Diş Kliniği gibi diğer freelance projelerimde kanıtlanmış bir stack. Static export modunda Cloudflare Pages üzerinde sıfır server maliyetiyle yayınlanabiliyor, edge'de saniyenin altında açılıyor, SEO açısından tam render edilmiş HTML servis ediyor.
Tailwind CSS arayüz, TypeScript tip güvenliği. Rezervasyon ve iletişim formlarından gelen taleplerin otele iletilmesi için Resend kullandım — basit, güvenilir bir transactional email servisi. Görseller WebP formatında, hero görseller priority ve fetchpriority="high" flag'leri ile LCP optimizasyonu.
Domain ve DNS yönetimi için ayrı bir adım atmamız gerekti. Otelin alan adı önceden başka bir sağlayıcıdaydı; deploy sürecini sadeleştirmek ve SSL/CDN avantajlarından tam yararlanmak için DNS'i kendi Cloudflare hesabıma taşıdım. Bu sayede artık tek bir dashboard'dan hem hosting hem domain hem de cache yönetimi yapılabiliyor.
Üç Dilli Mimari: Route Groups
Tek dilli bir Next.js sitesinde <html lang> etiketini layout'a yazmak yeterli. İki dilli bir sitede iş zorlaşıyor. Üç dilli bir sitede ise yanlış kurulduğunda tüm SEO çalışmasının çöpe gitmesine neden olabilecek kadar kritik.
Hotel Perula için Next.js'in route groups özelliğini kullandım. Klasör yapısı:
app/
├── (tr)/
│ ├── layout.tsx ← <html lang="tr">
│ └── tr/...
├── (en)/
│ ├── layout.tsx ← <html lang="en">
│ └── en/...
└── (hu)/
├── layout.tsx ← <html lang="hu">
└── hu/...
Parantez içindeki (tr), (en), (hu) URL'e yansımıyor — sadece klasör organizasyonu için. Her grubun kendi layout.tsx'i var ve her layout <html lang> etiketini kendi diline göre statik olarak yazıyor. Build çıktısında /tr/... sayfaları gerçekten lang="tr", /en/... sayfaları lang="en", /hu/... sayfaları lang="hu" HTML üretiyor.
Bu önemli çünkü Cloudflare Pages static export modunda dinamik middleware çalışmıyor. Tek doğru yaklaşım build-time statik render. Aynı yapıyı şu anda okuduğunuz efegerek.com ve Günaydın Diş Kliniği sitesinde de kullanıyorum.
Hreflang: Üç Dilin Birbiriyle Konuşması
Üç dilli bir sitede her sayfanın diğer iki dildeki muadiline işaret etmesi gerekiyor:
<link rel="alternate" hreflang="tr" href="https://hotelperula.com/tr/rooms/" />
<link rel="alternate" hreflang="en" href="https://hotelperula.com/en/rooms/" />
<link rel="alternate" hreflang="hu" href="https://hotelperula.com/hu/rooms/" />
<link rel="alternate" hreflang="x-default" href="https://hotelperula.com/en/rooms/" />
x-default etiketi tartışmalı bir karar. Bir yerel diş kliniği projemde bu varsayılanı TR olarak ayarlamıştık — çünkü hedef yerel pazardı. Hotel Perula'da ise tam tersi karar verildi: x-default = EN. Sebep basit, otelin hedef kitlesi büyük oranda uluslararası turist; dili tespit edilemeyen bir kullanıcı (örneğin VPN üzerinden gelen, dil ayarı belirsiz bir tarayıcı) İngilizce sürümle karşılaşmalı.
Bu detay aynı stack'te ama farklı pazarlardaki iki proje için tamamen ters kararı gerektirebiliyor — SEO hizmetlerinde bu tarz hedef kitle analizi her projenin ilk adımı.
Sitemap için her dilin kendi sitemap.xml'i var ve ana index dosyası üçünü de referans ediyor. Google Search Console'da her dil için ayrı bir sürümün performansını izlemek mümkün.
Schema Markup: LodgingBusiness ve Aggregate Review
Otel için doğru schema kombinasyonu birkaç parçadan oluşuyor:
LodgingBusiness — otelin kendisi. Adres, telefon, açılış saatleri, kabul edilen ödeme türleri, oda sayısı.
HotelRoom — her oda tipi (Eco, Standard, Triple, Family) ayrı bir schema. Oda adı, açıklaması, kapasitesi, özellikleri.
AggregateRating — otelin Google ve TripAdvisor üzerindeki kullanıcı puanları ve yorum sayısı. Bu schema arama sonuçlarında yıldız derecelendirmesi olarak görünüyor — tıklama oranını belirgin şekilde artırıyor.
BreadcrumbList — her sayfanın navigasyon hiyerarşisi.
Tüm schema'ları her sayfanın <head> kısmında JSON-LD olarak yerleştirdim. Otel schema'sının özelliği aggregateRating alanının düzenli olarak güncellenmesi — yorum sayısı arttıkça kod tabanında bu sayıyı manuel olarak güncellemek gerekiyor.
İçerik Pazarlaması: Üç Dilli Útikalauz
Bir butik otelin sitesinde sadece "rezervasyon yapın" demek yeterli değil. Modern otel SEO'su giderek daha fazla içerik pazarlamasına dayanıyor. Hotel Perula için her üç dilde de blog/útikalauz (rehber) bölümü oluşturduk.
Macarca tarafta strateji çok netti: Sultanahmet civarındaki ikonik yapılar için detaylı, Macar turistin ihtiyacını hedefleyen rehber yazılar. Örnekler:
- Hagia Sophia útikalauz — yapıyı ziyaret edecek Macar turistler için pratik rehber: açılış saatleri, bilet bilgileri, ne giyilmeli, ne kadar süre ayrılmalı.
- Hagia Sophia története — aynı yapının tarihçesi, Bizans-Osmanlı geçişi, mimari detaylar. Bu yazı turistin ziyaret öncesi yaptığı araştırma sorgularını yakalıyor.
- Topkapi palota útikalauz — otele 600 metre mesafedeki Topkapı Sarayı için ziyaret rehberi.
- Reptéri transzfer Isztambul — havalimanı transfer seçenekleri, fiyatlar, otel transfer servisi bilgisi.
Bu içerik mimarisinin akıllı tarafı dahili linkleme. Her rehber yazısı uygun yerlerde otel sayfasına link veriyor. Hagia Sophia rehberini okuyan bir Macar turist yazının içinde "Hagia Sophia'ya 250 metre mesafedeki konaklama" cümlesi ile otelin oda sayfasına yönleniyor. Bu, rehbere gelen organik trafik için doğal bir dönüşüm akışı.
Aynı içerik mimarisi TR ve EN için de var ama hacim olarak HU tarafındaki rekabet avantajı daha belirgin.
Yerel Coğrafya: Her Dilde Doğru İsimlendirme
Macarca içerik için fark eden bir nokta: yer adlarının yerel karşılıkları. "Blue Mosque" değil Kék Mecset. "Sea of Marmara" değil Márvány-tenger. "Topkapı Palace" yerine Topkapi palota. "Princes' Islands" yerine Herceg-szigetek.
Bu detaylar makine çevirisinin yakalayamadığı yerlerdir. Her dil sürümü ayrı ayrı yazıldı — otomatik çeviri kullanılmadı. Bunun SEO maliyeti var: otomatik çeviri alanlarına ucuz çeviri trafiği gelmez, gelse de bounce rate yüksek olur. Manuel yazılmış lokalize içerik hem doğru anahtar kelimeleri hem de doğru kültürel referansları yakalıyor.
Otel web sitesi yapımı yaklaşımımın temelinde bu var — şablon doldurmak yerine pazarlamayı dile göre tasarlamak.
Cloudflare Pages Deploy Süreci
Build pipeline standart: GitHub'a push → Cloudflare Pages otomatik build tetikliyor → next build çalışıyor → out/ klasörü Cloudflare CDN'e dağıtılıyor → 30 saniye sonra canlıda.
Static export'un sınırlamalarından dolayı yapamadığımız şeyler:
- Server-side rezervasyon işlemi yok — rezervasyon formu doğrudan otelin booking engine'ine yönlendiriyor.
- Dinamik dil tespiti middleware yok — bunun yerine dil seçici manuel.
- Image optimization API kapalı —
unoptimized: trueflag'i ile görseller build öncesi WebP'ye dönüştürülüp servis ediliyor.
Bu kısıtlamaların karşılığında elde edilen şey çok değerli: sıfır server maliyet, edge cache ile global hızlı erişim, sıfır runtime hata yüzeyi. Otel siteyi yıllarca dokunmadan açık tutabilir — hosting iflas etse kod elimde, başka bir CDN'e dakikalar içinde taşınır.
Performans
Lighthouse mobil skorları her üç dilde de tutarlı şekilde yüksek. Statik HTML + Cloudflare CDN + WebP görseller + minimal JavaScript kombinasyonunun doğal sonucu. Otel web sitelerinde mobil performans özellikle kritik — bir turist İstanbul'a ilk kez geliyor, bavulunu sürüklüyor, mobil veri ile kalacak yer arıyor. Sayfa açılışını 5 saniye beklerse zaten kaybedilmiş bir rezervasyon.
Core Web Vitals üçü de Google'ın "Good" eşiklerinin altında — LCP, CLS ve INP. Bu rakamları ekstra optimizasyon araçları kullanmadan elde ettik; stack'in kendisi yeterince hızlı.
Öğrenilen Dersler
Üçüncü dil seçimi içerik üretim kapasitesine bağlı yapın. Bir dilde içerik üretemiyorsanız, o dilde sürdürülemez bir SEO yatırımı yaparsınız. Hotel Perula için Macarca seçimi sürdürülebilir oldu çünkü içerik üretim kapasitesi vardı. Bu kapasite olmadan dördüncü, beşinci dil eklemek anlamsız.
Otomatik çeviri kullanmayın — özellikle SEO odaklı içerikte. Lokalize edilmemiş içerik Google'da düşük performans gösterir, bounce rate yüksektir. Manuel çeviri pahalı görünebilir ama otomatik çeviriden gelen düşük kaliteli trafik aslında bedava değil — domain otoritesini düşürür.
Hreflang x-default değerini hedef kitlenize göre seçin. Yerel işletme TR, uluslararası otel EN, akademik içerik genelde EN. Burada genel kural yok — projeye özel.
İçerik pazarlaması = uzun vadeli SEO yatırımı. Bir otel sitesinin "Foglaljon" butonuna kaç kişi tıkladığı kısa vadeli metrik. Asıl iş "Isztambul látnivalók" araması yapan bir Macar turistin 6 ay sonra otelinizi rezerve etmesini sağlamak. Bu blog yazıları bunu yapıyor.
Sonuç
Üç dilli bir butik otel web sitesi tasarımı dil paneli eklemekle bitmiyor. Doğru dil mimarisi, hreflang yapısı, schema markup, kültürel olarak doğru çeviri ve hedef pazara özel içerik stratejisi birlikte çalışmak zorunda. Hotel Perula projesi bu boyutların hepsinde titiz çalışmayı gerektirdi.
Diğer kurumsal projelerimi referanslar sayfasında, otel web sitesi yaklaşımımı ise hizmet sayfasında inceleyebilirsiniz. Otel, klinik veya başka bir kurumsal web sitesi projesi düşünüyorsanız iletişim formu üzerinden konuşalım.

