Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Correggi il bug ai-optimize di Yoast SEO prima che rovini la SEO del tuo sito

Un amico mi ha contattato di recente dopo aver scoperto qualcosa di allarmante nei suoi post di WordPress. Stava usando Yoast SEO Premium con il Classic Editor e ha scoperto che Yoast inseriva automaticamente classi CSS dall'aspetto strano come ai-optimize-6, ai-optimize-9, direttamente nei suoi contenuti.

Il problema è che queste classi rimangono permanentemente incorporate nei post anche dopo aver disabilitato Yoast AI Optimize o aver eliminato completamente il plugin. Questo va contro il comportamento previsto di un plugin... ovvero, quando lo disinstalli, non dovrebbe lasciare alcuna traccia nei tuoi contenuti.

Sebbene questi marcatori AI potrebbero non influire visivamente sul tuo sito, ingombrano il tuo codice sorgente. Potrebbe anche segnalare potenzialmente ai rilevatori di contenuti AI, ai controllori di plagio e persino ai motori di ricerca che i tuoi contenuti sono stati generati o ottimizzati dall'AI.

In questa guida, ti mostrerò come rimuovere queste classi nascoste utilizzando un rapido snippet di codice. Ti spiegherò anche come applicarlo in modo sicuro e condividerò il plugin SEO che consiglio di utilizzare come alternativa a Yoast.

Correzione del bug ai-optimize in Yoast SEO

Ecco le cose che tratterò in questo tutorial:

Perché queste classi ai-optimize sono dannose per la SEO

Le classi CSS ai-optimize-{number} vengono aggiunte quando si utilizzano le funzionalità AI di Yoast SEO Premium con l'Editor Classico. Non appaiono sul front-end, ma sono incorporate nell'HTML del tuo contenuto, il che può causare problemi.

Puoi visualizzarle visitando qualsiasi post o pagina del tuo sito e utilizzando lo strumento Ispeziona nel tuo browser.

Bug di ottimizzazione AI in Yoast SEO

Ecco perché ne consiglio la rimozione:

  • Ingombrano il tuo HTML: Queste classi non necessarie rendono il tuo codice più difficile da leggere e analizzare.
  • Non servono a nulla: Non influiscono sull'aspetto o sul funzionamento del tuo contenuto. Sono solo residui dello strumento AI.
  • Possono attivare strumenti di rilevamento AI: Alcuni controlli antiplagio e rilevatori di contenuti AI riconoscono questi schemi e potrebbero segnalare il tuo post, anche se l'hai scritto tu stesso.
  • Lasciare impronte AI sul tuo sito: Se più siti utilizzano le stesse classi, Google potrebbe iniziare ad associare quel modello a contenuti AI di bassa qualità o prodotti in massa.
  • Aumentano il rischio di conflitti di formattazione: Classi sconosciute potrebbero interferire con il tuo tema o con i plugin in futuro.

Non c'è alcun vantaggio nel mantenere questi marcatori nascosti, e ci sono diverse buone ragioni per eliminarli.

La buona notizia è che esiste una soluzione rapida, e ti mostrerò come farlo in sicurezza nella sezione successiva.

Passaggio 1: Effettua un backup prima di apportare modifiche

Prima di procedere, consiglio sempre di creare un backup completo del tuo sito WordPress. Richiede solo pochi minuti e ti dà tranquillità nel caso in cui qualcosa vada storto.

Uso Duplicator quando ho bisogno di una soluzione di backup rapida e affidabile. È il miglior plugin di backup WordPress sul mercato, è facile da usare per i principianti e funziona benissimo sia che tu stia eseguendo il backup o migrando il tuo sito.

  • ✅ Backup WordPress on-demand e automatici
  • ✅ Archiviati in modo sicuro in posizioni remote come Dropbox o Google Drive
  • ✅ Ripristino facile con 1 clic se qualcosa si rompe

Per maggiori dettagli, consulta la nostra guida su come eseguire il backup del tuo sito WordPress.

