Takip et

Jekyll’de URL’leri ve Bağlantıları Kontrol Etme Rehberi

Jekyll’de URL’leri ve Bağlantıları Kontrol Etme Rehberi Jekyll, statik site oluşturucu olarak, web sitelerinin hızlı ve güvenli bir şekilde b

Jekyll’de URL’leri ve Bağlantıları Kontrol Etme Rehberi

Jekyll, statik site oluşturucu olarak, web sitelerinin hızlı ve güvenli bir şekilde barındırılmasını sağlar. Ancak bir web sitesinin başarısı sadece hızı ve güvenliğiyle sınırlı değildir; aynı zamanda kullanıcı deneyimi, arama motoru optimizasyonu (SEO) ve site bakımı açısından URL yapısı ve bağlantı yönetimi de kritik öneme sahiptir. Jekyll, bu konularda geliştiricilere geniş kontrol imkanları sunar. Bu kapsamlı rehberde, Jekyll sitelerinizdeki URL’leri ve bağlantıları nasıl etkin bir şekilde yöneteceğinizi, permalink yapılarından dahili ve harici bağlantılara, SEO dostu uygulamalardan yönlendirmelere kadar tüm detaylarıyla inceleyeceğiz.

Neden URL ve Bağlantı Kontrolü Önemlidir?

URL’ler (Uniform Resource Locators) bir web sayfasının kimliğidir ve internet üzerindeki konumunu belirtir. Bağlantılar ise bu URL’ler aracılığıyla kullanıcıları ve arama motoru botlarını farklı sayfalara yönlendiren köprülerdir. Bu ikilinin doğru yönetimi, bir Jekyll sitesi için aşağıdaki faydaları sağlar:

* Arama Motoru Optimizasyonu (SEO): Anlamlı, kısa ve anahtar kelime içeren URL’ler, arama motorlarının içeriği daha iyi anlamasına ve sıralamalarda yükselmesine yardımcı olur. Kırık bağlantılar veya yinelenen içerik sorunları SEO performansını olumsuz etkiler.
* Kullanıcı Deneyimi (UX): Temiz, tahmin edilebilir ve açıklayıcı URL’ler, kullanıcıların sitenizde gezinmesini kolaylaştırır. Kırık bağlantılar veya yanlış yönlendirmeler kullanıcıları hayal kırıklığına uğratır.
* Site Bakımı ve Sürdürülebilirlik: Tutarlı bir URL yapısı, site içeriğini yönetmeyi, güncelleştirmeyi ve genişletmeyi kolaylaştırır. Linklerin doğru bir şekilde referans alınması, gelecekteki değişikliklerde oluşabilecek sorunları minimize eder.
* Marka Bilinirliği: Kısa ve akılda kalıcı URL’ler, markanızın çevrimiçi varlığını güçlendirir ve paylaşılabilirliği artırır.

Jekyll’de URL ve bağlantı kontrolü, sitenizin uzun vadeli başarısı için temel bir adımdır. Şimdi bu kontrolü nasıl sağlayabileceğimize daha yakından bakalım.

Jekyll’in Varsayılan URL Yapısı ve Permalink’ler

Jekyll, dosyalarınızın dizin yapısına göre otomatik olarak URL’ler oluşturur. Örneğin, _posts/2023-01-01-ilk-yazi.md adlı bir gönderi, varsayılan olarak /2023/01/01/ilk-yazi.html gibi bir URL’e sahip olacaktır. Ancak bu varsayılan yapı her zaman ideal olmayabilir. Jekyll, bu yapıyı özelleştirmek için “permalink” adı verilen bir mekanizma sunar. Permalink’ler, web sitenizdeki belirli bir içeriğe (gönderi, sayfa, koleksiyon öğesi vb.) kalıcı ve değişmez bir URL atamanıza olanak tanır.

Global Permalink Ayarları: _config.yml

