Caso real 06 · Conversión · CRM

Un blog que capta: CTAs con reglas y la newsletter visible por fin en móvil

El formulario de newsletter quedaba enterrado al fondo en móvil y los CTAs se colocaban a mano. Construí un sistema de captación configurable sin código y resolví un conflicto del CRM que duplicaba formularios.

Caso real, cliente anonimizado. El nombre del cliente, las personas y los datos internos se omiten por confidencialidad. Las cifras salen de logs, Search Console, GA4 y del propio código. Si un dato de negocio no se midió, no aparece.
5presets de CTA editables
4niveles de prioridad
1formulario, 2 ubicaciones
3casos relacionados por página
Contexto

El punto de partida.

En móvil la barra lateral se apila al final: el formulario de newsletter quedaba detrás de relacionados, banners, buscador y categorías. Casi nadie llegaba a verlo, y el móvil es una parte grande del tráfico del blog.

Los CTAs a la prueba gratuita se insertaban a mano, sin reglas por categoría ni forma de cambiarlos en bloque.

Síntomas observados

  • Formulario de newsletter fuera del recorrido de lectura en móvil.
  • CTAs inconsistentes entre artículos.
  • Al embeber el formulario una segunda vez, el de la barra lateral quedaba vacío.
Diagnóstico

Hipótesis descartadas antes de tocar nada.

Lo que parecía obvio y no era. Descartar bien ahorra días de trabajo en la dirección equivocada.

Embeber el mismo formulario dos veces

El script del CRM consolida instancias con el mismo ID: una se vacía.

in_the_loop() como condición

El page builder renderiza el contenido fuera del loop principal.

Un plugin genérico de CTAs

No resolvía la inserción por estructura del artículo ni la prioridad por categoría.

Implementación

Qué hice, paso a paso.

Inserción automática

El banner se coloca antes del H2 más cercano al punto medio del artículo; se saltan los posts cortos y el primer y último tramo.

Reglas sin código

5 presets desde el admin con prioridad shortcode → post → categoría → defecto, y panel de diagnóstico para administradores.

Condición fiable con page builder

Sustituí in_the_loop() por comparar el post renderizado con el objeto consultado.

Newsletter en móvil

Markup propio que envía al mismo formulario por la API del CRM, con la cookie de seguimiento para no perder la atribución.

Sin duplicados

En móvil se oculta el formulario lateral y el nuevo aparece tras el artículo, con el mismo estilo que el botón principal.

Casos relacionados

Bajo cada caso de cliente, tres casos aleatorios para que la visita no termine ahí.

Bajo el capó

El código que importa.

Fragmentos simplificados y sin datos del cliente, para que se vea el enfoque técnico real.

Guard compatible con page buildersphp
function cta_should_render(): bool {
    if ( ! is_singular( 'post' ) ) {
        return false;
    }
    // in_the_loop() falla con page builders: comparamos con la consulta principal
    return get_the_ID() === get_queried_object_id();
}
Envío al formulario del CRM sin segundo embedjavascript
fetch(`https://api.crm.example/submissions/${portalId}/${formId}`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    fields: [{ name: 'email', value: email }],
    context: { hutk: getCookie('tracking_uid'), pageUri: location.href, pageName: document.title }
  })
});
Decisiones

Por qué así y no de otra forma.

Markup propio en lugar de un segundo embed

Evita la consolidación de instancias y deja control total del diseño y la accesibilidad.

Reglas antes que colocación manual

Los textos e imágenes se editan desde el admin; el código decide dónde y cuándo aparecen.

Resultado

Qué cambió, con datos verificables.

IndicadorAntesDespuésContexto
Newsletter en móvilTras 4 bloquesAl final del artículosin duplicar
CTAsManuales5 presets + reglas4 niveles de prioridad
Casos de cliente con salida0Todos3 relacionados
Atribución del CRM—Conservadacookie de seguimiento

Cómo lo validé

  • Envíos de prueba registrados en el CRM con la página de origen.
  • QA en móvil y escritorio sin formularios vacíos ni duplicados.
  • Panel de diagnóstico mostrando qué regla aplica en cada post.
Lo que me llevo

Con page builders, las funciones «de manual» a menudo no se comportan como dice la documentación. Pruebo cada condición en el contexto real de renderizado.

  • WordPress
  • PHP
  • JavaScript
  • API de formularios
  • Page builder
Para tu web

Checklist rápida: ¿te está pasando lo mismo?

  • ¿Tu formulario principal es visible en móvil?
  • ¿Tus CTAs tienen reglas o se ponen a mano?
  • ¿Mantienes la atribución del CRM en formularios propios?
¿Te suena?

¿Tienes un problema parecido?

Preguntas frecuentes

Dudas habituales sobre este tipo de problema.

¿Se puede usar el mismo formulario del CRM dos veces en una página?

Con el embed estándar no es fiable. La alternativa robusta es enviar a la API desde un markup propio.

¿Los CTAs automáticos molestan?

Por eso van con reglas: nunca en posts cortos, nunca al principio y siempre en un corte natural.

¿Se pueden cambiar sin desarrollador?

Sí: textos, enlaces e imágenes desde el admin.

WordPress · SEO técnico · IA

Cuéntame qué está frenando tu web.

Si ya tienes un WordPress en producción, reviso el contexto y te digo con honestidad si lo que necesitas es desarrollo, SEO técnico, rendimiento o automatización.