Anzeige:

XML Sitemaps automatisch erstellen

Mit Node.JS

Wer sich schon einmal ernsthaft mit dem Betrieb einer Internet-Seite beschäftigt hat, wird früher oder später mit Sicherheit auf das Thema "Sitemap-Erstellung" stossen. Sitemaps sind so eine Art Wegweiser für Suchmaschinen, damit diese besser erkennen können, was sich auf einer Internet Seite befindet. Im Allgemeinen wird davon ausgegangen, dass eine aktuelle Sitemap die Position, auf welcher die Suchergebnisse zB bei Google für eine Seite erscheinen positiv beeinflussen kann. Es ist also durchaus angebracht, sich in das Thema einzuarbeiten, wie man eine Sitemap erstellt und, was noch viel wichtiger ist, diese aktuell hält.

Für kleinere Internet-Seiten, deren Inhalte sich über die Zeit hinweg nur sehr wenig ändern, reicht es in der Regel, sich bei einem der zahlreichen im Internet verfügbaren Online-Sitemap-Generatoren eine Sitemap zu erstellen und diese per SFTP oder wie auch immer auf seine Seite zu laden.

Ab einer gewissen Grösse einer Internet-Seite ist dieser Ansatz nicht mehr praktikabel, zu viel Arbeitszeit müsste man in die manuelle Erstellung der Sitemap hinensstecken, da ja nach jedem Update der Internetseite auch die Sitemap aktualisiert werden will. Auch haben diese kostenlosen Angebote häufig eine Beschränkung bezüglich der maximalen Anzahl von Links etc.

Der nächste Schritt ist ein automatisiertes Script, welches periodisch ausgeführt wird und die Sitemap mit der aktuellen Struktur der Webseite zuverlässig aktuell hält. Hier finden sich auf dem Markt etliche, teils natürlich kostenpflichtige Produkte, die diese Aufgabe sicherlich einwandfrei erfüllen können.

Für Webmaster, die sich ein wenig mit Node.JS auskennen, sei hier im Folgenden eine sehr einfache Lösung gezeigt, die sehr flexibel zur Sitemap-Erstellung verwendet werden kann.

Basierend auf dem modularen Ansatz von Node.JS kommen zwei Module zur Anwendung, welche mit NPM installiert werden können

    npm install sitemap-generator --save
    npm install node-schedule --save

Wie die Namen vermuten lassen, ist das erste Modul ein Sitemap-Generator, das zweite Modul ist ein einfacher Scheduler , welcher Funktionen zu festgelegten Zeitpunkten ausführt. Die Kombination aus beiden ergibt praktisch ohne weitere Zutaten einen automatisterten XML Sitemap Generator.

        const SitemapGenerator = require('sitemap-generator');
        const schedule = require('node-schedule');
        
        
        var generateSiteMap = function() {
        
        
        let generator = SitemapGenerator(
        'https://www.loetstelle.net', {
          maxDepth: 0,
          filepath: './public/sitemap.xml',
          maxEntriesPerFile: 50000,
          stripQuerystring: false,
          changeFreq: "weekly"
        });
        
        
        generator.on('done', () => {
            console.log("Sitemap gereration done.");
          });
        
        generator.start();
        
        }
        
        var rule = new schedule.RecurrenceRule();
        rule.dayOfWeek = [0];
        rule.hour = 0;
        rule.minute = 0;
         
        var j = schedule.scheduleJob(rule, function(){
          generateSiteMap();
          console.log('Sitemap generation started');
        });
        
        console.log("Sitemap Job created.");
    

Kurz zum Programm: Die beiden Module werden importiert, um auf ihre Funktionen zugreifen zu können. Danach wird eine Funktion definiert, welche einen Sitemap-Generator mit den gewünschten Parametern startet, zB Ausgabe-Pfad, URL der Webseite etc. Danach wird eine Regel definiert, welche festlegt, wann diese Funktion ausgeführt wird. In diesem Fall ist das immer Sonntag um 0 Uhr. Dieses Script wird einfach auf dem Webserver ausgeführt, zB mit PM2 im Hintergrund, und schon hat man jede Woche eine aktuelle Sitemap.

Nähere Konfigurations-Informationen für die Module finden sich hier:

Node Sitemap Generatortor

Node Schedule

Anzeige: