Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Corrige el error ai-optimize de Yoast SEO antes de que arruine el SEO de tu sitio

Un amigo me contactó recientemente después de descubrir algo alarmante en sus publicaciones de WordPress. Estaba usando Yoast SEO Premium con el Editor Clásico, y descubrió que Yoast había estado insertando automáticamente clases CSS de aspecto extraño como ai-optimize-6, ai-optimize-9, directamente en su contenido.

El problema es que estas clases permanecen incrustadas permanentemente en las publicaciones incluso después de deshabilitar Yoast AI Optimize o eliminar por completo el plugin. Esto va en contra del comportamiento esperado de un plugin... es decir, cuando lo desinstalas, no debería dejar rastro en tu contenido.

Si bien estos marcadores de IA podrían no afectar visualmente tu sitio, abarrotan tu código fuente. También podría indicar a los detectores de contenido de IA, verificadores de plagio e incluso a los motores de búsqueda que tu contenido fue generado u optimizado por IA.

En esta guía, te mostraré cómo eliminar estas clases ocultas usando un fragmento de código rápido. También te explicaré cómo aplicarlo de forma segura y compartiré el plugin de SEO que recomiendo usar como alternativa a Yoast.

Solucionando el error ai-optimize en Yoast SEO

Aquí están las cosas que cubriré en este tutorial:

Por qué estas clases ai-optimize son malas para el SEO

Las clases CSS ai-optimize-{number} se agregan cuando usas las funciones de IA de Yoast SEO Premium con el Editor Clásico. No aparecen en el front-end, pero están incrustadas en el HTML de tu contenido, lo que puede causar problemas.

Puedes verlas visitando cualquier publicación o página de tu sitio y usando la herramienta Inspect en tu navegador.

Error de optimización de IA en Yoast SEO

Aquí te explico por qué recomiendo eliminarlas:

  • Atenúan tu HTML: Estas clases innecesarias hacen que tu código sea más difícil de leer y analizar.
  • No cumplen ningún propósito: No afectan cómo se ve o funciona tu contenido. Son solo remanentes de la herramienta de IA.
  • Pueden activar herramientas de detección de IA: Algunos verificadores de plagio y detectores de contenido de IA captan estos patrones y pueden marcar tu publicación, incluso si la escribiste tú mismo.
  • Dejan huellas de IA en tu sitio: Si varios sitios usan las mismas clases, Google podría empezar a asociar ese patrón con contenido de IA de baja calidad o producido en masa.
  • Aumentan el riesgo de conflictos de formato: Las clases desconocidas podrían interferir con tu tema o plugins en el futuro.

No hay ninguna ventaja en conservar estos marcadores ocultos, y hay varias buenas razones para eliminarlos.

La buena noticia es que hay una solución rápida, y te mostraré cómo hacerlo de forma segura en la siguiente sección.

Paso 1: Haz una copia de seguridad antes de realizar cambios

Antes de continuar, siempre recomiendo crear una copia de seguridad completa de tu sitio de WordPress. Solo toma unos minutos y te da tranquilidad en caso de que algo salga mal.

Yo uso Duplicator cuando necesito una solución de copia de seguridad rápida y confiable. Es el mejor plugin de copia de seguridad de WordPress del mercado, es fácil de usar para principiantes y funciona muy bien, ya sea que estés haciendo una copia de seguridad o migrando tu sitio.

  • ✅ Copias de seguridad de WordPress bajo demanda y automáticas
  • ✅ Almacenadas de forma segura en ubicaciones remotas como Dropbox o Google Drive
  • ✅ Restauración fácil con 1 clic si algo falla

Para más detalles, consulta nuestra guía sobre cómo hacer una copia de seguridad de tu sitio web de WordPress.

Una vez que tu copia de seguridad esté lista, puedes pasar con seguridad al siguiente paso, donde te mostraré cómo solucionar el problema.

Paso 2: Agrega el fragmento de código para evitar las clases ai-optimize

Ahora que tu copia de seguridad está lista, es hora de limpiar esas clases ai-optimize-{number} y ai-optimize-introduction.

He preparado un fragmento de código seguro y flexible que funciona tanto con el Editor Clásico como con el Editor de Bloques (Gutenberg), así como con ediciones masivas.

No necesitas tocar los archivos de tu tema ni meterte con FTP. En su lugar, te recomiendo usar el plugin WPCode para agregar este fragmento. Es lo que yo uso para administrar fragmentos de código en sitios de WordPress sin arriesgar nada importante. (Consulta mi reseña completa de WPCode para más detalles.)

Consejo: WPCode tiene una versión gratuita limitada que puedes usar para este tutorial. Sin embargo, recomiendo actualizar a un plan de pago para desbloquear todo su potencial.

Si es la primera vez que agregas código personalizado a tu sitio, puedes consultar nuestra guía sobre cómo agregar fragmentos de código personalizados en WordPress sin romper tu sitio.

Primero, necesitas instalar y activar el plugin WPCode. Consulta nuestro tutorial sobre cómo instalar un plugin de WordPress si necesitas ayuda.

Una vez que el plugin se haya activado, ve a la página Fragmentos de código » + Agregar fragmento y haz clic en el botón ‘+ Agregar fragmento personalizado’ debajo del cuadro ‘Agregar tu código personalizado (Nuevo fragmento)’.

WPCode agrega fragmento de código personalizado

A continuación, deberás proporcionar un título para tu fragmento de código. Puede ser cualquier cosa que te ayude a identificar este código fácilmente.

Después de eso, elige Fragmento de PHP en el menú desplegable 'Tipo de código'.

Agregando código para solucionar el error de optimización de IA de Yoast

Ahora, deberás copiar y pegar el siguiente código en el cuadro de Vista previa del código.

Aquí tienes el fragmento de código completo:

// For Classic Editor and programmatic updates
function strip_ai_optimize_classes($data, $postarr) {
    if (empty($data['post_content']) || $data['post_type'] !== 'post') {
        return $data;
    }
    $data['post_content'] = strip_ai_optimize_from_content($data['post_content']);
    return $data;
}
add_filter('wp_insert_post_data', 'strip_ai_optimize_classes', 10, 2);

// For Gutenberg/Block Editor
function strip_ai_optimize_classes_rest_insert($prepared_post, $request) {
    if (isset($prepared_post->post_content) && $prepared_post->post_type === 'post') {
        $prepared_post->post_content = strip_ai_optimize_from_content($prepared_post->post_content);
    }
    return $prepared_post;
}
add_filter('rest_pre_insert_post', 'strip_ai_optimize_classes_rest_insert', 10, 2);

// For bulk edit operations - this is the key addition
function strip_ai_optimize_classes_bulk_edit($post_id) {
    $post = get_post($post_id);
    if (!$post || empty($post->post_content) || $post->post_type !== 'post') {
        return;
    }
    $cleaned_content = strip_ai_optimize_from_content($post->post_content);
    if ($cleaned_content !== $post->post_content) {
        remove_action('post_updated', 'strip_ai_optimize_classes_bulk_edit');
        wp_update_post(array(
            'ID' => $post_id,
            'post_content' => $cleaned_content
        ));
        add_action('post_updated', 'strip_ai_optimize_classes_bulk_edit');
    }
}
add_action('post_updated', 'strip_ai_optimize_classes_bulk_edit');

// Catch bulk operations via the bulk_edit_posts action
function strip_ai_optimize_classes_bulk_action($post_ids) {
    if (!is_array($post_ids)) {
        return;
    }
    foreach ($post_ids as $post_id) {
        strip_ai_optimize_classes_bulk_edit($post_id);
    }
}
add_action('bulk_edit_posts', 'strip_ai_optimize_classes_bulk_action');

