Presentado a
Este documento acompaña al plan de pauta. El plan define cuánto tráfico calificado llega y a qué costo; este anexo define cuántos de esos clics terminan en pedido.
Son la misma ecuación. Cada punto de conversión que se recupera en el checkout baja el CPA de todas las campañas del plan sin mover un peso del presupuesto. Por eso las tres primeras acciones —que son configuración, no desarrollo— conviene ejecutarlas en paralelo al arranque de las campañas.
Objetivo: aumentar los pedidos online sin aumentar el tráfico.
Se revisaron a nivel de código y de comportamiento las siguientes rutas del sitio:
| Ruta | Qué se evaluó |
|---|---|
/ (home) | jerarquía, peso de página, claridad del CTA principal |
/pide-a-domicilio/ | capacidad transaccional de la landing de domicilios |
/menu/pizzas/ | listado de categoría, comparación de precios, add-to-cart |
/producto/pizza-hawaiana/ | ficha de producto, selector de tamaño, cross-sell |
/cart/ y /checkout/ | formulario real con carrito activo, campos, métodos de pago, tiempos de respuesta |
Stack detectado: WordPress + tema Flatsome + WooCommerce, YITH Advanced Product Options, WooCommerce Checkout Manager (WooCCM), pasarela ePayco, WP Rocket, PixelYourSite Pro + Google Tag Manager + Microsoft Clarity.
El sitio comunica muy bien la marca y muy mal el pedido. Toda la inversión de diseño está puesta en banners de catálogo, mientras que el camino real de compra —el que genera la venta— acumula fricción en tres puntos concretos:
/pide-a-domicilio/) no permite añadir ni un producto al carrito.Los tres son corregibles. Los dos primeros son mayormente configuración, no desarrollo desde cero.
| # | Hallazgo | Impacto | Esfuerzo |
|---|---|---|---|
| 1 | Checkout con 11 campos obligatorios y datos fiscales por defecto | Alto | Bajo |
| 2 | TTFB de ~3 s en carrito y checkout + 93 scripts | Alto | Medio |
| 3 | Sin umbral de envío gratis y sin opción de recoger en tienda visible | Alto | Bajo |
| 4 | Precio real oculto hasta seleccionar tamaño; cross-sell que rompe el flujo | Alto | Medio |
| 5 | /pide-a-domicilio/ y /menu/ no son transaccionales | Alto | Alto |
| 6 | Funnel de e-commerce sin instrumentar de punta a punta | Base de todo | Bajo |
| 7 | Sin promesa de entrega, sin prueba social en ficha de producto | Medio | Bajo |
Nota metodológica: las estimaciones de impacto son hipótesis priorizadas a partir de la evidencia técnica recogida. El hallazgo 6 (medición) es el que las convierte en números reales de la operación.
Ningún hallazgo sale de mirar el sitio por encima. Todo está medido sobre producción:
/checkout/ para leer el formulario tal como lo recibe un cliente, no la configuración teórica.Prioridad absoluta. Es el punto donde el usuario ya decidió comprar y el formulario lo devuelve.
Se añadió un producto al carrito y se cargó /checkout/. Estos son los campos que exige, tal como están configurados hoy:
| Campo | Estado real |
|---|---|
| Nombre | obligatorio |
| Apellidos | obligatorio |
| Cédula | obligatorio (condicional a "Persona Natural", que es la opción por defecto) |
| "Razón Social" — select Persona Natural / Empresa | obligatorio |
| Correo electrónico | obligatorio |
| Teléfono | obligatorio |
| País / Región | obligatorio |
| Dirección | obligatorio |
| Apartamento, habitación, etc. | marcado como validate-required |
| Ciudad (select de 8 municipios) | obligatorio |
| Check "Acepto la Política de Tratamiento de Datos" | obligatorio |
| Check "He leído los términos y condiciones" | obligatorio |
Once campos obligatorios y dos checkboxes legales para pedir una pizza.
Cédula obligatoria. Es el campo que más fricción genera de todo el formulario. Un usuario a las 8 de la noche en el sofá no se levanta a buscar la billetera: cierra la pestaña. Debe ser opcional, o exigirse únicamente si el usuario pide factura electrónica o marca "Empresa".
"Razón Social " como etiqueta del select Persona Natural / Empresa. La etiqueta no corresponde al contenido del campo y aparece después* de la Cédula (prioridad 30 frente a 40 en la configuración de WooCCM). El usuario ve que le piden la cédula antes de entender por qué.
País / Región obligatorio. El negocio entrega en 8 municipios de Antioquia. El campo debería estar oculto y prellenado en Colombia.
Apartamento / habitación validando como requerido. Rompe el flujo de todo el que vive en casa y no en unidad cerrada.
Dos checkboxes legales separados. Se consolidan en uno solo con los dos enlaces dentro del texto.
Orden y contenido del formulario corto, pensado para pulgar en móvil:
Todo lo fiscal —cédula, NIT, razón social— pasa a un acordeón cerrado bajo el rótulo "¿Necesitas factura electrónica?". Quien la necesita la abre; el 95% restante nunca la ve.
local_pickup sí está configurado en el sistema de envíos (ver sección Ticket).Con Microsoft Clarity —que ya está instalado— filtrar sesiones que llegaron a /checkout/ y no compraron, y revisar los rage clicks y dead clicks sobre los campos de Cédula y Ciudad. Con 20 grabaciones se confirma o se descarta la hipótesis en una tarde.
TTFB (tiempo hasta el primer byte) medido con user-agent móvil, tres repeticiones sobre carrito y checkout con productos dentro:
| Ruta | TTFB | Total |
|---|---|---|
/ (home) | 0,36 s | 0,90 s |
/producto/pizza-hawaiana/ | 0,15 s | 0,43 s |
/menu/pizzas/ | 0,17 s | 0,48 s |
/cart/ | 2,72 – 3,10 s | 3,22 s |
/checkout/ | 2,84 – 3,06 s | 3,43 s |
Las páginas de contenido vuelan porque WP Rocket las está cacheando. Carrito y checkout están —correctamente— excluidos de la caché de página, pero eso deja al descubierto que el servidor está tomando cerca de 3 segundos solo en construir el HTML, sin haber empezado a descargar nada.
A eso hay que sumarle el peso del front: la página de checkout carga 93 etiquetas <script>. En una conexión 4G real, eso significa un checkout que empieza a ser usable entre 6 y 8 segundos después del clic.
El usuario que ya decidió comprar está esperando en la pantalla más cara del sitio.
Servidor
wp_ajax y en los hooks de checkout. Con WooCCM, YITH APO y PixelYourSite Pro corriendo simultáneamente, hay margen amplio de optimización.Front, específicamente en /cart/ y /checkout/
reputationhub.site, reproductor de radioboss (Piccolo Radio), scripts de galería y de lista de deseos.purchase siga disparándose (ver sección Tracking).Meta razonable: TTFB por debajo de 800 ms en checkout y menos de 30 scripts en la ruta de compra.
El home carga 123 imágenes y 69 scripts, con aproximadamente 23 bloques duplicados en el mismo HTML —una versión para móvil y otra para escritorio conviviendo en el DOM, ocultas por CSS (hide-for-medium / show-for-medium). El navegador procesa ambas. Es peso muerto que se paga en cada visita, especialmente en móvil.
Home → banner → /menu/pizzas/ → clic en banner → ficha de producto
→ elegir tamaño → añadir al carrito → /cart/ → /checkout/
Mínimo 6 pantallas, con recarga completa de página en casi cada paso. Cada recarga es una oportunidad de abandono, y en móvil con conexión de datos son varios segundos por salto.
/pide-a-domicilio/ no vende nadaLa página con el nombre más comercial del sitio —y el destino natural de las campañas de pauta— es un mosaico de banners que enlazan a categorías. No tiene un solo producto, ni un precio, ni un botón de añadir al carrito.
Es la landing que debería estar cerrando pedidos y hoy solo redistribuye tráfico hacia otro nivel de navegación.
/menu/pizzas/ no es un listado de productosAl revisar el HTML de la categoría no se detectó ninguna tarjeta de producto de WooCommerce, ningún ajax_add_to_cart y solo 2 precios visibles en toda la página. Son banners diseñados a mano.
Consecuencias directas:
view_item_list, lo que deja ciego el primer escalón del funnel.Convertir /pide-a-domicilio/ en el menú transaccional real del negocio:
Con eso el camino queda en:
Landing de campaña → elegir producto en modal → ver mi pedido → checkout
Tres pantallas en lugar de seis, sin una sola recarga completa hasta el checkout.
Hoy las campañas mandan tráfico a una página de navegación. Cuando /pide-a-domicilio/ sea transaccional, el mismo presupuesto de Meta y Google va a aterrizar sobre una página que genera add_to_cart, lo que además alimenta con señales reales de conversión a los algoritmos de optimización de ambas plataformas.
Análisis sobre /producto/pizza-hawaiana/, representativa de todas las pizzas variables del catálogo.
La ficha muestra "From: $32.600". El precio efectivo no aparece hasta que el usuario despliega el selector y elige un tamaño. Está tomando la decisión de compra a ciegas hasta el tercer clic.
Hoy es un <select> nativo con seis opciones de texto largo:
Baby · 16cm · Tamaño especial
Piccolo · 22cm · Personal
Ejecutiva · 27cm · 2-3 Personas
Milenium · 37cm · 3-4 Personas
Familiar · 41cm · 5-7 Personas
Jumbo · 50cm · 8-12 Personas
Propuesta: reemplazarlo por tarjetas o botones con el precio visible en cada tamaño, mostrando el salto de valor. Cuando el usuario ve que pasar de Ejecutiva a Milenium cuesta poco más por el doble de porciones, sube solo. Es el mecanismo más limpio de aumento de ticket promedio en una pizzería.
Añadir además el indicador de precio por porción en los tamaños grandes; justifica el upgrade sin necesidad de descuento.
El bloque "Podrías combinar tu orden con" muestra 10 productos, pero 7 de ellos dicen "Seleccionar opciones", lo que saca al usuario de la ficha hacia otra página. Un cross-sell que obliga a abandonar el producto principal no es cross-sell: es una fuga.
Propuesta: reducir a 4 complementos de alto margen (bebida, entrada, postre, cerveza) y resolverlos en modal o acordeón dentro de la misma ficha, con un clic para añadir.
| Elemento | Hoy | Propuesto |
|---|---|---|
| Precio | "From: $32.600" | Precio visible por tamaño en botones |
| Selector | <select> nativo | Tarjetas con precio y porciones |
| Upsell de tamaño | inexistente | Precio por porción visible |
| Cross-sell | 10 ítems, 7 sacan de la página | 4 ítems, añadir en la misma ficha |
| Lista de deseos | presente | eliminada |
| Prueba social | ninguna | calificación + "el más pedido" |
| Promesa de entrega | ninguna | "Llega en 35-45 min a tu zona" |
Al inspeccionar el checkout con carrito activo, el sistema de envíos tiene tres métodos configurados —flat_rate, free_shipping y local_pickup— con horarios de disponibilidad por día de la semana.
Sin embargo, al usuario solo se le ofrece una opción:
Envío — Precio fijo: $9.500
Es decir, envío gratis y recoger en tienda existen en el sistema pero no llegan al cliente.
Es la palanca más barata que existe para subir el ticket promedio: no cuesta desarrollo, solo configuración.
Propuesta:
El costo del domicilio se absorbe con el margen del producto adicional que el cliente añade para alcanzar el umbral.
Con puntos de venta con parqueadero y terraza, y presencia en 8 municipios, no ofrecer "Recoger en tienda — $0" en el checkout deja ir todos los pedidos de quien pasa a recoger de camino a casa.
Además es el pedido de mayor margen del negocio: sin costo de domiciliario.
Propuesta: habilitar local_pickup en el checkout con selección de punto de venta y hora estimada de recogida.
Actualmente visibles: ePayco (pago en línea), pago en efectivo y pago por datáfono.
Falta exponer Nequi y Daviplata con su logo visible. En el mercado de Medellín, ver el logo del método de pago habitual reduce la duda en el último paso.
También conviene revisar cómo se comunica el pago contra entrega: "Pago en efectivo" y "Pago por datáfono" son dos opciones que dicen lo mismo desde la perspectiva del cliente (pago cuando llegue) y podrían agruparse para simplificar la decisión.
El sitio tiene una página completa de cupones, combos de Feria de las Flores, combos futboleros, combos verdolaga, martes de -20% en pastas y una promoción de cerveza de lunes a viernes de 2 a 6 pm.
El problema no es la oferta, es la orquestación:
Los combos de Feria de las Flores están bien construidos en propuesta de valor (producto + bebida + precio cerrado, con ocupación clara: "para 1 persona", "para 6 personas", "ideal para 8 personas"). Ese formato resuelve la decisión por el cliente y sube ticket.
Propuesta: mantener una línea permanente de combos por número de personas —no solo estacional— como primer bloque del menú transaccional.
Lo que no se mide no existe. El sitio tiene las herramientas instaladas —PixelYourSite Pro, Google Tag Manager (GTM-KZ45829B), pixel de Meta y Microsoft Clarity— pero falta convertirlas en un sistema de decisión.
Instrumentar y reportar la secuencia estándar, con el porcentaje de caída en cada escalón:
view_item_list → view_item → add_to_cart → begin_checkout
→ add_payment_info → purchase
Ese informe es el que confirma o descarta la hipótesis central de este diagnóstico: si la caída mayor está entre begin_checkout y purchase, el problema es el formulario y los 3 segundos de espera.
Hoy view_item_list prácticamente no puede dispararse, porque las páginas de menú no son listados de producto de WooCommerce (ver sección Navegación).
Clarity ya está corriendo. Sin desarrollo, se puede:
/checkout/ y no compraron.Con 20 grabaciones hay evidencia suficiente para priorizar.
El pixel de Meta está activo vía PixelYourSite Pro. Verificar:
event_id entre navegador y servidor, para no contar dos veces ni perder eventos.Purchase llegue con valor y moneda correctos. Si el purchase llega mal, todo el aprendizaje de Advantage+ está entrenando sobre datos sucios y la pauta optimiza hacia el público equivocado.content_ids entre el pixel y el catálogo, para que el remarketing dinámico funcione.El sitio publica en el pie de página y en botones flotantes:
Esos pedidos existen, facturan y no vuelven a las plataformas de pauta. Meta y Google no los ven, por lo tanto no optimizan hacia ellos, y el ROAS reportado de las campañas está sistemáticamente subestimado.
Propuesta:
wa.me, capturando de qué campaña llega cada conversación.Sin esto, se está apagando presupuesto de campañas que sí venden, solo porque venden por un canal que la plataforma no ve.
Métricas a monitorear semanalmente una vez instrumentado:
| Métrica | Para qué sirve |
|---|---|
| Tasa de conversión del sitio | salud general |
Caída begin_checkout → purchase | mide el efecto de arreglar el formulario |
TTFB de /checkout/ | mide el efecto de la optimización de servidor |
| Ticket promedio (AOV) | mide el efecto del umbral de envío gratis y del selector de tamaños |
| % de pedidos con recoger en tienda | margen recuperado |
| Pedidos por WhatsApp / teléfono atribuidos | tamaño real del negocio digital |
Qué cambia exactamente en la experiencia de pedir. La columna de la derecha no es una aspiración: es la configuración objetivo de las Fases 1 y 2, medible con los mismos instrumentos con los que se levantó este anexo.
| Punto del embudo | Hoy | Después de la implementación |
|---|---|---|
| Campos para completar el pedido | 11 obligatorios + 2 checks | 6 campos + 1 check |
| Cédula y datos fiscales | Obligatorios por defecto | Opcionales, en acordeón de factura |
| Respuesta del checkout | ~3,0 s de TTFB | menos de 0,8 s de TTFB |
| Pantallas hasta pagar | 6, con recarga completa | 3, sin recargas |
| Precio del producto | "Desde $32.600", real al 3er clic | Visible por tamaño + precio por porción |
| Opciones de envío | Solo tarifa fija $9.500 | Envío gratis por umbral + recoger en tienda |
| Embudo medido | Parcial, sin view_item_list | Completo en GA4 + CAPI validado |
| Pedidos por WhatsApp y teléfono | Invisibles para la pauta | Atribuidos a campaña de origen |
Cada una se ejecuta sobre el stack actual del sitio —sin migración de plataforma— y tiene una métrica asociada que se mide antes y después.
| Mejora | Intervención |
|---|---|
| Checkout reconstruido campo por campo | Obligatoriedad, orden, etiquetas, placeholders y reglas condicionales de WooCCM, más el acordeón de facturación electrónica |
| Envío gratis por umbral y recoger en tienda | Umbral calculado sobre el ticket promedio real, con barra de progreso en el carrito y selección de punto de venta |
| Optimización de servidor en la ruta de compra | Caché de objetos, auditoría de plugins en checkout y exclusión de JS/CSS innecesario con WP Rocket |
| Ficha de producto con precio por tamaño | Selector en botones con precio y precio por porción visible; cross-sell resuelto sin salir de la ficha |
Menú transaccional en /pide-a-domicilio/ | Tabs fijos, tarjetas con precio, modal de configuración, add-to-cart por AJAX y barra de pedido fija en móvil |
| Embudo de GA4 de punta a punta | Desde view_item_list hasta purchase, con el porcentaje de caída de cada escalón reportado semanalmente |
| CAPI de Meta con deduplicación | Validación de event_id, valor y moneda del evento Purchase, y consistencia de content_ids con el catálogo |
| Atribución de WhatsApp y llamadas | Parámetros de origen, seguimiento de llamadas y carga de conversiones offline a Meta y Google Ads |
| # | Acción | Impacto | Esfuerzo | Tipo |
|---|---|---|---|---|
| 1 | Podar el checkout a 6 campos: Cédula opcional, ocultar País, fusionar checks | Alto | Bajo | Configuración |
| 2 | Bajar TTFB de checkout y carrito de 3 s a menos de 800 ms | Alto | Medio | Servidor |
| 3 | Umbral de envío gratis + habilitar recoger en tienda | Alto | Bajo | Configuración |
| 4 | Tamaños con precio visible en botones + add-to-cart por AJAX | Alto | Medio | Desarrollo |
| 5 | Convertir /pide-a-domicilio/ en menú transaccional + barra fija de pedido | Alto | Alto | Desarrollo |
| 6 | Funnel GA4 + CAPI limpio + revisión de sesiones en Clarity | Base de todo | Bajo | Medición |
| 7 | Promesa de entrega, reseñas y "el más pedido" en fichas | Medio | Bajo | Contenido |
| 8 | Atribución de pedidos por WhatsApp y teléfono | Alto | Medio | Medición |
Las acciones 1, 3 y 6 son cambios de configuración sobre plugins que ya están instalados. Se pueden tener andando en la primera semana y son las que dan la primera curva de resultados.
local_pickup y free_shipping con umbral en el checkout.Se mide con: caída begin_checkout → purchase antes y después.
/cart/ y /checkout/ con WP Rocket.Se mide con: TTFB de checkout, tasa view_item → add_to_cart y ticket promedio.
/pide-a-domicilio/ como menú comprable: tabs sticky, tarjetas con precio, modal de configuración, add-to-cart por AJAX.Se mide con: tasa de conversión de la landing de campañas y view_item_list → add_to_cart.
event_id y validación del evento Purchase.Una vez cerrado el círculo, cada peso de pauta se puede asignar por rentabilidad real y no por lo que la plataforma alcanza a ver.
Las tres primeras acciones de la Fase 1 no requieren desarrollo ni ventana de mantenimiento: son ajustes de configuración sobre plugins ya licenciados y activos en el sitio. Es el mejor punto de arranque porque genera evidencia rápida con la cual justificar las fases siguientes.
Preguntas que conviene resolver con el equipo de Piccolo antes de tocar el sitio.
No. La cédula no desaparece: deja de ser un obstáculo para todos y pasa a pedirse a quien la necesita. El acordeón "¿Necesitas factura electrónica?" captura cédula, NIT y razón social de quien pide factura, que es una fracción de los pedidos a domicilio. Para el resto, la venta se registra igual con nombre, teléfono, dirección y correo.
Si el proceso contable exige el documento en el 100% de los casos, se puede dejar el campo pero con validación suave y captura posterior desde el panel del pedido.
Los cambios de la Fase 1 son de configuración, reversibles y aplicables fuera de las horas pico de domicilios. Lo recomendable es:
Ningún cambio propuesto modifica el histórico de pedidos ni la base de clientes.
Los cambios de la Fase 1 se reflejan en cuanto vuelva a pasar el volumen normal de tráfico: en un negocio de domicilios eso es cuestión de días, no de meses.
Lo crítico es el orden: hay que tener el embudo de GA4 instrumentado antes de tocar el checkout, para poder comparar la caída begin_checkout → purchase contra la línea base. Sin esa medición previa se pierde la posibilidad de demostrar el efecto.
No. Todo el plan se ejecuta sobre el stack actual —WordPress con Flatsome y WooCommerce— y con los plugins que ya están licenciados. La Fase 3 es la única que implica desarrollo de front, y es sobre una página existente, no una migración.
| Requerimiento | Para qué |
|---|---|
| Accesos de administrador a WordPress | Configuración de checkout, envíos y ficha de producto |
| Accesos a GTM, GA4 y cuentas de pauta | Instrumentación del embudo y validación de eventos |
| Contacto del proveedor de hosting | Caché de objetos y revisión de recursos del servidor |
| Ticket promedio actual | Cálculo del umbral de envío gratis |
| Aprobador de cara al cliente | Textos del checkout, promesa de entrega y condiciones de promociones |
Las fases de este anexo (1 a 4) corresponden únicamente a las intervenciones sobre el sitio web. Si el plan de pauta usa su propia numeración de fases, conviene renombrarlas al consolidar ambos documentos para evitar confusión en la ejecución.