Banner en el archivo estático: ofrecer la misma página en el WordPress nuevo #187
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Idea
El archivo estático (
antiguo.feadulta.com) recibe más sesiones que el sitio vivo, pero se comporta como un callejón sin salida: la gente entra por un enlace viejo, lee una página y se va. Si esa página existe en el WordPress nuevo, deberíamos ofrecerle ir a la versión buena.Propuesta: un banner en las páginas del archivo que ofrezca ver esa misma página en el WordPress nuevo, con la condición estricta de que solo aparezca cuando el equivalente esté localizado con total certeza. Si no hay certeza, no hay banner. Un enlace que lleve a la página equivocada es peor que no ponerlo.
Datos que lo motivan (GA4, 7 días, 31-jul)
Ese 1,5 vs 9,0 es el argumento entero: hay ~4.000 usuarios/semana entrando por la puerta vieja a los que hoy no les ofrecemos nada.
El mapeo existe y es fiable
Las URLs de artículo del archivo llevan el id de K2 en la propia ruta:
y en WordPress cada post migrado conserva ese id en la meta
_fgj2wp_old_k2_id(es la misma que ya usafea-carta-portada.phppara resolver posts). O sea que el emparejamiento no hay que adivinarlo por título ni por slug: es una clave primaria.Criterio de "localizado perfectamente" propuesto:
item/<id>-<slug>.html._fgj2wp_old_k2_id = <id>.publish(ni borrador, ni papelera, ni privado).Si falla cualquiera de las cuatro → sin banner en esa página. Sin excepciones ni heurísticas de respaldo.
Implementación propuesta: en build, no en JavaScript
El archivo es HTML estático servido por nginx, y ya hemos hecho ediciones masivas sobre él con buen resultado (retirada del tag
UA-32008163-1en 27.393 ficheros, retirada de los bloques sociales en 16.708). El mismo método sirve aquí y evita depender de JS o de una llamada al WordPress en cada visita:_fgj2wp_old_k2_id→ permalink, solo posts publicados → JSON.site/, extraer el id de K2 de cada ruta, y solo para los que cumplan los 4 criterios, inyectar el bloque del banner con el enlace ya resuelto.verify_carta_lang_links.php).80-sync-hetzner.shcomo siempre.Ventajas: cero JS, cero latencia, cero dependencia del WP en tiempo de visita, y el banner solo existe físicamente en las páginas donde se pudo resolver — el criterio se cumple por construcción.
Medición
El enlace debe llevar parámetros de campaña (p. ej.
?utm_source=archivo&utm_medium=banner) para que GA4 atribuya el salto y podamos responder a: ¿cuánta gente lo usa? ¿sube el engagement del sitio vivo? Ya hay trabajo previo de atribución UTM enfeadulta_ga4_digest.py, y desde hoyga4_report.pysabe filtrar porhostName(--host), que es lo que permite medir los dos sitios por separado.Cosas a decidir antes de implementar
/es/,/es/effa.html, listados de autor): no tienen id de K2, así que quedan fuera del criterio. Se pueden mapear a mano si merece la pena — son pocas y concentran mucho tráfico.noindex: el archivo está deliberadamente ennoindex+robots.txt Disallow: /(decisión cerrada, ver #180) porque duplica el contenido del WordPress. El banner no cambia eso, pero conviene tenerlo presente: no añadircanonicalal WP en estas páginas, que sería contradictorio con elnoindex.Alcance
No es bloqueante para la migración del 03-ago (#180) ni para el deadline del hosting.
Corrección (Rafa preguntó el porqué y tenía razón en dudar): escribí que hacerlo antes del cutover obligaría a recalcular el mapa de enlaces dos veces. Es falso. El cutover del 03-ago es un cambio de servidor, no de dominio: T2.6 hace
search-replacea un hostname de staging y lo devuelve awww.feadulta.comconsiteurl/homedefinitivos, "regenerar permalinks" es un flush de reglas de reescritura, y la BD viaja entera con la meta_fgj2wp_old_k2_idintacta. Mismo dominio, mismos slugs, misma meta → el mapa sale idéntico antes y después. El razonamiento venía de la analogía con el cutover de julio, que sí cambió URLs (Joomla → WordPress); éste no.Lo que sí queda como motivo para no adelantarlo, y es de calendario y no técnico: no conviene mezclar un cambio que toca 25.000 ficheros del archivo con la semana de un deadline duro que tiene 4 días de margen. Si se quiere antes, es independiente del cutover y reversible (se regenera
site/y se sincroniza con80-sync-hetzner.sh).Refs #180