Sitemap web siteleri için site haritasının belirlenmiş protokollere göre düzenlenmesini içeren kural bütünüdür. Sitemap sayesinde bir arama motorunun sitenizde hangi sayfaları ne öncelikle ve ne sıklıkla taranması gerektiğini belirtebilirsiniz. Bunun sonucunda da arama motorları bu sayfaların indexlenme işlemini yapar.

Sitemap dosyaları XML formatında ve UTF-8 olarak kodlanır. Web uygulamanıza sitemap yapısını dahil etmeniz için ilk olarak yapmamız gereken sitemap_index.xml dosyasının oluşturulmasıdır.

Burada önemli olarak sitemap dosyaları insanlar tarafından okunmayacaktır. Yani bir view render etmemize gerek yok. Bu dosyaları yalnızca arama motorları için oluşturuyoruz.

Sitemap dosyalarını web uygulamamızın çalıştığı sunucuda statik xml dosyaları şekilde oluşturabiliriz. Arama motoru bu dosyayı şu şekilde arayacaktır. Sizin uygulama ana URL’iniz altında sitemap_index.xml dosyasını arar. Örneğin web uygulamamız www.example.com olsun. Bu web sitesi için google www.example.com/sitemap_index.xml dosyasına bakar. Eğer varsa XML de belirtilmiş URL’lere göre indexleme yapar. sitemap_index.xml dosyasında URL’ler genellikle XML formatında dosyalar olur. Daha sonra bu XML dosyalarında asıl site linkleri belirli bir formata göre bulunur.

Ayrıca bu dosyaları fiziksel olarak sunucunuzda oluşturmak yerine API’den XML formatında bir endpoint göndererek yine web uygulamanızın ana URL’i altında sitemap_index.xml ve diğer XML dosyalarını dönecek şekilde routing işlemini yapmamız kolaylık sağlayacaktır.

Not: sitemap_index.xml birden fazla sitemap kullanacağımız zaman oluşturmamız gerekir. Tek bir sitemap ile de yapabiliriz. Birden fazla sitemap yapmamızın nedeni ise sitemap dosya boyutunda kısıtlama var(max 10 mb, max 50000 link). Bu nedenle link sayısına göre sitemap’ler oluşturuyoruz.

Alt Text

Ekran görüntüsünde local uygulamamızda oluşturduğumuz sitemap_index.xml dosyasının içeriği gösterilmektedir. Burada görüldüğü üzere bu dosya ana URL altında bulumaktadır. İçeriğinde ise bir XML dosyası olduğu için belirli kullara göre oluşturulmuş XML tag’ leri bulunur. Ana tag sitemapindex tag’idir. XML namespace (xmlns) ise sitemap şemasını belirtir. Sitemapindex tag’inin altında sitemap tagleri bulunur. Bu tag’lerin içerisinde ise indexlenmesini istediğimiz linkler ya da başka bir XML dosyaları belirtilir. Burada loc tag’inin kullanımı zorunludur ve link bilgisi içerir. Lastmod tag’i isteğe bağlı kullanılır ve dosyada yapılan son değişiklik tarihinin bilgisi bulunur. Changefreq tag’i de isteğe bağlı kullanılabilir bir tag’dir ve sayfanın ne sıklıkla değişme yapılacağını belirtir. Örneğin monthly, daily vs. Bir diğer isteğe bağlı tag ise priority sitemap’de belirtilen sitelerin birbirine göre önceliklerini belirtir. 0–1 arasında değerler içerir. 1 en önemli siteyi belirtir. Örneğin ana sayfanın değeri 1 iken anasayfanın bir alt seviyesinde bulunan varsayalım blog siteniz için 0.8 değerini verebilirsiniz.

Gelelim sitemap_index.xml de belirtmiş olduğumuz XML dosyalarına. Bu XML dosyalarında asıl indexlenecek linkler bulunur.

Alt Text userpages.xml dosyasının içeriği yukarıda gösterilmiştir. Burası da XML dosyası olduğu için belirli kurallara göre oluşturulmuştur. Ana tag urlset tag’idir. Onun altında ise URL tag’leri bulunur ki bunlar indexlenecek URL bilgilerini barındırır. İçerisindeki loc, changefreq, lastmod ve priority tagleri yukarıdaki açıklandığı şekilde kullanımı burada da aynı şekildedir.

Ekran görüntüleri için ve test için oluşturduğum projenin kodlarını SitemapExample linkinden bulabilirsiniz.