Asiste al evento de SEO más avanzado del año

SEO en contenido restringido

Aprende a trabajar el SEO en páginas +18 o de pago

Autor:
Carlos Sánchez
Temática:
Internacional
,
Metaetiquetas
,
Rastreo
Fecha de publicación:
2023-06-02

Última revisión:
2024-02-06

En el mundo del SEO, es posible que nos encontremos con grandes retos. Uno de ellos es trabajar proyectos que por cuestiones legales o por política de empresa, sea contenido no accesible para todos los usuarios, por ejemplo, porque es contenido para adultos o contenido Premium solo accesible mediante pago.

En estos casos, si queremos posicionar estas páginas, tenemos que ser capaces de impedir el acceso a los usuarios que no deben poder ver dicho contenido, y a su vez, permitirle a Google ver nuestro contenido, para poder rastrearlo e indexarlo.

Para evitar que Google en cualquier caso muestre visible nuestro contenido exclusivo, es recomendable utilizar el valor noarchive en la metaetiqueta robots:

<meta name="robots" content="index, follow, noarchive">

También es recomendable usar el atributo data-nosnippet, si no queremos que contenido indeseable nos aparezca en las SERPs (página de resultados de búsqueda).

Posicionar webs para adultos

Se puede entender el contenido para adultos de muchas formas, puede ser páginas con contenido sexual, violento, alcohol, etc. Por lo general, las prácticas más habituales para limitar el acceso a estas páginas, son impedir el acceso al usuario por medio de un pop-up o formulario donde se solicita la edad.

Bloqueo a una web por edad

Si le deja esta forma de acceso a Google, es poco probable que sea capaz de rastrear, renderizar e indexar la web de una forma correcta. Para esto lo ideal sería permitirle a Google acceder sin que tenga la necesidad de lidiar con la verificación de edad.

For content behind a mandatory age gate, we recommend allowing Googlebot to crawl your content without triggering the age gate. You can do this by verifying Googlebot requests and serving the content without age gate. (Para el contenido detrás de una barrera de edad obligatoria, recomendamos permitir que Googlebot rastree tu contenido sin activar la barrera de edad. Puedes hacer esto verificando las solicitudes de Googlebot y sirviendo el contenido sin la barrera de edad.)— Google Developers: Safesearch

Para poder realizar esto, podemos hacer una excepción para los user-agents de Googlebot, o incluso sólo a las ip de Google, para que este pueda pasar por la web sin percance aunque otros usuarios tengan el contenido bloqueado.

En algunas ocasiones, se obliga al usuario a registrarse para poder ver el contenido de la web. En ese caso, tenemos que utilizar los datos estructurados del contenido de acceso por subscripción, o hacer exactamente lo mismo que se ha comentado respecto al pop-up de edad.

Es importante dejar acceso libre a Google a estas páginas, si es que se pretende que las rastree e indexe, ya que si necesita registrarse para acceder a la página, se encontraría con una web que no puede mostrar.

¿No lo estás entendiendo?
Si quieres aprender a aplicar todo esto y mucho más, accede a mi formación: ¡Aprende SEO de verdad!

SEO en Contenido sexual o violento

Existen páginas cuyo contenido ya no es solo de adultos como puede ser el sector del alcohol, las apuestas y otro tipo de sustancias, sino que, además, tienen una mayor sensibilidad, como puede ser el contenido pornográfico, violento o gore.

En esos casos, Google cuenta con el filtro de Google Safesearch. Esto es debido a que ciertos usuarios desean no encontrarse este tipo de resultados en sus búsquedas.

Cualquier tipo de desnudo, incluso de muñecas realistas, servicios de escorts, violencia o incluso páginas con enlaces a dichos contenidos, puede ser filtrada por estas cuestiones. Este es uno de los casos donde la ofuscación de enlaces puede tener sentido.

Para este tipo de webs tan explícitas tiene sentido implementar varias prácticas. Vamos a verlas detalladamente.

Metaetiqueta rating adult

Esta metaetiqueta le ayuda a Google a entender qué páginas tienen ese contenido tan específico. De esta forma Google lo tendrá en cuenta.

Esta metaetiqueta tiene sentido para el contenido explícito, y solo se debe usar en las páginas donde esté dicho contenido.

<meta name="rating" content="adult">

U otra opción, más compleja e igual de válida:

