• 22-12-2008, 01:35:52
    #1
    Merhaba arkadaşlar,
    wordpress bilindigi üzere google da hemen indexlenme konusunda en iyi cms lerden biri.

    pingback mantıgı nedir? nasıl yapılır? pingback nedir bunları ögrenebilirmiyim.

    Eger elinizde kodlar varsa paylaşırsanız buradaki arkadaşlara ve bana yardımcı olacagı kesin

    <link rel="pingback" href="http://www.site.com/xmlrpc.php" />
  • 22-12-2008, 09:10:43
    #2
    şöyle br fonksiyon var , işine yarayabilir belki.

    <?php
    /**
     * Function to ping Google Sitemaps.
     * 
     * Function to ping Google Sitemaps. Returns an integer, e.g. 200 or 404,
     * 0 on error.
     *
     * @author     J de Silva                           <giddomains@gmail.com>
     * @copyright  Copyright &copy; 2005, J de Silva
     * @link       http://www.gidnetwork.com/b-54.html  PHP function to ping Google Sitemaps
     * @param      string   $url_xml  The sitemap url, e.g. http://www.example.com/google-sitemap-index.xml
     * @return     integer            Status code, e.g. 200|404|302 or 0 on error
     */
    function pingGoogleSitemaps( $url_xml )
    {
       $status = 0;
       $google = 'www.google.com';
       if( $fp=@fsockopen($google, 80) )
       {
          $req =  'GET /webmasters/sitemaps/ping?sitemap=' .
                  urlencode( $url_xml ) . " HTTP/1.1\r\n" .
                  "Host: $google\r\n" .
                  "User-Agent: Mozilla/5.0 (compatible; " .
                  PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
                  "Connection: Close\r\n\r\n";
          fwrite( $fp, $req );
          while( !feof($fp) )
          {
             if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
             {
                $status = intval( $m[1] );
                break;
             }
          }
          fclose( $fp );
       }
       return( $status );
    }
    ?>
  • 22-12-2008, 09:34:20
    #3
    Google yakın zamanda "Webmaster Tools" adında webmasterlar için site araçları hizmeti çıkarttı. Buradaki bölümlerin birinde sitenin hazırlamış olduğun sitemap (Sitene ait site haritası hizmetini) ekleyebiliyorsun.
    Sitemap denilen şeyde aslında çok basit bir php uygulaması. Sitemap.php diye bir dosya oluşturuyorsun.
    Örnek kod mesela
    <? header("Content-type: text/xml\n\n");
    echo "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>
     <urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"> ";
    include "config.php";
    $query = mysql_query("SELECT * FROM makaleler order by id desc"); //id ve title çektim ben sadece sen kafana göre çek
    while($row = mysql_fetch_array($query)) {
    $link=$row['makele_basligi'];
    $id=$row[id];
    $tarih=date("Y-m-d");
    $link="http://www.siten.com/$link-$id.php";
    echo "
        <url>
            <loc>$link</loc>
            <lastmod>$tarih</lastmod>
            <changefreq>weekly</changefreq>
            <priority>0.5</priority>
    </url>";
    }
    echo "
    </urlset>";
    ?>
    Sonra bu kodu sitemap.php diye kayıt et.
    .htaccess dosyasına şu kodu ekle:
    RewriteRule ^sitemap.xml$ sitemap.php [L,NC]
    Bunu yapmamızdaki amaç google sitemap olarak xml dosyasını kabul ediyor. Bisim sitemap.php dosyamızı re_writerule ile xml şeklinde algılatmak google amcaya

    Pingback olayının mantığıda şu. Google amca ben siteme içerik ekledim benim sitemap.xml dosyama tekrar bak sana zahmet demek.
    Bunun içinde yazdığın makale veritabanına girdikten sonraka. örnegin makale_ekle.php dosyanda veritabanına makelenin girişini yaptıktan sonra şu kodu çalıştıracaksın hepsi bu
    function pingGoogleSitemaps( $url_xml )
    {
       $status = 0;
       $google = 'www.google.com';
       if( $fp=@fsockopen($google, 80) )
       {
          $req =  'GET /webmasters/sitemaps/ping?sitemap=' .
                  urlencode( $url_xml ) . " HTTP/1.1\r\n" .
                  "Host: $google\r\n" .
                  "User-Agent: Mozilla/5.0 (compatible; " .
                  PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
                  "Connection: Close\r\n\r\n";
          fwrite( $fp, $req );
          while( !feof($fp) )
          {
             if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
             {
                $status = intval( $m[1] );
                break;
             }
          }
          fclose( $fp );
       }
       return( $status );
    }
    
    // Once the sitemaps are ready, we ping Google...
    if( 200 === ($status=pingGoogleSitemaps('http://www.siten.com/sitemap.xml')) )
       echo "<br> pingleme tamam";
    else
       echo "error: pingleme tamam değil";
  • 22-12-2008, 12:07:43
    #4
    teşekkurler

    live.com

    bunlar için nasıl pingleme yapabiliriz?

    webmaster tools dan ekledigimde aldıgım hata:

    Alıntı
    Sitemap file size error
    Your Sitemap exceeds the maximum file size limit. Please create multiple Sitemaps containing fewer URLs to meet the file size limit. Help Help
    Problem detected on: Dec 22, 2008
    Bunu otomatik aşabilirmiyim?
  • 22-12-2008, 13:10:35
    #5
    blogumda bu konuyla ilgili bir yazı yazmıştım;
    PHP ile Google'a PING atma işlemi - Hüseyin KELEŞ
    yahoo ve ask.jp yede aynı mantıkla ping atabilirsin, onların ping atıldığı adres ne, söylersen yardımcı oluruz, bu arada
    Alıntı
    Sitemap file size error
    Your Sitemap exceeds the maximum file size limit. Please create multiple Sitemaps containing fewer URLs to meet the file size limit. Help Help
    Problem detected on: Dec 22, 2008
    burda dediği şey sitemapın fazla büyükmüş, sitenin sitemapının linkini de yazarmısın?
  • 22-12-2008, 16:07:17
    #6
    huseyinkeles adlı üyeden alıntı: mesajı görüntüle
    yahoo ve ask.jp yede aynı mantıkla ping atabilirsin, onların ping atıldığı adres ne, söylersen yardımcı oluruz, bu arada
    burda dediği şey sitemapın fazla büyükmüş, sitenin sitemapının linkini de yazarmısın?
    biliyorum büyük dedigini linki vermeye gerek yok.
    kodlar zaten burada.

    diger sitelere atılacak ping adreslerinide yazdım. nasıl olabilecegini sordum.

    Radmin gelip görüp cevap yazarsan sevinirim. Cevabın baya işime yaradı
  • 22-12-2008, 17:45:17
    #7
    Google, Sitemap.xml dosyasına belli bir url limiti koymuştur.
    Yani kalkıpta Sen sitenin 1 milyon sayfanının url adresini sitemap.xml dosyasına ekleyemezsin buna google izin vermez.
    Google Sitemap url Linklerini 50.000 adet url ile sınırlandırmıştır.
    1 milyon url adresin varsa senin 20 adet sitemap1.xml sitemap2.xml vs vs şeklinde dosya oluşturman gerekiyor.
    50 bin satırlık xml koduda sunucuyu ağlatır. Onuda direk xml olarak kullanmak yerine xml.gz olarak sıkıştırarak ekletmen gerekiyor Google amcaya

    Şunuda unutmamak gerek ki, Pingleme işi sadece google' a yeni içerik eklediğini haber vermek için kullanılır. İçerigin degişmediği sürece gereksiz yere ping atmak, google'u kızdırır ve siteni ignore eder. Pingleme hizmetini suistimal eden siteleri google cezalandırıyor. Pingleme gereksiz ve çocuk oyuncağı olmayan bir kavram, bunuda unutmamak gerekiyor. Çok dikkatli kullanmak gerekiyor.

    Pingleme ile yeni içerigini google a haberdar edersin. Başka bir fonksiyonu yok.
    Google yeni içerigini indexleme garantisi vermiyor.
    Pingleme Pagerankına etki etmez.
    Pingleme Sıralamada üste çıkartmaz.

    Bu sebebten dolayı Farklı pingleme sunucularının çok bir fonksiyonu yok. altavista.com yada ask.com yada yahoo.com u pinglemişsin ne olur pinglememişsin ne olur.
  • 22-12-2008, 17:57:26
    #8
    radmin anladım teşekkurler.
    xml.gz uzantısını nasıl yapacagım?
  • 22-12-2008, 18:03:13
    #9
    pingback ile google ping'i karıştırmışsınız.

    Pingback 1.0