10+1 cosas que deberías saber sobre los ficheros robots.txt e indexación SEO |
Do not speak Spanish?.
Hace tiempo que no comentamos muchas cosas de posicionamiento en buscadores por aquí. Así que a fin de que no se diga el día de hoy he sacado de bocetos una serie de apuntes sobre uno de los básicos del posicionamiento SEO del que la mayoría de gente ignora detalles muy importantes: El archivo robots.txt, uno de los básicos de la indexación posicionamiento SEO. Robots.txt es un archivo destinado a apuntar a los motores de búsqueda que URLs tiene derecho a visitar y de cuales debería abstenerse. El funcionamiento es simple: antes de visitar una URL del site un robot debería mirar en este archivo para determinar si debe ir ahi a recoger información o si por el contrario el dueño del site prefiere que no entre. En definitiva son solo indicaciones que cualquier robot puede saltarse si quiere, mas a las que el robot de google hace bastante caso (que tampoco al 100 por cien ).
El archivo robots.txt es uno de esos temas técnicos del que todo posicionamiento en buscadores ha de saber lo bastante como para manipularlo con éxito. Por esta razón exactamente el mismo Google en su soporte nos indica como podemos crear el nuestro:.
Se nos da información muy directa y fácil de digerir. La redacción de estos ficheros es muy sencilla si bien cualquier fallo, por mínimo que sea, podría provocar que las arañas no entrasen en las páginas que nosotros queremos. En el mejor de los casos eso provocará que sigan visitando URLs en las que no querríamos que perdiesen el tiempo en el peor será todo lo contrario: no indexarán contenidos que en realidad si que queremos que aparezcan en el buscador. Es el tipíco aspecto esencial que de fácil que es la gente no se toma suficientemente en serio, y ahí esta el problema: la documentación de Google está bien si bien no cubre todas las pecularidades sobre como se marcha a interpretar dicho archivo y si nos quedamos solo ahí podemos cometer fallos que lamentaremos en el futuro.
Así puesto que, os dejo diez conceptos sobre estos archivos que hay que tomar en consideración y asimilar. Desde lo más básico hasta consejos que solo en webs complejas o con mucho detalle de optimización del crawl budget podremos aplicar.
Un Robots.txt es fácil...
1. Empezamos declarando en una línea el user-agent (nombre del sistema que está navegando o rastreando el site) al que deseamos afectar y tras esta indicaremos los accesos permitidos y prohibidos.
- En muchas ocasiones declararemos un accceso a todos (user-agent:*) y en ocsaiones nos referiremos a algun robot o bien crawler en particular (user-agent:googlebot).
2. Después empleamos directivas "Allow: expresion" y "Disallow: expresion" para señalar si damos acceso o bien lo eliminamos. Por defecto podríamos decir que un robot tiene acceso a todas las URLs del site ("Allow:*") pero aunque esto ya es así desde el principio mucha gente decide dejarlo declarado de forma explicita y proseguir prohibiendo desde ahí. Por eso incluso siendo superfluo no debe semejarnos extraño ver un robots que comienza por "Allow: *".
3. Por ultimo, podemos señalar nuestro sitemap.xml si lo queremos (sitemap: sitemap.xml). Esto para Google carece de importancia si gestionamos adecuadamente Google Search Console, si bien puede asistir a otros robots a leerlo así que mal no va a hacernos declararlo.
Una cosa curisosa de este archivo sitemap es que puede estar alojado incluso en otros dominios diferentes al nuestro (esto puede ser útil si por servirnos de un ejemplo necesitamos hacer subidas con cambios del fichero cada cierto tiempo y en la web que trabajamos no nos lo permiten ir actualizando de forma tan ágil).
Así un caso que cubra todo cuanto acabamos de mencionar sería el siguiente:
Visto esta base, que es lo más conocido del robots, vayamos a por los conceptos que no todo el planeta tiene tan dominados...
Existe mucha confusión con este punto, en parte pues la documentación anteriormente (en verdad cuando escribi este artículo mismo lo detallé mal) El fichero robots.txt siempre se busca en la senda "/robots.txt" de tu dominio. El robots.txt afecta al host donde está alojado mas solo a este host exacto. Esto supone que un subdominio no hará caso al robots.txt de su host superior y que http y https utilizan archivos diferentes. ¿Por qué etonces vemos sitios donde una configuración bloquea a otra? Lo vamos a ver más adelante mas es sobretodo por temas de hosts redirigidos completamente con un trescientos uno. Es decir, cuando vemos que el robots.txt de afecta también a midominio.com por norma general es por el hecho de que existe una redirección de "midominio.com/robots.txt" a "/robots.txt" y por lo tanto se lee el mimso archivo para ambos hosts. Lo mismo pasa con http y https, si uno esta redirigido al otro se aplica el mismo archivo a ambos.
Pero en definiva vendría a ser esto:
Así pues:
Además también hay que suprimir la creencia de que el robots.txt actúa como muchos piensan sobre carpetitas específicas del site. Esto no es cierto: Google solo lo lee si está en la raiz del documento:
"midominio.com/blog/robots.txt" no sirve para nada. Google no va a procurar leerlo ni tiene porque hacerle caso. Algunos Content Management System se empeñan en añadirlo pero esto no es parte de la definición oficial del fichero robots.txt.
Lo ideal es que un robots.txt esté codificado en UTF-8 para no tener problemas de lectura. Pero la verdad es que los archivos de texto pueden tener múltiples codificaciones y si por ejemplo creas el fichero desde tu bloc de notas de windows es probable que su formato sea otro. diseño de páginas web madrid de texto plano más profesionales (como por ejemplo, por daros una opción fácil y pontente notepad++ ) donde entre otras cosas se os deje seleccionar la codificación del fichero.
Aun así Google nos dice que puede leer otras codificaciones, lo que ocurre en estos casos no es tanto que el pueda o bien no, sino al producirlo se escriba en una codificación y el servidor lo devuelva en otra. Eso puede provocar los típicos caracteres extraños que terminan en que el archivo no funcione o bien no se lea de forma conveniente.
Aun dentro de los ficheros UTF-ocho hay una cosa en estos archivos que se llama. Lo idóneo es que los ficheros simples no tengan BOM mas Google es capaz de leer el robots.txt con un BOM inicial (y solo uno y solo al principio) así que si vuestro archivo tiene BOM no pasa nada.
Otra limitación la tenemos en el tamaño. Google nos limita a 500MB, (1/2 GB) si lo pasamos no leerá el fichero. Así que debemos economizar estos archivos y ya no solo por no acercanos a los 500MB sino porque son ficheros muy consultados por los robots y a mayor tamaño más desgaste de proceso y red en el servidor.
Un aviso: No es lo mismo un <meta name="robots" content="noindex" /> que un disallow en el robots. Significan cosas plenamente diferentes.
Todo esto como es lógico con matices... A la larga un Disallow provocará la desindexación si no hay enlaces externos cara esa página y al contrario un meta-robots a noindex terminará provocando menor rastreo de esa url que total Google no puede trabajar.
Un aviso: No es lo mismo un <meta name="robots" content="noindex" /> que un disallow en el robots. Significan cosas plenamente diferentes.
Todo esto evidentemente con matices... Con el tiempo un Disallow provocará la desindexación si no hay enlaces externos cara esa página y por contra un meta-robots a noindex terminará provocando menor rastreo de esa url que total Google no puede trabajar.
No tiene sentido un disallow+noindex o bien un disallow+canonical o bien disallow+rel-next/prev o bien un disallow+loquesea-en-el-html. Google no va a contemplar este HTML pues le hemos prohibido acceder a el así que ahórrate su etiquetado.
Lo mismo pasa aunque en menor medida con las redirecciones. Si yo creo una redirección 301 de una URL vieja a una nueva y al mismo tiempo bloqueo la vieja por robots.txt Google no debería enterarse de que he creado un trescientos uno (porque no debería acceder a la URL con 301) así que el traspaso de autoridad no se realizará de forma eficaz. En la práctica a veces si se da cuenta de la redirección mas en general se pierde mucha autoridad al hacer estas cosas.
Otro caso es el de meta-robots=noindex unido a otras directivas. En teoría nada impide que no puedas poner por servirnos de un ejemplo un noindex y un canonical al unísono, se puede pero es un poco singular y en realidad su interpretación es muy equívoca. Y ante estos casos equívocos sabemos que Google decide ignorar todas las señales del HTML (por no fiarse de ellas) por lo que aunque en teoría si se puedan hacer estas cosas no os recomendaría ninguna salvo la de "noindex,follow" e incluso esa, con cuidado (pues un noindex se rastrea poco, así que ponerle un follow termina siendo un tanto contradictorio).
La repasaremos porque llegados al detalle tiene miga y la gente comete muchos fallos.
Cada línea debe comenzar con una orden (allow/disallow) y cada orden hay que escribirla con mucho cuidado.
Esto tiene múltiples implicaciones:
disallow: /blog/ allow: /blog/$ allow: /blog/categoria-1
Si rastreará tanto la home como la categoria-1 del weblog, mas no el resto por el hecho de que todo el resto de URLs siguen prohibidas
disallow: /blog-corporativo/ allow: /*.html
No conseguirá que se rastreen los ficheros ".html" en /blog-corporativo puesto que es más larga la expresión de weblog-corporativo y en consecuencia pesa más.
Pero esta otra composición si lo hará:
disallow: /blog-corporativo/ allow: /blog-corporativo/*.html
Porque ahora "/blog-corporativo/*.html" es más largo que "/blog-corporativo/" ... así de simple, mas también así de ilógico.
Esto tiene varias implicaciones:
disallow: /blog/ allow: /blog/ dólares americanos allow: /blog/categoria-1
Si rastreará tanto la home como la categoria-1 del weblog, mas no el resto porque todo el resto de URLs prosiguen prohibidas
Si rastreará tanto la home como la categoria-1 del weblog, pero no el resto porque todo el resto de URLs siguen prohibidas
No conseguirá que se rastreen los ficheros ".html" dentro de /blog-corporativo puesto que es más larga la expresión de weblog-corporativo y por consiguiente pesa más.
Pero esta otra composición si lo hará:
Porque ahora "/blog-corporativo/*.html" es más largo que "/blog-corporativo/" ... así de simple, pero también así de ilógico.
Y esto es así... No hay nada más potente y duradero que una sentencia de robots.txt...
Por ejemplo el conocido "Crawl-delay" se ignora. En teoría debería indicar tiempo entre solicitudes de robots pero no le hace caso así que podemos olvidarnos de esta sentencia cuando menos para Google (otros rastreadores si que le hacen caso).
Todas las directivas inventadas por terceros también se pasan por alto.
Y por último las lineas que comienzan por "#" también se ignoran al comprenderse como comentarios. Sin embargo si que cuentan en el tamaño de archivo máximo así que es mejor no pasarse con su uso. Una recomendacion para comentarios: Cuando trabajamos con varios proyectos o bien muchos sites es mejor incluir notas de la version subida como comentario.:
Ya hemos dicho que el fichero robots.txt siempre y en toda circunstancia se busca en la ruta "/robots.txt" de tu dominio. Y que si no lo halla, podrá ir a buscarlo a un nivel superior de dominio (si existe). Por servirnos de un ejemplo si no lo halla en /robots.txt irá a buscarlo a dominio.com/robots.txt
Pero veamos ahora que pasa cuando lo solicita. Un servidor lo que hará cuando reciba la petición del fichero robots.txt es devolver un código de respuesta diciéndole a las arañas si lo está encontrando o no.
Conocer este detalle puede ser útil para administrar robots.txt programados en algunos sistemas. Podemos tratar la URL de /robots.txt solo como una redirección a donde verdaderamente administramos nuestro fichero robots.txt.
Sin embargo también puede suponer un problema en migraciones mal realizadas de un dominio a otro o bien de http a https. En estos casos podemos toparnos con que al migrar un site devolvemos un trescientos uno hacia el nuevo site con el robots.txt con lo que estaríamos aplicando el robots.txt nuevo al viejo dominio dejando de bloquear las urls viejas y pudiendo provocar una catarata de detección de fallos y pérdida de tiempos de rastreo. Por general la recomendación debería ser que todos y cada uno de los sites tengan su /robots.txt y que nunca se redirija pero esto en la mayoría de los casos no se hace así.
El cómo actúa Google si este error persiste en el tiempo no lo sabemos exactamente pero por el motivo que sea acostumbra a llevar a perdidas de autoridad y a que se intente reindexar la página web. Por este motivo, cuando hay fallos técnicos en una web, y se están solucionando en ese mismo día, es preferible obligar al archivo robots.txt a que devuelva error 503 y así parar la indexación completa del site hasta que se arregle el problema. Esto es mucho mejor que bloquear el rastreo ya que lo segundo tiene implicaciones más severas y un simple 503 es totalmetne temporal.
Conocer este detalle puede ser útil para gestionar robots.txt programados en algunos sistemas. Podemos tratar la URL de /robots.txt solo como una redirección a donde realmente administramos nuestro fichero robots.txt.
Sin embargo también puede suponer un problema en migraciones mal efectuadas de un dominio a otro o bien de http a https. En estos casos podemos toparnos con que al migrar un site devolvemos un trescientos uno hacia el nuevo site con el robots.txt con lo que estaríamos aplicando el robots.txt nuevo al viejo dominio dejando de bloquear las urls viejas y pudiendo provocar una cascada de detección de errores y pérdida de tiempos de rastreo. Por general la recomendación debería ser que todos los sites tengan su propio /robots.txt y que jamás se redirija pero esto en la mayor parte de los casos no se hace así.
El cómo actúa Google si este fallo persiste en el tiempo no lo sabemos exactamente mas por el motivo que sea acostumbra a llevar a perdidas de autoridad y a que se intente reindexar la página web. Por este motivo, cuando hay errores técnicos en una web, y se están solucionando en ese día, es preferible obligar al fichero robots.txt a que devuelva error 503 y así parar la indexación completa del site hasta el momento en que se arregle el inconveniente. Esto es mucho mejor que bloquear el rastreo ya que lo segundo tiene implicaciones más severas y un simple quinientos tres es totalmetne temporal.
Google recomeinda no Bloquear ficheros CSS y JS. Antigüamente eran ficheros que se solían bloquear pues no le servian a las arañas para nada. Mas ahora los robots de google son capaces de interprertar el HTML y así situar los contenidos en su contexto (saben si un texto es grande o pequeño, el color de fondo o que sitio ocupan en el diseño y lo perceptibles que son los contenidos para los usuarios. Así que Google nos solicita que le dejemos acceder a esto y así valorar la web al completo.
Si no les damos acceso a estos ficheros es cuando empieza a enviarnos notificaciones y en la práctica la autoridad/calidad que percibe de nuestra web disminuye.
Esto no quiere decir que no podamos jamás bloquearle un fichero JS (todos sabemos para qué 😈) mas si que hay que eludir este bloqueo a nivel general.
Los contenidos cuatrocientos (páginas no encontradas, o cuatrocientos uno que acostumbran a estar bajo login, etc...) si que son accedidos por las arañas. Google lo procura y se encuentra al visitar las páginas con que estas no responden y por consiguiente no indexan.
Al final con esta situación lo que provocamos es perder tiempo de rastreo en URLs que nunca se marchan a indexar así que acostumbra a ser preferible bloquearles el acceso de forma directa. Pensemos en cualquier URL, aun las de destino de los formularios de Google y una vez las tengamos presentes:
No cuento este punto entre los diez conceptos pues en realidad habla más de directivas de indexación que de robots.txt y es más una posibildiad que no es fácil de implementar para todos ( y en su versión más fácil no está recomendado y no sabemos verdaderamente si marcha).
Hablamos de localizar alguna forma no para prohibir el rastreo sino más bien para prohibir la indexación: el equivalente a la metaetiqueta de robots marcada a "noindex" que comentabamos ya antes. Sobre este tema podréis leer de todo, lo más común es que os encontréis artículos que os charlen de la directiva "noindex:" en el archivo robots.txt
Esta directriz viene a decirnos que podemos crear sentencias noindex en el archivo robots con exactamente la misma nomenclatura.
Por ejemplo:
Vendria a decirle al robot que puede navegar por la categoría-1 y rastrearla pero que los contenidos de las páginaciones de esta categoría no deben aparecer en el índice de búsqueda.
Seria excelente que nos dejasen hacer esto ya que como comentaba antes bloquear una URL no implica desindexarla y así tendríamos un control total sobre todo esto. No obstante, y a pesar de que podréis ver como muchos SEOs lo mientan e incluso, Google ya nos ha dicho quey mientras lo sigan diciendo creo que carece de sentido hacerlo. Así que no gozamos de esta posibilidad...
En su sitio tenemos otra forma más difícil pero eficaz a nivel de servidor que podemos usar. Google tiene documentado el empleo de directivas robots (index/noindex,follow/nofollow) con el empleo de "x-robots-tag" en las cabeceras.tan solo tenemos que enviar una cabecera del tipo "x-robots-tag" con exactamente el mismo valor que pondríamos a la meta-etiqueta robots para para pasarlo desde servidor y no desde HTML.
A una parte del propio sistema, esto nos abre la puerta a crear un fichero que gestione estas cabeceras en nuestro servidor. Podemos hacer esto con el lenguaje de programación de nuestro Content Management System (PHP, Java, .Net, etcétera) o bien directametne en la configuración del servidor. En ella gracias a los ficheros .htaccess y .htconfig podemos declarar el envio de cabeceras en un único fichero que definia qué puede y qué no puede indexar el robot.
anuncio de marketing social ,follow en paginaciones de tu página web a través del fichero .htconfig:
Marcar no indexar incluir caché o descripción de los archivos PDF en el .htaccess...
O no indexar paginaciones a través del módulo de modRewrite con el que administramos nuestras URLs afables y redirecciones:
Pero no quiero estenderme demasaido con este sistema, si deseas leer más sobre como ponerlo en práctica te invito a que visites otro artículo de este mismo weblog donde detallo otras. En la última de ellas se explica al detalle este sistema.
No se si os habrá pasado como a mi conforme he ido descubriendo con los años todo lo que os he expuesto en este blog post, mas la verdad es que como todo en el SEO, te percatas de que jamás sabes lo suficiente de todo. Me pareció interesante recopilar todo esto porque prosigo viendo con el tiempo que los inconvenientes que existen en muchos sites debido a no entender bien los ficheros robots.txt prosiguen ahí año tras año y nadie habla de ellos demasiado.
Asi que espero haber ayudado a algunos y a otros haberles descubierto algún detalle que ignorasen.
Como siempre os espero en los comentarios o por twitter.
¿Te gustó este post? Puedes proseguir sus comentarios a través de, o realizardesde tu blog.
Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |