Adiós, Rank Math

1 comentario

Tiempo de lectura Se lee en: 24 min, 31 s
Número de palabras Palabras: 4537
Número de visitas Visitas: 404
Seleccionar idioma
Páginas de este post →

IndexNow

Rank Math integró Index Now en su versión 3.0.5 en enero de 2022.

¿Cómo funciona IndexNow?

El protocolo funciona permitiendo que los sitios web envíen las URL a la API de IndexNow una vez, y se comparta con todos los motores de búsqueda participantes. Por lo tanto, sólo hay que enviar los cambios de su sitio y las URL una vez, y todos los motores de búsqueda participantes estarán al tanto de los últimos cambios en tu sitio, para rastrear, indexar y reflejar estos cambios antes en los resultados de búsqueda.

Aunque el uso de IndexNow no garantiza que los motores de búsqueda rastreen o indexen tus páginas, por lo menos puedes estar seguro de que han recibido el aviso de los cambios.

No sólo de Google vive el SEO, los motores de búsqueda participantes en IndexNow son cinco:

Microsoft Bing, Naver, Seznam.cz, Yandex y Yep.

No hay problema para seguir usándolo, para ello tienes tres alternativas.

1. Usar el plugin IndexNow de Microsoft Bing que encontrarás en el repositorio de WordPress. Al instalarlo ya se crea una clave API. Puedes dejarlo en automático y olvidarte. Cada vez que publiques o edites un post se enviará a IndexNow.

2. Enviar las URL de forma manual desde el navegador como se describe aquí. Para cualquier otra duda, consulta sus FAQ.

3. Añadir un enlace "Enviar a Index Now" en la lista de post con unas funciones.

Aquí están. IMPORTANTE: Recuerda añadir tu clave API en lugar de 'TU_API_KEY_DE_INDEX_NOW'

// Añadir una columna personalizada en la lista de posts
function add_index_now_column($columns) {
    $columns['index_now'] = 'Index Now';
    return $columns;
}
add_filter('manage_posts_columns', 'add_index_now_column');

// Rellenar la columna personalizada con un enlace
function add_index_now_column_content($column_name, $post_id) {
    if ($column_name === 'index_now') {
        $post_url = get_permalink($post_id);
        if ($post_url) {
            echo '<a href="#" class="send-to-index-now" data-post-id="' . esc_attr($post_id) . '">Enviar a Index Now</a>';
        } else {
            echo 'URL no disponible';
        }
    }
}
add_action('manage_posts_custom_column', 'add_index_now_column_content', 10, 2);

// Añadir el script para manejar el clic en el enlace
function add_index_now_script() {
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $('.send-to-index-now').on('click', function(e) {
                e.preventDefault();
                var post_id = $(this).data('post-id');
                $.post(ajaxurl, {
                    action: 'send_to_index_now',
                    post_id: post_id
                }, function(response) {
                    if (response.success) {
                        alert('Enviada a Index Now con éxito');
                    } else {
                        alert('Error: ' + response.data);
                    }
                });
            });
        });
    </script>
    <?php
}
add_action('admin_footer', 'add_index_now_script');

// Función para enviar la URL a Index Now
function send_to_index_now() {
    if (!isset($_POST['post_id'])) {
        wp_send_json_error('ID del post no proporcionado');
    }

    $post_id = intval($_POST['post_id']);
    $post_url = get_permalink($post_id);

    if (!$post_url) {
        wp_send_json_error('No se pudo obtener la URL del post');
    }

    // Configuración de Index Now
    $api_key = 'TU_API_KEY_DE_INDEX_NOW'; // Reemplaza con tu clave API de Index Now
    $index_now_url = 'https://api.indexnow.org/indexnow/'; // Endpoint de Index Now

    // Datos para enviar a Index Now
    $data = [
        'host' => parse_url($post_url, PHP_URL_HOST),
        'key' => $api_key,
        'keyLocation' => 'https://' . parse_url($post_url, PHP_URL_HOST) . '/' . $api_key . '.txt',
        'urlList' => [$post_url],
    ];

    // Enviar la solicitud HTTP POST a Index Now
    $response = wp_remote_post($index_now_url, [
        'headers' => ['Content-Type' => 'application/json; charset=utf-8'],
        'body' => json_encode($data),
    ]);

    if (is_wp_error($response)) {
        wp_send_json_error('Error al enviar la URL a Index Now: ' . $response->get_error_message());
    }

    $response_code = wp_remote_retrieve_response_code($response);
    if ($response_code === 200) {
        wp_send_json_success('Enviada a Index Now con éxito');
    } else {
        wp_send_json_error('Error al enviar la URL a Index Now. Código de respuesta: ' . $response_code);
    }
}
add_action('wp_ajax_send_to_index_now', 'send_to_index_now');

rel="sponsored"

Aunque puedes seguir añadiendo un nofollow a los enlaces de pago y de afiliado, Google aconseja añadir rel="sponsored" a este tipo de enlaces.

Rank Math añadía en su caja de enlaces la posibilidad de añadir esta etiqueta con un clic.

Establecer enlace rel="sponsored" en Rank Math

Ahora no queda otra que añadirlas de forma manual ya que tiene mal apaño encontrar una solución automatizada que "sepa" con seguridad qué enlaces son o no de afiliado.

