meta description functions.php

Cómo añadir la meta description en WordPress sin plugin

Por defecto, independientemente del tema que instales de inicio en WordPress no incluye ningún campo en la edición de entradas que te permita añadir una descripción de la misma y se incluya en el html de la página. En mi caso, utilizo el tema GeneratePress y no tenía agregada esta función por defecto.

La idea de crear este post me surge porque después de hacer un escaneo de mi sitio a través de la nueva funcionalidad de la herramienta de Bing para Webmasters llamada «Site Scan» me reportaron a mi email los resultados, y resultó que no tenía configurada en ninguna de mis entradas (y algunas otras páginas) la meta description. Es cierto que la meta description en sí no es clave para el posicionamiento de tu contenido, pero sí que ejerce una función importante para generar un call to action que permita aumentar el CTR de tu contenido.

El resultado que aporta este escaneo con Site Scan de Bing es útil para detectar ese tipo de mejoras en el html. Es algo que hecho de menos en la nueva Search Console y que en la antigua herramienta de Google Webmaster Tools ofrecía desde su panel Aspectos de la búsqueda -> Mejoras de HTML (meta descripción – ausentes, duplicadas, largas, cortas ; etiquetas de título – idem; etc).

Site Scan Bing Webmasters detalle de avisos y errores en el html
Bing Webmaster Tool – Site Scan
Descripción del aviso falta meta description en Bing Webmaster Tool
Mensaje de detalle para el aviso «Meta Description tag missing»

Agregar código php al archivo functions. php

Este proceso lo hice desde la versión de WordPress actualizada a 5.4.2 pero es válido para las recientes releases.

Para poder crear la meta description desde la edición de cualquier entrada, primero añade la siguiente función php dentro del editor de temas en el archivo functions.php (Apariencia -> Editor de temas) y actualizas el archivo.

/**
Añadiendo meta description a los post desde functions.php
*/

function wpse_custom_meta_description(){
if ( ! is_single() && ! is_page())
return;
$desc = get_post_meta( get_queried_object_id(), 'description', true );
if( ! empty( $desc ) )
printf(
'<meta name="description" content="%s" />',
esc_attr( trim( $desc ) )
);
}
add_action( 'wp_head', 'wpse_custom_meta_description' , 2 );
Código php meta description en functions.php de WordPress

Añadir nuevo campo personalizado «description»

A continuación desde cualquier entrada (nueva o antigua), al final de esa página de edición buscas la opción Añadir nuevo campo personalizado.

Después le das a la opción «Nuevo» , y en el nombre colocas description y le das a Añadir un campo personalizado.

Cómo añadir un campo personalizado en WordPress

De esta forma ya tendrás creado ese campo personalizado. Ahora tan sólo deberás actualizar la página y verás que ese nuevo campo está agregado. Ya tan sólo añadiendo el texto descriptivo que quieras poner a tu entrada, verás que aparece reflejado en el código html (dentro del <head>) de la página, la etiqueta meta name=»description». Esta etiqueta se añadirá no sólo a tus páginas versión canonical sino también en el html de la versión AMP de tus páginas.

Fuente utilizada: Agregar la etiqueta descripción en WordPress sin plugins

¿Y si tengo instalado y activo el Plugin de Yoast SEO?

En el caso que tengas instalado por ejemplo el Plugin de Yoast SEO o cualquier otro plugin que te permita incluir la meta description personalizada, lo que ocurrirá en el caso de que completes tanto la del plugin como la solución que te comento arriba, es que se duplicarán en el código fuente. Es decir, habrá dos etiquetas meta description aunque quizás con diferente texto, y problemas para los buscadores a la hora de entender cuál de ellos debe mostrar en las SERPs.

Esto supone un problema en general cuando se duplica y no optimiza el código, y es que se añaden más líneas de código haciéndolo más pesado y afectando al renderizado del mismo en el navegador.

Mi recomendación es usar sólo el campo description a través de la creación desde el functions.php e intentar usar/instalar los menos plugins posibles, ya que por muy buenos que sean, son código de terceros sobre los que no tienes control y pueden afectarte en temas de seguridad del site, tiempos de carga, etc.

La posición que ocupe, es decir, si está más cerca del inicio del html, no tiene ninguna implicación, siempre y cuando se encuentre dentro del <head>.

Aquí te dejo el vídeo tutorial explicado para que puedas verlo visualmente:

Otros posts relacionados