• 11-10-2012, 22:14:17
    #1
    Arkadaşlar sitemap için hazır kod buldum fakat tarihi veritabanından çekmiyor. Manuel olarak yazılmış halde buda olumsuz sonuçlara sebep oluyor. Ne yaptıysam veritabanından bilgiyi çekmesini sağlayamadım. Tarihi veritabanından çekmek için ne yapmam gerekiyor ?
    İlgili satır : $date


    <?
    // Önce mysql bağlantı bilgilerini içeren php dosyamızı include ediyoruz
    $mysqlhost="localhost";
    $mysqluser="sivas";
    $mysqlpass="sivas";
    $mysqldatabase="sivas";
    if(! $baglanti=@mysql_connect($mysqlhost, $mysqluser, $mysqlpass)) die("veritabani baglantisi yok.");
    mysql_select_db($mysqldatabase);
    
    // İkinci olarak sayfa output'unun hangi formatta olduğunu belirten header komutunu gönderiyoruz. Sayfamız xml formatında olacaktır.
    header("Content-Type: text/xml");
    
    // Get metoduyla aldığımız sayfa verisini $sayfa isimli değişkene atıyoruz. 
    if(! isset($_GET[sayfa])) $sayfa=1; else $sayfa=$_GET[sayfa];
    
    $date="2012-10-02";
    
    // Eğer sayfa değişkeni "index" değeri aldıysa output olarak sitemap-index verilecek. 
    if($sayfa=="index"):
    
    // İlk olarak bütün makale sayısını alıyoruz.
    $index_sayi=mysql_num_rows(mysql_query("SELECT `id` FROM `sayfalar`"));
    // İkinci olarak kaç adet index'te kaç adet sitemap listeleneceğini bulmak için, toplam rakamı sitemap başı url sayısına bölüyoruz. Ben genelde veritabanını yormamak ve hızlı yüklenme için 6000 kullanırım.
    $index_sayi=ceil($index_sayi / 6000);
    
    //Google sitemap-index header'larını giriyoruz. Encoding'i dileğinize göre değiştirebilirsiniz.
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
       <sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
    
    // Ana etiketleri girdikten sonra sitemap'ları döngü ile listeliyoruz.
    for($i=0; $i<$index_sayi; $i++){
    echo "<sitemap>
          <loc>http://www.sivas.net.tr/sitemap.php?sayfa=".($i+1)."</loc>
          <lastmod>$date</lastmod>
       </sitemap>\n";
    }
    
    // Son olarak sitemap-index sonlandırma etiketini girip index'i bitiriyoruz.
    echo "</sitemapindex>";
    
    // Eğer GET ile aldığımız sayfa değişkeni numerik ise bu kodlar çalışacak.
    else:
    
    // Sayfa numarasına göre 6000'lik veri alınıyor.
    $sorgu=mysql_query("SELECT `id` FROM `sayfalar` ORDER BY `id` ASC LIMIT ".(($sayfa-1)*6000).",6000");
    
    // Sitemap ana xml etiketleri giriliyor.
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
    <urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
     xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\">\n";
    
    // Alınan 6000'lik parça döngü ile yazdırılıyor.
    while($sonuc=mysql_fetch_assoc($sorgu)):
    
    echo "  <url>
                    <loc>http://www.sivas.net.tr/KentRehberiDetay-".$sonuc[id].".html</loc>
                    <lastmod>$date</lastmod>
                    <changefreq>daily</changefreq>
                    <priority>0.5</priority>
            </url>\n";
    
    endwhile;
    
    // Son olarak sitemap'ı sonlandırma etiketini yazdırıp dosyayı kapatıyoruz.
    echo '</urlset>';
    
    endif;
    ?>
  • 11-10-2012, 23:02:53
    #2
    Siteniz haber sitesi değilse lastmod tagını kullanmanızı önermiyorum.
  • 14-10-2012, 14:37:38
    #3
    Hocam haber sitesi değil. Fakat tarih eklemeden yaptığımız eklemelerin kıymeti oluyormu ki ?

    Tarihi kaldırmanın ne gibi olumlu & olumsuz sonuçları olur ?
  • 15-10-2012, 02:39:30
    #4
    Kıymet aynı kıymet Haber siten veya devamlı bir içeriğinin google'da üst sırada çıkma olasılığı yoksa (güncel konu vb) tarih kullanmanın hiç bir artısı yok. Eksisine gelirsek xml dosyanda fazla yer kapladığı için fazla bw harcamış olursun. Yanlış ayarlanmış tarih de canına ot tıkar o derece kötüdür. Haber sitesi olmayanların kullanmaması gereken opsiyonel bir tag tarih.
  • 15-10-2012, 22:58:51
    #5
    http://www.sivas.net.tr için önerin nasıl olur peki hocam ?
  • 16-10-2012, 11:56:54
    #6
    changefreq tagını günlük olarak belirlemişsiniz ve son güncelleme tarihi eski tarih kalıyor. Bu yüzden lastmod tagını kullanmamanızı öneririm.
  • 16-10-2012, 17:03:53
    #7
    changefreq için ne yapmamı önerirsin peki hocam ?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:03:53 -->-> Daha önceki mesaj 15:49:58 --

    Hocam changefreq aylık yaptım ve tarihi kaldırdım.

    http://www.sivas.net.tr/sitemap.php

    Böyle nasıl olur ?
  • 19-10-2012, 03:23:18
    #8
    Önemlilik tagını da 0.8 olarak ayarlayın. Sonuçta o başlık altında bir çok farklı bilgi mevcut.

    Unutmamakta fayda var ; yapılan her değişiklik indexlerinizi etkiler. Önce silinir sonra tekrar eklenirler.