-
Salve,
ho creato uno script su WordPress che, tramite un cron job, dopo 7 giorni disindicizza automaticamente gli articoli di una determinata categoria.Lo script funziona correttamente e il valore nel database viene aggiornato correttamente a “noindex, nofollow”. Tuttavia, l’interfaccia di WordPress continua a mostrare “Index”, anche dopo aver rimosso i filtri e rigenerato i meta.
Il problema persiste nonostante i tentativi di forzare Rank Math a rilevare il valore corretto.
-
Hello,
Ci dispiace per il problema che stai riscontrando con gli articoli impostati su noindex. È possibile che ci siano alcune impostazioni in Rank Math o nel tuo script che non stanno interagendo correttamente.
Ecco alcuni passaggi che puoi seguire per cercare di risolvere il problema:
-
Controlla le impostazioni di Rank Math: Vai su Dashboard di WordPress → Rank Math SEO → Titoli e Meta e verifica che le impostazioni siano configurate correttamente per la categoria degli articoli in questione. Assicurati che non ci siano impostazioni predefinite che forzano il valore a "Index".
-
Verifica la visibilità nei motori di ricerca: Controlla anche le impostazioni di visibilità nei motori di ricerca in Impostazioni → Lettura. Assicurati che l’opzione "Discoraggia i motori di ricerca dall’indicizzare questo sito" non sia selezionata.
-
Utilizza le azioni in blocco: Se hai bisogno di cambiare il valore noindex per più articoli, puoi utilizzare la funzione di azioni in blocco di Rank Math. Vai su Articoli nel menu di WordPress, filtra per articoli noindexed e seleziona quelli da modificare, quindi scegli "Imposta su Index" dal menu a discesa delle azioni in blocco.
-
Controlla il codice sorgente: Dopo aver apportato modifiche, controlla il codice sorgente della pagina per assicurarti che il tag noindex sia stato effettivamente rimosso.
Se dopo aver seguito questi passaggi il problema persiste, ti consigliamo di rispondere a questo ticket con ulteriori dettagli, come l’URL del tuo sito, in modo che un agente umano del team di supporto di Rank Math possa aiutarti ulteriormente.
Hello,
Thank you for contacting us.
If the database value updates correctly, but the WordPress interface still shows “Index,” the admin area may be serving cached data. If you are using a caching plugin, try clearing or temporarily disabling it to rule out any conflicts.
You should check the robot metadata on the frontend of a live page just to be sure.
Hope that helps, and please do not hesitate to let us know if you need our assistance with anything else.
Ciao,
abbiamo provato anche a disattivare il plugin, e in seguito a disattivare tutti i plugin ma senza successo, non riusciamo a capire da dove derivi il problemaHello,
Please note that when manually modifying the robots meta of a term, it must be serialized first before you insert it in the database like so:
a:2:{i:0;s:8:"nofollow";i:1;s:7:"noindex";}
Can you please confirm if you have done that?
Looking forward to helping you.
function deindex_old_event_posts() {
if (!class_exists(‘RankMath’)) {
error_log(“⚠️ Rank Math non è attivo!”, 0);
return;
}$target_category = ‘eventi’;
$args = array(
‘post_type’ => ‘post’,
‘posts_per_page’ => -1,
‘date_query’ => array(
array(
‘column’ => ‘post_date’,
‘before’ => ‘7 days ago’,
),
),
‘tax_query’ => array(
array(
‘taxonomy’ => ‘category’,
‘field’ => ‘slug’,
‘terms’ => $target_category,
),
),
);$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$post_id = get_the_ID();// Elimina completamente il vecchio valore prima di aggiornare
delete_post_meta($post_id, ‘rank_math_robots’);
update_post_meta($post_id, ‘rank_math_robots’, ‘noindex, nofollow’);error_log(“✅ Noindex rigenerato per post ID: ” . $post_id, 0);
}
} else {
error_log(“ℹ️ Nessun post da deindicizzare.”, 0);
}wp_reset_postdata();
}// Pianifica l’esecuzione automatica
function schedule_deindex_event() {
if (!wp_next_scheduled(‘daily_deindex_old_event_posts’)) {
wp_schedule_event(time(), ‘hourly’, ‘daily_deindex_old_event_posts’);
}
}add_action(‘daily_deindex_old_event_posts’, ‘deindex_old_event_posts’);
add_action(‘wp’, ‘schedule_deindex_event’);remove_action(‘save_post’, ‘RankMath\PostMeta::save_meta’, 20);
remove_action(‘edit_form_after_title’, ‘RankMath\PostMeta::show_post_options’);questo è lo script completo che si occupa di rimuovere dopo una settimana l’index e lo modifica con il noindex e nofollow
Hello,
Your script is updating the rank_math_robots meta value incorrectly. Rank Math requires it to be stored as a serialized array as we have mentioned earlier. Try updating it like this:
update_post_meta($post_id, 'rank_math_robots', serialize(['noindex', 'nofollow']));
Also, ensure you clear your cache and regenerate the sitemap after making changes.
Let us know how that goes.
ho modificato lo script con il codice fornito ma non funziona ti allego lo script completo
function deindex_old_event_posts() {
if (!class_exists(‘RankMath’)) {
error_log(“⚠️ Rank Math non è attivo!”, 0);
return;
}$target_category = ‘eventi’;
$args = array(
‘post_type’ => ‘post’,
‘posts_per_page’ => -1,
‘date_query’ => array(
array(
‘column’ => ‘post_date’,
‘before’ => ‘7 days ago’,
),
),
‘tax_query’ => array(
array(
‘taxonomy’ => ‘category’,
‘field’ => ‘slug’,
‘terms’ => $target_category,
),
),
);$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$post_id = get_the_ID();// Elimina completamente il vecchio valore prima di aggiornare
delete_post_meta($post_id, ‘rank_math_robots’);
update_post_meta($post_id, ‘rank_math_robots’, serialize([‘noindex’, ‘nofollow’]));error_log(“✅ Noindex rigenerato per post ID: ” . $post_id, 0);
}
} else {
error_log(“ℹ️ Nessun post da deindicizzare.”, 0);
}// ✅ Rigenera la sitemap di Rank Math
do_action(‘rank_math/sitemap/regen’);wp_reset_postdata();
// Invia l’email se ci sono post deindicizzati
if (!empty($deindexed_posts)) {
$to = [‘g***********@m*******’, ‘b*******@m*******’];
$subject = ‘✅ Post deindicizzati automaticamente’;
$message = “I seguenti post della categoria *Eventi* sono stati deindicizzati:\n\n” . implode(“\n”, $deindexed_posts);
$headers = [‘Content-Type: text/plain; charset=UTF-8’];wp_mail($to, $subject, $message, $headers);
}
}// Pianifica l’esecuzione automatica
function schedule_deindex_event() {
if (!wp_next_scheduled(‘daily_deindex_old_event_posts’)) {
wp_schedule_event(time(), ‘hourly’, ‘daily_deindex_old_event_posts’);
}
}add_action(‘daily_deindex_old_event_posts’, ‘deindex_old_event_posts’);
add_action(‘wp’, ‘schedule_deindex_event’);remove_action(‘save_post’, ‘RankMath\PostMeta::save_meta’, 20);
remove_action(‘edit_form_after_title’, ‘RankMath\PostMeta::show_post_options’);Hello,
Try removing the serialize function and just allow WordPress itself to process the serialization:
update_post_meta($post_id, 'rank_math_robots', ['noindex', 'nofollow']);
Let us know how that goes.
Hello,
Since we did not hear back from you for 15 days, we are assuming that you found the solution. We are closing this support ticket.
If you still need assistance or any other help, please feel free to open a new support ticket, and we will be more than happy to assist.
Thank you.
-
The ticket ‘Problema noindex Articoli’ is closed to new replies.