La etiqueta meta description, aunque opcional, es recomendada por la mayoría de expertos en SEO como un resumen descriptivo que sirva de presentación al usuario de lo que se va a encontrar. No hay límite de longitud pero es frecuente recomendar una meta descripción de 150 – 160 caracteres, pues este es el límite que los principales buscadores suelen mostrar.

No voy a entrar en como hacer una buena meta descripción ni en el debate de si es mejor ponerla o no, lo que voy a enseñaros es como poner la meta description en los posts de WordPress utilizando el action wp_head.

El ejemplo más sencillo sería:

add_action('wp_head','cyb_head_meta');
function cyb_head_meta() {
     echo '<meta name="description" content="Contenido de la etiqueta meta description">';
}

Pero este ejemplo no tiene mucha utilidad pues pondría la misma descripción en todas y cada una de las páginas de nuestra web. Veamos unos ejemplos más prácticos.

Ejemplo: excerpt como meta description de posts

Si no estás familiarizado con el extracto, en WordPress conocido como excerpt, te recomiendo que te acerques a él. En la pantalla de edición de cada entrada hay una caja de texto debajo del editor con título «Extracto» que está destinada a que introduzcas un resumen de la entrada. Ideal para utilizarlo como descripción ¿no crees?.

El extracto de un post se puede obtener con la función get_the_excerpt(). En caso de que no haya extracto para el post indicado, la función genera uno automático con las primeras 55 palabras del contenido del post.

Así, podríamos poner el extracto como meta descripción del post de la siguiente forma:

add_action('wp_head','cyb_head_meta');
function cyb_head_meta() {

     if( is_single() ) {

          $post_id = get_queried_object_id();
          $excerpt = wp_trim_words( get_the_excerpt( $post_id ) );

          if( $excerpt != '' ) {
              echo '<meta name="description" content="' . esc_attr( $excerpt ) . '">';
          }

     }

}

Sencillo y útil 😉

De forma análoga, utilizando los tags condicionales, podemos ir añadiendo el meta description a cualquier página de WordPress.

Ejemplo: añadir meta description en las categorías

Siguiendo la misma lógica anterior, primero comprobamos si estamos en una categoría, luego obtenmos el ID de esta categoría, obtenemos su descripción y, como no hay excerpt para categorías, lo fabricamos con category_description() y wp_trim_words():

add_action('wp_head','cyb_head_meta');
function cyb_head_meta() {

     if( is_category() ) {

          $cat_id = get_queried_object_id();
          $description = wp_trim_words( wp_strip_all_tags( strip_shortcodes( category_description( $cat_id ) ) ) );

          if( $description != '' ) {
              echo '<meta name="description" content="' . esc_attr( $description ) . '">';
          }

     }

}