// Shared function to strip ai-optimize classes
function strip_ai_optimize_from_content($content) {
    if (empty($content) || !is_string($content)) {
        return $content;
    }

    return preg_replace_callback(
        '/class\s*=\s*["\']([^"\']*)["\']/',
        function($matches) {
            $classes = $matches[1];

            // Remove ai-optimize-[number] and ai-optimize-introduction
            $classes = preg_replace('/\bai-optimize-(\d+|introduction)\b\s*/', '', $classes);

            // Clean up spacing
            $classes = preg_replace('/\s+/', ' ', trim($classes));

            return empty($classes) ? '' : 'class="' . $classes . '"';
        },
        $content
    );
}

Después de agregar el código, desplázate hacia abajo hasta la sección 'Inserción'.

Luego, selecciona 'Ejecutar en todas partes' junto a la opción 'Ubicación'.

Ejecutar fragmento de código en todas partes

Finalmente, ve a la parte superior de la página y cambia el interruptor de estado en la esquina superior derecha a Activo, y luego haz clic en el botón 'Guardar fragmento' para almacenar tus cambios.

Una vez que hayas agregado este fragmento a tu sitio usando WPCode, automáticamente eliminará estas clases generadas por IA de cualquier publicación que crees o actualices en el futuro.

Si deseas eliminar las clases 'ai-classes' del contenido existente, tendrás que editar masivamente tu contenido actual.

Paso 3: Elimina las clases de IA de todas las publicaciones (actualización masiva)

Ahora que tienes el fragmento de código en su lugar, limpiará automáticamente cualquier marcador de IA cuando edites una publicación existente o publiques una nueva. Pero para eliminar estas clases de tus publicaciones antiguas, necesitarás encontrarlas y reemplazarlas en tu base de datos de WordPress.

Para hacer eso, necesitarás agregar otro fragmento de código usando WPCode. Este reemplazará las clases CSS 'ai-optimize' de tu contenido existente.

Simplemente ve a la página Fragmentos de código » + Agregar fragmento y haz clic en el botón '+ Agregar fragmento personalizado' debajo del cuadro 'Agregar tu código personalizado (Fragmento nuevo)'.

Agregar fragmento de eliminación masiva

Después de eso, elige Fragmento de PHP en el menú desplegable ‘Tipo de código’. A continuación, debes proporcionar un título para tu fragmento de código. Podría ser cualquier cosa que te ayude a identificar este código fácilmente.

Ahora, necesitas copiar y pegar el siguiente código en el cuadro de Vista previa del código.

/**
 * Fixes unwanted 'ai-optimize-introduction' and 'ai-optimize-[number]' classes added by Yoast SEO in post content.
 * Run once and don't forget to disable it
 */

function wpb_fix_yoast_ai_optimize_classes() {
    $args = array(
        'post_type'      => get_post_types(array('public' => true)), // Apply to all public post types
        'posts_per_page' => -1,
        'post_status'    => 'publish',
        'fields'         => 'ids', // Optimize memory usage
    );

    $query = new WP_Query($args);
    $fixed_count = 0;

    if ($query->have_posts()) {
        global $wpdb;

        foreach ($query->posts as $post_id) {
            $content = get_post_field('post_content', $post_id);

            // Remove both ai-optimize-[number] and ai-optimize-introduction classes
            $new_content = preg_replace('/\bai-optimize-(\d+|introduction)\b/', '', $content);

            // Clean up any extra whitespace left behind
            $new_content = preg_replace('/\s+/', ' ', $new_content);

            if ($new_content !== $content) {
                $updated = $wpdb->update(
                    $wpdb->posts,
                    array('post_content' => $new_content),
                    array('ID' => $post_id),
                    array('%s'),
                    array('%d')
                );

                if ($updated !== false) {
                    $fixed_count++;
                    error_log("Fixed post ID: $post_id");
                } else {
                    error_log("Failed to update post ID: $post_id");
                }
            }
        }

        wp_reset_postdata();
    }

    error_log("WPCode cleanup complete. Total posts fixed: $fixed_count");

    // Automatically disable this snippet after it runs
    if (function_exists('wpcode_snippet_deactivate_current')) {
        wpcode_snippet_deactivate_current();
    }
}

