Contents
Cómo indexar contenido dinámico en WordPress
En el ecosistema actual del SEO es fundamental que todo el contenido, incluso aquel generado dinámicamente por JavaScript o APIs, sea correctamente rastreado e indexado por los motores de búsqueda. WordPress, aunque tradicionalmente genera páginas estáticas en PHP, cada vez integra más elementos dinámicos vía AJAX, REST API o plantillas headless. Este artículo, exhaustivo y detallado, explica por qué los buscadores pueden tener problemas con contenido dinámico y cómo superarlos.
1. Panorama de la indexación de contenido
- Rastreo: descarga del HTML, CSS y JavaScript.
- Renderizado: ejecución de JavaScript para mostrar el contenido final.
- Indexación: almacenamiento de datos relevantes en la base de datos del buscador.
Si el contenido aparece tras una llamada AJAX sin soporte de server-side rendering, algunos buscadores pueden omitirlo.
2. Desafíos del contenido dinámico
- Demoras de renderizado: Google tarda segundos en procesar JS.
- Recursos bloqueados: archivos JS/CSS bloqueados por robots.txt.
- URLs no indexables: parámetros sin estructura clara.
Estrategias para garantizar la indexación
2.1 Server-Side Rendering y pre-renderizado
Implementa SSR con frameworks como Next.js o Gatsby en modo headless, o usa servicios de pre-render (Prerender.io) para entregar HTML ya procesado al bot.
Referencia: Google Dynamic Rendering
2.2 Uso de etiquetas ltnoscriptgt
Incluye dentro de ltnoscriptgt contenido alternativo estático. Aunque no ideal, mejora la cobertura en buscadores que no ejecutan JS.
2.3 Sitemaps dinámicos
Genera sitemaps que incluyan URLs de contenido generado por AJAX o query vars. Asegúrate de actualizarlos con WP-CLI o tareas cron.
Guía práctica: Implementación en WordPress
3.1 Crear un sitemap para contenido dinámico
Extiende functions.php o un plugin personalizado:
// Añadir URLs dinámicas al sitemap
add_filter(wp_sitemaps_posts_entry, mi_sitemap_dinamico, 10, 3)
function mi_sitemap_dinamico(url, post, post_type) {
if (post_type === post) {
// Ejemplo: páginas de filtros AJAX
url[loc] = home_url(/blog/filtro=populares)
url[lastmod] = gmdate(Y-m-dTH:i:sZ)
}
return url
}
3.2 Configurar prerender.io
- Regístrate en Prerender.io.
- Instala el plugin prerender.io en WordPress.
- Añade tu token en la configuración del plugin.
3.3 Integración con WP REST API
Publica endpoints personalizados para exponer contenido dinámico:
add_action(rest_api_init, function(){
register_rest_route(mi-api/v1, /eventos, array(
methods => GET,
callback => get_eventos,
))
})
function get_eventos() {
args = array(post_type => evento, posts_per_page => -1)
query = new WP_Query(args)
return rest_ensure_response(query->posts)
}
Esta ruta puede rastrearse o pre-renderizarse para indexar datos de eventos en tus páginas.
Buenas prácticas técnicas
Elemento | Descripción |
---|---|
robots.txt | No bloquear archivos JS/CSS esenciales para renderizado. |
Meta robots | Verificar que no haya noindex en páginas dinámicas. |
Canonical | Evitar contenidos duplicados al usar parámetros. |
hreflang | Indicar traducciones de contenido dinámico si aplica. |
Validación y seguimiento
- Google Search Console: Usa la herramienta de inspección de URL y el informe de cobertura.
- Screaming Frog: Activa el renderizado JavaScript para auditar contenido dinámico.
- Pruebas de velocidad: PageSpeed Insights y Lighthouse para medir el coste de SSR o pre-render.
- Monitoreo de logs: Verifica peticiones de bots a tus endpoints o sitemaps generados.
Conclusión
Indexar contenido dinámico en WordPress es un reto que se supera combinando técnicas de server-side rendering, pre-renderizado, adaptaciones de sitemaps y el uso correcto de APIs. Al aplicar las prácticas aquí descritas, garantizas que todos tus elementos —desde listados AJAX hasta secciones headless— sean correctamente rastreados e indexados por los principales motores de búsqueda.
Fuentes: Google Search Central, WordPress Developer Resources, Prerender.io, Yoast SEO.
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |