Lösung für großformatige Sitemaps

7

Ich arbeite an einer landesweiten Einzelhandelswebsite mit Tausenden von Kategorien und Produktseiten und mein Kunde möchte basierend auf der Seitenkategorisierung von einer einzelnen Sitemap zu mehreren Sitemaps wechseln. So würden die neuen XML-Sitemaps für URLs erstellt:

XML Sitemap for Category Pages – all category pages can fall into a single sitemap
XML Sitemap for Family Pages – if family pages are < 40,000 they can fall into a single sitemap
XML Sitemap for Product Pages – when product pages reach 40,000 a new XML sitemap would be created.

. Gibt es eine kostenlose / professionelle Lösung zum Generieren von Sitemaps basierend auf solchen Regeln? Vielen Dank

Mukul
quelle
1
Nichts wird sofort einsatzbereit sein und genau das tun, was Sie benötigen. Mit Ihrer Artikeldatenbank können Sie jedoch problemlos XML-Sitemaps mit PHP erstellen. Wenn Sie möchten, kann ich ein kleines PHP-Skript veröffentlichen, mit dem ich eine Sitemap auf einer großen Site generiere.
Josh Mountain

Antworten:

0

Ich habe eine große Site, mit der ich eine Sitemap generiere (also tatsächlich mehrere Sitemaps in Stapeln von 40.000 URLs gleichzeitig). Hier ist eine Basisversion eines PHP-Sitemap-Generators, den ich geschrieben habe:

<?php

/* Do some stuff */
/* Connect to mysql etc */

/* create a dom document with encoding utf8 */
    $domtree = new DOMDocument('1.0', 'UTF-8');

/* create the root element of the xml tree */
    $xmlRoot = $domtree->createElement("urlset");
    $xmlRoot -> appendChild(new DomAttr('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'));
    $xmlRoot -> appendChild(new DomAttr('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'));
    $xmlRoot -> appendChild(new DomAttr('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'));

/* append it to the document created */
    $xmlRoot = $domtree->appendChild($xmlRoot);

/* Loop through our database results and create URL entries for each page */
    while ($row = mysql_fetch_array($result)){
        $currentTrack = $domtree->createElement("url");
        $currentTrack = $xmlRoot->appendChild($currentTrack);
        $currentTrack->appendChild($domtree->createElement('loc','https://mysite.com/viewer.php?file='.$row['filename']));
        $currentTrack->appendChild($domtree->createElement('changefreq','weekly'));
        $currentTrack->appendChild($domtree->createElement('priority','1.0'));
    }

/* save the xml sitemap */
    $domtree->formatOutput = true;
    $domtree->preserveWhitespace = false;
    $domtree->save('sitemap.xml'); 

Natürlich wird Ihr Kilometerstand variieren und Sie müssen einige Dinge tun, damit dies für Sie funktioniert, aber Sie könnten eine Schleife wie diese ausführen, um eine Sitemap aller Kategorien, dann aller Produkte usw. zu erstellen.

Josh Mountain
quelle
Das ist so ziemlich das, wonach ich gesucht habe ... danke für den Beispielcode.
Mukul