Crear un mapa del sitio simple y básico Index sitemap.xml
Creación de un archivo sitemap.xml con código Python para que los motores de búsqueda puedan identificar nuestras páginas web. Se incluye un ejemplo de un sitio web estático que utiliza archivos .html y .php, junto con instrucciones sobre cómo usarlo y enviarlo a Google y Bing mediante Search Console o una URL de ping.
Un mapa del sitio es un archivo que recopila las URL de las páginas importantes de tu sitio web, lo que facilita que los motores de búsqueda comprendan y naveguen por tus páginas, lo cual beneficia al SEO y al aumento del tráfico. Aquí te explicamos cómo crear y enviar un mapa del sitio a Google para maximizar la eficiencia.
1. Comprensión de los mapas de sitio y los índices de mapas de sitio
- Mapa del sitio:Es un archivo XML que le dice a los motores de búsqueda como Google qué páginas están en nuestro sitio web.
- Índice del mapa del sitio:Es un archivo XML que combina varios submapas de sitios, lo que facilita la gestión de sitios web grandes.
2. Estructura estándar de mapa del sitio.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourdomain.com/</loc>
<lastmod>2025-08-17</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://yourdomain.com/about</loc>
<lastmod>2025-08-10</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
<loc>
= URL de la página web<lastmod>
= Fecha de última actualización (formatoAAAA-MM-DD
)<changefreq>
= Frecuencia de actualización esperada (siempre, cada hora, diariamente, semanalmente, mensualmente, anualmente, nunca
)<priority>
= Valor de importancia (0,0 – 1,0)
3. Ejemplo de código Python para la creación mapa del sitio.xml
Este código leerá una lista de URL y escribirá un archivo sitemap.xml para usted.
import datetime
domain = "https://yourdomain.com"
pages = [
"/",
"/about",
"/contact",
"/products",
"/blog"
]
today = datetime.date.today().isoformat()
sitemap_path = "sitemap.xml"
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for page in pages:
f.write(" <url>\n")
f.write(f" <loc>{domain}{page}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>weekly</changefreq>\n")
f.write(" <priority>0.8</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
4. Crear un mapa del sitio para un sitio web estático
4.1 Para páginas estáticas (archivos .HTML simples)
Si su sitio web es Sitio web estático (HTML simple) Y hay muchas páginas como
/index.html
/about.html
/contact.html
/blog.html
/products/product1.html
/products/product2.html
Ejemplo de código Python para crear un mapa del sitio para un sitio web estático
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".html"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.html"):
url = url.replace("index.html", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
Este código escaneará todos los archivos .html en su carpeta web y escribirá automáticamente un sitemap.xml.
🔹 Uso
- Coloque este código en la carpeta de su proyecto (por ejemplo.
generar_mapadelsitio.py
) - Correr con
Python generar_mapadelsitio.py
- Recibirás el archivo
mapa del sitio.xml
Situado en la raíz (public_html/mapadelsitio.xml
) - Abrir en el navegador →
https://yourdomain.com/sitemap.xml
- Enviar a Google y Bing (use Search Console o ping URL)
4.2 Para sitios web estáticos que utilizan archivos .php (páginas estáticas)
Si su sitio web es un sitio web estático que utiliza archivos .php (como index.php, about.php, contact.php), el método para crear un sitemap.xml es similar al caso .html, excepto que tenemos que extraer el archivo .php en su lugar.
/index.php
/about.php
/contact.php
/blog.php
/products/product1.php
/products/product2.php
Código Python para la creación mapa del sitio.xml
Desde archivo .php
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".php"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.php"):
url = url.replace("index.php", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
🔹 Uso
- Coloque este archivo de script en la carpeta de su proyecto (por ejemplo,
generar_mapadelsitio.py
) - Correr con
Python generar_mapadelsitio.py
- Recibirás el archivo
mapa del sitio.xml
Situado en la raíz (public_html/mapadelsitio.xml
) - Intente abrirlo en un navegador →
https://
yourdomain
.com/sitemap.xml - Llévatelo Enviar a Google Search Console / Bing Webmaster
Si está utilizando un alojamiento compartido, que está limitado por el hecho de que no se le permite ejecutar archivos Python directamente en el alojamiento compartido.
Por lo tanto, hay dos opciones para generar automáticamente sitemap.xml.
🔹 Opción 1 (la más fácil): usa tu máquina local para crear y cargar.
Instalar Python en tu máquina (Windows/Mac)
Ejecute el script de Python → obtendrá un archivo mapa del sitio.xml
Abra el Símbolo del sistema (Windows) o la Terminal (Mac/Linux) y escriba:
python generate_sitemap.py
Subir archivo mapa del sitio.xml
Ir a público_html/
de alojamiento a través de Administrador de archivos / FTP
Ir al navegador →
https://yourdomain.com/sitemap.xml
🔹 Opción 2 — Utiliza PHP para crear un mapa del sitio en tu Hosting.
Si no desea ejecutar Python localmente, puede escribir código PHP para generar automáticamente un sitemap.xml.
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
$today = date("Y-m-d");
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap created at {$domain}/sitemap.xml";
?>
🔹 Uso
- Guardar como archivo
generar_mapadelsitio.php
- Subir a
público_html/
- Llamar archivos vía web, como por ejemplo:
https://yourdomain.com/generate_sitemap.php
- Recibirás el archivo
mapa del sitio.xml
Inmediatamente en la raíz
6. Hay una nueva página sitemap.xml que se actualiza automáticamente.
Quieres dar Cuando se agrega una nueva página (.php) → mapa del sitio.xml
Se actualiza automáticamente, ya que Python no se puede ejecutar directamente, usaremos un script PHP para verificar el archivo .php en public_html cada vez y escribiremos un nuevo sitemap.xml.
Código PHP: Generar automáticamente un mapa del sitio cada vez que se ejecuta
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$today = date("Y-m-d");
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
// sitemap.xml
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap updated at {$domain}/sitemap.xml";
?>
🔹 Cómo utilizar
- Sube el archivo generate_sitemap.php a public_html.
- Llamar al archivo en el navegador:
https://yourdomain.com/generate_sitemap.php
- → Regenerará (o actualizará) el sitemap.xml cada vez.
- Al agregar un nuevo archivo .php → simplemente ejecute este archivo nuevamente y actualizará el mapa del sitio.
🔹Hazlo verdaderamente automático (configura un trabajo cron, no es necesario presionarlo tú mismo)
Puedes usar el Cron Job de Hosting, por ejemplo, para ejecutar generate_sitemap.php diariamente/semanalmente.
En el alojamiento hPanel:
- Ir a Avanzado → Trabajos cron
- Agregue un trabajo cron como:
php /home/nombredeusuario/public_html/generate_sitemap.php
php /home/username/public_html/generate_sitemap.php
- A continuación, configure la hora en Una vez al día
Se recomienda administrar los mapas de sitio mediante un archivo de índice. Cuando un mapa de sitio supera el límite de tamaño, se recomienda dividirlo en varios archivos y usar el archivo de índice para enviar hasta 500 archivos por sitio simultáneamente a Search Console. El formato XML del archivo de índice es similar al de un mapa de sitio normal y debe estar ubicado en el mismo directorio o en uno más bajo.
Más información https://developers.google.com