La estructura es tal que así y bastará editar el bloque como html para meter la etiqueta.

<a rel="sponsored" href="https://ejemplo.com">Texto del enlace</a>

Desinstalación completa de Rank Math

Ahora sí, llega el momento de darle matarile al plugin. Rank Math ofrece un filtro para la eliminación completa de todos los datos de Rank Math.

/**
 * Filtro para eliminar datos de Rank Math de la base de datos
 */
add_filter( 'rank_math_clear_data_on_uninstall', '__return_true' );

Este código hay que meterlo en el archivo rank-math.php que se encuentra en la carpeta de tu plantilla (o en su defecto en el functions.php) y al volver a la lista de plugins aparecerá este mensaje que nos avisa de que al desactivarlo y borrar definitivamente el plugin se borrarán todos los datos

Filtro para desinstalación completa de Rank Math

Sorpresa, la eliminación de datos no fue tal

Muchos desarrolladores crean los plugins de forma que cuando vuelvas a instalarlos recuperes parte de la última configuración y no todos disponen de una opción de desinstalación completa. Otros prometen que la limpieza es completa, pero no lo es porque patatas.

Se supone que estos datos se deberían eliminar automáticamente cada 30 días, pero como puedes ver en las imágenes inferiores, aún tenemos cuatro tablas que suman más de 137 Mb con restos de Rank Math con más de un año de antigüedad.

Son estas cuatro:

wp_actionscheduler_actions
wp_actionscheduler_logs
wp_actionscheduler_claims
wp_actionscheduler_groups

Limpieza de tablas con  Advanced Database Cleaner Pro

Para vaciar estas tablas usé Advanced Database Cleaner Pro, pero también puedes hacerlo desde phpMyAdmin.

Esta cuatro tablas las crean y engordan plugins como Woocommerce, The Events Calendar, WP Rocket, Rank Math y algún otro.

Si no usas estos plugins puedes vaciar estas tablas sin problemas. De todas formas, no está nunca de más revisarlas y hacer antes una copia de seguridad de la base de datos o tener un respaldo completo reciente por si acaso.

Que hagas una copia de seguridad antes. ¿Ya hiciste una copia de seguridad? Luego no digas que no te avisé.

wp_actionscheduler_actions
wp_actionscheduler_logs
wp_actionscheduler_claims
wp_actionscheduler_groups

wp_actionscheduler_actions
wp_actionscheduler_logs
wp_actionscheduler_claims
wp_actionscheduler_groups

Adiós, Rank Math 3

Una vez hecha la limpieza sólo tendrás que echarle un vistazo a la configuración de The SEO Framework para descubrir que hay muy poco que cambiar ya que lo esencial viene preconfigurado.

Además del impacto positivo en la velocidad de carga que tiene la desinstalación de Rank Math, otra cosa que he notado al poco tiempo es que el nuevo plugin, que ya usé en el pasado, no necesita ninguna atención, una vez configurado puedes olvidarte de él.

Traducir Meta title y Meta descripción de The Seo Framework para cada idioma (si usas Polylang)

The Seo Framework tiene compatibilidad con Polylang, WPML, MultilingualPress y parcialmente con TranslatePress, pero en Polylang no aparecen las cadenas del plugin para poder traducir el Meta título y la Meta descripción de cada idioma en su página raíz, es decir /es/, /en/, /de/ etc.

Además, en la ayuda de Polylang aconsejan que la página home del blog sea una página estática y no dinámica para poder añadir estas cadenas, lo que complican aún más las cosas.

Sin embargo, tras mucho rebuscar encontré aquí una forma de registrarlas en Polylang para traducirlas. Aunque el código es de hace casi siete años y no es la mejor forma de hacerlo ya que puede romperse con alguna actualización futura del plugin, pero de momento funciona.

//Para añadir en el functions.php de tu plantilla
if ( function_exists( 'the_seo_framework' ) ) {
  $the_seo_framework = the_seo_framework();
  $description = $the_seo_framework->get_option( 'homepage_description' );
  pll_register_string( 'homepage_description', $description ?: 'Empty description!', 'seo_framework', false );
}

Mapa independiente por idioma en The Seo Framework con Polylang

En principio, en la administración del plugin solo encontrarás un único mapa que estará ubicado en:

https://jrmora.com/sitemap.xml

Pero, si usas Polylang, dependiendo de tu instalación, podrás encontrar los mapas de cada idioma que estés usando para poder enviarlos a Bing Webmaster Tools Y Google Search Console para su rastreo en varios formatos (ejemplo de mapa inglés):

https://jrmora.com/sitemap.xml?lang=en

https://jrmora.com/en/sitemap.xml?

Páginas de este post →

Donar

Artículos relacionados



Repositorio de documentales sobre dibujantes de cómic y humor gráfico.

Tontolares. Los titulares más gilipollas de la prensa. Envía los tuyos

1 comentario en «Adiós, Rank Math»

  1. Interesante.
    Yo también utilizo Rank Math.
    Aunque todavía no he tenido problemas con el plugin, pero estaré pendiente por si ocurre. Con esto ya estoy a sabiendas de lo que puede pasar.
    Excelente referencia.
    Gracias por compartir.
    👍

Los comentarios están cerrados.

Este blog se aloja en LucusHost

LucusHost, el mejor hosting