Alguna vez en nuestros proyectos nos hemos preguntado que utilizar si robots.txt o noindex, así que intentaré resolver todas estas dudas en este mini post 🙂 Vamos a ello, empezaremos viendo lo que nos dice Google en su ayuda:
Para que la directiva noindex sea efectiva en una página, esta no puede estar bloqueada mediante un archivo robots.txt. Si lo está, el rastreador no verá la directiva noindex, por lo que puede que la página siga apareciendo en los resultados de búsqueda si, por ejemplo, otras páginas tienen enlaces a ella.
Como vemos según la ayuda de Google, nos dice que es un error tener ambas y que con la directiva en robots.txt su crawler no llegaría al directorio o página en cuestión de nuestro sitio web, pero, ¿Nunca os ha pasado que algo se indexa igual por mucho que tengamos en robots.txt?
¿Entonces cuándo uso robots.txt?
El archivo robots.txt está destinado para definir unas reglas a groso modo de nuestro sitio web para que no se rastreen o crawleen, que apartados se pueden y cuáles no en un primer momento, además de poder evitar tráfico de diferentes bots como pueden ser ScreamingFrog, Majestic, Ahref o cualquier otro de spam y por último también definir nuestro sitemap, pero no evitará que una página sea indexada.
Como he dicho recomiendo usar el robots.txt para definir unas reglas base de nuestro sitio web, voy a poner unos ejemplos:
- Administración (como wp-admin)
- Configuración (wp-includes).
- […]
No queremos perder crawl budget en que nos recorra la araña toda la carpeta /wp-admin/, sería absurdo.
¿Y noindex?
La etiqueta está definida para que un contenido no sea añadido al índice.
Google nos indica que si tienes bloqueada una página por robots, la etiqueta noindex se la saltaría e indexaría la página igualmente, por eso recomiendo totalmente poner noindex a las páginas que no queramos indexar realmente (y no ponerlo en robots). De esta manera nos aseguramos 100% que Google no va indexar la página en cuestión con esta meta tag.
Ejemplos de noindex:
- Avisos legales (cookies, condiciones generales, envío..)
- Páginas de A/B test
- Páginas en desarrollo.
- Finalizar compra
- Carrito
- Páginas que generen contenido duplicado (por ejemplos los tags en wordpress).
- […]
Pero si lo podemos definir en robots.txt todo ¿Por qué poner noindex?
Porque Google puede indexarlo igual, os voy a poner un ejemplo práctico.
Imaginaros que tenéis un cliente que le estáis desarollando un sitio web en vuestro servidor y la ruta sería tudominio.com/dev/, vale, lo tendríamos disallow en robots.txt y Google lo ignoraría, pero, ¿Y si mi cliente me enlaza sin querer desde su web a mi dev? Si tu cliente o cualquier persona ya sea sin querer o a propósito, te enlaza desde su sitio web al tuyo por mucho robots.txt que tengas, si no tienes la etiqueta noindex Google lo va indexar igual, ya que seguirá el sitio web desde el origen al dev, y verá que esa página no está indexada entonces la añadirá al índice.
Nota: Siempre y cuando el cliente o cualquier otra persona ponga el enlace follow, si es nofollow no pasaría nada ya que no seguiría el enlace al dev.
Nota2: Si tienes en robots.txt /dev/ y en la página dentro del /dev/ el tag noindex, Google ignoraría el meta tag y lo indexaría igual, ya que estás bloqueándolo desde robots.txt, parece algo confuso.
Nota3: Tener un /dev/ o una versión antigua en la raíz /vieja-web/, está mal, he puesto este ejemplo a propósito ya que hay mucha gente utilizándolo.
Conclusiones
Recomiendo siempre usar robots.txt y noindex conjuntamente dependiendo del tipo de contenido y nunca mezclando ambos para el mismo, en el primer caso para poner como filtro general y el noindex para condensar realmente y asegurarnos que no queremos que se indexe de ninguna manera.
Una cosa es crawlear o rastrear (que es lo que evita el robots.txt) y otra cosa es el indexar, yo pudo evitar que mi /dev/ no sea rastreado, pero no puedo evitar con robots.txt que sea indexado, lo mismo que yo puedo evitar que mi /dev/ no sea indexado mediante el meta tag, pero no puedo evitar que sea rastreado.
Buenas prácticas
Si queremos desarrollar un sitio web a un cliente podemos utilizar un subdominio con el nombre del cliente (micliente.midominio.com).
No dejar en raíz versiones viejas del sitio web ni cosas sin sentido.
Con esto evitaremos que nuestro contenido en desarrollo sea indexado o perder crawl budget si permitimos su rastreo de la carpeta.