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..

Site Haritası Nasıl Oluşturulur. (Django-Sitemap.xml)
NetAdvi tarafından hazırlanmıştır.
Son Güncelleme: 11 Kasım 2023 17:44

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.