Total lines: 622 / duplicados y un completo inyectado. * 2. Elimina el widget HTML con los contadores de prueba social falsos * (Math.random(), countdown en localStorage). * 3. Unifica el texto de garantía a una sola frase en toda PDP. * * FASE 2 — Reconstruir confianza * 4. Micro-copy COD fijo bajo el botón "Añadir al carrito". * 5. Botón "Pedir por WhatsApp" con mensaje prellenado, junto al botón de compra. * 6. Barra fija inferior en móvil con precio + CTA de WhatsApp. * * FASE 3 (solo lo verificable sin tocar BD/wp-admin/plugins de terceros) * 7. Inyecta Product + Offer schema real (precio, disponibilidad, moneda COP, * nombre e imagen reales de WooCommerce) en cada PDP — hoy no existía ninguno. * 8. Home: el hero pasa de

a

(misma clase, * mismo estilo visual, cero cambio de diseño) — la página no tenía NINGÚN H1. * 9. Shop:

Tienda

(sin clases, sin estilo dependiente del tag) pasa a

. * 10. Home y shop: e intención de compra en vez de "Home - Tienda Gestos" / * "Tienda - Tienda Gestos"; shop recibe además una meta description real (no tenía). * 11. Meta description real en cada PDP (nombre + categoría + precio real + pago * contraentrega), generada desde WooCommerce — ninguna de las 24 fichas tenía una. * * Lo que NO se toca aquí porque requiere wp-admin o acceso a datos fuera del bridge: * robots.txt/sitemap real (Yoast), la capa /p/ (origen no identificado, no es un * mu-plugin propio: tocarla a ciegas arriesga tráfico ya indexado), fusión de * categorías duplicadas (taxonomía en base de datos), aggregateRating (no se agrega * hasta tener reseñas reales). */ if ( ! defined( 'ABSPATH' ) ) { exit; } // --- FASE 3.12: noindex en categorías vacías (0 productos reales cada una: // verificado en vivo el 18 sep 2026) que hoy son indexables y compiten en // Google contra las categorías reales del catálogo. No se tocan en BD — // solo se ajusta la respuesta HTTP vía el filtro nativo de robots de WP. add_filter( 'wp_robots', 'gestos_cro_noindex_empty_categories' ); function gestos_cro_noindex_empty_categories( $robots ) { if ( function_exists( 'is_tax' ) && is_tax( 'product_cat', array( 'sin-categorizar', 'otro', 'miscelaneos' ) ) ) { $robots['noindex'] = true; $robots['follow'] = true; } return $robots; } add_action( 'template_redirect', 'gestos_cro_fixes_buffer_start', 0 ); function gestos_cro_fixes_buffer_start() { if ( is_admin() || is_feed() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { return; } $is_pdp = function_exists( 'is_product' ) && is_product(); $is_home = function_exists( 'is_front_page' ) && is_front_page(); $is_shop = function_exists( 'is_shop' ) && is_shop(); if ( ! $is_pdp && ! $is_home && ! $is_shop ) { return; } ob_start( 'gestos_cro_fixes_filter_html' ); } function gestos_cro_fixes_filter_html( $html ) { // --- FASE 3.8 y 3.10: home. Hero <h3 class="wpr-promo-box-title"> -> <h1> real // (misma clase, cero cambio visual) y título con intención de compra. if ( function_exists( 'is_front_page' ) && is_front_page() ) { $html = preg_replace( '#<h3 class="wpr-promo-box-title">(.*?)</h3>#s', '<h1 class="wpr-promo-box-title">$1</h1>', $html, 1 ); $html = preg_replace( '#<title>Home - Tienda Gestos#',