Los buscadores son codiciosos por naturaleza.
Quieren indexar toda la información posible, así que cuando llegan a tu sitio lo rastrean todo.
El problema surge cuando quieres evitar que ciertas páginas se incluyan en sus índices, ¿qué haces entonces?
Tienes 2 opciones:
- Introducir una etiqueta especial en cada página (véase Meta Robots)
- Usar un archivo centralizado para controlar la entrada
Esta última opción es la de robots.txt.
Contenidos:
Qué es el archivo robots.txt y para qué sirve
Los robots o arañas son unos programas que utilizan los buscadores para rastrear la web. Cuando llegan a tu sitio, lo primero que hacen es buscar el archivo robots.txt, y dependiendo de lo que diga en él, continúan en tu sitio o se van a otro.
Puedes entender el archivo robots.txt como una lista de robots no admitidos, la cual te permite restringir el acceso a tu sitio selectivamente. Si hay páginas que prefieres mantener fuera del alcance de los buscadores, puedes configurarlo aquí, y si hay un buscador al que quieres denegar el acceso, también.
Más concretamente, puedes utilizar el archivo robots.txt para lo siguiente:
- Evitar que ciertas páginas y directorios de tu sitio sean accesibles a los buscadores
- Bloquear el acceso a archivos de código o utilidades
- Impedir la indexación de contenido duplicado en tu sitio, como copias de prueba o versiones para imprimir
- Indicar la localización de los mapas del sitio en XML
Ahora bien, hay un par de cosas que debes tener en cuenta sobre robots.txt:
- Algunos robots pueden ignorar las instrucciones contenidas en este archivo, especialmente robots maliciosos o malware
- El archivo es público, lo que significa que cualquiera puede verlo con sólo teclear www.example.com/robots.txt
Por tanto, si piensas utilizar robots.txt para esconder información privada, necesitas buscar otra alternativa.
Cómo generar el archivo robots.txt
Lo primero que necesitas saber sobre el archivo robots.txt es que no es obligatorio. Sólo necesitas crearlo cuando quieres impedir que ciertas páginas o directorios de tu sitio aparezcan en los resultados de búsqueda.
Generar el archivo es muy sencillo, basta con crear un documento de texto con el nombre “robots.txt” y subirlo a la raíz de tu dominio (http://www.example.com/robots.txt), que es el lugar donde los los buscadores esperan encontrarlo.
Lo más fácil es crearlo a mano, mediante el bloc de notas o un editor de código como Notepad++, aunque si eres de los que prefieren herramientas de generación, la de SeoBook cumple con su cometido bastante bien. Otras alternativas son RobotsGenerator.com y McAnnering Robots.txt Generator.
Para subir el archivo usa un cliente FTP como FileZilla o Cyberduck.
Respecto al contenido, un archivo robots.txt básico puede ser:
User-agent: *
Disallow: /privado/
Lo que hacen estas instrucciones es denegar el acceso al directorio “privado” a todos los buscadores. Para ello, primero se indica que la orden va dirigida a todos los robots (User-agent: *) y por último se especifica el directorio desautorizado (Disallow: /privado/).
Comandos principales
Los comandos que utiliza el archivo robots.txt vienen del llamado Robots Exclusion Protocol, un convenio universal cuya sintaxis debes seguir:
- Sólo puedes utilizar los comandos permitidos (aunque algunos buscadores entienden comandos adicionales)
- Debes respetar las mayúsculas/minúsculas, la puntuación y los espacios
- Cada grupo User-agent/Disallow debe estar separado por una línea en blanco
- Puedes incluir comentarios mediante la almohadilla o símbolo de hash (#)
Los comandos más importantes son:
- User-agent – Indica qué tipo de robot debe cumplir con las directivas que se indiquen a continuación.
- Disallow – Deniega el acceso a un directorio o página concreta.
- Allow – Funciona al contrario que la directiva Disallow, permitiendo el acceso a directorios y páginas. Se puede utilizar para sobrescribir la directiva Disallow parcial o totalmente.
- Sitemap – Indicar la ruta donde se encuentra un mapa del sitio en XML.
- Crawl-delay – Indica al robot el número de segundos que debe esperar entre cada página. Puede ser útil en casos en los que se necesita reducir la carga del servidor.
Adicionalmente, puedes utilizar comodines para aumentar o reducir la concordancia:
- Asterisco (*) – Vale por una secuencia cualquiera de caracteres. Por ejemplo, todos los directorios que empiezan por “privado” serían “/privado*/”
- Dólar ($) – Indica el final de una URL. Por ejemplo, para indicar cualquier archivo que acabe con la extensión .php se utilizaría “/*.php$”.
Restricciones más comunes
Con los comandos y comodines se puede crear todo tipo de restricciones. Sin embargo, no es buena idea ser creativo con el archivo de robots, ya que puedes acabar bloqueando algo que no deseas.
En este sentido, es mejor ceñirse a las restricciones más comunes, como son:
- Incluir todos los robots – User-agent: *
- Especificar el robot de Google – User-agent: Googlebot
- Especificar el robot de Bing – User-agent: Bingbot
- Denegar todo el sitio – Disallow: /
- Denegar un directorio – Disallow: /directorio/
- Denegar directorios que comienzan por “algo” – Disallow: /algo*/
- Denegar una página – Disallow: /pagina-web.htm
- Denegar directorios y páginas que comienzan por “algo” – Disallow: /algo
- Denegar la extensión .gif – Disallow: /*.gif$
- Permitir un subdirectorio – Allow: /directorio/subdirectorio/
- Señalar el mapa del sitio – Sitemap: http://www.example.com/sitemap.xml
Desbloquear recursos CSS y JS
Desde que Google actualizara sus directrices para Webmasters especificando que denegar el acceso a los archivos CSS y JavaScript con robots.txt puede dañar los rankings, es buena idea desbloquear cualquier directorio que pueda contenerlos. Así el buscador tiene libertad para procesar las páginas al completo y saber cómo las verá el usuario.
Para averiguar cómo ve Google tus páginas usa la herramienta Rastreo > Explorar como Google junto con el botón obtener y procesar en Search Console. Si no se parece a lo que ves en tu navegador o bien surgen errores o advertencias, elimina las líneas del archivo robots.txt que bloquean el acceso a las URL.
Otra alternativa más segura es abrir el paso a los recursos CSS y JavaScript explicitamente. De este modo no importa si el directorio donde se encuentran está bloqueado, Google podrá acceder a los recursos que necesite:
User-Agent: Googlebot
Allow: /*.css$
Allow: /*.js$
Validar el archivo
Cuando crees o modifiques tu archivo robots.txt, siempre comprueba que hace lo que esperas de él. Ten en cuenta que un simple error puede bloquear el acceso a los buscadores y dañar tu visibilidad.
La comprobación es fácil de hacer con la herramienta Rastreo > Probador de robots.txt en la Consola de búsqueda de Google. Asimismo, es buena idea usar la función obtener y procesar de Rastreo > Explorar como Google para asegurarse de que no hay recursos bloqueados.
¿Funciona la desindexación con robots.txt?
Una de las funciones más recurridas del archivo robots es la desindexación. En teoría, si quieres sacar archivos y directorios de Google no tienes más que añadir las correspondientes directivas Disallow, ¿no es cierto?
Pues bien, debes saber que aunque el bloqueo con Disallow impide el rastreo a los buscadores, no garantiza la desindexación. Así es cómo lo explica el analista de Google, John Mueller, en este vídeo:
Cuando se bloquea una página indexada con robots.txt, lo que suele ocurrir es que borramos la información de rastreos anteriores […] e indexamos la URL con ese resumen genérico que dice que no sabemos de qué trata la página [al estar bloqueada por robots.txt].
Sin embargo, a veces también ocurre que eliminamos la página completamente. Si pensamos que la URL no tiene información, enlaces entrantes, ni motivos para usarla en las clasificaciones, quizá la quitemos del índice.
Así que teóricamente puede desindexarse, pero no hay garantías.
Es decir, cuando bloqueas una página que ya está indexada, Google la mantiene en su índice y sólo hay una remota posibilidad de que la elimine. Si quieres asegurarte de borrar la página del buscador debes hacer otra cosa, tal y como Mueller sigue explicando:
Si añades una etiqueta [Meta Robots] NoIndex a la página y permites el rastreo […] la borraremos la próxima vez que procesemos la URL.
Esto tiene mucho sentido. Si el buscador puede ver una señal explicita de que no quieres tener la página indexada, entonces la desindexará.
Por tanto, la próxima vez que quiera borrar una página de Google, usa la etiqueta Meta Robots. Sólo cuando la página aún no ha llegado al conocimiento del buscador es cuando está indicado el Disallow de robots.txt.
Un ejemplo de robots.txt para WordPress
Advertencia: No hay un archivo robots.txt universal, según la configuración de tu sitio puede que necesites añadir, modificar o quitar restricciones.
Para ayudarte a comprender mejor el funcionamiento del archivo robots.txt me gustaría enseñarte un ejemplo real. Se trata del mismo archivo que utilizo en este blog, de ahí que sea un ejemplo orientado a WordPress.
Recientemente he actualizado mi archivo robots.txt como sigue (sin los números de línea):
- User-Agent: *
- Disallow: /ir/
- Sitemap: http://deteresa.com/sitemap.xml
Ahora me gustaría explicarte cada línea:
- Línea 1 – Declaro que las instrucciones que vienen a continuación son para los robots de cualquier buscador.
- Línea 2 – Bloqueo el directorio que utilizo para redirecciones (no tienes por qué tenerlo).
- Línea 3 – Indico la ruta donde se encuentra el mapa XML de mi sitio.
Sobre el bloqueo de /wp-admin/
Debes saber que no es necesario bloquear /wp-admin/ en el archivo robots.txt. WordPress ya bloquea las páginas del directorio mediante la cabecera HTTP X-Robots-Tag.
Recursos
Si necesitas más información sobre el archivo robots.txt puedes encontrarla en las siguientes páginas:
¿Ya sabes cómo vas a crear tu archivo robots.txt?
Imagen vía Diesel Sweeties
Jorge dice
Buenos días:
Tu artículo me ha resultado muy interesante e ilustrativo. Muchísimas gracias.
Me gustaría que me aclararas, si fuera posible, un punto que no entiendo bien: querría saber cuál es la raiz del dominio en la que hay que alojar el archivo “robots.txt”. Me explico: al utilizar Filezilla no sé si éste es el sitio remoto “/” o si, por el contrario, es “/www”.
Un saludo y gracias de antemano.
Tomás de Teresa dice
Hola Jorge
Por las opciones que das debe ser /WWW/. Súbelo y prueba a acceder desde la raíz de tu sitio.
Saludos
Jaime dice
Buenas, muy interesante tu artículo, me gustaría saber como decirle al robot.txt que no se meta en las categorías de mi web ya que no me interesa indexar eso. ¿Qué debería hacer? ¿poner la ruta del archivo al que accedo por ftp o bien la url de la categoría?
Tomás de Teresa dice
Si las categorías de tu sitio empiezan por /category/nombre-categoria/ usa lo siguiente:
Disallow: /category/
Ahora bien, si ya están indexadas no te servirá para eliminarlas del buscador. En su lugar usa una etiqueta meta robots noindex (http://deteresa.com/meta-robots/).
Saludos
david dice
Hola, muy buen artículo.
Lo único que yo no encuentro mi robots.txt en el directorio raíz del sitio en wordpress. Debería estar en el mismo directorio donde están las carpetas de wordpress (wp-admin, wp-content….) y no está. Sin embrago si pongo la direccion.com/robots.txt sí que sale su contenido.
No creo que tenga ningún plugin que gestione el robots. ¿Sabrías donde pudiera estar?
Tomás de Teresa dice
Hola David
Suena a que tienes un archivo robots.txt virtual (e.d. el archivo no existe en el servidor, sino que se genera dinámicamente cuando se solicita). Con el plugin Yoast SEO puedes editar el archivo directamente desde el panel de WordPress, en SEO > Herramientas > Editor de archivos.
Suerte
Francesc Dalmàs dice
Buenas tardes Tomás,
He leído (y compartido) algunos de tus artículos y la verdad es que son muy interesantes. Sin embargo creo que éste en concreto puede inducir a mal entendidos y es muy inexacto.
Es especialmente errónea la afirmación de que el archivo robots.txt sea para impedir la indexación de nuestro sitio, tal y como tu mencionas. Para eso hay otros métodos.
Las directrices de Google lo explican muy bien.
Un saludo,
Francesc
Tomás de Teresa dice
Hola Francesc
Te agradezco la aportación y me gustaría mejorar el artículo todo lo posible. Pero necesito que seas un poco más específico:
¿Qué hay de erróneo en mi afirmación? ¿Qué otros métodos propones para evitar la indexación? ¿A qué página concreta de las directrices de Google te refieres?
Gracias, tendré en cuenta tus comentarios.
Francesc Dalmàs dice
Buenos días Tomás,
perdona el retraso en contestar (vacaciones). Cuando leí tu artículo me pareció que había algún error. Sin embargo al volverlo a releer ahora me pareció correcto (lo has modificado últimamente?). En todo caso pido disculpas si lo leí mal. En principio encuentro correcto lo que comentas.
Saludos
Francesc
Tomás de Teresa dice
Buenos días Francesc
La última actualización fue en febrero. A veces hay que leer las cosas dos veces, nos pasa a todos.
Un saludo
pedro dice
Hola Tomas,
una pregunta, tengo un sitio web con el siguiente subdominio pre.dominio.es
y luego tengo el dominio.es ambos están indexados.
La manera correcta de desindexar el 1º sería en su robots.txt poner
pre.dominio.es/robots.txt
User-agent: *
Disallow: /
eso afecta a la indexación del dominio ??
Tomás de Teresa dice
Hola Pedro
Para desindexar, lo más eficaz es devolver un código de respuesta 404/410 (página no encontrada). Google entenderá que ha dejado de existir y lo borrará progresivamente de sus índices.
Saludos
pedro dice
muchas gracias Tomás!
eduardo dice
Hola me encanto el articulo me lei asta los comentarios jaja.
Bueno tambien tengo una duda hoy al entrar a webmaster tools me di cuenta que en recursos bloqueados tenia todos mis articulos bloqueados ya que avia notado un bajon en analityc crees que esto sea por el archivo robots.txt por lo que he leido eate articulo quisas sea por easte archivo
Tomás de Teresa dice
Me alegro Eduardo :-)
Sólo ten en cuenta que los recursos bloqueados son hojas de estilo, javascript e imágenes; no son páginas. El bajón puede guardar relación, pero quizá sea por otros motivos.
Saludos
Sheila dice
Muchas gracias,
He encontrado todo lo que buscaba. Muy bien estructurada la información, todo muy claro.
Un saludo.
Tomás de Teresa dice
Estupendo Sheila :-)
Javier dice
excelente información todo muy claro
Franciso dice
Hola, Tomás:
Te sigo habitualmente la mayoría de los post que vas publicando me resultan muy útiles, muchos además vuelvo a consultarlos por estar muy claros.
Te escribo porque me surge una duda con el Allow del robots. He leído (Deepcrawl) que los “Allow:” solamente prevalecen sobren los “Disallow:” cuando tienen igual o mayor número de caracteres.
Ejemplo: tengo unos js en la carpeta /misc/ a los que quiero dar acceso a Googlebot, pero solo a ese tipo de ficheros, nada más de lo que hay en /misc/. ¿La forma adecuada de dar acceso cuál sería de estas dos?
1)
User-agent: *
Disallow: /misc/
Allow: /*.js$
O
2)
User-agent: *
Disallow: /misc/
Allow: /misc/*.js$
Saludos y gracias de antemano,
FDM
Tomás de Teresa dice
Hola Francisco, para el ejemplo que propones sería la opción 2.
Saludos
Mauricio Macas dice
Hola Tomás, excelente post, pero tengo una duda la cual creo que será de ayuda para otros usuarios que tengan mi problema.
Tengo google page speed instalado en el servidor de mi bog y en GMT tengo en la sección Mejoras de HTML el aviso de que tengo Páginas con etiquetas de título duplicadas y verificando estas páginas, todas tienen en la parte final:
?PageSpeed=noscript
Aunque tengo como link canonical la url oficial con yoast seo plugin, me gustaría mediante robots.txt desindexar este parámetro de page speed.
Tengo el permalink:
blog/categoria/post/
Con el parámetro de page speed:
blog/categoria/post/?PageSpeed=noscript
Como desindexo con robots.txt este parámetro según mi permalink?
Disallow: /?PageSpeed=noscript
Disallow: /*?PageSpeed=noscript
Esta bien de esta forma?
Gracias por la ayuda.
Tomás de Teresa dice
Hola Mauricio
No es recomendable usar robots.txt para desindexar páginas con parámetros. Con tener la etiqueta canonical bien configurada es suficiente, aunque si te quedas más tranquilo usa además la herramienta parámetros de URL en Google Webmaster Tools.
Saludos
Mauricio Macas dice
Gracias por la respuesta Tom’as, ahora ya me quedo mas claro el asunto, un gran Saludo.
Bernardo dice
Hola Tomás, respecto tu aporte sobre el archivo robot.txt me parece estupendo, pero después de leer lo comentarios se me queda una duda que te preguntó un compañero, sobre la colocación de archivo. Yo tenía entendido que este archivo se colocaba en la carpeta raiz pero a otro compañero le dijiste que se colocara en el directorio httpdocs, si es así, que tipo de archivos se colocan en esta carpeta y el buscador google lo encontrará aun estado en una carpeta de nuestra web.
Saludos
Tomás de Teresa dice
Hola Bernardo
El archivo debe estar ubicado en la raíz del sitio. Lo que pasa es que al acceder por FTP al servidor, primero tienes que situarte en el directorio que contiene el sitio web. Este directorio suele llevar nombres como httpdocs, public_html o www, de ahí lo que le dije a Andrea.
Espero que esto aclare tu duda.
Bernardo dice
Muchas gracias !!!
Oscar Muñoz dice
Gracias, lo tomare en cuenta para aplicarlo de inmediato a mi sitio. Gracias!!!
Tomás de Teresa dice
Estupendo ;-)
Diego Muñoz dice
Gracias por tu información, esta bien explicado. Sigue Así!
Saludos
Tomás de Teresa dice
Gracias Diego :-)
Jair Díez dice
Tomás, me ha servido mucho la explicación sobre el uso de robots.txt, sólo me queda una duda, al momento de subirlo al server, cual es la codificación que debe tener el archivo? ANSI – UTF8 o cual.
Gracias,
Tomás de Teresa dice
Hola Jair
No deberías tener problemas con ANSI ni con UTF-8. Lo único que te recomiendo es evitar la marca de orden de bytes BOM si usas UTF-8, ya que puede despistar a los robots.
saludos
Israel dice
muchas gracias amigo tu explicación fue muy clara, por cierto, en tu articulo mencionas que el sitemap debe estar especificado en el robots.txt, anteriormente en otro documento escuche que se debía especificar en el archivo .htacces, ¿tú que recomiendas para fines de posicionamiento de una página hecha en joomla?
Tomás de Teresa dice
Imagino que sería un error, se indica en el archivo robotx.txt y además es opcional. Desde mi punto de vista lo más importante es subir el Sitemap en las herramientas para webmasters del buscador.
Saludos
Maria Isabel dice
Hola Tomás
Si creo un web en un directorio local antes de subirla ¿es mejor hacerlo bloqueando el rastreo de la web a los buscadores y una vez subida permitir el rastreo? ¿o permitir el rastreo antes de subirla?
Un saludo
Tomás de Teresa dice
Hola Maria Isabel
Deberías bloquear el directorio hasta que la web esté lista. Lo único que en lugar de usar robots.txt te recomiendo poner acceso por contraseña. Esto puedes configurarlo mediante el archivo .htaccess y también con cPanel.
Saludos
Andrés dice
Hola Tomás, gracias por el artículo, entonces si los directorios tienen contraseña ¿no hace falta bloquearlos mediante robots, aunque tenga contenido duplicado? ¿Es malo tener muchos directorios bloqueados en robots o puede afectar al SEO? Gracias.
Tomás de Teresa dice
Hola Andrés
Al estar protegidos por contraseña, no importa lo que contengan ya que los robots no podrán acceder. En cuento a tu segunda pregunta, no veo problema siempre que entre esos directorios no haya contenido que te interese que esté en el índice de Google ;-)
Saludos
Joana Nastari dice
Muy buen artículo, Tomás. Fácil de comprender.
Una pregunta: ¿cuál es la ventaja del Disallow: /wp-?
Un saludo
Tomás de Teresa dice
Hola Joana
En el caso que describo sirve para bloquear el acceso a los directorios de WordPress, aunque no es una regla estrictamente necesaria.
Saludos
sara dice
hola !
En las Herramientas para webmasters de google, el acceso a mi web está “Denegado por robots.txt”. Este archivo en mi web es: User-agent: * Disallow: /
En wordpress, dónde puedo encontrarlo, o moficarlo ?? (No lo he creado yo)
Gracias.
sara dice
Hola de nuevo,
Finalmente, he conseguido tener acceso al archivo robots.txt, pero aún así no me permite buscarlo en google debido a su existencia.
Cómo puedo arreglar esto? ya que wordpress no me permite eliminarlo completamente.
Gracias de antemano. Saludos
Tomás de Teresa dice
Hola Sara
Por el momento cambia el contenido del archivo por:
User-agent: *
Allow: /
De esta forma permitirás el acceso a los buscadores. Más adelante puedes configurar el archivo según tus necesidades.
Fran dice
Hola! Tengo el mismo problema con el buscador de google, pero no logro encontrar donde lo modifico. Me podrías ayudar?
Tomás de Teresa dice
Hola Fran
El archivo se encuentra en la raíz del sitio (example.com/robots.txt) y para acceder necesitas usar un cliente FTP como Filezilla (https://filezilla-project.org/). También existen plugins que permiten acceder directamente desde el panel de control de el sitio, aunque eso depende del gestor de contenidos.
Saludos
angela catano dice
Buenas tardes,
Tengo el mismo problema del robot text para indexar mi pagina a Google. No se mucho del tema pero entiendo que debo corregirlo por filezilla , se acceder a mi pagina por este programa , pero me explicas como encuentro el robot text para corregirlo, en mi caso
el rastreador de google dice>
User-agent: *
Disallow: /wp-admin/
Sitemap: artelectronica.com.co/sitemap.xml.gz
De antemano gracias por la ayuda
Tomás de Teresa dice
Hola Angela
Una vez te conectes por FTP, probablemente encuentres el archivo en el directorio www, httpdocs o public_html.
Saludos
MariPaz dice
Hola Tomás:
No entiendo como, pero desde hace varios días Google no me indica el contenido de robots.txt. Fue de pronto, un día sin mas. Dice “Descargado: Nunca”. Y eso que antes sí que aparecía con una fecha en “Descargado”.
No he conseguido encontrar el motivo. ¿Hay alguna razón por la que Google puede no leer este archivo?
El archivo está bien colocado, y parece estar correctamente configurado, al menos en lo que veo.
Por otro lado, francamente interesante tu blog. Bien clarito.
Un saludo desde Andalucía
Tomás de Teresa dice
Hola MariPaz
Lo importante es que el buscador respete las directivas de Robots. Puedes probarlo un poco más abajo, introduciendo algunas URLs y dándole al botón “Probar”. Si funciona, no hay de qué preocuparse; probablemente aparezca la fecha de descarga en la próxima actualización.
Saludos
Andrea dice
Una consulta, el robot debe ir dentro del directorio httpdocs o dentro de wp-content?
Gracias y excelente material ;)
Tomás de Teresa dice
En httpdocs.
Lewis dice
Interesante. Me copio la configuración de tu robots.txt. Saludos.
Tomás de Teresa dice
No te recomiendo que copies la configuración tal cual, en todo caso que la adaptes a tu sitio.
Saludos
Raul25r dice
Muy bien explicado, gracias por la aclaracion. +1