Site haritaları arama motorlarına web sitenizin alt sayfaları hakkında bilgi vermesini ve ulaşılmasını istendiği URL’leri gösteren yapıdır. Site haritaları wordpress gibi yazılımlar tarafından otomatik olarak oluşturulmaktadır fakat her site wordpress kullanmadığından detaylı olarak Site haritaları xml biçimine değineceğiz.

Öncelikle örnek vermek gerekirse web sitenizin ana sayfası bir ağaç ise alt sayfaları dallar olarak düşünebilirsiniz ve site haritaları bu bir çok dalın birbirine karışmaması için hiyerarşik bir kullanarak sayfaları listeler.

Öncelikle site haritaları .xml uzantısına sahip olur ve genellikle isimleri sitemap.xml olarak kullanılır fakat siz bu ismi kullanmak zorunda değilsiniz. İstediğiniz herhangi bir ismi de kullanabilirsiniz fakat arama motorlarının daha kolay ulaşabilmesi için sitemap.xml olarak kullanmanızı tavsiye ederiz.

Site haritamızın hangi dosyada kullanıldığını belirleme

Aşağıdaki kodu robots.txt üzerine eklediğinizde arama motorları sitemapınıza rahatlıkla ulaşabilir.

Sitemap: https://www.google.com/sitemap.xml

Site haritası oluşturma ve başlangıç

Site haritamızın başlangıcına (ilk satıra) xml versiyonunu ve kodlama dilini eklemeliyiz. Ayrıca site haritanızı oluşturduktan sonra kayıt ederken utf-8 olarak kayıt etmeyi unutmayın.

<?xml version="1.0" encoding="UTF-8"?>
  1. Site haritasının başlangıcında <urlset> ve bitişinde </urlset> kullanılır.
  2. <urlset> alanına xmlns özelliği kullanılarak schema sürümü eklenir.
  3. Her sayfa <url> </url> tagları arasında belirtilir.
  4. <url> tagları arasında eklenen <loc> </loc> tagları arasında URL belirtilir.

Örnek bir Sitemap kullanımı

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2005-01-01</lastmod>       <changefreq>monthly</changefreq>       <priority>0.8</priority>
   </url>
</urlset>

Yukarıda bahsettiğimiz urlset, url, loc tagları kullanılması zorunlu taglardır fakat diğer lastmod, changefreq ve priority zorunlu değil isteğe bağlıdır.

Örnek kodda gördüğümüz lastmod, changefreq ve priority taglarına bakalım:

  • lastmod: Son değişiklik tarihini gösterir. Gösterim biçimi YYYY-AA-GG şeklinde olmalıdır. (ör: 2017-04-23)
  • changefreq: Arama motorlarının ilgili içeriği ne kadar süre aralığında taraması gerektiğini belirtir. Kullanılabilecek taglar şunlardır: always (her zaman), hourly (saatte bir), daily (günde bir), weekly (haftada bir), monthly (ayda bir), yearly (yılda bir), never (hiç).
  • priority: Önem numarasını belirtir. Alabileceği değerler 0.0 ve 1.0 arasındaki değerlerdir. Sitenizin ana sayfası için 1.0, kategoriler için 0.8, alt sayfalar için 0.6 vererek hangi önem sırasına göre dizildiğini gösterebilirsiniz. (Bu değerler örnek amaçlıdır her site için farklı değerler kullanılmalıdır.)

URL Yapılandırması (entity escape)

<loc> tagları arasına ekleyeceğiniz URL’ler entity escape olarak biçimlendirilmeli ve sunucu tarafından okunabilir bir yapıda bulunmalıdır. Bu yüzden url üzerindeki bazı karakterler XML standartlarına uygun olarak değiştirilmelidir.

  • ” (çift tırnak) : &quot;
  • ‘ (tek tırnak) : &apos;
  • & (ve operatörü) : &amp;
  • < (küçüktür) : &lt;
  • > (büyüktür) : &gt;

Ayrıca ASCII olmayan karakterler de biçimlendirilmelidir (url encoding). ü,i,ç,ğ gibi karakterler URL üzerinde kullanılamaz. Örnek vermek gerekirse ( ) boşluk da URL içinde kullanılamaz ve boşluk karakteri %20 şeklinde düzenlenecektir.

Tüm özel karakterlerin kodlarına ulaşmak için; https://goo.gl/BjEiX9

PHP için urlencode(); fonksiyonunu kullanarak url yapınızı uyumlu bir hale getirebilirsiniz. Tüm özel karakterlerden kurtulmak için ise htmlspecialchars(); fonksiyonunu kullanabilirsiniz.

Son olarak biçimlendirdiğimiz haritamızın son haline bakalım:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2017-28-12</lastmod>
      <changefreq>daily</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.example.com/urun/oyuncak/</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/urun/cicekler/</loc>
      <lastmod>2017-12-26</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/urun/masa/</loc>
      <lastmod>2017-10-03</lastmod>
      <changefreq>monthly</changefreq>
   </url>
</urlset>

Site haritaları oluşturduktan sonra Google Webmaster Search Console > Site Haritaları alanından gönderim yapmayı unutmayınız.