Daha önceden bize gönderilen sorular arasında de birkaç kişi bu konuda soru sorduğu için konuyu blogda paylaşayım dedim. Bununla beraber Sizlere Bugünden Sonra “ PHP ” kategorisi altında php hakkında bilgilerim sınırında bilgiler sunmaya çalışacam. Bu noktada “ Seo uyumlu sitemap ” konusu bir başlangıç olacak.
Sitemap mantık olarak site haritası anlamına gelir. Ancak Bize anlamı değil fonksiyonu önemlidir. Gün geçtikçe zorlaşan ve artık felsefe derecesine çıkmış olan SEO olayında ayrıntıları ve kolonları iyi kullanmak gerekiyor. Sitemap ta bu kolonlardan biri diyebiliriz.
Sitemap’ın Asıl fonksiyonu, sitemizdeki Linklerin google botları tarafından daha hızlı indexlenmesini sağlamasıdır. Hazır Script kullanan arkadaşlar için bu vereceğim kodlar pek önemli olmayabilir çünkü onlar genelde hazır sitemap eklentileri kullanır. Ama kendi scriptini yazanlar için çok işe yarayabilir. Neyse hemen kodlarımıza başlayalım.
1. İlk Önce “ sitemap.php ” die bir dosya açıyoruz ve kodlarımızı yazmaya başlıyoruz.
2. ilk kodumuz tabiki mysql bilgilerimizi include etmek olacak. bunu iki şekilde yapabiliriz. ya direkt bağlantı dosyasından çekeriz ya da bilgileri kendimiz yazarız. örnek olarak “ baglan.php ” die bir dosyamız var diyelim. biz mysql bilgilerini ordan include edecez.
———————————————————
include('baglan.php');
———————————————————
3.Sorgularımızı oluşturuyoruz. “ bugun ” ve “ cikti ” diye iki adet sorgu oluşturalım. ve ilk url leri verelim bunlar indexler olacak çünkü onlar datada mevcut değil
——————————————————————————————————————
$bugun = date("Y-m-d"); header('Content-type: text/xml'); $cikti.="\n \n \n https://".$_SERVER["HTTP_HOST"]."/\n weekly\n ".$bugun."T13:13:11+00:00\n 1.0\n \n \n https://".$_SERVER["HTTP_HOST"]."/index.html\n ".$bugun."T13:13:11+00:00\n weekly\n 0.8\n \n";
——————————————————————————————————————
4. Evet geldik fonksiyonlarımızı kullanmaya. Ben burda mysql_query ve mysql_fetch_array fonksiyonlarını kullanacam. şimdi sayfaları mysql_query fonksiyonu ile çekelim ve “sordum” die bir sorgu açaıp ona atalım. ve yaz komutu ile de yazalım. Zamanı Gelmişken SEO için Sefurl yide göstereyim size. bazıları encode ile yetirler ama ben vereceğim şekilde yapacağınızı öneririm.
——————————————————————————————————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<span style="color: #ff0000;"><code>include("baglan.php"); $sordum = mysql_query("select * from sayfalar order by id"); while ($yaz = mysql_fetch_array($sordum)) { $sefurl = str_replace('A','a',$yaz['sayfaurl']); $sefurl = str_replace('B','b',$sefurl); $sefurl = str_replace('C','c',$sefurl); $sefurl = str_replace('Ç','c',$sefurl); $sefurl = str_replace('D','d',$sefurl); $sefurl = str_replace('E','e',$sefurl); $sefurl = str_replace('F','f',$sefurl); $sefurl = str_replace('G','g',$sefurl); $sefurl = str_replace('Ğ','g',$sefurl); $sefurl = str_replace('H','h',$sefurl); $sefurl = str_replace('I','i',$sefurl); $sefurl = str_replace('İ','i',$sefurl); $sefurl = str_replace('K','k',$sefurl); $sefurl = str_replace('L','l',$sefurl); $sefurl = str_replace('M','m',$sefurl); $sefurl = str_replace('N','n',$sefurl); $sefurl = str_replace('O','o',$sefurl); $sefurl = str_replace('Ö','o',$sefurl); $sefurl = str_replace('P','p',$sefurl); $sefurl = str_replace('R','r',$sefurl); $sefurl = str_replace('S','s',$sefurl); $sefurl = str_replace('Ş','s',$sefurl); $sefurl = str_replace('T','t',$sefurl); $sefurl = str_replace('U','u',$sefurl); $sefurl = str_replace('Ü','u',$sefurl); $sefurl = str_replace('V','v',$sefurl); $sefurl = str_replace('Y','y',$sefurl); $sefurl = str_replace('Z','z',$sefurl); $sefurl = str_replace('W','w',$sefurl); $sefurl = str_replace('Q','q',$sefurl); $sefurl = str_replace('X','x',$sefurl); /* Türkçe Karakterleri Çeviriyoruz */ $sefurl = str_replace('ö','o',$sefurl); $sefurl = str_replace('ü','u',$sefurl); $sefurl = str_replace('ç','c',$sefurl); $sefurl = str_replace('ı','i',$sefurl); $sefurl = str_replace('ğ','g',$sefurl); $sefurl = str_replace('ş','s',$sefurl); /* Nokta, Virgül, Boşluk ve Çift Boşlukları tire Yapıyoruz */ $sefurl = str_replace(' ','-',$sefurl); $sefurl = str_replace(' ','-',$sefurl); $sefurl = str_replace(' ','-',$sefurl); $sefurl = str_replace(' ','-',$sefurl); $sefurl = str_replace('.','-',$sefurl); $sefurl = str_replace(',','-',$sefurl); $sefurl = str_replace(':','-',$sefurl); $sefurl = str_replace(';','-',$sefurl); $sefurl = str_replace('?','-',$sefurl); $sefurl = str_replace('/','-',$sefurl); $sefurl = str_replace('*','-',$sefurl); $sefurl = str_replace('=','-',$sefurl); $sefurl = str_replace('<','-',$sefurl); $sefurl = str_replace('>','-',$sefurl); $sefurl = str_replace('\'','-',$sefurl); $sefurl = str_replace('!','-',$sefurl); $sefurl = str_replace('$','-',$sefurl); $sefurl = str_replace('%','-',$sefurl); $sefurl = str_replace('&','-',$sefurl); $sefurl = str_replace('{','-',$sefurl); $sefurl = str_replace('}','-',$sefurl); $sefurl = str_replace('(','-',$sefurl); $sefurl = str_replace(')','-',$sefurl); $sefurl = str_replace(']','-',$sefurl); $baslik = str_replace('[','-',$sefurl); $cikti .= "\n</code></span> |
——————————————————————————————————————
5 . Ve son olarak link uzantılarımızı atayıp echo komutuyla cikti sorgumuzu yazdırıyoruz.
——————————————————————————————————————
<url>
<loc>https://".$_SERVER["HTTP_HOST"]."/".$baslik."-".$yaz["id"].".html</loc>\n
<lastmod>".$bugun."T13:13:11+00:00</lastmod>\n
<changefreq>weekly</changefreq>\n
<priority>0.64</priority>\n
</url>\n";
}
$etiket = mysql_query("select * from tag order by id");
while ($et = mysql_fetch_array($etiket)){
$uu = $et["url"];
$ii = $et["id"];
$cikti .= "\n
<url>
<loc>https://".$_SERVER["HTTP_HOST"]."/".$uu."-".$ii.".tag</loc>\n
<lastmod>".$bugun."T13:13:11+00:00</lastmod>\n
<changefreq>weekly</changefreq>\n
<priority>0.64</priority>\n
</url>\n";
}
$cikti.="</urlset>";
echo $cikti;
——————————————————————————————————————
Birde Admin Penli için Otomatik sitemap.xml ve sitemap.xml.gz şeklinde kaydedecek bir dosya yapalım. yani tık yaptığımızda sitemap.xml dosyamızı güncelliyecek.” sitemapguncelle.php” diye bir dosya açalım. ve içine aşağıdaki kodlar
—————————————————————————————————————————————–
<?php
ob_start();
$dosyadi = "../sitemap.xml.gz"; //ftp kaydedilecek dosya adı
$orjsitemap = "https://www.siteadı.com/sitemap.xml"; //sıkıştırılmamış sitemap
$veri = file_get_contents($orjsitemap);
$ziplenenveri = gzencode($veri);
$fh = fopen("$dosyadi", "w");
fwrite($fh,$ziplenenveri);
fclose($fh);
echo "<script type='text/javascript'> alert('TAMAM DOSYA KAYDEDİLDİ'); </script>";
header('Refresh: 0; url=yönlenecek admin sayfası');
?>
—————————————————————————————————————————————–
Bu Sitemapın özelliği bütün argümanları arayüze almasıdır. yani diğer sitemap oluşturucuların tersine etiketleri de indexliyor hemde istediğiniz uzantıda
Bu konuda sıkıntı yaşayan yazının altına yorum yapabilir.