Genel Site Layout
Ana menü, footer, genel CTA ve standart içerik genişliği içeren temel yapı.

Bu kapsamlı rehberde, bir web projesine başlamadan önce yapılması gereken teknik planlama adımları detaylı biçimde ele alınır. Requirements belirleme, sitemap oluşturma, route tasarımı, URL architecture kurgusu, layout ve page ayrımı, reusable component mantığı ve içerik modelinin nasıl tasarlanacağı tek bir örnek proje üzerinden açıklanır. Özellikle yeni web projesi planlayan geliştiriciler, site yöneticileri ve dijital hizmet sunan ekipler için, kodlama sürecine geçmeden önce sağlam bir yapı kurmanın neden kritik olduğu sade ama teknik bir dille anlatılır.
Bir web projesinin başarısı çoğu zaman yazılan ilk satır kodla değil, o kod yazılmadan önce alınan doğru kararlarla belirlenir. Pek çok proje, teknik olarak geliştirilebilir olmasına rağmen gereksinimler netleşmediği, sayfa yapısı planlanmadığı veya içerik modeli düşünülmediği için zaman kaybına, yeniden geliştirmeye ve maliyet artışına yol açar. Bu nedenle sağlam bir web projesi, önce mimari olarak kurulur, sonra geliştirilir.
Bu yazıda requirements, sitemap, route, URL architecture, layout, page, reusable component ve içerik modeli kavramlarını tek bir örnek web projesi üzerinden teknik ama anlaşılır şekilde ele alacağız. Örnek senaryomuz, hizmet sayfaları, blog, paketler, iletişim formu ve yönetilebilir içerik alanlarına sahip bir kurumsal web platformu olacak. Böylece hem geliştiriciler hem de site yöneticileri, kodlama başlamadan önce nasıl bir planlama yapılması gerektiğini net biçimde görebilecek.
Requirements, bir web projesinde neyin yapılacağını, neyin yapılmayacağını ve sistemin hangi amaçla var olacağını tanımlayan temel çerçevedir. Bu aşama atlandığında ekipler genellikle herkesin farklı bir proje hayal ettiği bir sürecin içine girer. Sonuç olarak tasarım başka bir hedefe, yazılım başka bir kullanıma ve içerik üretimi başka bir yapıya göre ilerler.
Requirements dokümanı yalnızca müşteri isteklerinin listesi değildir, aynı zamanda iş hedefleri, kullanıcı rolleri, içerik türleri, teknik ihtiyaçlar ve operasyonel süreçleri de kapsar. Örneğin bir kurumsal web projesinde sadece ana sayfa, hakkımızda ve iletişim sayfası isteniyor gibi görünse de, teklif toplama, çoklu dil, SEO alanları, admin paneli, blog yönetimi ve form kayıtlarının saklanması gibi ihtiyaçlar erken aşamada ortaya çıkarılmalıdır. Bu yüzden requirements, proje kapsamını sabitleyen ve sonraki tüm teknik kararların dayandığı ilk katmandır.
Örnek proje üzerinden gidersek ihtiyaçları şu şekilde tanımlayabiliriz:
| Alan | Gereksinim |
|---|---|
| Amaç | Kurumsal tanıtım, hizmet sunumu, lead toplama |
| İçerik | Sayfalar, hizmetler, paketler, blog yazıları, SSS |
| Kullanıcı | Ziyaretçi, editör, yönetici |
| Teknik | SEO uyumlu URL, yönetim paneli, form yönetimi |
| Büyüme | İleride çoklu dil ve özel platform modülleri eklenebilir |
Bu noktada requirements iki ana başlıkta ele alınmalıdır: fonksiyonel ve fonksiyonel olmayan gereksinimler. Fonksiyonel gereksinimler, sistemin ne yapacağını tanımlar; örneğin blog yazısı ekleme, hizmet sayfası oluşturma veya iletişim formu gönderme gibi. Fonksiyonel olmayan gereksinimler ise hız, güvenlik, ölçeklenebilirlik, SEO uygunluğu, yönetilebilirlik ve bakım kolaylığı gibi kalite kriterlerini belirler.
İyi hazırlanmış bir requirements seti, özellikle Pratikweb benzeri hazır ama geliştirilebilir çözüm modellerinde daha da önemlidir. Çünkü burada sadece bugün ihtiyaç duyulan yapı değil, ileride e-ticaret, ilan, özel üyelik veya servis birleşimi gibi genişlemeler de düşünülmelidir. Yani requirements, bugünkü siteyi değil, yarın dönüşebilecek dijital ürünü de hesaba katmalıdır.
Sitemap, bir web projesindeki sayfaların ve içerik bölümlerinin birbiriyle ilişkisini gösteren yapısal haritadır. Çoğu kişi sitemap denince sadece SEO için oluşturulan XML dosyasını düşünür, ancak proje planlama aşamasında sitemap çok daha stratejik bir kavramdır. Buradaki amaç, sitenin kaç ana bölümden oluşacağını, alt sayfaların nasıl gruplanacağını ve kullanıcının içerikte nasıl dolaşacağını belirlemektir.
Örnek kurumsal platform için sitemap şu mantıkla kurgulanabilir: ana sayfa, kurumsal sayfalar, hizmet detay sayfaları, paketler, blog, iletişim ve yasal sayfalar. Eğer sistem ileride büyüyecekse, bu harita buna uygun şekilde modüler tasarlanmalıdır. Böylece başlangıçta küçük görünen bir site, sonradan dağınık bir yapıya dönüşmeden gelişebilir.
Aşağıdaki örnek, sade ama ölçeklenebilir bir sitemap yapısını gösterir:
Marka mesajı, öne çıkan hizmetler, güven unsurları ve CTA alanları burada yer alır.
Hakkımızda, nasıl çalışıyoruz, referanslar ve sık sorulan sorular gibi güven oluşturan içerikler bu grupta toplanır.
Her hizmet için ayrı detay sayfası, gerekiyorsa fiyat veya paket karşılaştırma yapıları burada bulunur.
SEO trafiği ve bilgilendirici içerikler için kategori, listeleme ve detay sayfaları planlanır.
İletişim formu, teklif talebi, teşekkür sayfası ve yasal metinler bu bölümde yer alır.
Sitemap hazırlanırken sadece menü yapısı düşünülmemelidir. Bazı sayfalar menüde görünmez ama sistem için kritik olabilir; örneğin teşekkür sayfası, kampanya landing page'leri, kategori filtreleri veya özel form sayfaları gibi. Eğer bunlar sitemap aşamasında düşünülmezse route ve içerik modeli tarafında sonradan yamalı bir yapı oluşur.
Bir diğer önemli konu da içerik sahipliğidir. Hangi sayfa statik olacak, hangi bölüm yönetim panelinden düzenlenecek, hangi içerik listelenecek ve hangi yapı otomatik üretilecek soruları sitemap üzerinde netleşmelidir. Bu netlik sağlandığında, proje hem tasarım hem backend hem de SEO tarafında çok daha düzenli ilerler.
Route, kullanıcının tarayıcıda ziyaret ettiği yolun uygulama içinde hangi sayfaya veya hangi içerik tipine karşılık geldiğini tanımlar. URL architecture ise bu yolların mantıklı, ölçeklenebilir, okunabilir ve SEO dostu şekilde nasıl kurgulanacağını belirler. Kısacası route uygulamanın teknik eşlemesidir, URL architecture ise bu eşlemenin stratejik tasarımıdır.
Yeni başlayan ekiplerin en sık yaptığı hata, route yapısını sadece mevcut birkaç sayfaya göre planlamaktır. Oysa iyi bir URL yapısı, bugünkü içerikleri taşıdığı kadar yarın eklenecek yeni bölümleri de desteklemelidir. Örneğin bugün yalnızca
/hizmetler/web-tasarimÖrnek proje için mantıklı bir route ve URL architecture yapısı şöyle olabilir:
| İçerik Türü | Örnek URL | Not |
|---|---|---|
| Ana sayfa | / | En güçlü giriş noktası |
| Statik sayfa | /hakkimizda | Tekil kurumsal içerik |
| Hizmet liste | /hizmetler | Tüm hizmetlerin listesi |
| Hizmet detay | /hizmetler/web-tasarim | Slug tabanlı detay |
| Paketler | /paketler | Karşılaştırma veya fiyat yapısı |
| Blog liste | /blog | Tüm yazılar |
| Blog kategori | /blog/kategori/seo | Filtrelenebilir yapı |
| Blog detay | /blog/web-projesi-planlama-rehberi | İçerik bazlı sayfa |
| İletişim | /iletisim | Form odaklı dönüşüm sayfası |
İyi URL architecture için bazı temel ilkeler vardır. URL'ler kısa, anlaşılır, hiyerarşik ve tutarlı olmalıdır. Türkçe karakter, gereksiz parametre, anlamsız klasör isimleri ve sık yapısal değişikliklerden kaçınılmalıdır.
Aşağıdaki maddeler pratikte karar vermeyi kolaylaştırır:
Bir başka kritik konu da route ile erişim kontrolünü karıştırmamaktır. Örneğin
/admin/dashboard/panel/blogLayout, birçok sayfa tarafından ortak kullanılan yapısal çerçevedir. Header, footer, yan menü, breadcrumb, genel sayfa genişliği, CTA alanı veya ortak form blokları gibi öğeler genellikle layout seviyesinde ele alınır. Page ise belirli bir route'a karşılık gelen, kendine özgü içerik ve iş mantığı taşıyan tekil ekrandır.
Bu ayrım net yapılmadığında aynı kod, aynı tasarım ve aynı içerik blokları farklı sayfalarda tekrar tekrar yazılmaya başlar. Sonuç olarak bakım maliyeti artar, küçük bir header değişikliği onlarca sayfada ayrı ayrı düzenlenmek zorunda kalır. Özellikle kurumsal web projelerinde sayfa sayısı büyüdükçe layout mantığı, kod kalitesinden çok operasyonel verimlilik için kritik hale gelir.
Örnek projede birkaç farklı layout tanımlanabilir. Genel site layout'u, blog layout'u, landing page layout'u ve admin panel layout'u gibi ayrımlar hem geliştirici hem editör tarafında işleri kolaylaştırır. Böylece her yeni sayfa sıfırdan tasarlanmaz, doğru şablon içinde konumlandırılır.
Aynı proje içinde farklı sayfa tipleri için farklı çerçeveler kullanılabilir.
Ana menü, footer, genel CTA ve standart içerik genişliği içeren temel yapı.
Yazı başlığı, öne çıkan görsel, içerik alanı, ilgili yazılar ve paylaşım blokları için optimize edilmiş yapı.
Menü sadeleştirilmiş, dönüşüm odaklı, dikkat dağıtıcı öğeleri azaltılmış kampanya yapısı.
İçerik yönetimi, listeleme ekranları, formlar ve yetkilendirme akışlarına uygun arayüz çerçevesi.
Page seviyesinde ise her ekranın kendi amacı tanımlanmalıdır. Örneğin ana sayfa marka anlatımı ve yönlendirme için vardır, hizmet detay sayfası arama niyetine cevap verir, blog yazısı bilgi sağlar, iletişim sayfası form dönüşümü üretir. Bu nedenle page, yalnızca bir içerik kabı değil, kullanıcı niyeti ile iş hedefinin kesiştiği ekrandır.
İyi bir planlamada şu soru sorulur: Bu bilgi layout'a mı ait, page'e mi ait? Eğer cevap birçok sayfada ortaksa layout katmanında tutulmalıdır. Eğer yalnızca belirli sayfaya özgüyse page içinde tanımlanmalıdır.
Reusable component, bir projede birden fazla yerde kullanılabilen, belirli sorumluluğu olan ve gerektiğinde farklı verilerle yeniden üretilebilen arayüz parçasıdır. Buton, kart, FAQ bloğu, fiyat planı kartı, içerik listesi, breadcrumb, form alanı veya CTA kutusu buna örnek olabilir. Amaç yalnızca kod tekrarını azaltmak değil, aynı zamanda tasarım ve davranış tutarlılığı sağlamaktır.
Yeni projelerde sık görülen hata, önce sayfaların tek tek yapılması ve tekrar eden bölümlerin daha sonra fark edilmesidir. Bu yaklaşım kısa vadede hızlı görünse de uzun vadede komponent dağınıklığı üretir. Bunun yerine, planlama aşamasında hangi yapıların ortak davranış göstereceği belirlenirse hem frontend geliştirme hem de içerik yönetimi tarafı çok daha temiz ilerler.
Örnek kurumsal projede reusable component adayları şunlar olabilir:
Birincil, ikincil ve metin linki varyasyonları olan ortak buton yapısı.
Sayfa başlığı, açıklama ve breadcrumb alanını farklı sayfalarda kullanan üst bölüm bileşeni.
Hizmet listelerinde, ana sayfa öne çıkanlarında ve ilgili hizmet alanlarında yeniden kullanılabilen kart yapısı.
Paket karşılaştırmalarında kullanılan, rozet, özellik listesi ve CTA içeren plan kartı.
Açılır kapanır soru cevap bileşeni, hem hizmet detaylarında hem genel SSS sayfasında kullanılabilir.
İletişim, teklif ve demo taleplerinde farklı bağlamlarla çalışan ortak form bileşeni.
Burada kritik nokta, reusable component ile page section kavramını ayırt etmektir. Her tekrar eden alan mutlaka en küçük atomik komponent olmak zorunda değildir. Bazen bir tüm blok, örneğin "güven rozetleri alanı" veya "ilgili yazılar bölümü", section seviyesinde yeniden kullanılabilir bir yapı olabilir. Yani yeniden kullanılabilirlik, yalnızca küçük UI parçaları için değil, içerik blokları için de planlanmalıdır.
Sağlam komponent planlaması için bileşenlerin girdileri de düşünülmelidir. Hangi alanlar zorunlu, hangileri opsiyonel, hangi varyantlar desteklenecek, görsel şart mı, CTA kaç adet olabilir, boş veri gelirse ne olacak gibi sorular erkenden cevaplanmalıdır. Bu yaklaşım, özellikle Pratikweb gibi yönetilebilir ve ölçeklenebilir yapılarda, içerik ekibi ile yazılım ekibi arasındaki sürtüşmeyi ciddi biçimde azaltır.
İçerik modeli, sitedeki bilgilerin nasıl saklanacağını, hangi alanlardan oluşacağını ve hangi içerik türlerinin birbirleriyle ilişkili olacağını tanımlar. Basit görünen projelerde bile içerik modeli düşünülmeden geliştirilen sistemler kısa sürede yönetilemez hale gelir. Çünkü ekranda gördüğünüz her blok, arka planda bir veri yapısına dayanır.
Örneğin bir hizmet detay sayfası yalnızca başlık ve metinden ibaret değildir. SEO başlığı, meta açıklaması, öne çıkan görsel, özet metin, avantajlar listesi, sık sorulan sorular, CTA başlığı, CTA butonu ve ilgili hizmetler gibi pek çok veri alanı olabilir. Bunlar içerik modelinde net tanımlanmadığında editörler rastgele alanlarla çalışır, geliştiriciler ise her yeni ihtiyaçta veri yapısını yeniden kurmak zorunda kalır.
Örnek projede kullanılabilecek bazı temel content type'lar şunlardır:
| İçerik Tipi | Örnek Alanlar |
|---|---|
| Page | title, slug, hero_title, body, seo_title, seo_description |
| Service | name, slug, summary, content, benefits, faq, cover_image |
| BlogPost | title, slug, excerpt, body, category, tags, published_at |
| Package | name, price, features, badge, cta_text, cta_url |
| FAQ | question, answer, group |
| Global Settings | site_name, logo, contact_info, social_links |
İçerik modeli tasarlanırken üç seviye birlikte düşünülmelidir. Birincisi içerik tipi, yani neyin yönetileceği. İkincisi alanlar, yani her içerik tipinin hangi verileri taşıyacağı. Üçüncüsü ilişkiler, yani örneğin bir blog yazısının kategoriye, bir hizmet sayfasının FAQ grubuna veya bir paketin belirli landing page'e nasıl bağlanacağı.
Özellikle admin panel kullanılacak projelerde içerik modeli sade ama genişleyebilir olmalıdır. Editörlerin kullanamayacağı kadar karmaşık alanlar eklemek de, yetersiz alanlarla onları kısıtlamak da hatadır. Doğru yaklaşım, gerçek yayın akışını destekleyen net alanlar tanımlamak ve sık tekrar eden ihtiyaçlar için yapılandırılmış veri kullanmaktır.
Şimdiye kadar anlattığımız kavramları tek bir örnek üzerinden birleştirelim. Diyelim ki bir dijital hizmet şirketi için yönetilebilir, SEO uyumlu ve ileride genişlemeye açık bir web platformu geliştiriliyor. Bu yapı başlangıçta kurumsal site olarak yayınlanacak, ancak daha sonra blog, paketler, teklif akışları ve özel servis sayfalarıyla büyüyecek.
Bu senaryoda planlama sırası şu mantıkla ilerlemelidir. Önce requirements belirlenir, çünkü hangi kullanıcılar için ne üretildiği netleşmeden mimari kurulamaz. Sonra sitemap hazırlanır, çünkü sayfaların ve içerik tiplerinin büyük resmi görülmelidir. Ardından route ve URL architecture tanımlanır, böylece hem teknik dosyalama mantığı hem kullanıcıya görünen yapı yerli yerine oturur. Sonrasında layout, page ve reusable component sınırları çizilir. En son içerik modeli netleştirilerek admin panel ve veri yönetimi temellendirilir.
Bu akışı daha somut görmek için aşağıdaki eşleştirme faydalı olur:
Burada özellikle web tabanlı hazır çözümler sunan yapılarda modüler düşünmek büyük avantaj sağlar. Örneğin Pratikweb benzeri bir hizmet modelinde müşteriye önce hazır bir kurumsal web sitesi sunulabilir, ancak aynı altyapı üzerinde blog, hizmet katalogu, fiyat planları ve daha sonra özel platform çözümleri de geliştirilebilir. Bunun mümkün olması için başlangıçtaki planlama kararlarının yalnızca bugünkü ihtiyaçlara göre değil, gelecekteki servis birleşimlerine göre de verilmesi gerekir.
Yani teknik planlama, sadece geliştiricinin kod yazma kolaylığı için değildir. Aynı zamanda satış sürecinin doğru paketlenmesi, içerik ekibinin hızlı çalışması, SEO performansının korunması ve müşterinin ileride yeni ihtiyaçlar çıktığında mevcut sistemi çöpe atmadan büyüyebilmesi için gereklidir.
Bir proje planlandı sanılmasına rağmen çoğu zaman temel kararların yarısı belirsiz kalır. Bu nedenle kodlamaya başlamadan önce ekip içinde ortak bir kontrol listesi üzerinden geçmek çok faydalıdır. Böylece eksik görünen ama ileride büyük probleme dönüşecek noktalar erkenden yakalanır.
Aşağıdaki kontrol listesi, özellikle geliştiriciler, proje yöneticileri ve site sahipleri için pratik bir başlangıç çerçevesi sunar:
Requirements dokümanı yazıldı mı, sitemap onaylandı mı, URL yapısı gelecekteki içerik türlerini destekliyor mu, ortak layout'lar ve reusable component'ler tanımlandı mı, içerik modeli admin kullanımına uygun mu? Bu soruların her birine net cevap vermeden kod yazmaya başlamak, projeyi teknik borçla başlatmak anlamına gelir.
Ek olarak şu başlıkları yazılı hale getirmek büyük avantaj sağlar:
Bu sorulara verilen yanıtlar, projeyi sadece çalışan değil, sürdürülebilir bir sisteme dönüştürür. Özellikle uzun ömürlü web projelerinde başarı, hızlı başlamakta değil, doğru temelle başlamaktadır.
Bir web projesinde requirements, sitemap, route, URL architecture, layout, page, reusable component ve içerik modeli birbirinden bağımsız kavramlar değildir. Bunlar birlikte çalıştığında proje netleşir, ekip uyumlu hareket eder ve geliştirme süreci öngörülebilir hale gelir. Kodlama başlamadan önce yapılan bu planlama, sonradan oluşacak teknik borcu ciddi ölçüde azaltır.
Eğer yeni bir web projesi planlıyorsanız, önce hangi sayfaları yapacağınızı değil, nasıl bir sistem kurduğunuzu düşünün. Çünkü doğru planlanan bir yapı, yalnızca bugün yayınlanacak siteyi değil, yarın büyüyecek dijital ürünü de taşır. İster sıfırdan özel geliştirme yapın, ister Pratikweb benzeri hazır ama genişleyebilir bir çözüm kullanın, güçlü teknik planlama projenin en kârlı yatırım kalemlerinden biridir.