SMF forum indexlenmesi çok pratik.[Test edildi]

Started by Webersin, August 21, 2006, 06:31:39 PM

Previous topic - Next topic

DraGonS

arkadaşlar sitemdeki yalnızca 2 tane forum ziyaretçilere açık diğer forumlar ziyaretçilere kapalı bende sadece ziyaretçilere açık bölümleri indexlemek istiyorum onu nasıl yapacağım?


gokozlu

beyler bu tamamen sitenizin aldığı hit ile alakalı eğer siteniz gerçekten iyi hit alıyorsa google'ın sizi indexlememesi söz konusu değil

kendi sitemin googleda 51 sayfa index attı  ::)
.

sertan

Quote from: Webersin on August 21, 2006, 06:31:39 PM
<?php

require_once('SSI.php');

if (
$modSettings['smfVersion'] < '1.1')
    
ob_start('ob_sessrewrite');

header('Content-Type: text/plain');

echo 
'<?xml version="1.0" encoding="UTF-8"?' '>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">'
;

$request db_query("
    SELECT posterTime
    FROM 
{$db_prefix}messages
    WHERE ID_MSG >= " 
. ($modSettings['maxMsgID'] - 30) . "
    ORDER BY ID_MSG DESC
    LIMIT 10"
__FILE____LINE__);
$latest_post_times = array(time());
while (
$row mysql_fetch_assoc($request))
    
$latest_post_times[] = $row['posterTime'];
mysql_free_result($request);

$request db_query("
    SELECT ID_BOARD
    FROM 
{$db_prefix}boards"__FILE____LINE__);
$boards = array();
while (
$row mysql_fetch_assoc($request))
{
    
$request2 db_query("
        SELECT posterTime
        FROM 
{$db_prefix}messages
        WHERE ID_BOARD = 
$row[ID_BOARD]. ($modSettings['totalMessages'] > 100000 "
            AND ID_MSG >= " 
. ($modSettings['maxMsgID'] * 0.5) : '') . "
        ORDER BY ID_MSG DESC
        LIMIT 10"
__FILE____LINE__);
    
$board_post_times = array(time());
    while (
$row2 mysql_fetch_assoc($request2))
        
$board_post_times[] = $row2['posterTime'];
    
mysql_free_result($request2);

    
$boards[] = array(
        
'id' => $row['ID_BOARD'],
        
'times' => $board_post_times,
    );
}
mysql_free_result($request);

$request db_query("
    SELECT ID_TOPIC
    FROM 
{$db_prefix}topics
    ORDER BY numViews + numReplies DESC
    LIMIT 1000"
__FILE____LINE__);
$topics = array();
while (
$row mysql_fetch_assoc($request))
{
    
$request2 db_query("
        SELECT posterTime
        FROM 
{$db_prefix}messages
        WHERE ID_TOPIC = 
$row[ID_TOPIC]
        ORDER BY ID_MSG DESC
        LIMIT 10"
__FILE____LINE__);
    
$topic_post_times = array(time());
    while (
$row2 mysql_fetch_assoc($request2))
        
$topic_post_times[] = $row2['posterTime'];
    
mysql_free_result($request2);

    
$topics[] = array(
        
'id' => $row['ID_TOPIC'],
        
'times' => $topic_post_times,
    );
}
mysql_free_result($request);

$request db_query("
    SELECT ID_MEMBER
    FROM 
{$db_prefix}members
    ORDER BY totalTimeLoggedIn DESC
    LIMIT 20"
__FILE____LINE__);
$members = array();
while (
$row mysql_fetch_assoc($request))
{
    
$request2 db_query("
        SELECT posterTime
        FROM 
{$db_prefix}messages
        WHERE ID_MEMBER = 
$row[ID_MEMBER]. ($modSettings['totalMessages'] > 100000 "
            AND ID_MSG >= " 
. ($modSettings['maxMsgID'] * 0.5) : '') . "
        ORDER BY ID_MSG DESC
        LIMIT 10"
__FILE____LINE__);
    
$member_post_times = array(time());
    while (
$row2 mysql_fetch_assoc($request2))
        
$member_post_times[] = $row2['posterTime'];
    
mysql_free_result($request2);

    
$members[] = array(
        
'id' => $row['ID_MEMBER'],
        
'times' => $member_post_times,
    );
}
mysql_free_result($request);

// First, the forum URL.  Highest priority!
echo '
    <url>
        <loc>'
$scripturl'</loc>
        <lastmod>'
posts_max_time($latest_post_times), '</lastmod>
        <changefreq>'
posts_to_freq($latest_post_times), '</changefreq>
        <priority>1.0</priority>
    </url>'
;

// Now the boards!
foreach ($boards as $board)
{
    echo 
'
    <url>
        <loc>'
$scripturl'?board='$board['id'], '.0</loc>
        <lastmod>'
posts_max_time($board['times']), '</lastmod>
        <changefreq>'
posts_to_freq($board['times']), '</changefreq>
        <priority>'
posts_to_priority(0.8$board['times']), '</priority>
    </url>'
;
}

// Popular topics too...
foreach ($topics as $topic)
{
    echo 
'
    <url>
        <loc>'
$scripturl'?topic='$topic['id'], '.0</loc>
        <lastmod>'
posts_max_time($topic['times']), '</lastmod>
        <changefreq>'
posts_to_freq($topic['times']), '</changefreq>
        <priority>'
posts_to_priority(0.7$board['times']), '</priority>
    </url>'
;
}

// Most active members?
foreach ($members as $member)
{
    echo 
'
    <url>
        <loc>'
$scripturl'?action=profile;u='$member['id'], '</loc>
        <lastmod>'
posts_max_time($member['times']), '</lastmod>
        <changefreq>'
posts_to_freq($member['times']), '</changefreq>
        <priority>'
posts_to_priority(0.5$board['times']), '</priority>
    </url>'
;
}

echo 
'
</urlset>'
;

function 
posts_max_time($post_times)
{
    if (empty(
$post_times) || count($post_times) == 1)
        return 
gmstrftime('%Y-%m-%dT%H:%M:%S+00:00'time() - 3600 24 10);

    return 
gmstrftime('%Y-%m-%dT%H:%M:%S+00:00'max($post_times));
}

function 
posts_to_priority($base$post_times)
{
    if (empty(
$post_times) || count($post_times) == 1)
        return 
sprintf('%1.1f'$base);

    
$s = (max($post_times) - min($post_times)) / count($post_times);

    if (
$s 3600 24)
        
$mod 0.1;
    else
        
$mod 0;

    return 
sprintf('%1.1f'$base $mod);
}

function 
posts_to_freq($post_times)
{
    if (empty(
$post_times) || count($post_times) == 1)
        return 
'yearly';

    
$s = (max($post_times) - min($post_times)) / count($post_times);

    
// Changes more often than every hour.
    
if ($s 3600)
        return 
'always';
    elseif (
$s 3600 12)
        return 
'hourly';
    elseif (
$s 3600 24 4)
        return 
'daily';
    else
        return 
'monthly';
}

?>


yapmanız gerekenler
1.LIMIT 1000", __FILE__, __LINE__); üstte verdiğim cod da LIMIT 1000 sayısı sizin forumda kaç tane konu varsa onu belirtin

2.LIMIT 20", __FILE__, __LINE__); bu code de LIMIT 20 yazan yeri forumda kaç üyeniz varsa limit belirleyin.


1 dediğim : konu sayısını belirler.Bunu da konu sayının biraz daha üstüne ayarlarsan sorun olmaz.
2 dediğim :İkinci dediğimde kullanıcı profilleri kaç tane istersen ayarlayabilirsiniz.

SMF kullanan bir sürü arkadaş forum indexlenmiyor diye dert yanmıştı bende çok sıkıntı çekiyordum bu konuda bir sürü program denedim fakat çok uzun sürdüğü için hep yarıda bıraktım üssteki code ise herşeyi kolaşlaştırıyor.

yukardaki kodu boş tane .php dosyası oluşturun içine atın codeleri ve kaydettikten sonra ftp forum ana dizine atın .php dosyasını ondan sonra
siteadi.com/forum/xxx.php açın ve bekleyin size herşeyi hazırlıcak sitemap hazırlama işi bittikten sonra sitemap.xml diye dosya yaratın ve xxx.php deki tüm linkleri sitemap.xml içine aktarın gerisi biliyorsun google.com/webmasters/sitemap sitemap kaydedin 2 önce yaptım ve bugun kontrol ettim forum daki konular indexlenmiş

örnek:
site:www.geceninrengi.net/forum - Google'da Ara

ersin kardeş bu dediklerini yaptıktan sonra neyi nereye atıyoruz tam olarak tarif edermisin ?
sitemap.xml içine aktarın gerisi biliyorsun   bunu yazmışsın ama ben bilmiyorum ve bilmeyen de vardır neyi nereye nasıl atıyoruz bunu açıklarsan sevinirim ..

msn de bulamıyorum seni (evanescence)
www.benimteknolojim.com/forum

Yardımcı olmak, güzel şeyler yapmak hoş ;)

mr_boombastic

Helal olsun diyorum baska bişi değil

Site:www.hostingyardim.com/index.php

İndexlenme sayısı 30.000 lerde
http://www.google.com.tr/search?q=site:hostingyardim.com&hl=tr&lr=&filter=0

Varista

Quote from: mr_boombastic on August 24, 2006, 07:36:11 PM
Helal olsun diyorum baska bişi değil

Site:www.hostingyardim.com/index.php

İndexlenme sayısı 30.000 lerde
http://www.google.com.tr/search?q=site:hostingyardim.com&hl=tr&lr=&filter=0
http://216.239.39.104/search?q=allinurl:www.hostingyardim.com+site:www.hostingyardim.com
326 sayfan indexlenmiş.

www.yourcache.com adresinden her gece 12'yi geçince bakabilirsiniz.Her gece güncelleniyor.

elerot

yaptık  bakalım 15000 hitli bir yerde denedin ortalama kac gunde indexler? bileniniz varmı?

mr_boombastic


LaVioRtH_cL

Ben yapalı 1 hafta oldu hala hiçbir belirti görmedim. :(

 
 

Badboy

2 Gün önce yaptım ve sonuç aldım gerçekten işe yarıyor...
Nothing is true, everything is permitted.

uyagan

Evet gerçekten de indexlemeye başladı arkadaşlar...
En azından bir deneyin derim...

bahafan

beleş hostlarda işe yaramıyo galiba değil mi? çünkü ben deneyince hata veriyo google  :'(
Msn Durumum ==>>


mgimadu

Quote from: bahafan on August 25, 2006, 05:54:10 AM
beleş hostlarda işe yaramıyo galiba değil mi? çünkü ben deneyince hata veriyo google  :'(

hangi beleş hostingi kullanıyorsun sen?
.ıl I love you simplemachines lı.
Forumgil.com - Enter my site.
My Mods        - Enter my Mods.
I wait you SMF 2.0

bahafan

Msn Durumum ==>>

mgimadu

Quote from: bahafan on August 25, 2006, 12:20:23 PM
funpic.de den almıştım hostu

Bu host firması haber vermeden hesabını silebiliyor.

Kayyo.com dan al hem ücretli host gibidir.

50 MB DISK
3 GB BW
10 ADET EPOSTA
ALAN ADINI YONLENDIRME...
.ıl I love you simplemachines lı.
Forumgil.com - Enter my site.
My Mods        - Enter my Mods.
I wait you SMF 2.0

bahafan

kayyodan da aldım sitemap i falan ona attım google yine hata verdi heralde google paralı hostarı tarıyo
Msn Durumum ==>>

chipcomputer

Belgenin üst düzeyinde geçersiz. 'http://www.chipcomputer.net/forum/sitemap.xml' kaynağı işlenirken hata oluştu. Satır 1, ...

  <?xml version="1.0" encoding="UTF-8" ?>


sitemap.xml oluşturunca bu hatayı veriyor. Bir arkadaşda sorrmuştu sitemap.xml ye entegre et diyorsunuz ve bunu biliyorsunuz demişsiniz. Ya bilmeyenler. Ben yaptım ama galiba bilmediğim bir yer varmış. Sonuçta verdiğiniz kodlar linkleri .xml ye uygun hazırlıyor fakat bunu çalıştırmıyor gibi geldi bana veya biz burada xml yi yanlış yapıyoruz.

elerot

yav beyler az daha index liyordu googledan hesabıma girdim 18 saat önce bir error var diye bi ileti var

ingilizce bi kac bişey yazıyo formata uygun xml değil felan diyor bana bir örnek gonderimisiniz sitemap
örneği

dreamweverdan yazdım başına kendi bi kaç kod ekledi php yi calıştırdıktan sonra gelen linkleri içine kaydederken onlarıda kaydetti acaba sadece linklermi dursaydı bana bir sitemap yapan arkadaslar örnek gönderebilrimi sitesi indexlennemlerden olursa sevinirim

acil acil acil

LaVioRtH_cL

Bu sitemapı kullanırken ve google sitemap servisine siteni kaydederken başına "www" koymadan ekle.

 
 

Advertisement: