Controlar meta tags en Liferay de forma dinámica


Liferay permite añadir meta tags desde el apartado Site Pages > Page > SEO del panel de control, pero estos meta tags se aplican a la página sin importar lo que contenga y sus opciones son bastante limitadas.

Esta funcionalidad en según qué casos no es suficiente.

Vamos a poner un ejemplo para entender mejor lo que queremos hacer.

Tenemos un portlet que genera las fichas de todas las personas que pertenecen o han pertenecido a una empresa y Google, por defecto, nos las va a indexar todas.

Lo que queremos es mantener la ficha de todas las personas en nuestra web pero, por otro lado, no queremos que Google indexe las de las personas que se den de baja. Por tanto, lo que necesitamos es añadir (solo a esas fichas) el meta tag que le indica al robot que no indexe ese contenido.

Añadiendo el siguiente código dentro del jsp que genera la ficha de la persona podemos condicionar el meta tag para especificar cómo queremos que trate Google a esa página.

if (persona.dadaDeBaja()) {
    Element metaElement = portletResponse.createElement("meta");

    metaElement.setAttribute("name", "robots");
    metaElement.setAttribute("content", "noindex");

    portletResponse.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, metaElement);
}

Con esto, cuando la persona que queramos mostrar haya sido dada de baja, mostrará la ficha normalmente, pero dentro del <head> de la página habrá un nuevo meta tag que indicará a los buscadores que no se quiere indexar ese contenido.

<head>
    …
    <meta content="noindex" name="robots">
    …
</head>

Con este sistema se pueden manejar los elementos de la página al gusto. Nosotros hemos puesto tan sólo un ejemplo, pero hay muchas más posibilidades.

Aquí se puede encontrar más información sobre las distintas opciones que puede interpretar el robot de Google.

Espero que os sirva. Un saludo.


Leave a Reply

Your email address will not be published. Required fields are marked *