<meta name="rating" content="RTA-5042-1996-1400-1577-RTA">

Update 19/01/2023: Habrá que estar pendiente de la futura ley contra el contenido de adultos. Donde se quiere obligar a que los usuarios accedan con DNI para demostrar realmente su mayoría de edad. En mi opinión, si esto llega a suceder, se tendrá que trabajar como los paywall.

Agrupar las páginas explícitas

Esto tiene sentido si hay una cantidad significativa de contenido explícito, pero también de contenido no explícito.

Se recomienda agrupar este tipo de contenido en un directorio o subdominio específico. De esta forma es mucho más facil para el motor de búsqueda hacer la separación del contenido.

En el caso de que sean poquitas páginas explícitas en relación con el resto de la web, no es necesario hacer la agrupación y vale con la metaetiqueta especificada.

Permitir a Google acceder a los vídeos

Google tiene que ser capaz de tener la URL del vídeo y poder acceder. Además se recomienda utilizar datos estructurados o un sitemap de vídeos para facilitar esta práctica.

Google no expondrá la URL del vídeo tal cual, sino la página donde se expone dicho vídeo. Se puede revisar más información técnica en la documentación oficial, pues da para otro post.

Contenido BLoqueado por países

Por diversas razones, hay páginas webs que bloquean el acceso de los usuarios que acceden desde algunos países en concreto. En este caso de bloqueo por localización, el bloqueo se realiza de la misma manera. Se pueden bloquear países por cualquier cuestión legal, incluyendo a Estados Unidos, pero nunca se debe bloquear Googlebot (el User-Agent) en Estados Unidos.

Como cada sistema de bloqueo es un mundo y normalmente depende de otras librerías para llevarlo a cabo, simplemente me centraré en explicar que la mejor práctica sería permitirle a Googlebot, o al rango de ip de Google (por medio de geoip por ejemplo), acceder al contenido sin restricciones, para permitir que rastree la página y, por lo tanto, sea indexable.

Aquí podemos ver unas declaraciones de Jhon Mueller, donde aconseja no bloquear a Googlebot aunque se bloquee el país. Es decir, dejar a Googlebot como en una whitelist, de esta forma podrá rastrear e interpretar el contenido.

Tiene sentido. En cualquiera de los casos podemos comprobar si Google está accediendo por la propia Search Console y también si está siendo efectivo analizando los logs.

Redirección por IP o Accept-language

Si no se tiene intención ninguna de bloquear el contenido por países, nunca se debe redireccionar al usuario para seleccionar su idioma. No es una buena práctica ya que impide que el motor de búsqueda pueda rastrear todas las versiones de idioma correctamente. En su lugar debe hacer una buena configuración de los hreflang.

Contenido de acceso por suscripción

Ejemplo de un medio que hace la implementación de forma correcta

El contenido de acceso por suscripción o premium, es un contenido al que el usuario solo puede acceder por completo si se suscribe a la web.

Al no poder verse el contenido al completo, es posible que Google acabe interpretando que se está realizando un encubrimiento. Para evitar este problema, existen unos datos estructurados que nos permiten solucionar este dilema, haciendo que Google sea capaz de rastrear e indexar dicho contenido.

La mejor forma para aplicar esta solución es, meter todo el contenido que no debe poder ver el usuario que no está suscrito, en una etiqueta (un div, un section...). Y esta etiqueta tiene que tener una clase de CSS en concreto. Con el nombre que nosotros elijamos.

Voy a simular un código que va a tener 2 líneas que solo deberían poder verse si el usuario está registrado:

<body>
<section id="contenido">
<div> Lorem ipsum....</div>
<div class="premium">Este contenido solo debe ser visible si se paga suscripción</div>
<div class="ejemplo">Este contenido lo pongo para otro ejemplo</div>
</section>
</body>

Imaginemos que no queremos que se vea el contenido que tiene la etiqueta con la clase Premium. Lo habitual es ocultarlo por medio de CSS o de JavaScript. Pero podríamos hacerlo incluso desde el servidor, siempre y cuando Googlebot lo pueda ver sin tener que suscribirse. (En mi artículo de Cloaking y en mi máster de SEO Técnico enseño a hacer esta práctica).