Tüm site genelindeki permalink yapısını _config.yml dosyası içinde permalink anahtarını kullanarak tanımlayabilirsiniz. Bu ayar, sitenizdeki tüm gönderiler için geçerli olacaktır (özel olarak geçersiz kılınmadığı sürece).

Yaygın kullanılan permalink yapıları ve açıklamaları şunlardır:

* permalink: pretty: /kategori/yazi-basligi/ (varsayılan)
* permalink: date: /yil/ay/gun/yazi-basligi.html
* permalink: yyyy-mm-dd: /yil-ay-gun/yazi-basligi.html
* permalink: none: /yazi-basligi.html (dizin yapısını yansıtır, yani _posts/yazi-basligi.md -> /yazi-basligi.html)

Ayrıca, daha esnek yapılar için placeholder’lar kullanabilirsiniz:

* :categories: Gönderinin front matter’ında tanımlanan kategorileri içerir.
* :year, :month, :day: Gönderinin dosya adındaki tarihi kullanır.
* :title: Gönderinin dosya adındaki başlık kısmını kullanır.
* :slug: Gönderinin front matter’ında özel olarak tanımlanmış slug değerini kullanır. Eğer slug tanımlanmamışsa, :title ile aynı işlevi görür.
* :output_ext: Çıktı dosyasının uzantısını ekler (genellikle .html).

Örnek _config.yml yapılandırması:

permalink: /blog/:categories/:year/:month/:day/:title.html

Bu yapılandırma ile _posts/2023-10-26-jekyll-url-kontrolu.md adlı ve kategori: [teknik, jekyll] içeren bir gönderi, /blog/teknik/jekyll/2023/10/26/jekyll-url-kontrolu.html gibi bir URL’e sahip olacaktır.

Sayfa ve Gönderi Özelinde Permalink Ayarları: Front Matter

_config.yml dosyasındaki global ayarlar, sitenizdeki tüm içerik için geçerli olsa da, bazen belirli bir sayfa veya gönderi için farklı bir URL yapısı isteyebilirsiniz. Bu durumda, ilgili dosyanın front matter’ında permalink anahtarını kullanarak global ayarı geçersiz kılabilirsiniz.

Örnek bir gönderi (_posts/2023-10-26-jekyll-url-kontrolu.md) front matter’ı:

---
layout: post
title: "Jekyll'de URL ve Bağlantı Kontrolü"
permalink: /makaleler/jekyll-url-yonetimi/
categories: [teknik, jekyll]
---

Bu gönderi, _config.yml dosyasında ne tanımlanmış olursa olsun, /makaleler/jekyll-url-yonetimi/ URL’ine sahip olacaktır. Bu, belirli sayfalar veya “anahtar” gönderiler için kısa, akılda kalıcı ve SEO dostu URL’ler oluşturmak için harika bir yöntemdir.

Slug Kullanımı

permalink içinde :slug placeholder’ını kullanmak veya doğrudan front matter’da slug tanımlamak, URL’lerinizin daha temiz ve kontrol edilebilir olmasını sağlar. Jekyll, dosya adından otomatik olarak bir slug oluşturur (örneğin, my-awesome-post.md -> my-awesome-post). Ancak bu slug’ı manuel olarak özelleştirmek isteyebilirsiniz.

Örnek _config.yml ile :slug kullanımı:

permalink: /:categories/:slug/

Örnek front matter’da slug tanımlama:

---
layout: post
title: "Jekyll'de URL ve Bağlantı Kontrolü"
slug: url-link-kontrolu
categories: [teknik, jekyll]
---

Bu durumda, URL /teknik/jekyll/url-link-kontrolu/ olacaktır. slug alanı, Türkçe karakterler veya özel işaretler içeren başlıkların URL’lerde sorun yaratmasını engellemek için özellikle faydalıdır.

Koleksiyonlar (Collections) ve Permalink’ler

