Sitemap Dinamico

Sitemap Dinamico

Como crear un sitemap dinámico, un feed dinámico, un javascript dinámico e incluso un css dinámico, que funcione y que sea aceptado por los navegadores y buscadores es muy fácil.

 

Antes de empezar a aprender como se hace un sitemap dinámico te recomiendes que visites el mejor tutorial/ejemplo en sitemaps que te puedes encontrar en la red http://www.google.es/sitemap.xml.

Fíjate bien, antes de llegar aquí seguro que has visto otros tutoriales incluso el de google que explica como hacer un buen sitemap, pero el tuyo contiene miles de páginas y se añaden diariamente más.

Y claro, poner una a una a mano es casi imposible, pero un sitemap tiene que pesar poco y el de google pesa muy poquito.

¿Donde están las siguientes etiquetas de sitemap en el de google?
<lastmod></lastmod>
<changefreq></changefreq>

Como puedes ver, hasta ellos optimizan en el sitemap, pues tu igual. Solo necesitas el loc y el priority, además fíjate que el priority va en decimales (miles).

Dicho esto vamos ha hacer un sitemap dinámico y con extensión xml para que así todos los bots nos los indexen. (Al 100% no te lo indexarán nunca, y eso no depende de como hagas el sitemap, sino de la diferencia entre el contenido, peso de la página, tiempo de carga, etc…)

  1. Estructura de un sitemap:

    Todo sitemap debe empezar con las siguientes etiquetas:
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>
    y ser cerrado con
    </urlset>Entre la apertura del urlset y su cierre debes insertar las etiquetas loc y priority.

  2. Rellenar sitemap:

    Voy a usar una sentencia sql y asp ya que es con el código de programación que mejor me defiendo, pero es una simple consulta a una bds y un bucle while que imprime los resultados.
    Supongamos que tienes un apartado de ficha de clientes con una url parecida a /clientes-5.htm. Pongo htm en vez de asp ya que antes en .htacces habrás modificado la extensión del archivo para que parezca un htm, sino luego explicaré como hacerlo.
    <%set rs=SiteMap_STRING.Execute("Select id_cliente From clientes")
    do while not rs.EOF
    rs.movenext()
    response.write "<url>"
    response.write "<loc>http://www.tuweb/carpeta-si-existiera/clientes-"&rs("id_cliente")&".html"</loc>"
    response.write "<priority>Yo aquí uso una funcion random() para que no todos tengan la misma prioridad, pero también puedes ponerlo en si pagan a 0.800 y si no en 0.500, (No recomiendo que todo esté en 1.000)</priority>"
    response.write "</url>"
    Loop
    rs.close()
    set rs=Nothing%>

    Este archivo se llamará sitemap.asp y así lo subirás a tu servidor.
    ¡No se me ha olvidado! Ya se que dije un xml dinámico y no un sitemap.asp.

  3. Modificar extensión:
    Pues a abrir el .htacces. Si no tienes ninguna Rule creada, infórmate de como se hace en apache (si es tu caso) o en IIS.
    Yo uso el ISAPI REWRITE para mi servidor ya que es Xindows.
    Vamos a ello, ejemplo de un .htacces en IIS:
    # Helicon ISAPI_Rewrite configuration file
    # Version 3.1.0.50
    RewriteEngine on
    RewriteRule ^rss.xml? rss.asp [NC,LP,QSA]
    RewriteRule ^sitemap.xml? sitemap.asp [NC,LP,QSA] <-- Esta es la línea que os interesa
    RewriteRule ^javascript.js? javascript.asp [NC,LP,QSA]
    RewriteRule ^(estilos-i([^/]*).css? estilos.asp?id=$1 [NC,LP,QSA]
    RewriteRule ^estilos.css? estilos.asp [NC,LP,QSA]

He puesto otras líneas para que veáis diferentes ejemplos y así crear archivos en asp o php que se ahorren la cache y poder ponerlos en un subdominio sin el maldito cookieless.
Ahora accede a www.tuweb.com/sitemap.xml y verás que todo está bien.

Si te da algún error de parse, piensa que es codificación UTF-8 y que ni acentos ni ñ ni simbolitos se aceptan.
Piénsalo antes de crear una url que no será bien recibida por los bots.

Salu2.