Öztürk Web | Php İle Dinamik Sitemap Oluşturmak

Php İle Dinamik Sitemap Oluşturmak

2 hafta önce

Okuma Sayısı

212

Konu Kategorisi= Code İpuçları  Kategoriye Git

Php İle Dinamik Sitemap Oluşturmak

Php İle Dinamik Sitemap Oluşturmak

SİTEMAP NEDİR

Kısaca sitede  linklerin listelendiği xml uzantılı bir dosyadır ve seo açısından da önemlidir zira sitemizi indexleyecek robotlara sayfalar hakkında önbilgiler sunar, ancak bu bilgiler robotlara komut vermekden ziyade bir açıklama niteliğindedir, örneğin siz > etiketine Daily yazdığınızda robota bu sayfa günlük ziyaret edilsin çünkü her gün içerik değişiyor dersiniz ama robot bu sayfayı kendi algoritmalarına uygun sıklıkta ziyaret eder.

Aşağıda vereceğim örnekte tek bir link için hazırlanmış sitemap.xml  dosyasının içeriğini görebilirsiniz örnek https://sitemaps.org sitesinden alınmıştır




   
      http://www.example.com/
      2005-01-01
      monthly
      0.8
   
 

Hazır yeri gelmişken kullanacağımız etiketlerden de kısaca bahsedelim

 

 

nitelik

 

Açıklama

gereklidir

Dosyayı kapsüller ve mevcut protokol standardını referans alır.

gereklidir

Her URL girişi için üst etiket. Kalan etiketler bu etiketin arasına yazılır.

gereklidir

Sayfanın URL'si. Bu URL, protokolle (http gibi) başlamalı ve web sunucunuz gerektiriyorsa, sondaki eğik çizgiyle bitmelidir. Bu değer 2,048 karakterden az olmalıdır.

isteğe bağlı

Dosyanın son değiştirilme tarihi. Bu tarih W3C Datetime biçiminde olmalıdır. Bu format istenirse zaman kısmını atlamanıza ve YYYY-AA-GG kullanmanıza izin verir.

Bu etiketin sunucunun dönebileceği If-Modified-Since (304) başlığından ayrı olduğunu ve arama motorlarının her iki kaynaktan gelen bilgileri farklı şekilde kullanabileceğini unutmayın.

isteğe bağlı

Sayfanın ne sıklıkta değişebileceği. Bu değer, arama motorlarına genel bilgi sağlar ve tam olarak sayfayı ne sıklıkta taradıklarıyla ilişkili olmayabilir. Geçerli değerler:

· always ·  hourly ·  daily ·  weekly ·  monthly ·  yearly ·  never

"Her zaman" değeri, her erişildiklerinde değişen belgeleri tanımlamak için kullanılmalıdır. Arşivlenen URL'leri tanımlamak için "asla" değeri kullanılmalıdır.

Lütfen bu etiketin değerinin bir komut olarak değil, ipucu olarak kabul edildiğini unutmayın . Arama motoru tarayıcıları karar verirken bu bilgileri dikkate alsalar bile, "saat" olarak işaretlenmiş sayfaları daha az sıklıkta tarayabilirler ve "yıllık" olarak işaretlenmiş sayfaları daha sık tarayabilirler. Tarayıcı, "asla" olarak işaretlenmiş sayfaları düzenli aralıklarla tarayabilir, böylece bu sayfalarda beklenmeyen değişiklikleri yapabilirler.

isteğe bağlı

Sitenizdeki diğer URL’lere göre bu URL’nin önceliği. Geçerli değerler 0,0 ile 1,0 arasındadır. Bu değer, sayfalarınızın diğer sitelerdeki sayfalarla karşılaştırılmasını etkilemez; yalnızca arama motorlarının tarayıcılar için en çok hangi sayfaları önemli bulduğunu bilmesini sağlar.

Bir sayfanın varsayılan önceliği 0,5'tir.

Bir sayfaya atadığınız önceliğin, URL’lerinizin bir arama motorunun sonuç sayfalarındaki konumunu etkilemesinin olası olmadığını lütfen unutmayın. Arama motorları, aynı sitedeki URL'ler arasında seçim yaparken bu bilgileri kullanabilir, bu nedenle en önemli sayfalarınızın bir arama dizininde mevcut olma olasılığını artırmak için bu etiketi kullanabilirsiniz.

Ayrıca, sitenizdeki tüm URL’lere yüksek öncelik atamanın size yardımcı olmayacağını lütfen unutmayın. Öncelik göreceli olduğu için, yalnızca sitenizdeki URL’leri seçmek için kullanılır.

Bu kadar açıklamadan sonra gelelim bunu nasıl dinamik hale getireceğimize.

İlk yapmamız gereken sitemap.xml yerine sitemap.php dosyası oluşturacağımız için .htaccess yönlendirmemizi yazmak ,  htaccess dosyamıza

RewriteRule ^sitemap.xml$ sitemap.php [NC,L]

kodunu ekleyelim ve sitemap.php isminde bir dosya oluşturalım bu dosyada dikkat etmemiz gereken en önemli konulardan biri ilk satırın üzerinde herhangi bir şey olmaması;  boş satır bile olmamalı.

İlk satıra headerımızı  PHP etiketleri arasında aslına uygun şekilde yazdıktan sayfamıza veri tabanı bağlantımızı ve varsa seflinkleri yazdığınız fonksiyonları ne var ne yoksa php etiketleri arasında dahil edebilirsiniz örneğin

Şimdi w3 walidatör standartlarına uygun şekilde şemamızı ad alanımızı falan yazıyoruz bu konuyla ilgili detaylı bilgiyi yukarda verdiği adreste bulabilirsiniz


Bu etiket biraz uzun oldu ama standartlara uygun oldu bundan sonra linklerimiz yazacağımız kısma geçebliriz

Örneğin sitemizde yayınladığımız içerikleri haber diye bir tabloda tuttuğumuzu varsayarsak bu tablodan tüm linklerimizi çekip bir döngüyle ile sitemap dosyamıza yazdıralım, tabi bunu yapmadan önce htaccess dosyanızı kendi lik yapınıza göre düzenlemelisiniz bu örnekte kullandığım yapıya göre htaccess dosyasında aşağıdaki bir satır olmalı

RewriteRule ^haber-([0-9a-zA-Z-_]+)-([0-9]+)$ haber-detay.php?sef=$1&icerik_id=$2 [L,QSA]

Bu düzenlemeyi de yaptıysanız artık linklerimizi yazdırabiliriz

prepare("select * from haber");
$habersor->execute();
while($habercek=$habersor->fetch(PDO::FETCH_ASSOC)) {
// sorgumuzu yazıp döngüyü başlattık. sitemap şablonuna uygun yerlere php etiketleri arasında gerekli bilgileri yazabiliriz ?>

 
   https:///haber-
   
   daily
   1.00





 

 


 etiketleri arasına seo linkimi yazdım

Dikkat ettiyseniz



 


etiketine bu günün tarihini yazdım, bu konuda bazı arkadaşlar olumsuz görüş belirtsede ben bir sakıncasını henüz görmedim ama siz isterseniz haberin yazılma tarihini yada son değiştirilme tarihini de yazabilirsiniz



 


etiketine  daily   diyerek robotlara hergün gelin dedim



 


etiketine  1.00  rakamı ile bu sayfanın önceliğinin en yüksek seviyede olduğunu belirttim siz isterseniz bu değeri  0.0 ile 1.0 arasında bir değer  ile değiştirebilirsiniz

Son olarak yapmanız gereken bir şey kaldı o da 



 



etiketini 



 


şeklinde kapatmak.

şu halde dosyamızın son hali aşağıdaki gibi olmalı






prepare("select * from haber");
$habersor->execute();
while($habercek=$habersor->fetch(PDO::FETCH_ASSOC)) {
// sorgumuzu yazıp döngüyü başlattık. sitemap şablonuna uygun yerlere php etiketleri arasında gerekli bilgileri yazabiliriz ?>

 
   https:///haber-
   
   daily
   1.00






Artık siz kendi projeleriniz de kendi sisteminize uygun şekilde dinamik sitemap ler hazırlayabilirsiniz.

Sorularınızı ve yorumlarınızı esirgemeyin hatta sosyal medyada falan paylaşın lütfen :)

Kolay gelsin

Kategoriler

İşinizi İnternete Taşımak İstermisiniz ?