WPML
Estado
Resuelto
Notificado para
WPML Multilingual CMS 3.3.6
Resuelto en
3.3.6

Resumen del problema

Es posible que falten las etiquetas meta hreflang en el encabezado de la página. Esto ocurre desde WPML 3.3.6, en combinación con temas o plugins que cargan WPML demasiado pronto.

WPML debería incluir etiquetas <link hreflang=”lang”> en la sección del encabezado de su sitio. Esto falta en algunos sitios que utilizan WPML 3.3.6 y en combinación con algunos plugins o temas. El problema ocurre porque WPML intenta generar estas etiquetas al principio del encabezado, pero otros plugins están causando una condición de carrera, lo que activa WPML demasiado pronto. Es posible que reciba un correo electrónico de la herramienta Google Webmaster que diga: «Implementación incorrecta de hreflang».

La descripción completa de esta funcionalidad aparece en las directrices de contenido de Google para URL de idiomas y regionales.

Solución alternativa

Para solucionar esto en WPML 3.3.6:


  1. Abra el archivo sitepress-multilingual-cms/sitepress.class.php

  2. Desplácese hasta el final de este archivo, donde debería ver esto: Captura de pantalla 2016-02-24 a las 10.47.11

  3. Reemplace esta línea: add_action( 'wp_head', array( $this, 'head_langs' ), 1 );

  4. Por: add_action( 'wp_head', array( $this, 'head_langs' ) );

  5. La versión final de este código debe verse así: Captura de pantalla 2016-02-24 a las 11.00.04

  6. Guarde el archivo

En la próxima versión de WPML, se aplicará esta misma solución.

El código del paso 3 tenía como objetivo imprimir las etiquetas meta hreflang lo antes posible, pero esto causa problemas con algunos temas y plugins.

Si aún desea que las etiquetas meta hreflang se impriman lo antes posible, puede aplicar una solución más compleja. Añada este código al archivo functions.php de su tema:

function my_handle_head_hreflang() {
   global $sitepress;

   $settings = $sitepress->get_settings();
   if ( $settings[ 'seo' ][ 'head_langs' ] ) {
      remove_action( 'wp_head', array( $sitepress, 'head_langs' ) );
      add_action( 'wp_head', array( $this, 'head_langs' ), 1 );
   }
}

add_action('wpml_loaded', 'my_handle_head_hreflang');

Todos los problemas conocidos →