Jekyll’in koleksiyonları, gönderiler ve sayfalar dışında kalan yapılandırılmış içerikleri (örneğin, ürünler, belgeler, portföy öğeleri) yönetmek için güçlü bir yoldur. Koleksiyonlar için de özel permalink yapıları tanımlayabilirsiniz.

Koleksiyon Tanımlama ve Çıktı Ayarı

Öncelikle, _config.yml dosyasında bir koleksiyon tanımlamanız gerekir:

collections:
  dokumanlar:
    output: true
    permalink: /dokumanlar/:path/
  urunler:
    output: true
    permalink: /urunler/:slug/

Burada output: true ayarı, Jekyll’in bu koleksiyondaki her bir öğe için ayrı bir sayfa oluşturmasını sağlar. output: false olursa, öğeler sadece şablonlarda erişilebilir olur ancak kendi URL’lerine sahip olmazlar.

Koleksiyon Permalink’leri

Yukarıdaki örnekte görüldüğü gibi, her koleksiyon için kendi permalink yapısını tanımlayabilirsiniz.

* :path: Koleksiyon öğesinin dosya yolunu (dizin yapısı dahil) kullanır. Örneğin, _dokumanlar/kategori/alt-kategori/dosya-adi.md -> /dokumanlar/kategori/alt-kategori/dosya-adi/.
* :name: Koleksiyon öğesinin dosya adını (uzantısız) kullanır. :slug ile benzerdir.
* :slug: Koleksiyon öğesinin front matter’ında tanımlanan slug değerini kullanır.

Bu sayede, _dokumanlar içindeki öğeler /dokumanlar/ ile başlayan, _urunler içindeki öğeler ise /urunler/ ile başlayan URL’lere sahip olacaktır. Bu, farklı içerik türleri için temiz ve ayrıştırılmış URL yapıları oluşturmanızı sağlar.

Dahili ve Harici Bağlantı Yönetimi

Jekyll sitenizde bağlantıları yönetmek, hem kullanıcı deneyimi hem de SEO için hayati öneme sahiptir. Yanlış kullanılan bağlantılar kırık linklere, hatalı yönlendirmelere ve site içi gezinme sorunlarına yol açabilir.

Mutlak (Absolute) ve Göreceli (Relative) Bağlantılar

