Site Haritası Nasıl Oluşturulur. (Django-Sitemap.xml)
Web sitenize sitemap.xml dosyası oluşturmak arama motoru optimizasyonu (SEO) açısından oldukça önemlidir. Birlikte web sitemize site haritası oluşturacağız bu uygulamayı Django uygulamamız üzerinden..
Giriş
Site haritası oluşturmak oldukça önemli bir konudur. Bugün birlikte uygulamalı olarak sitemap.xml dosyasını nasıl oluşturacağımıza bakacağız. Sitemap nedir sorusunun yanıtını ve konuyu anlamaya dair merak ettiklerinizi site haritasi nedir blog yazımızı inceleyerek öğrenebilirsiniz.
Projenin Ayarlarının hazırlanması
1- 'settings.py' Dosyası Sitemap Eklenmesi
Django projemizin settings.py dosyasını açıp INSTALLED_APPS içerisine şu tanımlamaları ekliyoruz.
'django.contrib.sites'
'django.contrib.sitemaps'
2- settings.py Dosyası SITE_ID Eklenmesi
setting.py dosyasının içerisine INSTALLED_APPS tanımlamasının hemen üzerinde bir satıra
SITE_ID = 1
tanımlamasını yapıyoruz.
sitemap.py dosyasının oluşturulması
Projemizin sitemap oluşturacağımız uygulama altına sitemap.py adında dosyamızı oluşturuyoruz.
Projenizde birden fazla uygulama varsa hepsine ayrı ayrı oluşturmalısınız. Yani python manage.py createapp mysite kodunu çalıştırıp mysite adında bir uygulamanızın var olduğunu düşünerek anlatımı sağlayacağım.
/projem/app1/ dizini altında sitemap.py adında bir dosya oluşturuyoruz.
sitemap.py dosyasının içeriği şu şekilde olmalı:
from django.contrib.sitemaps import Sitemap # Sitemap modülünü import ettik
from app1.models import Post # app1.models içerisinden Post adında modeli import ettik
class PostSitemap(Sitemap): # Sitemap sınıfını temel alan PostSitemap sınıfını oluşturduk.
changefreq = 'daily' # Burada her bir URL ne sıklıkla değiştiğini tanımladık ('daily' günlük)
priority = 0.9 # Her bir URL'nin önem derecesini belirttik (0.9 yüksek öncelik)
def items(self): # Bu method site haritasına dahil edilecek URL öğelerini döndürür.
return Post.objects.filter(is_active = True) # Model içerisindeki is_active özelliği True olanları filtre et
def lastmod(self, obj): # Bu method sitemap üzerinden her URL güncellendiği tarihi döndürür
return obj.updated_at def location(self, obj):
return f'/hizmetlerimiz/{obj.slug}/'
urls.py Ayarlarının Yapılması
Şimdi 'setting.py' dosyasıyla aynı konumda bulunan 'urls.py' dosyasına gelerek sitemap.xml bağlantımızı tanımlamamız gerekiyor.
from django.contrib.sitemaps.views import sitemap
from app1.sitemap import PostSitemap
yukarıdaki gerekli modülleri import ediyoruz.
sitemaps = {
'post':PostSitemap
}
tanımlamasını yapıyoruz. Daha sonra urlpatterns içerisine bağlantı tanımlamamızı aşağıdaki gibi gerçekleştiriyoruz.
urlpatterns = [
...
...
path('sitemap.xml',sitemap, {'sitemaps':sitemaps}, name = 'django.contrib.sitemaps.views.sitemap')
]
Kontrol Paneline Sitemap Ayarlarının Eklenmesi
Projemizin admin paneline giriş yapıyoruz. Sites bağlantısını açıyoruz. Bir adet bağlantımız var onu düzenleyip kendi alan adımızı eklememiz gerekiyor. Etki alan adına domainimizin Naked DNS halini yazıyoruz 'sitem.com' gibi görünen isim kısmına sadece 'sitem' (site adı) yazıyoruz.
Sonuç
Artık web sitenin bir site haritası yani 'sitemap.xml' dosyası var. Kontrol etmek için www.sitem.com/sitemap.xml yolunu kontrol edebilirsiniz. Bir terslik varsa adımları tekrar gözden geçiriniz.