Una volta che il tuo backup è pronto, puoi procedere in sicurezza al passaggio successivo, dove ti mostrerò come risolvere il problema.

Passaggio 2: Aggiungi lo snippet di codice per prevenire le classi ai-optimize

Ora che il tuo backup è pronto, è il momento di ripulire le classi ai-optimize-{number} e ai-optimize-introduction.

Ho messo insieme uno snippet di codice sicuro e flessibile che funziona sia con l'Editor Classico che con l'Editor a Blocchi (Gutenberg), oltre che con le modifiche in blocco.

Non è necessario toccare i file del tema o armeggiare con l'FTP. Invece, ti consiglio di utilizzare il plugin WPCode per aggiungere questo snippet. È quello che uso per gestire gli snippet di codice sui siti WordPress senza rischiare nulla di importante. (Vedi la mia recensione completa di WPCode per maggiori dettagli.)

Suggerimento: WPCode ha una versione gratuita limitata che puoi utilizzare per questo tutorial. Tuttavia, ti consiglio di passare a un piano a pagamento per sbloccare il suo pieno potenziale.

Se questa è la prima volta che aggiungi codice personalizzato al tuo sito, dai un'occhiata alla nostra guida su come aggiungere snippet di codice personalizzato in WordPress senza compromettere il tuo sito.

Innanzitutto, devi installare e attivare il plugin WPCode. Consulta il nostro tutorial su come installare un plugin WordPress se hai bisogno di aiuto.

Una volta attivato il plugin, vai alla pagina Code Snippets » + Add Snippet e fai clic sul pulsante ‘+ Add Custom Snippet’ nella casella ‘Add Your Custom Code (New Snippet)’.

WPCode aggiunge uno snippet di codice personalizzato

Successivamente, devi fornire un titolo per il tuo frammento di codice. Potrebbe essere qualsiasi cosa che ti aiuti a identificare facilmente questo codice.

Dopo di ciò, scegli Frammento PHP dal menu a discesa 'Tipo di codice'.

Aggiunta del codice per la correzione del bug di ottimizzazione AI di Yoast

Ora, devi copiare e incollare il seguente codice nella casella Anteprima codice.

Ecco il frammento di codice 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
    );
}

Dopo aver aggiunto il codice, scorri verso il basso fino alla sezione 'Inserimento'.

Quindi, seleziona 'Esegui ovunque' accanto all'opzione 'Posizione'.

Esegui lo snippet di codice ovunque

Infine, vai in cima alla pagina e imposta l'interruttore di stato in alto a destra su Attivo, quindi fai clic sul pulsante 'Salva frammento' per memorizzare le modifiche.

Una volta aggiunto questo frammento al tuo sito utilizzando WPCode, questo rimuoverà automaticamente queste classi generate dall'IA da qualsiasi post che crei o aggiorni in futuro.

Se desideri rimuovere le classi ai- dalle contenuti esistenti, dovrai modificare in blocco i tuoi contenuti esistenti.

Passaggio 3: Rimuovi le classi AI da tutti i post (Aggiornamento in blocco)

Ora che hai il frammento di codice in posizione, questo pulirà automaticamente eventuali marcatori AI quando modifichi un post esistente o ne pubblichi uno nuovo. Ma per rimuovere queste classi dai tuoi vecchi post, dovrai trovarle e sostituirle nel tuo database di WordPress.

Per fare ciò, dovrai aggiungere un altro frammento di codice utilizzando WPCode. Questo sostituirà le classi CSS ai-optimize dai tuoi contenuti esistenti.

Vai semplicemente alla pagina Frammenti di codice » + Aggiungi frammento e fai clic sul pulsante '+ Aggiungi frammento personalizzato' nella casella 'Aggiungi il tuo codice personalizzato (Nuovo frammento)'.

Aggiungi snippet per la rimozione in massa

