ASP Classic

Sitemap XML dinamica da database

Produce una sitemap XML leggendo URL e date di modifica da una tabella.

Quando si usa

Quando il sito contiene articoli, prodotti o schede che cambiano spesso e una sitemap statica diventerebbe difficile da mantenere.

Perché si usa

Le nuove pagine vengono incluse automaticamente e lastmod aiuta i motori di ricerca a riconoscere gli aggiornamenti.

Vantaggi principali

  • Soluzione riutilizzabile e adattabile
  • Codice privo di dipendenze esterne
  • Struttura commentabile e integrabile nel progetto

Anteprima del risultato

La sitemap dinamica genera un elenco XML di indirizzi da comunicare ai motori di ricerca.

<urlset>
  <url><loc>https://www.sito.it/pagina.asp</loc></url>
</urlset>

Codice completo

Studia il flusso prima di copiarlo e provalo in un ambiente separato. Adatta sempre nomi, selettori, percorsi e controlli al progetto reale.

<%
Response.Buffer=True
Response.ContentType="text/xml"
Response.CodePage=65001
Response.CharSet="utf-8"
Response.Write "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbCrLf
Response.Write "<urlset xmlns=""http://www.sitemaps.org/schemas/sitemap/0.9"">" & vbCrLf
Dim rs:Set rs=conn.Execute("SELECT ID, DataModifica FROM Articoli WHERE Pubblicato=True ORDER BY ID")
Do Until rs.EOF
  Response.Write "<url><loc>https://www.esempio.it/articolo.asp?id=" & CLng(rs("ID")) & "</loc>"
  If Not IsNull(rs("DataModifica")) Then Response.Write "<lastmod>" & Year(rs("DataModifica")) & "-" & Right("0" & Month(rs("DataModifica")),2) & "-" & Right("0" & Day(rs("DataModifica")),2) & "</lastmod>"
  Response.Write "</url>" & vbCrLf
  rs.MoveNext
Loop
Response.Write "</urlset>"
rs.Close:Set rs=Nothing
%>

Da personalizzare: Dominio, percorso delle URL, query e campo della data di modifica.

Errore da evitare: Non stampare HTML, spazi o messaggi di errore prima della dichiarazione XML; esegui sempre l'escape delle URL contenenti caratteri speciali.