PHP İle Sitemap Yapımı

KAS 18 007-

Site HaritasıMerhabalar uzun zamandır bloğuma yazı yazmadığımı biliyorum. Ceviz.net de geçenlerde gördüğüm birkaç soru üzerine böyle bir yazı yazma kararı aldım diyebilirim.

Öncelikle Sitemap Nedir?  

Sitemap sitenize gelen ziyaretçileri sitenizin saçmasapanlığından kurtarmak için oluşturulmuş bir arayüzdür aslında. Hakkaten de öyle değilmidir. Bazen bir siteye girersiniz ve bakarsınız aradığınız şey yok, veya var ama göremiyorsunuz. Çatt ...açarsınız site haritasını bulursunuz neye gireceğinizi. Şahsen ben telsim.com.tr de çok yapıyordum bundan 4-5 sene önce

Peki Google Sitemap nedir?

Bu konuda Google'ı bir ziyaretçi gibi düşünün ve bu ziyaretçinin gerizekalı olduğunu varsayalım  Sitenizin arayüzü gelen ziyaretçi olan Google'ın kafasını oldukça karıştıracaktır. Peki bunun için webmastelar nasıl bir çözüm üretmiş? Bir site haritası yapıyorlar, sitede bulunan bütün içeriği o sayfaya (haritaya yani) yazıyorlar ve google sıradan inceliyor. Adam yeni konu mu eklemiş, bi konu en son ne zaman değişmiş vs...

Peki Sitemap nasıl hazırlanır?
Sitemap hazırlamanın bir çok yolu var. Bunlar için ilk olarak ücretsiz sitemap oluşturma programlarını kullanabilirsiniz.http://www.web-design-pros.ca/software/sitemapGenerator.jnlp adresindeki java program ile mesela 50.000 linke kadar bir siteharitası oluşturabilirsiniz.

Şimdi kendi kendimize soruyoruz. Peki sitede bir güncelleme vs. yaparsam veya yeni konu eklersem her seferinde sitemap yapmak mı zorundayım? 

Cevap: Evet ( zıh zıh zıh )

İşte burda duruma PHP el koyuyoruz( I love you PHP ) PHP ile sitemap hazırlamada mantık mysql_fetch_array() yada mysql_fetch_assoc() gibi herzaman kullandığımız bir fonksiyonlar verileri sayfalama yapmadan bütün bir sayfaya basıyoruz. Evet ne kadar kolay değilmi. Bir tane döngü ile aslında hiçbir uğraşmaya gerek kalmadan sitemapımız otomatik olarak oluşuyor ve verileri sürekli veritabanından çektiği için ise sitemapınız sürekli güncel kalıyor.

Şöyle bir şey yapalım bir Sitemap da neler bulunmalıdır. Şu örnekten de bakabileceğiniz gibi bir sitemap da

URL: Bağlantı verilen sayfanın linki

Priority: Önemi

Change Frequency: Değişme Sıklığı

LastChange : Son Değiştirilme

bunlar bulunması gerekiyor. İşte Goolge' ı salak dedikya işte o da böyle anlıyor. Ne yapsın

Evet bunları da anlattıktan sonra kendi sitemap.php sayfamın kodlarını size açıyorum. Ve birkaç tüyo vereceğim. Öncelikle siteharitalarının genellikle XML biçiminde olduğunu unutmuyoruz ve şunuda ekliyorum ki biz php kodu yazıyoruz ve oluşturcağımız sayfayı XML gibi yorumlatacağız işte burda devreye ne giriyor  tabiki de header("Content-type: text/xml\n\n");

Neyse huzurlarınızda kod örneklerini de vereyim. Ama kodları şu anda sitemde verirken XML kodlarından problem çıktığı için başka bir site üzerinden veriyorum. Sonra kendi siteme de eklerim.

<?
header("Content-type: text/xml\n\n");
///////////////veriler dökülüyor/////////////////////////////
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>
<?xml-stylesheet type=\"text/xsl\" href=\"sitemap.xsl\"?>
<urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd\
 xmlns=

\"http://www.sitemaps.org/schemas/sitemap/0.9\">";
$query = mysql_query("SELECT id, title,timestamp, zamann FROM yazilarim order by id");
while($yazi = mysql_fetch_assoc($query)) {
$link = "http://www.harmankaya.org/yazi-".$yazi[id]."-".adresle($yazi[baslik]).".html";
echo "
 <url>
  <loc>".$link."</loc>
  <lastmod>".$yazi[gun]."T".$yazi[zaman]."+00:00</lastmod>
  <changefreq>always</changefreq>
  <priority>0.9</priority>
</url>";
}
echo "
</urlset>";

?>

Görüldüğü gibi verilerimizi sayfaya döküyoruz sizde benim kullandığım ve adını hatırlamadığım bir siteden aldığım style dosyasını sitemap.xsd yi kullanabilirsiniz. Bu arada unutmadan sitemap.php yaptığınız dosyayı sitemap.xml yazarak göstermek istiyorsanız mod_rewrite konumu gözden geçirin. Yerini bilmiyorsanız Arama Motorum emrinize amade

Hadi iyi site haritası oluşturmalar. Bir sorun çıkarsa İletişim kısmından ya da adresim  adresimden benle iletişime geçebilirsiniz.Wink

 

 

 

 

 



© HRMNKY (http://www.harmankaya.org)