// Run only once when the snippet is saved or enabled
add_action('init', 'wpb_fix_yoast_ai_optimize_classes');

Después de agregar el código, desplázate hacia abajo hasta la sección 'Inserción'.

Luego, selecciona 'Ejecutar en todas partes' junto a la opción 'Ubicación'.

Ejecutar fragmento de código en todas partes

Ahora, regresa a la parte superior de la página y cambia el interruptor de estado a ‘Activo’ y haz clic en ‘Guardar fragmento’.

No te preocupes, esto no cambiará tu contenido. Simplemente busca en la base de datos las clases ai-optimize y las elimina.

Guardar y activar fragmento

Tu fragmento ya está activo. Para activarlo, solo necesitas visitar cualquier publicación o página en tu sitio web.

Esto limpiará las clases ai-optimize-{number} y ai-optimize-introduction de todas tus publicaciones existentes, sin necesidad de edición manual.

Después de eso, usa la herramienta Inspeccionar para asegurarte de que no aparezcan clases ai-optimize en tu contenido.

Importante: Una vez que hayas eliminado las clases ai-optimize, no olvides volver a la página Fragmentos de código y deshabilitar el fragmento de código de eliminación.

Desactivar el fragmento de eliminación de ai-optimize

Nota 📝: Necesitarás mantener el primer fragmento de código activo hasta que actualices Yoast SEO Premium o te cambies a una solución alternativa.

Consejo adicional: Cambia a un plugin de SEO alternativo (mejor y más potente)

Yoast SEO ha existido por mucho tiempo, pero últimamente, sus innovaciones se han ralentizado.

En WPBeginner, tomamos la decisión de cambiarnos a All in One SEO en todos nuestros sitios hace unos años. Fue un gran cambio, y documentamos cada razón en este estudio de caso: Por qué nos cambiamos de Yoast a All in One SEO.

Sitio web All in One SEO

Ahora uso All in One SEO en cada proyecto personal y en todos los sitios web de clientes. Es mi plugin de SEO preferido porque ofrece:

  • ✅ Funciones completas para la era de búsqueda por IA (marcado de esquema, sitemaps avanzados, integraciones de IA y más)
  • ✅ Configuración fácil con valores predeterminados inteligentes y listas de verificación
  • ✅ Mejor soporte para SEO local, WooCommerce, Google News y más.

Si aún no te decides, hemos hecho un desglose detallado comparativo aquí: Yoast SEO vs All in One SEO – ¿Cuál es el mejor plugin de WordPress SEO?

Importante ⚠️: Si has actualizado a la última versión de Yoast SEO Premium (versión 25.3.1 o posterior) o te has cambiado a All in One SEO, entonces ahora puedes simplemente desactivar el fragmento de código en WPCode.

Simplemente ve a la página Fragmentos de código en el área de administración de WordPress y cambia el interruptor junto al fragmento para desactivarlo.

Desactivar fragmento de código

Recursos SEO adicionales

Ya sea que te estés cambiando de Yoast SEO o simplemente quieras mejorar tu estrategia de SEO para WordPress, aquí tienes algunos recursos útiles que te guiarán.

Estos tutoriales y comparaciones pueden ahorrarte tiempo, evitar errores costosos y ayudarte a obtener mejores resultados de tus esfuerzos de SEO:

Espero que esta guía te haya ayudado a solucionar el problema de la clase ai-optimize en Yoast SEO y a configurar tu sitio para obtener mejores resultados a largo plazo. ¡Tú puedes con esto, y si alguna vez necesitas ayuda, estamos aquí para apoyarte.

Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

Comentarios

  1. Felicidades, tienes la oportunidad de ser el primer comentarista de este artículo.
    ¿Tienes alguna pregunta o sugerencia? Por favor, deja un comentario para iniciar la discusión.

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.