Hasta ahora, si hacemos esto, se puede considerar una mala práctica. Y es que para que se convierta en una práctica aceptable, tenemos que hacer partícipe a Google. Y le haremos saber qué tipo de contenido estamos ofreciendo, por medio de los datos estructurados.

Datos estructurados

Este fragmento de dato estructurado se puede añadir en cualquiera de estos famosos datos estructurados:

Hay varias opciones (yo recomiendo estas), y para que se entienda de manera fácil el artículo, voy a elegir un tipo de dato estructurado y a aplicarlo en un ejemplo.

Como NewsArticle puede ser un dato estructurado bastante sencillo de implementar, dado que no tiene demasiadas propiedades obligatorias, imaginaremos que lo hemos incluido en una web que tiene el código de arriba (el que contiene las clases de CSS premium y ejemplo). Así que aquí pongo el ejemplo de un dato estructurado NewsArticle:

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Título de una noticia",
"datePublished": "2023-06-02",
"dateModified": "2023-06-02"
}
</script>

En este fragmento de datos estructurados, le decimos a Google que tenemos un artículo que se titula "Título de una noticia" y que fue creado el 2 de Junio de 2023.

En caso de que fuera un artículo de pago (que es lo que nos interesa en este artículo) tendríamos que añadir a este fragmento de código, la propiedad isAccessibleForFree, la cual se le tiene que dar el valor Booleano de False, e incluirla en una propiedad llamada hasPart. Por último, tendremos que aclarar dentro de esta propiedad qué elemento con qué clase es el que no es accesible de forma gratuita. En el caso de nuestro ejemplo, sería el contenido que está dentro de la etiqueta <div>, con la clase de CSS "premium".

Por lo tanto, este fragmento tendría que contener la siguiente información:

"isAccessibleForFree": "False",
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": "False",
"cssSelector": ".premium"

Como este script no puede ir solo, tenemos que unirlo al que represente el contenido. En este caso al json de NewsArticle. De este modo, nuestro código definitivo quedaría así:

<body>
<section id="contenido">
<div> Lorem ipsum....</div>
<div data-nosnippet class="premium">Este contenido solo debe ser visible si se paga suscripción</div>
<div class="ejemplo">Este contenido lo pongo para otro ejemplo</div>
</section>
</body>

<!-- Ahora el json -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Título de una noticia",
"datePublished": "2023-06-02",
"dateModified": "2023-06-02",
"isAccessibleForFree": "False",
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": "False",
"cssSelector": ".premium"
}
}
</script>

De esta forma, el elemento div con la clase "premium" está oculto para el usuario sin la membresía, pero será accesible y rastreable para Google.

Es importante tener en cuenta, que debe aplicarse en etiquetas divs y el cssSelector debe coger una clase. Además como se ve en el ejemplo del código, se pone un . delante como si de un selector de clase de CSS se tratase.

Al analizar los datos estructurados, deberían verse así:

Datos estructurados de contenido +18

Es importante que Google sea capaz de rastrear y ver el contenido que pretende ser indexado con normalidad. Realizar esta práctica bien implementada no sería un encubrimiento, simplemente darle acceso a Google a lo que pretende ser indexado y rastreado, pero que no es un contenido gratuito.

En muchas ocasiones, aún no estando correctamente implementado, el contenido es visible y rastreable sin Javascript y, por la forma en la que google rastrea el contenido sin Javascript, es posible que tampoco lo detecte como cloaking. Aunque en este caso, cualquier usuario que desactive el Javascript, podrá ver el contenido. Esto no es un problema, ya que es una minoría la cantidad de usuarios que saben hacerlo.

En el caso a continuación, podemos ver como este medio, realiza esta implementación aparentemente de una forma correcta:

implementación correcta de SEO para un contenido de pago

Aquí vemos que todo el contenido que esté dentro de ese elemento DIV con la clase container-wall-exclusive puede estar oculto para el usuario que no realiza el pago, pero en teoría, Google si tendrá acceso al mismo.

Bibliografía

Si te gusta este artículo, me ayudarías un montón compartiendo mi contenido:
No se te da mal el SEO Técnico

Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB

¡Accede al Máster de SEO Técnico!
Tal vez te interesen otros artículos:
Artículos de SEO

Si te ha gustado esta publicación, siempre me lo puedes agradecer dándome like en esta publicación de LinkedIn sobre este mismo artículo.

Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Aquí tienes nuestra política de privacidad.