Las diferentes fases de la creación de contenidos

¿Dónde encaja tu estrategia de contenido en este esquema?

A veces, cuando una empresa se lanza en la web, tiene este aspecto:

Contenido de adquisición

Creación de contenidos destinados a generar audiencia

1. Necesitas ser visible (o morirás), así que destinas parte de tu presupuesto a producir contenidos SEO para generar tráfico: artículos en el blog, fichas de producto, FAQs, landings…

👉 Eso, la gran mayoría de las empresas lo han entendido en 2022 (salvo quizás la startup Juan Pablo y sus 36 fundraisings), no hay que preocuparse por ello.

Contenido de conversión

Creación de contenidos que incitan a la audiencia a realizar una acción

2. Una vez que tienes el tráfico y unos cuantos clientes, la idea es convertir más para generar muchos ingresos. A partir de ahí, inviertes en contenidos que conviertan a esa audiencia: libro blanco, webinar, landing o email copywriteado…

👉 Y aquí perdimos a mucha gente en el camino: sí, la mayoría de las empresas siguen estancadas en el paso 1. Afortunadamente, este tipo de contenido se está democratizando cada vez más, y eso es bueno.

Contenido de fidelización

Creación de contenidos para el engagement y retención de clientes

3. EXCEPTO QUE… los clientes, está bien, pero mantenerlos y fidelizarlos es mucho mejor. Así que hay que sacar los pelos de las castañas y construir una verdadera relación estrecha con los consumidores para activar la palanca de retención.

👉 Aquí, casi no queda nadie.

Sin embargo, el contenido de retención es una de las mejores cartas que podemos jugar en una estrategia editorial.

Y es totalmente lógico: los clientes fieles siempre acudirán a ti pase lo que pase (o casi), se convertirán en tus embajadores y defenderán tu marca con uñas y dientes: mira a Apple, sus productos son excesivamente caros y, sin embargo, algunos se mueren por tener el último iPhone.

✅ No es necesario sacar la artillería pesada en contenido SEO ;

✅ Tampoco hay que idear grandes estrategias inbound que cuestan un riñón.

El problema es que este tipo de contenido se juega sobre un largo tiempo, y el ROI no es nada fácil de medir (especialmente para calcular tu pequeño rendimiento editorial).

Pero aquí, me apetece decir, que ni siquiera es el indicador principal, el ROI 🤷

// Asegúrate de que jQuery esté cargado jQuery(function($) { // Selector único de TU widget de Posts para evitar conflictos var WIDGET_SELECTOR = '.elementor-element-5e7a80bf'; var GRID_CONTAINER_SELECTOR = WIDGET_SELECTOR + ' .elementor-posts-container'; var ITEM_SELECTOR = '.elementor-post.elementor-grid-item'; // Función para reajustar Masonry después de la carga function refreshMasonry($grid, $newItems) { // Asegura que las imágenes de los nuevos ítems estén cargadas // ANTES de que Masonry recalcule sus alturas. (Recomendado: Usar imagesLoaded) $newItems.imagesLoaded(function() { // 1. Notificar a Masonry de los nuevos elementos $grid.masonry('appended', $newItems); // 2. Re-distribuir todos los elementos para rellenar huecos $grid.masonry('layout'); }); } // Gancho de Elementor: Se dispara cuando un widget de Posts se inicializa o se manipula. elementorFrontend.hooks.addAction( 'frontend/element_ready/posts.cards', // Hook específico para tu widget de tarjetas de Posts function($scope) { // Solo actuar sobre TU widget específico if (!$scope.is(WIDGET_SELECTOR)) { return; } // 1. Obtener la instancia de Masonry de este widget // Elementor ya inicializó Masonry, solo necesitamos obtener la referencia var $grid = $scope.find(GRID_CONTAINER_SELECTOR); // Obtener la instancia de Masonry (si existe) var masonryInstance = $grid.data('masonry'); if (!masonryInstance) { // Si Masonry no se inicializó correctamente (ej. por imágenes sin cargar al inicio), // puedes intentar forzar la inicialización aquí, pero lo normal es que Elementor lo haga. // $grid.masonry({...}) return; } // 2. Escuchar el evento de 'Carga Terminada' // Elementor Pro añade la clase 'elementor-loading' al contenedor mientras carga el AJAX. // La clase 'e-load-more-pagination-end' ya está en el HTML, pero no la usaremos para el evento. // Observador para detectar cambios en los atributos del DOM (cuando Elementor añade nuevos posts) var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'childList') { // Elementor añade los nuevos posts como hijos del contenedor var $newItems = $(mutation.addedNodes).filter(ITEM_SELECTOR); if ($newItems.length) { // Encontró nuevos posts, ¡es hora de reajustar Masonry! refreshMasonry($grid, $newItems); } } }); }); // Configurar el observador para monitorear la adición de nodos hijos observer.observe($grid[0], { childList: true }); } ); });