¿Robots.txt qué es? 26 Consejos SEO para usarlo como un experto
Desde los graves problemas que el contenido duplicado causa en el posicionamiento de muchas web la mayoría de clientes, sobre todo los programadores, me hacen distintas preguntas sobre cómo crear robots.txt para mejorar el rastreo de un sitio y para impedir el acceso a contenido duplicado del mismo. He decidido sacar mi propia versión para responder a las preguntas más sencillas y más complicadas que me hacen acerca de ¿qué es robots.txt? ¿cómo modificar y generar robots.txt?
[-] Indice de contenidos |
---|
9 Primeras preguntas comunes sobre Robots.txt
- ¿Qué significa User-agent? Es la directiva con la que se especifica el agente de usuario, es decir, el robot que debe hacer caso de las instrucciones que se especifican bajo ese línea. Lo normal viene siendo poner * para hacer referencia a todos los robots o poner Googlebot para hacer referencia solamente a Google.
- Disallow: Impide el acceso al área indicada, funciona de esta forma. Disallow: /cadena-a-bloquear y no se seguirá nada que empiece por «cadena-a-bloquear».
- Allow: Todo lo contrario que Disallow, es decir, permite el acceso a esa cadena. Es muy común por ejemplo hacer este tipo de usos para permitir una subcarpeta de una carpeta cortada.
- Disallow: /recursos
- Allow: /recursos/css
- ¿Sirve de algo usar Crawl-delay? No, para Google no sirve de nada. La frecuencia de rastreo se configura en Search Console.
- ¿Qué es la directiva Sitemap? Con ella se indica la ruta a la que se accede al sitemap de la web.
- ¿Sirve de algo usar Noindex en robots.txt? En principio sí y sirve para indicar que no se indexe una ruta de forma análoga a Disallow. Pero Google dice que es mejor hacer esto en las meta-etiquetas robots de la cabecera html de cada página.
- ¿Qué es *? es un comodín que representa a cualquier texto o cadena de textos, lo normal es usarlo así: Disallow: /*/carpeta-interna-a-cortar
- ¿Qué es #? Se usa para poner comentarios.
- ¿Qué es $? Se usa para especificar que una cadena tiene que terminar allí, ejemplo: Disallow: /carpeta/$ especifica que solo corta la raíz de la carpeta pero no el contenido.
17 Preguntas no tan comunes pero que también me hacen
- ¿Dónde se coloca o dónde se accede a robots.txt? Siempre, siempre tiene que estar en la raíz del dominio de esta forma dominio.com/robots.txt
- ¿Un subdominio toma robots.txt de su dominio padre? No para nada, a cada subdominio le tienes que hacer su robots.txt único.
- ¿Los buscadores se pueden pasar robots.txt por el forro? Sí, si quieren sí. Por eso si no quieres que se indexe o no lo tengas o ponlo bajo acceso con login/pass
- ¿Es case-sensitive? Sí, exactamente tanto como lo es linux.
- ¿Puedo borrar contenido con Disallow? No, solo vas a impedir su acceso pero si ya estaba indexado o si tienes enlaces externos seguirá indexada. Ojo porque muchas veces lo uséis para borrar contenido y conseguís que ese contenido quede «atrapado» para siempre, es decir, si colocas una etiqueta noindex y bloqueas con robots.txt el robot no podrá entrar y no podrá des-indexar.
- ¿Permito que se acceda a CSS y JS? Sí, es lo más correcto hoy en día, al menos para Google, lo normal es hacer así:
- User-Agent: Googlebot
- Allow: .js
- Allow: .css
- ¿Cómo valido robots.txt? En Search Console existe un validador muy bueno que además te permite probar los distintos agentes de usuario de Google.
- ¿Sirve robots.txt para limpiar contenido duplicado? Si ya estaba indexado no sirve, si no lo estaba servirá para que no lo descubra o al menos no pierda el tiempo con él. Pero recordar robots.txt no es la panacea del contenido duplicado, el truco para no tener contenido duplicado es no generarlo y saber usar canonical.
- ¿Qué pasa si hago Disallow a una página redireccionada? Simplemente que el robots no se va a enterar de la re-dirección porque no puede entrar a consultarla.
- ¿Cuál es el tamaño máximo de robots.txt? exactamente 500 KB
- ¿Qué significa User-agent? La directiva User-agent se utiliza para especificar el agente de usuario o el robot al que se aplican las instrucciones del robots.txt. Usar «*» significa que se aplica a todos los robots, mientras que «Googlebot» se refiere específicamente al rastreador de Google.
- ¿Qué significan Disallow y Allow? Disallow se utiliza para bloquear el acceso a una ruta específica. Por ejemplo, Disallow: /ruta-a-bloquear evitará que los robots accedan a cualquier URL que comience con esa ruta. Por otro lado, Allow permite el acceso a una ruta específica, incluso si hay una regla de bloqueo más general. Por ejemplo, Allow: /subcarpeta permitiría el acceso a una subcarpeta dentro de una carpeta bloqueada.
- ¿Sirve de algo usar Crawl-delay? No, Crawl-delay no tiene efecto en el rastreo de Google. La frecuencia de rastreo se puede configurar en Google Search Console.
- ¿Qué es la directiva Sitemap? La directiva Sitemap se utiliza para indicar la ubicación del archivo de sitemap de tu sitio web. Proporcionar el enlace al sitemap en el robots.txt ayuda a los motores de búsqueda a descubrir e indexar correctamente las páginas de tu sitio.
- ¿Sirve de algo usar Noindex en robots.txt? Aunque puedes usar Noindex en robots.txt, Google recomienda utilizar las metaetiquetas robots en la cabecera HTML de cada página para indicar que no se indexe una URL. Es más efectivo y preciso en términos de controlar la indexación de las páginas.
- ¿Qué es ? ¿Qué es #? ¿Qué es $? El asterisco () en robots.txt se utiliza como comodín para representar cualquier texto o cadena de textos en una URL. El símbolo de almohadilla (#) se utiliza para añadir comentarios en el archivo robots.txt y no afecta las directivas. El símbolo de dólar ($) se utiliza para especificar el final de una cadena en una directiva. Por ejemplo, Disallow: /carpeta/$ bloquearía solo la carpeta raíz y no su contenido.
- ¿Dónde se coloca o dónde se accede a robots.txt? El archivo robots.txt debe estar ubicado en la raíz del dominio, accesible a través de la ruta dominio.com/robots.txt.
Gracias por leerme, y tú ¿qué pregunta tienes sobre robots.txt?
¡Hola! Muy interesante. Una pregunta. ¿Cómo de importante es el orden, y cómo la especificidad? Me explico. Esto es sobre todo por cuando queremos que sea disallow /wp-admin, pero que sea allow /wp-admin/admin-ajax.php.
Por una parte, puedo pensar que si el orden es importante, si ponemos primero el allow, el disallow mandará, y seguirá todo como disallow. Pero si manda la especificidad, aunque esté el disallow después, seguirá estándo como allow el /wp-admin/admin-ajax.php
¡Gracias por la respuesta!
¡Hola! Excelente pregunta. En el archivo robots.txt, el orden y la especificidad son factores clave a considerar para determinar qué directivas se aplicarán. Permíteme aclarar cómo funciona.
En primer lugar, el archivo robots.txt se procesa línea por línea de arriba a abajo. Cada directiva se evalúa en el orden en que aparece. Por lo tanto, si tienes una directiva «Disallow» seguida de una directiva «Allow» para la misma ruta, la última directiva encontrada prevalecerá.
En cuanto a la especificidad, es cierto que las directivas más específicas tienen prioridad sobre las directivas generales. Si tienes una directiva «Disallow /wp-admin» seguida de una directiva «Allow /wp-admin/admin-ajax.php», la ruta específica «/wp-admin/admin-ajax.php» estará permitida a pesar de la directiva «Disallow» previa.
En resumen, si tienes las siguientes líneas en tu archivo robots.txt:
Disallow /wp-admin
Allow /wp-admin/admin-ajax.php
La ruta «/wp-admin/admin-ajax.php» será permitida debido a la especificidad de la segunda directiva «Allow», aunque la primera directiva «Disallow» parezca aplicarse al mismo directorio. Sin embargo, ten en cuenta que si hubiera otras directivas «Disallow» adicionales que coincidan con «/wp-admin/admin-ajax.php», se aplicarían y prevalecerían sobre la directiva «Allow».
Espero que esta explicación aclare tus dudas. Si tienes alguna otra pregunta, ¡estaré encantado de ayudarte!