Si tu sitemap.xml fue creado una vez y nunca se actualiza, Google está ignorando tu contenido nuevo. Te enseñamos a automatizarlo.
El sitemap que nadie ve
Tienes un blog. Publicas 2 artículos por semana.
Tu sitemap.xml lista solo 5 URLs... de hace 6 meses.
Google llega, ve el sitemap, indexa esas 5 páginas.
Tus 40 artículos nuevos: invisibles.
Qué es un sitemap (explicado simple)
Es una lista de URLs que le dices a Google que indexe.
Sitemap básico:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://tudominio.com/</loc>
<lastmod>2024-11-20</lastmod>
<priority>1.0</priority>
</url>
<url>
<loc>https://tudominio.com/blog/articulo-1</loc>
<lastmod>2024-11-15</lastmod>
<priority>0.8</priority>
</url>
</urlset>
Google lee esto y dice: "Ok, estas son las páginas que debo indexar".
El problema de los sitemaps estáticos
Sitemap hardcodeado:
- Lo creas una vez
- Lo subes al servidor
- Nunca lo tocas de nuevo
Consecuencias:
❌ Nuevas páginas no aparecen
❌ Fechas desactualizadas
❌ URLs de páginas eliminadas (404)
❌ Google pierde confianza en tu sitemap
❌ Fechas desactualizadas
❌ URLs de páginas eliminadas (404)
❌ Google pierde confianza en tu sitemap
La solución: Sitemap dinámico
Se genera automáticamente cada vez que:
- Publicas un artículo
- Agregas un producto
- Creas una página
Ventajas:
✅ Siempre actualizado
✅ Google indexa contenido nuevo en horas (no semanas)
✅ Mejor posicionamiento SEO
✅ Cero mantenimiento manual
✅ Google indexa contenido nuevo en horas (no semanas)
✅ Mejor posicionamiento SEO
✅ Cero mantenimiento manual
Cómo funciona un sitemap dinámico
Antes (manual):
- Publicas artículo nuevo
- Editas sitemap.xml a mano
- Subes al servidor
- Esperas que Google lo vea
Ahora (automático):
- Publicas artículo nuevo
- El sistema agrega la URL al sitemap
- Google lo detecta en minutos
- Articulo indexado
Implementación en Next.js (paso a paso)
Sitemap estático ❌
// app/sitemap.ts (MAL)
export default function sitemap() {
return [
{ url: 'https://tudominio.com/' },
{ url: 'https://tudominio.com/blog/post-1' },
{ url: 'https://tudominio.com/blog/post-2' },
];
}
Sitemap dinámico ✅
// app/sitemap.ts (BIEN)
import { getAllPosts } from '@/lib/cms';
export default async function sitemap() {
const posts = await getAllPosts();
const blogUrls = posts.map(post => ({
url: `https://tudominio.com/blog/${post.slug}`,
lastModified: new Date(post.date),
changeFrequency: 'weekly',
priority: 0.8,
}));
const staticUrls = [
{
url: 'https://tudominio.com',
lastModified: new Date(),
priority: 1.0,
},
{
url: 'https://tudominio.com/servicios',
lastModified: new Date(),
priority: 0.9,
},
];
return [...staticUrls, ...blogUrls];
}
Elementos clave de un sitemap optimizado
1. lastModified (Fecha de actualización)
Le dice a Google cuándo cambió la página por última vez.
lastModified: new Date(post.updatedAt) // De tu base de datos
2. changeFrequency (Frecuencia de cambio)
Qué tan seguido se actualiza:
- Homepage:
daily - Blog:
weekly - Productos:
daily - Páginas estáticas:
monthly
3. priority (Prioridad)
De 0.0 a 1.0:
- Homepage: 1.0
- Servicios principales: 0.9
- Blog: 0.7-0.8
- Páginas secundarias: 0.5
Sitemap con internacionalización (i18n)
Si tienes versiones en múltiples idiomas:
export default async function sitemap() {
const languages = ['es', 'en', 'pt'];
const posts = await getAllPosts();
const urls = [];
for (const lang of languages) {
// Páginas estáticas
urls.push({
url: `https://tudominio.com/${lang}`,
lastModified: new Date(),
priority: 1.0,
alternates: {
languages: {
es: 'https://tudominio.com/es',
en: 'https://tudominio.com/en',
pt: 'https://tudominio.com/pt',
},
},
});
// Posts del blog
for (const post of posts) {
urls.push({
url: `https://tudominio.com/${lang}/blog/${post.slug}`,
lastModified: new Date(post.date),
priority: 0.7,
});
}
}
return urls;
}
Caso real: PukaDigital
Nuestro sitemap genera:
- 5 páginas estáticas × 3 idiomas = 15 URLs
- 10 artículos de blog × 3 idiomas = 30 URLs
- Total: 45 URLs actualizadas automáticamente
Cada vez que publicamos un artículo:
- Se agrega al sitemap en segundos
- Google lo detecta en 10-30 minutos
- Indexado en 1-2 horas
Antes (sitemap manual):
- Indexación: 7-15 días
Después (sitemap dinámico):
- Indexación: 1-2 horas
Errores que matan tu sitemap
❌ URLs con parámetros
Mal:
Bien:
/blog?id=123Bien:
/blog/como-hacer-seo❌ URLs duplicadas
No agregues:
/blogy/blog/(son lo mismo)- HTTP y HTTPS (elige uno)
❌ Páginas 404
Si borraste una página, quítala del sitemap.
❌ Más de 50,000 URLs
Si tienes más, divide en múltiples sitemaps.
Testing de tu sitemap
1. Verifica que existe
Abre:
tudominio.com/sitemap.xmlDebes ver XML, no un error 404.
2. Valida la sintaxis
3. Envía a Google Search Console
- Entra a Google Search Console
- Sitemaps → Agregar sitemap
- Escribe:
sitemap.xml - Enviar
Monitoreo: ¿Google lo está usando?
En Google Search Console:
Indexación → Sitemaps
Verás:
- URLs descubiertas
- URLs indexadas
- Errores
Si ves errores:
- URLs con redirect
- URLs 404
- URLs bloqueadas por robots.txt
Corrígelos inmediatamente.
Sitemap + robots.txt = Combo perfecto
Tu
robots.txt debe apuntar al sitemap:User-agent: *
Allow: /
Sitemap: https://tudominio.com/sitemap.xml
Google lo encontrará solo, sin que hagas nada.
Frecuencia de actualización
¿Cada cuánto regenerar el sitemap?
- Blog activo: En cada publicación (automático)
- E-commerce: Cada hora (productos cambian)
- Sitio estático: Una vez al día
En Next.js con App Router:
- Se regenera en cada build
- Si usas ISR, en cada revalidación
Bonus: Sitemap de imágenes
Si tienes muchas fotos/productos:
export default async function sitemap() {
const products = await getProducts();
return products.map(product => ({
url: `https://tudominio.com/productos/${product.slug}`,
lastModified: new Date(product.updatedAt),
images: product.images.map(img => ({
url: img.url,
title: img.alt,
})),
}));
}
Google indexa las imágenes también.
Conclusión: Set it and forget it
Un sitemap dinámico:
- Se actualiza solo
- Google lo ama
- Indexación 10x más rápida
Tiempo de implementación: 30 minutos
Beneficio: De por vida
Beneficio: De por vida
¿Sigues editando tu sitemap a mano en 2024?
Es hora de automatizar.
¿Listo para dejar de depender de agencias?
Únete a nuestro programa de 3 meses y aprende a gestionar tu propia presencia digital.
Solicitar Entrevista Gratuita