Successivamente, scegli PHP Snippet dal menu a discesa ‘Tipo di codice’. Successivamente, devi fornire un titolo per il tuo frammento di codice. Questo potrebbe essere qualsiasi cosa che ti aiuti a identificare facilmente questo codice.

Ora, devi copiare e incollare il seguente codice nella casella di anteprima del codice.

/**
 * 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');

Dopo aver aggiunto il codice, scorri verso il basso fino alla sezione 'Inserimento'.

Quindi, seleziona 'Esegui ovunque' accanto all'opzione 'Posizione'.

Esegui lo snippet di codice ovunque

Ora, torna in cima alla pagina e imposta l'interruttore di stato su ‘Attivo’ e fai clic su ‘Salva frammento’.

Non preoccuparti, questo non cambierà il tuo contenuto. Semplicemente cerca nel database le classi ai-optimize e le rimuove.

Salva e attiva lo snippet

Il tuo frammento è ora attivo. Per attivarlo, devi semplicemente visitare qualsiasi post o pagina sul tuo sito web.

Questo pulirà le classi ai-optimize-{number} e ai-optimize-introduction da tutti i tuoi post esistenti, senza modifiche manuali.

Successivamente, usa lo strumento Ispeziona per assicurarti che nessuna classe ai-optimize appaia nel tuo contenuto.

Importante: Una volta rimosse le classi ai-optimize, non dimenticare di tornare alla pagina Frammenti di codice e disattivare il frammento di codice di rimozione.

Disabilita lo snippet di rimozione ai-optimize

Nota 📝: Dovrai mantenere attivo il primo snippet di codice fino a quando non aggiornerai Yoast SEO Premium o passerai a una soluzione alternativa.

Suggerimento bonus: Passare a un plugin SEO alternativo (migliore e più potente)

Yoast SEO esiste da molto tempo, ma ultimamente le sue innovazioni hanno rallentato.

Noi di WPBeginner abbiamo deciso di passare a All in One SEO su tutti i nostri siti qualche anno fa. È stata una grande mossa e abbiamo documentato ogni motivo in questo case study: Perché siamo passati da Yoast ad All in One SEO.

Sito web All in One SEO

Ora uso All in One SEO su ogni progetto personale e su tutti i siti web dei clienti. È il mio plugin SEO di riferimento perché offre:

  • ✅ Funzionalità complete per l'era della ricerca AI (markup schema, sitemap avanzate, integrazioni AI e altro ancora)
  • ✅ Configurazione semplice con impostazioni predefinite intelligenti e checklist
  • ✅ Miglior supporto per SEO locale, WooCommerce, Google News e altro ancora.

Se sei ancora indeciso, abbiamo fatto un confronto dettagliato qui: Yoast SEO vs All in One SEO – Qual è il miglior plugin WordPress SEO?

Importante ⚠️: Se hai aggiornato all'ultima versione di Yoast SEO Premium (versione 25.3.1 o successiva) o sei passato ad All in One SEO, puoi semplicemente disattivare lo snippet di codice in WPCode.

Vai semplicemente alla pagina Snippet di codice nell'area di amministrazione di WordPress e sposta l'interruttore accanto allo snippet per disattivarlo.

Disattiva lo snippet di codice

Risorse SEO bonus

Sia che tu stia passando da Yoast SEO o che tu voglia semplicemente ottimizzare la tua strategia SEO per WordPress, ecco alcune risorse utili per guidarti.

Questi tutorial e confronti possono farti risparmiare tempo, evitare errori costosi e aiutarti a ottenere risultati migliori dai tuoi sforzi SEO:

Spero che questa guida ti abbia aiutato a risolvere il problema della classe ai-optimize in Yoast SEO e a impostare il tuo sito per migliori risultati a lungo termine. Ce la puoi fare e, se mai avessi bisogno di una mano, siamo qui per aiutarti.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

Commenti

  1. Congratulazioni, hai l'opportunità di essere il primo commentatore di questo articolo.
    Hai una domanda o un suggerimento? Lascia un commento per iniziare la discussione.

Lascia un commento

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.