* Mutlak Bağlantılar: Tam URL’yi içerirler (örneğin, https://example.com/sayfa.html veya /assets/resim.png). Genellikle harici sitelere veya sitenizin kök dizininden başlayan dahili kaynaklara yönlendirme yaparken kullanılırlar.
* Göreceli Bağlantılar: Mevcut sayfanın konumuna göre belirlenirler (örneğin, ../baska-sayfa.html veya ./resim.png). Sitenin taşınması veya URL yapısının değişmesi durumunda sorunlara yol açabilirler.

Jekyll sitelerinde mutlak bağlantıların kullanılması genellikle daha güvenlidir, özellikle dahili bağlantılar için. Ancak siteniz bir alt dizine (örneğin, example.com/blog/) dağıtılmışsa, mutlak bağlantılar sorun yaratabilir. İşte bu noktada site.baseurl ve Jekyll’ın filtreleri devreye girer.

site.baseurl ve relative_url Filtresi

Eğer siteniz bir ana domainin alt dizinine (subfolder) dağıtılacaksa (örneğin, https://example.com/blog/), _config.yml dosyasında baseurl değerini ayarlamanız gerekir:

baseurl: "/blog" # Eğer siteniz example.com/blog/ altında yayınlanacaksa
url: "https://example.com" # Sitenizin ana URL'si

baseurl değeri, geliştirme ortamında genellikle boş bırakılır (baseurl: ""), ancak canlıya alırken uygun şekilde ayarlanmalıdır. Bu ayar, dahili bağlantılarınızı doğru bir şekilde oluşturmak için kullanılır.

Dahili bağlantılar oluştururken relative_url filtresini kullanmak en iyi uygulamadır:

Hakkımızda

Bu, baseurl değerini otomatik olarak bağlantının başına ekler.

* Eğer baseurl: "" ise, /hakkimizda/ olarak render edilir.
* Eğer baseurl: "/blog" ise, /blog/hakkimizda/ olarak render edilir.

Bu, sitenizi farklı ortamlara dağıtırken (yerel geliştirme, alt dizin, kök dizin) bağlantılarınızın otomatik olarak uyum sağlamasını garanti eder.

absolute_url Filtresi

absolute_url filtresi, bir URL’nin başına site.url ve site.baseurl değerlerini ekleyerek tam bir mutlak URL oluşturur. Bu, özellikle RSS beslemeleri, site haritaları ve canonical URL’ler için kullanışlıdır.

Bu, site.url + site.baseurl + page.url şeklinde tam bir URL oluşturur (örneğin, https://example.com/blog/post-title/).

link Etiketi: Güvenli İç Bağlantılar

Jekyll’in link etiketi, sitenizdeki gönderilere, sayfalara veya koleksiyon öğelerine güvenli bir şekilde bağlantı vermek için tasarlanmıştır. Bu etiket, içeriğin permalink yapısı değişse bile her zaman doğru URL’yi çözer.

Kullanım örnekleri:

* Bir gönderiye bağlantı: {% link _posts/2023-10-26-jekyll-url-kontrolu.md %}
* Bir sayfaya bağlantı: {% link hakkimizda.md %}
* Bir koleksiyon öğesine bağlantı: {% link _dokumanlar/giris.md %}

Jekyll, bu etiketleri sitenizi derlerken otomatik olarak ilgili içeriğin nihai URL’si ile değiştirir. Bu, permalink yapınızı değiştirmeniz durumunda tüm dahili bağlantıları manuel olarak güncelleme ihtiyacını ortadan kaldırır.

Daha fazla bilgi için Jekyll URL Kontrolü makalemizi okuyun.

Bu, sitenizdeki bağlantı bütünlüğünü korumak için en güçlü araçlardan biridir.

Canonical URL’ler (SEO İçin)

Canonical URL’ler, arama motorlarına bir sayfanın “tercih edilen” veya “orijinal” sürümünü bildiren bir SEO stratejisidir. Bu, özellikle aynı içeriğin birden fazla URL’de erişilebilir olduğu durumlarda (örneğin, /sayfa/ ve /sayfa/index.html veya farklı kategori yolları altında aynı gönderi) yinelenen içerik sorunlarını önlemek için kritik öneme sahiptir.

Jekyll sitenizde canonical URL’leri uygulamak için, sitenizin her sayfasının bölümüne aşağıdaki link etiketini eklemeniz gerekir:


{% if page.url %}
  
{% endif %}

Bu kod parçası, o sayfanın tam, mutlak URL’sini canonical URL olarak belirtir. Bu, arama motorlarının sitenizdeki içeriği doğru bir şekilde dizine eklemesine yardımcı olur ve SEO performansınızı artırır.

Yönlendirmeler (Redirects)

Web sitenizin ömrü boyunca URL’leri değiştirmeniz, sayfaları taşımanız veya silmeniz gerekebilir. Bu durumlarda, eski URL’lerden yeni URL’lere yönlendirmeler (redirects) oluşturmak hayati önem taşır. Yönlendirmeler, kullanıcıların ve arama motorlarının kırık bağlantılarla karşılaşmasını engeller ve sitenizin SEO değerini korur.

Jekyll Redirect From Plugin

Jekyll için en popüler yönlendirme çözümü, jekyll-redirect-from eklentisidir. Bu eklenti, front matter’a basit bir ayar ekleyerek 301 (kalıcı) yönlendirmeler oluşturmanıza olanak tanır.

Kurulum:

1. Gemfile dosyanıza ekleyin:

gem "jekyll-redirect-from"

2. _config.yml dosyanıza ekleyin:

plugins:
      - jekyll-redirect-from

3. bundle install komutunu çalıştırın.

Kullanım:

Bir sayfanın veya gönderinin front matter’ına redirect_from anahtarını ekleyin:

---
layout: post
title: "Yeni Yazımın Başlığı"
permalink: /yeni-yazi/
redirect_from:
  - /eski-yazi/
  - /cok-eski-yazi.html
---

Bu, /eski-yazi/ ve /cok-eski-yazi.html adreslerine yapılan tüm istekleri otomatik olarak /yeni-yazi/ adresine 301 durum koduyla yönlendirecektir. Bu eklenti, her eski URL için basit bir HTML dosyası oluşturur ve bu dosya bir etiketi içerir. Ancak çoğu modern tarayıcı ve arama motoru bu meta etiketi 301 yönlendirmesi olarak yorumlar.

Meta Refresh (Basit Yönlendirmeler İçin)

Eğer bir eklenti kullanmak istemiyorsanız veya çok basit bir yönlendirmeye ihtiyacınız varsa, bir HTML dosyası içine meta refresh etiketi ekleyebilirsiniz. Ancak bu yöntem SEO açısından jekyll-redirect-from eklentisi veya sunucu tarafı yönlendirmeler kadar iyi değildir.

old-page.html dosyası içinde:

---
permalink: /eski-sayfa/
---

  
    
    
  
  
    

Bu sayfa taşındı. Lütfen yeni adresi ziyaret edin.

content="0; url=/yeni-sayfa/" ifadesi, tarayıcıyı 0 saniye sonra belirtilen URL’ye yönlendirmesini söyler. Canonical etiketi, arama motorlarına bu sayfanın gerçek yerinin neresi olduğunu belirtir.

Sunucu Tarafı Yönlendirmeler (Apache, Nginx)

En güçlü ve SEO dostu yönlendirme yöntemi, sunucu tarafı yönlendirmelerdir (örneğin, Apache için .htaccess dosyası veya Nginx yapılandırması). Jekyll statik bir site olduğu için, bu yönlendirmeler Jekyll’in kendisi tarafından değil, sitenizi barındırdığınız web sunucusu tarafından yönetilir.

Apache .htaccess örneği:

Redirect 301 /eski-sayfa/ /yeni-sayfa/

Nginx yapılandırma örneği:

location /eski-sayfa/ {
    return 301 /yeni-sayfa/;
}

Bu yöntemler, tarayıcıya ve arama motorlarına doğrudan 301 (kalıcı olarak taşındı) HTTP durum kodu göndererek en iyi performansı ve SEO aktarımını sağlar. Jekyll eklentileri genellikle bu sunucu tarafı yönlendirmeleri otomatik olarak yapılandıramaz, bu yüzden dağıtım sürecinizin bir parçası olarak bunları manuel olarak eklemeniz gerekebilir.

Sayfalandırma (Pagination) Bağlantıları

Blog gönderileri veya diğer listelenmiş içerikler için sayfalandırma kullanmak, kullanıcıların içeriği daha kolay keşfetmesini sağlar. Jekyll, sayfalandırma için özel değişkenler ve filtreler sunar.

_config.yml dosyasında sayfalandırmayı etkinleştirin:

paginate: 5 # Her sayfada 5 gönderi göster
paginate_path: "/blog/sayfa:num/"

Bu ayar, paginate_path ile sayfalandırılmış sayfaların URL yapısını tanımlar. :num placeholder’ı sayfa numarasıyla değiştirilir (örneğin, /blog/sayfa2/).

Sayfalandırma navigasyonunu oluştururken, paginator nesnesinin sağladığı değişkenleri kullanın:

{% if paginator.previous_page %}
  Önceki Sayfa
{% endif %}

{% if paginator.next_page %}
  Sonraki Sayfa
{% endif %}

paginator.previous_page_path ve paginator.next_page_path değişkenleri, otomatik olarak doğru sayfalandırma URL’lerini üretir ve relative_url filtresi ile baseurl uyumluluğu sağlanır.

URL ve Bağlantı Yönetimi İçin En İyi Uygulamalar

Jekyll sitenizde URL’leri ve bağlantıları kontrol ederken göz önünde bulundurmanız gereken bazı en iyi uygulamalar şunlardır:

1. Tutarlılık: Tüm sitenizde tutarlı bir URL yapısı kullanmaya çalışın. Örneğin, tüm blog gönderileri /blog/ altında, tüm dokümanlar /dokumanlar/ altında olsun.
2. Okunabilirlik ve Anlamlılık: URL’lerinizin insan tarafından okunabilir ve içeriği hakkında ipuçları veren yapıda olmasına özen gösterin. example.com/blog/2023/10/sayfa-123.html yerine example.com/blog/jekyll-url-kontrolu/ tercih edin.
3. Anahtar Kelimeler: İçeriğinizle ilgili anahtar kelimeleri URL’lerinize dahil edin, ancak anahtar kelime doldurmadan kaçının.
4. Kısalık: Mümkün olduğunca kısa URL’ler kullanın. Kısa URL’ler daha kolay paylaşılır ve hatırlanır.
5. Küçük Harf ve Tire: URL’lerde her zaman küçük harf kullanın ve kelimeleri ayırmak için tire (-) kullanın. Alt çizgi (_) veya boşluklardan kaçının.
6. site.baseurl ve Filtreleri Kullanın: Dahili bağlantılar için relative_url ve absolute_url filtrelerini ve link etiketini kullanarak sitenizin farklı dağıtım senaryolarına uyum sağlamasını garantileyin.
7. Kırık Bağlantıları Kontrol Edin: Sitenizi düzenli olarak kırık bağlantılar açısından kontrol edin. Bu amaçla çevrimiçi araçlar veya Jekyll eklentileri (örneğin, html-proofer gibi) kullanabilirsiniz.
8. Yönlendirmeleri Planlayın: Bir URL’yi değiştirmeden veya bir sayfayı silmeden önce, eski URL’den yeni URL’ye uygun bir 301 yönlendirmesi planlayın. Bu, SEO değerini korumanın en önemli yollarından biridir.
9. Kategori ve Etiket URL’lerini Optimize Edin: Eğer kategoriler veya etiketler için dizin sayfaları oluşturuyorsanız, bunların URL yapılarını da SEO dostu olacak şekilde optimize edin (örneğin, /kategori/jekyll/ yerine /kategori/id=123/).

Sonuç

Jekyll, statik site geliştiricilerine URL ve bağlantı yönetimi konusunda kapsamlı araçlar ve esneklik sunar. _config.yml ve front matter’daki permalink ayarlarından, koleksiyonlara özel URL yapılarına, site.baseurl ve link etiketi gibi akıllı dahili bağlantı çözümlerine kadar birçok mekanizma mevcuttur. Ayrıca, jekyll-redirect-from gibi eklentilerle yönlendirmeleri kolayca yönetebilir ve canonical URL’lerle SEO performansınızı güçlendirebilirsiniz.

Bu teknikleri doğru bir şekilde uygulamak, sitenizin arama motorlarında daha iyi sıralanmasına, kullanıcıların daha iyi bir deneyim yaşamasını sağlamaya ve sitenizin uzun vadeli bakımını kolaylaştırmaya yardımcı olacaktır. Temiz, tutarlı ve optimize edilmiş URL’ler ve bağlantılar, her başarılı web sitesinin temelini oluşturur. Bu rehberdeki bilgileri uygulayarak Jekyll sitenizin URL ve bağlantı kontrolünü ustaca sağlayabilir, dijital varlığınızı bir üst seviyeye taşıyabilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık