google sitemap

Support für weitere IT-Themenbereiche
Antworten
Benutzeravatar
lazka
Beiträge: 51
Registriert: Do 24.Mär, 2005 09:54
Wohnort: Graz
Kontaktdaten:

google sitemap

Beitrag von lazka »

grad bei heise aufgetaucht.

Hierbei handelt es sich um ne Sitemap (XML) die man wie eine robots.txt (nur ein bischen komplizierter)
ins root-dir haut und google findet sofort alle wichtigen seiten ohne irgendwie im linktschungel zu versinken.

Find ich imho ne super Idee.

http://www.heise.de/newsticker/meldung/60254
Zuletzt geändert von lazka am Fr 03.Jun, 2005 18:17, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Wenn das System klappt, könnte es sehr Interessant sein. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, spart es doch einiges an Traffic!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
lazka
Beiträge: 51
Registriert: Do 24.Mär, 2005 09:54
Wohnort: Graz
Kontaktdaten:

Beitrag von lazka »

wens interessiert: Titus (und ein bischen ich) hat da ein Script gebaut welches die Sitemap anhand der Datenbankinfos erstellt : http://www.phpbb2.de/viewtopic.php?p=154967#154967

(btw. hab jetzt ein Avatar :D )
Zuletzt geändert von lazka am So 05.Jun, 2005 22:22, insgesamt 1-mal geändert.
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

[quote="lazka - So 05.Jun, 2005 22:20";p="34515"]wens interessiert: Titus (und ein bischen ich) hat da ein Script gebaut welches die Sitemap anhand der Datenbankinfos erstellt : http://www.phpbb2.de/viewtopic.php?p=154967#154967

(btw. hab jetzt ein Avatar :D )[/quote]

Hi,
also damit ich als Laie das richtig bzw. halbwegs verstehe. Copy & Paste in z.B. sitemap.php, rauf auf das Server root, als admin mit Aufruf von www.meinforum.de/phpBB2/sitemap.php starten? Und dann funktioniert das und es wird eine entsprechende *.gz datei erstellt?

Thx 4 Help :-)
Zuletzt geändert von ToXic am Mo 06.Jun, 2005 08:34, insgesamt 1-mal geändert.
Benutzeravatar
lazka
Beiträge: 51
Registriert: Do 24.Mär, 2005 09:54
Wohnort: Graz
Kontaktdaten:

Beitrag von lazka »

jup. oder du haust das sessionmanagement, include, message zeugs raus und includest es in deine z.B.: Portal.php
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

bei mir kommt nur (fetig) wenn ich das ausführe... was genau passiert da?
gruss
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

[quote="lazka - Mo 06.Jun, 2005 16:03";p="34586"]jup. oder du haust das sessionmanagement, include, message zeugs raus und includest es in deine z.B.: Portal.php[/quote]

Hi,
hochladen und aufrufen sowie ausführen funktioniert, jedoch wird keine sitemap.xml bzw. sitemap.xml.gz generiert. Scheint wohl mit der Permission zusammenzuhängen? Ich poste mal ne Meldung:
Warning: gzopen(./sitemap.xml): failed to open stream: Permission denied in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 99

Warning: gzwrite(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 100

Warning: gzclose(): supplied argument is not a valid stream resource in /www/htdocs/xxxxxxx/phpBB2/xgoogle.php on line 101

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 791

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 793

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xxxxxxx/phpBB2/xgoogle.php:99) in /www/htdocs/xxxxxxx/phpBB2/includes/page_header.php on line 794
Wenn ich das ganze halbwegs richtig verstehe werden dann aus der Datenbank sämtliche Topics in eine *.xml Datei geschrieben. Diese sende ich dann an Google, und anhand der übermittelten Informationen indexiert Google mein Board in deren Index? Falls dem so ist und der Service weiterhin seitens Google bestehen bleibt, könnte ich den SUMaMod aus meinem Board ausbauen. Der läuft nämlich bei mir nicht richtig ... User können keine Lesezeichen/Bookmarks setzen. Und das nervt irgendwie.

Aber wie ich nun das Script zum laufen bekomme, habe ich leider immer noch nicht verstanden. Ob du mir/uns Laie/n noch etwas unterstützen könntest? So mit ner kurzen Einbauanleitung? *liebfrag* Thx :-)
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

bei mir kommt nur (fetig) wenn ich das ausführe... was genau passiert da?
gruss
Wenn alles funktioniert hat, solltest du im SeverRoot eine Datei namens sitemap.xml.gz liegen haben. Diese schickst du dann an Google. Wies dann weitergeht entzieht sich momentna leider meiner kenntniss ... sry :-(
Benutzeravatar
lazka
Beiträge: 51
Registriert: Do 24.Mär, 2005 09:54
Wohnort: Graz
Kontaktdaten:

Beitrag von lazka »

probier mal ne leere sitemap.xml.gz Datei zu machen und der dann Chmod 0644 bzw. 666 zu geben.

oder schreib mal statt dem

Code: Alles auswählen

   $fileName = gzopen($cache_data_file, "w9");
   gzwrite($fileName, $sitemap);
   gzclose($fileName); 

Code: Alles auswählen

if($fileName = gzopen($cache_data_file, "w9"))
{
	gzwrite($fileName, $sitemap);
	gzclose($fileName);
	@chmod($cache_data_file, 0666);
}
aber was das Header-zeugs betrifft :confused:
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

also nachdem ich es ausgeführt habe und die mekdung fertig bekommen habe...ist nun eine sitemap.xml.gz bei mir im root zu finden...

und was mach ich nun genau mit der?
lieben gruss
Benutzeravatar
lazka
Beiträge: 51
Registriert: Do 24.Mär, 2005 09:54
Wohnort: Graz
Kontaktdaten:

Beitrag von lazka »

erstell bei googöe nen Account (wenn du bei Gmail bist gehts auch).
dann zur Sitemap-Seite: https://www.google.com/webmasters/sitemaps/login
und dort den Link hinzufügen.
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

Zuerst einmal Danke für die freundliche Unterstützung. Aber es will bei mir nicht laufen. Es wird beim Aufruf des Scrits keine *.xml Datei angelegt. Auch das Aufspielen einer sitemap.xml.gz (CHMOD 644 bzw. 666) ins Root brachte kein Ergebnis. Ich habe dann einmal eine leere sitemap.xml hochgeladen und das Script erneut ausführen lassen. Diesmal "ohne" Fehlermeldungen und dem Status "Noch Aktuell". Ich kann mir nur denken das mein Provider all-inkl.com das Schreiben auf dem Server nicht zulässt.

Für weitere Tipps bin ich natürlich dankbar :-)
Titus
Beiträge: 235
Registriert: Fr 18.Mär, 2005 22:23

Beitrag von Titus »

kommentiere mal folgendes aus

Code: Alles auswählen

{ 
   $valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false; 
} else 
{ 
   $valid = false; 
} 

if ($valid ) 
{ 
   message_die(GENERAL_MESSAGE, 'noch aktuell'); 
   exit; 
} else 
damit umgehst du die "Datei aktuell?"-Prüfung

ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

[quote="Titus - Di 07.Jun, 2005 11:41";p="34696"]kommentiere mal folgendes aus
damit umgehst du die "Datei aktuell?"-Prüfung

ist bei der datei doppelt vertreten da ich in den text alles aufgenommen habe, da der eine es evtl automatisch ausführen will, der andere lieber manuell (daher die Admin abfrage)[/quote]

Hi,
danke dir für den Tipp. Habe ich gemacht und ausgeführt ... es kommen keine Fehler und es wird Fertig angezeigt (innerhalb von 1-2 Sekunden), aber leider wird kein File auf dem Server geschrieben. Ich hänge den aktuellen Code mal an, vielleicht kannst du bei gelegenheit einmal drüberschauen? Thx :-)

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// 
// Start session management 
// 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 
if ($userdata['user_level'] != ADMIN) 
{ 
   message_die(GENERAL_MESSAGE, 'nur für Admins'); 
   exit; 
} 
// $cache_data_file = $phpbb_root_path."sitemap.xml"; 
$cache_data_file = $phpbb_root_path."sitemap.xml.gz"; 
if (@is_file($cache_data_file)) 

// { 
//   $valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false; 
// } else 
// { 
//   $valid = false; 
// } 

// if ($valid ) 
// { 
//   message_die(GENERAL_MESSAGE, 'noch aktuell'); 
//   exit; 
// } else 

{ 
   // erzeugen Daten 
   $sitemap = "<?xml version="1.0" encoding="UTF-8"?>\n"; 
    
   $sitemap .= "<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"\n"; 
   $sitemap .= "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n"; 
   $sitemap .= "xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84\n"; 
   $sitemap .= "http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">\n"; 
    
   $sql =   "SELECT MAX(topic_views) as maxviews FROM " . TOPICS_TABLE; 
   if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql); 
   $row = $db->sql_fetchrow($result); 
    
   $maxviews = $row['maxviews']; 
    
   $sql =   "SELECT t.topic_id, t.topic_time, t.topic_views, t.topic_replies, p.post_time 
        FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . POSTS_TABLE . " AS p 
        WHERE f.forum_id = t.forum_id 
        AND f.auth_view = " . AUTH_ALL . " 
        AND p.post_id = t.topic_last_post_id 
        ORDER BY t.topic_last_post_id DESC 
        LIMIT 50000"; 
   if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql); 
    
    
   while ($row = $db->sql_fetchrow($result)) 
   { 
      // Ausrechnen der avg. Aktualisierungszeit 
      //"always", "hourly", "daily", "weekly", "monthly",  ("yearly" and "never") 
      $avgtime = ((time()-$row['topic_time'])/($row['topic_replies']+1))/3600; 
       
      if ($avgtime < 1)         $changefreq = "always"; 
      else if ($avgtime < 24)      $changefreq = "hourly"; 
      else if ($avgtime < 168)   $changefreq = "daily"; 
      else if ($avgtime < 5040)   $changefreq = "weekly"; 
      else                  $changefreq = "monthly"; 
       
      //Priorität bezogen auf die Views (quadratisch) 
      $priority = round( sqrt($row['topic_views']/$maxviews), 1); 
      if ($priority >= 1)         $priority = "1.0"; 
      else if ($priority <= 0)   $priority = "0.0"; 
       
      //Zeit des letzten Beitrags 
      $iso8601_time = date('Y-m-d\TH:i:s', $row['post_time']) . substr(chunk_split(date('O',$row['post_time']), 3, ':'),0,6); 
       
      // Ausgabe der einzelnen Seiten 
      for($post=0; $post<=$row['topic_replies']; $post+=$board_config['posts_per_page']) 
      { 
         $add = ($post>0) ? "&start=".$post : ""; 
         $sitemap .= "<url>\n"; 
         $sitemap .= "<loc>http://".$board_config['server_name'].$board_config['script_path']."viewtopic.php?t=".$row['topic_id'].$add."</loc>\n"; 
         $sitemap .= "<lastmod>".$iso8601_time."</lastmod>\n"; 
         $sitemap .= "<changefreq>".$changefreq."</changefreq>\n"; 
         $sitemap .= "<priority>".$priority."</priority>\n"; 
         $sitemap .= "</url>\n"; 
      } 
   } 
   $sitemap .= "</urlset>"; 

   // Schreibe File 
/*   $fileName = fopen ($cache_data_file, 'w'); 
   fputs ($fileName, $sitemap); 
   fclose ($fileName); */ 

   $fileName = gzopen($cache_data_file, "w9"); 
   gzwrite($fileName, $sitemap); 
   gzclose($fileName); 

 if($fileName = gzopen($cache_data_file, "w9")) 
 { 
   gzwrite($fileName, $sitemap); 
   gzclose($fileName); 
   @chmod($cache_data_file, 0666); 
 }


} 
message_die(GENERAL_MESSAGE, 'Fertig'); 
?> 
EDIT:
Wohl ein wenig zuviel ausgeklammert meinerseits ... *schäm* :-( Aber jetzt hat es funktioniert .... ich habe eine sitemap.xml.gz auf dem Root liegen. habe die mal geöffnet und es sind knappe 2500 Zeilen Code drinnen. Werde das File mal zu Google hochladen und sehen was dann passiert :-)
Zuletzt geändert von ToXic am Di 07.Jun, 2005 12:35, insgesamt 1-mal geändert.
hemman
Beiträge: 71
Registriert: So 29.Mai, 2005 11:54

Beitrag von hemman »

Was muss in der sitemap.xml.gz stehen.
Beim mir schreibt er noch aktuell,aber wenn ich die sitemap.xml.gz entpacke ist in denordner nichts drin.
Wer kann helfen..
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

mach mal zum test paar postings in deinem board und ruf die seite noch mal als admin auf ...


gruss
hemman
Beiträge: 71
Registriert: So 29.Mai, 2005 11:54

Beitrag von hemman »

hab ich schon.
Wenn ich die sitemap.xml.gz auf meinen rechner hole und entpacke ist in den ordner nichts drin.
hemman
Beiträge: 71
Registriert: So 29.Mai, 2005 11:54

Kann mir keiner helfen?

Beitrag von hemman »

Hat keiner eine Idee,warum in der sitemap.xml.gz nichts drin steht.
Er meldet nach dem Aufruf der /sitemap.php -fertig,aber nach entpacken ist in dem Verzeichnis nichts drin.

Kann mir keiner helfen?
Zuletzt geändert von hemman am Do 11.Aug, 2005 10:13, insgesamt 1-mal geändert.
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

CHMOD des Verzeichnisses auf 777 gesetzt???
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
blondi
Beiträge: 1091
Registriert: Do 30.Sep, 2004 14:36

Beitrag von blondi »

Nimm mal zum Test meine ...
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ($userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, 'nur für Admins');
exit;
}
//$cache_data_file = $phpbb_root_path."sitemap.xml";
$cache_data_file = $phpbb_root_path."sitemap.xml.gz";
if (@is_file($cache_data_file))
{
$valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<23) ? true : false;
} else
{
$valid = false;
}

if ($valid )
{
message_die(GENERAL_MESSAGE, 'noch aktuell');
exit;
} else
{
// erzeugen Daten
$sitemap = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";

$sitemap .= "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\"\n";
$sitemap .= "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
$sitemap .= "xsi:schemaLocation=\"http://www.google.com/schemas/sitemap/0.84\n";
$sitemap .= "http://www.google.com/schemas/sitemap/0 ... p.xsd\">\n";

$sql = "SELECT MAX(topic_views) as maxviews FROM " . TOPICS_TABLE;
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);
$row = $db->sql_fetchrow($result);

$maxviews = $row['maxviews'];

$sql = "SELECT t.topic_id, t.topic_time, t.topic_views, t.topic_replies, p.post_time
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . POSTS_TABLE . " AS p
WHERE f.forum_id = t.forum_id
AND f.auth_view = " . AUTH_ALL . "
AND p.post_id = t.topic_last_post_id
ORDER BY t.topic_last_post_id DESC
LIMIT 50000";
if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, 'Could not obtain sitemap information', '', __LINE__, __FILE__, $sql);


while ($row = $db->sql_fetchrow($result))
{
// Ausrechnen der avg. Aktualisierungszeit
//"always", "hourly", "daily", "weekly", "monthly", ("yearly" and "never")
$avgtime = ((time()-$row['topic_time'])/($row['topic_replies']+1))/3600;

if ($avgtime < 1) $changefreq = "always";
else if ($avgtime < 24) $changefreq = "hourly";
else if ($avgtime < 168) $changefreq = "daily";
else if ($avgtime < 5040) $changefreq = "weekly";
else $changefreq = "monthly";

//Priorität bezogen auf die Views (quadratisch)
$priority = round( sqrt($row['topic_views']/$maxviews), 1);
if ($priority >= 1) $priority = "1.0";
else if ($priority <= 0) $priority = "0.0";

//Zeit des letzten Beitrags
$iso8601_time = date('Y-m-d\TH:i:s', $row['post_time']) . substr(chunk_split(date('O',$row['post_time']), 3, ':'),0,6);

// Ausgabe der einzelnen Seiten
for($post=0; $post<=$row['topic_replies']; $post+=$board_config['posts_per_page'])
{
$add = ($post>0) ? "&start=".$post : "";
$sitemap .= "<url>\n";
$sitemap .= "<loc>http://".$board_config['server_name'].$board_config['script_path']."viewtopic.php?t=".$row['topic_id'].$add."</loc>\n";
$sitemap .= "<lastmod>".$iso8601_time."</lastmod>\n";
$sitemap .= "<changefreq>".$changefreq."</changefreq>\n";
$sitemap .= "<priority>".$priority."</priority>\n";
$sitemap .= "</url>\n";
}
}
$sitemap .= "</urlset>";

// Schreibe File
/* $fileName = fopen ($cache_data_file, 'w');
fputs ($fileName, $sitemap);
fclose ($fileName); */

$fileName = gzopen($cache_data_file, "w9");
gzwrite($fileName, $sitemap);
gzclose($fileName);
}
message_die(GENERAL_MESSAGE, 'Fertig');
?>
hemman
Beiträge: 71
Registriert: So 29.Mai, 2005 11:54

Beitrag von hemman »

Ja das Verzeichnisses auf 777 gesetzt???
hemman
Beiträge: 71
Registriert: So 29.Mai, 2005 11:54

Beitrag von hemman »

wie sieht sitemap.xml.gz aus.
Ich habe eine leere Seite als sitemap.xml.gz gespeichert.
Ist das richtig?
Wenn ich die nicht habe bringt er fehler...
Antworten