Node.js: generare la sitemap di un sito web

Node.js: generare la sitemap di un sito web

In questo articolo vedremo come generare la sitemap di un sito web con Node.js.

Possiamo usare il modulo sitemap-generator che effettua la scansione del sito rilevando gli URL interni e generando infine il file sitemap.xml in modo asincrono.

Essendo asincrono, questo modulo supporta una serie di eventi che possiamo usare per monitorare lo stato di avanzamento della generazione della sitemap.

Il primo step è richiamare il modulo e inizializzarlo passando come parametro fondamentale l'URL del sito daa scansionare.

'use strict';

const SitemapGenerator = require('sitemap-generator');

const generator = SitemapGenerator('https://site.tld', {
  stripQuerystring: false
});

Quindi possiamo verificare di volta in volta quando un nuovo URL viene individuato usando l'evento add.

generator.on('add', url => {
  console.log(`Found ${url}`);
});

Possiamo anche verificare se un URL restituisce un errore HTTP con l'evento error.

generator.on('error', error => {
    const {code, message, url} = error;
    const msg = `Error with ${url}: ${code} ${message}`;
    console.error(msg);
});

Quando la sitemap è stata generata, viene invocato l'evento done.

generator.on('done', () => {
  console.log('Sitemap created');
});

Infine, per avviare la generazione, invochiamo il metodo start():

generator.start();

Il file sitemap.xml verrà generato nella stessa directory da cui eseguiamo il nostro codice o nel percorso specificato dall'opzione filepath.

Torna su