Y después deltocaba charlar un tanto sobre el recurso hermano de este: la etiqueta meta-robots. Otro básico del SEO del que todo el planeta sabe cosas mas que como siempre tiene tal cantidad de pecularidades que es fácil que a muchos se nos escapen algunas. Probablemente incluso en este blog post me falte algún detalle por comentar, pero aún así creo que hay temas que la mayoría de SEOs desconocen o bien como míminimo conocieron hace ya tiempo pero ya no lo aplican.
El posicionamiento web en buscadores es lo que tiene, hay tantos detalles y surgen tantas cosas cada año que acabamos por borrar de nuestra cabeza las cosas que menos utilizamos. Por ese motivo tenia ya este post medio escrito en borradores del weblog, para poder acudir a estos detalles dentro de un tiempo y usarlos como referencia. Lo dicho, espero que os guste lo que viene a continuación...
Back to top1) Introducción: Cómo añadimos una etiqueta Robots a una página
Repasemos, la composición de la etiqueta robots es muy simple, se forma como cualquier otra meta-etiqueta de la página:
- Debe estar en el HTML de la página, específicamente dentro de la etiqueta "head" de exactamente la misma.
- Solo estar declarado una vez por página
- Se trata de una etiqueta "meta" que se compone de dos atributos: name y content, donde name indicaa que aplica la etiqueta y content es el atributo que marca las directrices a seguir
- Asi puesto que su formato en general es el siguiente:
<meta name="robots" content="Directrices para robots"/>
No tiene más misterio, la única dificultad es que cuando hacemos posicionamiento en buscadores en un site a un nivel alto acostumbramos a delimitar exactamente que valores queremos en cada página del site con lo que tenemos que preocuparnos de que nuestro Content Management System o la programación de nuestro site nos permita manipularla a nuestro criterio.
Dicho esto, vamos a ver detalles sobre que podemos hacer y cómo se interpreta esta etiqueta.
Back to top2) 1. Existen más directivas a declarar de las que acostumbras a utilizar (mas se utilizan mucho menos)
Las indicaciones posibles a indicar en el atributo "content" de la etiqueta se definen casi siempre a pares positivo/negativo y son todas y cada una opcionales. Podemos declarar las que deseemos, que el resto se entenderá siempre y en todo momento como positivas.
Las directrices pueden estar en minusculas o mayúsculas (se comprende igual un "Nofollow" un "NOFOLLOW" y un "nofollow" y entre ellas se apartan por comas (incluyendo las que queramos en la página). No importa demasiado si empleamos espacios entre ellas o no, si bien la costumbre es no utilizarlos, Google entenderá de forma perfecta tanto "noindex,nofollow" como "noindex, nofollow" o "noindex , nofollow".
Dentro de estas directrices las de index y follow son las más conocidas mas no son las únicas y podemos localizar indicaciones interesantes que nos saquen de algún apuro.
- index/noindex:Esta es la directiva más poderosa que podemos emplear. Con ella le afirmamos a Google que no queremos que esta página aparezca en los resultados de búsqueda. Su acción es bastante rápida en pocos días veremos que el contenido desaparece y si la empleamos al publicar un nuevo contenido este no aparecerá nunca en el buscador.
- follow/nofollow:La segunda más utilizada. Con ella le afirmamos que no rastree los enlaces de esta página. No nos engañemos Google los va a rastrear mas no les traspasará autoridad (o bien no mucha por lo menos). Es el equivalente a marcar todos los enlaces de la página con un rel="nofollow".
- archive/noarchive:Nos sirve para controlar la publicación de la caché que tiene Google sobre nuestro contenido. Si no deseamos que la caché de esta página se accesible al público la vamos a marcar como noarchive. Esto puede ser útil para contenidos o noticias altamente sensibles, cosas a ocultar o contenidos demasiado dinámicos para que esta caché sea útil. Por lo general la caché nos ayuda a ver que tiene Google sobre nuestras páginas así que no solemos desactivar su publicación.
- translate/notranslate:Con ellas podemos indicar a Google que no deseamos darle la opción de traducir al usuario. Sencillamente no le aparecerá ese enlace para emplear Google Translate.
- imageindex,noimageindex:Asi de fácil resulta prohibir indexar las imágenes de nuestro site. Útil cuando queremos resguardarlas o todo lo contrario, que no nos cuente como contenido duplicado
- "unavailable_after: fecha en":La más rara de todas. Esta nos deja indicar que queremos desindexar el artículo a partir de una data determinada. Útil cuando nuestro contenido deja de ser vigente o después de promociones caducadas que de seguir indexadas harían más daño que bien. Que no os asuste el formato RFC-850, es sencillamente una cadena como la que sigue: "20 Sep :00:00 GMT". Podemos discutir sobre su empleo y si no es mejor pasar las noticias a "noindex" de forma directa al pasar esa fecha: Yo os diría que la ventaja es que si lo indicáis así, Google ya está prevenido, mas de todas y cada una maneras pasada la fecha mejor dejar un "noindex" que un unavailable_after con fecha pasada.
- snippet/nosnippet:para que no muestre descripción del resultado. A ver, que alguna utilidad debe tener no mostrarlo solo que no se la veo. Peor CTR y solo por no estimar redactar un meta... La hemos utilizado solo para casos muy especiales donde por un motivo extraño Google no empleaba la Description que queriamos.
- none:es una etiqueta en desuso que viene a decir que lo marcamos todo a no (noindex,nofollow,notranslate,noarchive,nosnippet,...). La gente no la emplea porque un "noindex,nofollow" brota el mismo efecto en la práctica (si no indexas ya todo lo demás tampoco se hace) y es más claro de leer.
- por último, odp/noodp y ydir/noydir:hacían referencia a los directorios que se usaban para extraer descripciones de las páginas cuando estas eran inalcanzables (robots.txt, trescientos dos y cosas así) mas ya no se usan y estos directorios ya ni existen. Así que carece de sentido usarlas a día de el día de hoy si bien sigan en las documentaciones.
Como veis hay más opciones de las que normalmente manejamos. Y es bueno conocerlas todas y cada una, si bien indudablemente las que más usaremos sean index/noindex y follow/nofollow en las siguientes combinaciones:
- noindex,nofollow:Cuando no deseamos indexar ni que se sigan los enlaces de esta página. Queremos recortar por lo sano en esta página
- index,nofollow:Queremos indexar esta página mas no traspasar autoridad a sus enlaces. Esto solía usarse antaño en páginas de agradecimientos y de intercambios de enlaces (cuando menos los posicionamiento web en buscadores timadores)... que tiempos. A día de hoy es dificil que desees indexar una página de la cual no te resulta interesante ninguno de sus enlaces.
- noindex,follow:El caso de que no te interese indexar esta página pero si quieres que las arañas se tomen en serio sus enlaces. Muy utilizada antes de la aparición del rel="next/prev" para paginaciones y incluso el día de hoy para sistemas de páginas y reparar defectos de la indexación
3) 2. Es probable que la etiqueta meta robots (o bien al menos una parte de sus indicaciones) no sea precisa en la mayoría de tus páginas
No paro de ver como muchos SEOs Junior te marcan como un defecto del site el que este no contenga la etiqueta meta-robots aunque esta no sirva para nada. Nada más lejos de la realidad.
Debemos entender que esta etiqueta sobretodo marcha para limitar el uso que pueden hacer los robots (y Google en particular) de tus datos. Por defecto van a entender que pueden indexarlo todo, proseguir cualquier link y poner la información que deseen de tu web, en consecuencia las directivas positivas como "index,follow" no aportan nada a la lectura que hacen los robots site. Tampoco es que incordien a la indexación puesto que no estará mal si las incluimos mas de ahí a decidir que un site no esta optimado por no contar con de ellas hay un largo trecho. En posicionamiento web siempre combatimos contra las ventanas de trabajo que nos aportan los técnicos, que siempre son menos de las que nos gustarían. Generar labores que no aportan nada (mierdiptimizaciones, las llamamos nosotros) no es buena práctica.
Además, si nos ponemos en plan purista diríamos que incluirla suma peso a la página y por lo tanto liberándonos de todas y cada una de las etiquetas positivas de la página realmente optimamos más nuestro posicionamiento en buscadores que incluyéndolas. Y siguiendo con esta lectura el típico "noindex,follow" tampoco tiene sentido. "follow" es ya una directriz que debería seguir el buscador con lo que lo propio sería solo apuntarle "noindex" y el ya entenderá que si que puede continuar los links. Sin embargo por claridad justo esta combinación si suele emplearse si bien sea para dejarnos a nosotros mismos claro lo que procuramos al señalarla. La realidad es que tampoco ganamos mucho quitándo estas directrices si bien no nos aporten nada, así que dados estos casos todo esta bien resuelto esté como esté el site.
Back to top4) 3. NoIndex se hace cargo de la indexación no del rastreo.
Es decir, esta directriz está dirigida a decirle al robot que cuando rastree esa página no debe sumarla al indice de resultados del buscador. Mas eso no evita que las arañas de los buscadores web la visiten y saquen su información. En verdad están obligadas a hacerlo, de otro modo no podrían leer el noindex.
En la práctica esto solo nos afecta en un punto: la. Resumiendo diríamos que Google nos destina un tiempo de proceso de nuestras páginas, a mayor crawl budget más capaz es de hallar todos nuestros contenidos. Bien puesto que al añadir páginas con noindex estamos generando trabajo inútil a estas arañas: Les hacemos rastrear páginas que no van a indexar. Así que si lo que queremos es optimar el crawl budget el robots.txt acostumbra a ser mucha mejor opción.
Back to top5) 4. Mas noindex si afecta al rastreo: Lo reduce.
Venga, y voy a contradecirme solo ya. Pues es que en realidad el noindex si que afecta al rastreo y por consiguiente al crawl budget, cuando analizas los logs, acostumbras a ver que las páginas con noindex pierden rastreo. Si las equiparas con páginas afines del site en autoridad interna los robots acaban pasando menos por ellas que por el resto.
Esto es normal si lo piensas, ¿porque pasarán una y otra vez a leer contenido que no pueden utilizar? Lo normal es que se rastreen menos, aunque indudablemente es mucho menos efectivo que un bloqueo por robots.txt.
Aunque no puedo daros cifras (no lo tengo tan bien atado y me encuentro con diferencias muy grandes entre proyectos distintos) podríamos decir que el rastreo disminuye con las directrices de indexación de esta forma:
- index,follow:se trastrea todo de la manera normal
- noindex,follow:se rastrea menos, pero si la página tiene autoridad aun puede visitarla más de una vez al día. A fin de cuentas si le decimos que prosiga los enlaces debe rastrearla. Mas si que lo hace menos
- noindex,nofollow:se rastrea bastante menos, pero seguimos recibiendo hits en ellas
- rel="nofollow" en todos y cada uno de los enlaces que le llegan:Aunque no estoy cien por ciento seguro, mi sensación es que se rastrea incluso algo menos
- bloqueo por robots.txt:Se anula en una gran parte el rastreo, seguimos encontrando hits (pese a que los hemos prohibido) a las páginas por parte del los robots mas son anecdóticos
Así que tengámonos todo en cuenta: si afectas al rastreo, mas si es tu intención afectarle tienes herramientas mejores.
Back to top6) 5. Pensemos un poco: ¿Y para que deseas poner un nofollow en tu web? ¿sirve de algo?
Y esto es algo sobre lo que muchos SEOs me llevarán un poco la contraria. Pero a más que lo meditas no ves ningún sentido en declarar un nofollow en muchas de las páginas en las que se están declarando.
Partamos del concepto que veíamos antes: Google va a rastrear esta página hagas cuanto hagas. Así que tienes varias opciones las cuales no acabo de ver...
index,nofollow:
Estas páginas huelen muy mal. ¿Quieres posicionar pero que no traspase nada de autoridad a los links? No tiene mucho sentido, a menos que estés haciendo piratadas como intercambios de links
noindex,nofollow:
Y esta es la clásica que todo el mundo utiliza a diestro y siniestro pero... ¿has pensado si verdaderamente es lo que quieres? Bastante gente solo piensa en que no desea indexar la página ya ya decide que tampoco se prosigue. Esto es más por acercarse al 0 rastreo de los robots.txt que porque sea lo que realmente quieres. Deberiamos pensar que van a hacer las arañas con cada página que encuetren y te encontrarás con que muchas veces no tiene snetido el nofollow.
- ¿Quieres eludir el rastreo?
Entonces te has equivocado de opción, lo que buscas en un bloqueo por robots, no un noindex,nofollow
- ¿Quieres no indexar ciertas páginas molestas de tus menús?
Bien, tiene todo el sentido, mas que pasa con sus enlaces. La araña pasará por ahí de todas y cada una maneras, ¿seguro que no quieres que prosiga los enlaces y rascar un tanto de autoridad de esas páginas que no quieres en el índice mas que autoridad si que tienen? Piensalo y verás como quitas el nofollow de muchos contactar, avisos legales, secciones de marketing, etc... ¡Todo link cuenta!
- ¿Quieres frenar a la araña a estructuras completas y no puedes con el robots?
En este caso, si, si por ejemplo tienes un catalogo que no puedes indexar (porque es basura, porque esta parseado, porque no lo quieres y punto) y nadie te deja bloquearlo al completo por Robots.txt si que es cierto que lo único que te queda es suprimir la autoridad a los enlaces de ese catalogo. Ahí trabajaría sobretodo los rel="nofollow" de los links que van ahí mas además en el propio catalogo que tendrá muchos links a todas estas zonas un nofollow será más efectivo.
Entonces te has equivocado de opción, lo que buscas en un bloqueo por robots, no un noindex,nofollow
Bien, tiene todo el sentido, mas que pasa con sus enlaces. La araña pasará por ahí de todas maneras, ¿seguro que no quieres que siga los links y rascar un tanto de autoridad de esas páginas que no deseas en el indice mas que autoridad si que tienen? Piensalo y verás como quitas el nofollow de muchos contactar, avisos legales, secciones de marketing, etc... ¡Todo link cuenta!
En este caso, si, si por servirnos de un ejemplo tienes todo un catalogo que no puedes indexar (por el hecho de que es basura, por el hecho de que esta parseado, por el hecho de que no lo quieres y punto) y absolutamente nadie te deja bloquearlo al completo por Robots.txt si que es verdad que lo único que te queda es quitar la autoridad a los links de ese catalogo. Ahí yo trabajaría sobretodo los rel="nofollow" de los links que van ahí pero además en el propio catalogo que tendrá muchos links a todas estas zonas un nofollow será más efectivo.
Back to top7) 6. Existe la posibilidad de declarar precisamente a que robot nos dirigimos en la etiqueta meta y actuar por separado para cada uno de ellos de ellos
Tan solo sabemos que Google se toma en serio estas directivas especificas para robots, pero eso ya es suficiente para hacer cosas.
La lista de robots separadamente está aqui:
En ocasiones no queremos tratar igual a todos los robots, esto sucede especialmente en el momento en que nos hallamos con temas posicionamiento web vs Publicidad de pago o bien cuando lidiamos con los diferentes motores de búsqueda especializados de Google (que tienen cada uno de ellos su propia araña). En muchos sites creamos paginas que no queremos que Google indexe pues hablando en términos posicionamiento web en buscadores son basura, pero son páginas que con ciertas campañas pueden transformar realmente bien por lo que si queremos que otros robots puedan acceder a ellas.
Asi pues podemos crear más de una etiqueta. name="robots" siempre se ocupará del caso especial, mas luego podemos añadir etiquetas más detallas para los distintos robots:
Que vendría a prohibir la indexación tan solo a los robots de rastreo dedicados a resultados orgánicos y no afectaría a los de móvil, adsense o bien publicidad.
O por servirnos de un ejemplo este otro:
Prohibiría indexar solo en el buscador de noticias (algo que en España ya no importa, mas en otros países si).
O por ultimo:
Prohibiria indexar en google search el resultado mas si podríamos ver las imágenes y vídeos de esa página en el buscador de Google Images y el de Google Vídeos.
Back to top8) 7. Cuando mezclas noindex con otras directrices en el html (canonical, rel="prev/next", etc. las cosas no funcionan como esperarías
Marquémosnos la norma: Si decidimos que algo no se indexa, no liemos a Google con más directrices. Se lía y para cada caso hace cosas distintas. No es buena idea y punto.
- Comentábamos que una vez señalas un noindex marcar cosas como nosnippet, noarchive, notranslate, etcétera carecía de sentido:si no indexas no hay resultado y en consecuencia no hay que tocarlo. Marcar cosas en negativo no tiene inconvenientes pero si puedes provocar que Google no haga caso a tu no index si indicas cosas como un content="snippet,archive,transalte,follow,noindex", que son ganas de tocarle las narices. No lo hagáis y no tendréis que preguntaros porqué no os lo desindexa
- El caso del noindex + canonicales ya un clásico. Que no tiene sentido es obvio, no puedes decirle al robot que no te indexe mas que la url canónica (a no indexar) es otra. ¿Pero que buscas con eso? El caso es que consigues que se comporte de forma caótica y no puedas saber a ciencia cierta si va a aplicar el noindex o no de la página. Me gustapero no pues este conforme con sus conclusiones ( siempre y en toda circunstancia he creído que la primera indexación es muy parcial y básica y sus ensayos creo que responden más a eso responde a eso) sino más bien porque prueba el caos que representa juntar estas directrices. Puestos a no saber que hará el buscador mejor no liarle, ¿no?
- Y luego el segundo clásico para paginaciones: ¿podemos usar "noindex,follow" a partir de la primera página y además añadir un rel="next/prev"a todas? La lógica nos vuelve a decir que no tiene sentido: next/prev sirve para identificar que varias páginas son parte de un mismo listado y así evitar que las entienda como duplicadas... en teoría a ojos de Google sumamos todas con todos sus enlaces en un enorme listado (en la práctica tan así no es). Pero si esto es lo que procuramos ¿qué sentido tiene que desindexemos parte de ese contenido unificado? En un caso así parece que hace más caso al noindex y desindexa las páginas así marcadas mas yo no me fiaría, si le afirmas tonterías a Google el responde con caos.
En conclusión, no se mezclan indicaciones de indexación contradictorias en el HTML. Examina lo que tienes puesto y mira que no te contradigas a ti.
Back to top9) 8. ¡Cuidado! Google lee el meta-robots en cualquier parte de la página, no solo en el <head> de la página
Y esto lo he descubierto y vivido en mis propias carnes últimamente y no ha sido hasta queme ha sobre aviso que no he sido consciente de ello. Y es que parece que a Google le importa un pimiento donde pongas tu meta-robots. Si el lo ve en la página, en cualquier una parte del HTML lo lee y lo prosigue (y cuidado que muchas herramientas de validación no actúan igual y solo lo leen en el head).
Lo mejor que puedo daros es mi propio ejemplo, en, en su primera edición me dejé escrito en el artículo la etiqueta "<meta name="robots" content="noindex" />" y se me olvidó codificarla con carácteres HTML a fin de que no se entendiese como una parte del HTML. Esto provocó dos cosas:
- Que en artículo no se viese esa parte escrita (encontrando una oración inacabada en un párrafo)
- Que Google no me indexase dicho artículo y ya de paso me desindexase la home del blog ya que también aparecía esa etiqueta ahí...
- Y por el mismo motivo, me desindexó también la categoría de indexación del blog
¿Divertido verdad? Así que si vais a escribir sobre posicionamiento SEO en una página web tened mucho cuidado que Google lo lee. Y si os encontráis con la típica página que se pasa por el forro los estándares web cuidado con lo detectan vuestras herramientas que Google podría estar advirtiendo otra cosa.
Back to top10) 9. Google lee y obedece a las etiquetas que creamos en el HTML por javascript y por ende podemos incluirlas vía GTM
No es un secreto que Google interperta JS. No es la manera recomendada de hacerle indicaciones pero más o bien menos, si todo carga en el primer print de página (sin necesitar click o acciones del usuario) termina leyéndolo. Esto ha abierto gran cantidad de posibles parches JS o de forma más controlada vía Google Tag Manager (una herramienta de gestión de tags de analítica y marketing).
Así pues para cualquiera que sepa programar javascript resulta parcialmente sencillo añadir a la cabecera de la página una etiqueta robots que dirija la indexación o bien desindexación de contenido. Marcha en los dos sentidos: Creando etiquetas robots que la página no tenía o borrando las que existían.
Por ejemplo, para desindexar contenido desde Google Tag Manager podemos crear una etiqueta adaptada con el siguiente contenido:
Y lanzarla en todas y cada una de las páginas vistas que nos interese desindexar. Veréis como tarda un tanto mas termina desindexando el contenido de Google.
Back to top11) 10. También podemos mandar las directrices de meta-robots desde las cabeceras de la página
Esto ya lo adelanté en otro blog post pero en realidad tocaba mencionarlo en este. Además comentare ciertas cosas más sobre para qué hacerlo y como lograr la configuración...
Las directrices de robots no solo se pueden mandar en la etiqueta meta-robots sino disponemos de una cabecera que podemos emplear a nivel de servidor para enviarlas.
Todo esto está detallado en la. Esta nos detalla el empleo de la cabecera http "x-robots-tag". Las cabeceras son información que el servidor envía antes de hacernos llegar la página web cuando la pedimos y sirven para muchas cosas distintas: informan de si la página es adecuada, si da cuatrocientos cuatro o si es un 301, si el navegador debe usar caché, tiempo de expiración de esta, etc.
Cualquier lenguaje de programación web es capaz de administrar las cabeceras antes de enviar la página. Un ejemplo serían estas (las de la home de mi blog):
Aquí por programación podemos añadir las que deseemos, asi que no nos cuesta demasiado añadir una linea que declare el x-robots-tag con las mismas directivas que incluiriamos en el atributo content de la etiqueta meta-robots.
Por ejemplo hacer este añadido en PHP sería tan sencillo como añadir esta línea ya antes de la primera impresión de HTML de la página:
¿Por qué mola mucho más meter las directrices de robots por headers que en el HTML?
El primer punto interesante es que Google es consciente mucho antes que estas existen. Así básicamente podemos evitar los inconvenientes de colisión con otras etiquetas en código HTML que hablabamos ya antes. Una cabecera se interpretará antes y por tanto un noindex en una cabecera tiene muchas más garantías de no indexar. Cuidado aquí por el hecho de que otras directrices como los canonicals también pueden enviarse en cabeceras y ahí si que habría colisión.
De la misma forma en crawl budget debería asistir más que una etiqueta meta (esto lo digo sin haber hecho el test oportuno, mas tiene lógica que se interprete más rápido y se rastree menos).
Otro punto interesante es que nuestra estrategia de posicionamiento es menos evidente: la mayoría de los SEOs no miran los headers al auditar. No es difícil mirar headers al hacerlo:
- podeis usar
- Alguna herramienta en línea especializada como
- Y los rastreadores más populares (screamingfrog, sitebulb, deepcrawl, ...) incluyen este dato
Pero la verdad es que a muchos se les pasa por alto. En un primer analisis rápido absolutamente nadie lo mira, e inclusive en audits en profundidad muchos no se miran este dato o no saben mirarlo. Así que es una forma de hacer tu estrategia SEO menos patente para la competencia.
Siguiendo con las ventajas, en programación del site no implica tocar maqueta, con lo que los desarrolladores no tienen pues tocar plantillas para ir añadidendo este tag a la página web. En muchas ocasiones suponesmo que los cambios son más fáciles por estar en el HTML mas en muchos negocios no es así: llevar un cambio al HTML provoca tocar CMS, Modelo de datos, Lógica de programación y después maqueta. Si les ahorramos aunque sea uno o bien dos de estos pasos mejor que mejor.
Por último, las cabeceras no solo se pueden controlar desde programación. Desde la configuración del servidor tambien podemos definirlas. Aquí los archivos htaccess de apache (o bien el htconfig si tocamos las tripas del servidor) también nos sirven. En seo estamos habituados a tocarlos para control de redirecciones, mas resulta que también nos sirven para mandar cabeceras y por lo tanto para eludir la indexación.
Lo mejor de esta técnica es que podemos hacerlo por expresiones regulares sin precisar URL a URL cuales indexamos y cuales no. En la práctica esto significa que si que tenemos un lugar facil de manipular y lejos de la programación real de la web donde indicar un noIndex a Google.
Esto nos lo explica desde el principio(el creador del famoso complemento posicionamiento web de WP). Mas vamos, ya has leido demasiada intro asi que vamos al grano: lo que vamos es a acotar este género de líneas en el .htaccces de la página web...
Para eso utilizamos la directiva de configuración "Header set" o "Header add". Estas nos dejan añadir cabeceras HTTP desde estos ficheros. Sin embargo no todos y cada uno de los servidores dejan hacer esto por defecto.
- Si tienes un servidor compartido probablemente si que estén activas y de no estarlo tendrás que ponerte en contacto con tu distribuidor a fin de que te afirme como activarlas (si se puede, claro).
- Si tienes el típico servidor donde solo está activo lo que has ido usando para tu página web posiblemente a la primera las cosas no funcionen. Muchas distribuciones de linux vienen ya con el módulo de envío de headers activo pero justo Ubuntu y Debian (las 2 más utilizadas) lo traen pero no lo tienen activado.
¿Como se si lo tengo activo? Bueno, puedes revisar los módulos tu mismo o bien sencillamente intentar activar una directiva de creación de cabeceras. Si el servidor te da un fallo 500 "Internal Server Error", es que no están soportadas 😛
Por ello os recomendaría siempre y en todo momento añadir cualquiera de estas manipulaciones de headers bajo la etiqueta " " a fin de que si el módulo no existe por lo menos no hagamos fallar a toda la web.
Activar el módulo de headers en apache
Tenemos que entrar por consola y ahí teclear estas dos líneas:
* Hay que ser root o bien emplear "sudo" para lanzarlo, claro.
Cómo implementarlo
Para implementarlo solo debemos editar los ficheros de configuración del servidor (.htaccess o .htconfig en dependencia de a que nivel quieras actuar) y añadir las comprobaciones precisas para ver si crear o bien no las cabeceras. El inconveniente viene que dependiendo de lo que quieras hacer y dónde te dejen hacerlo el sistema para conseguirlo no es el mismo.
Por lo general, siempre que podamos o no estemos seguros de como marcha nuestro servidor, todas estas definiciones las englobaremos en la etiquetas " " y "" para evitar fallos por si acaso no se nos permite crear headers.
1. Si podemos acceder al .htconfig
Este archivo es el que se hace cargo de las configuraciones del servidor. Es un fichero altamente sensible donde además se pueden entremezclar todos y cada uno de los hosts a los que atiende el servidor. Es difícil que nos den acceso si no es un servidor dedicado con lo que en proyectos menores no nos servirá.
Aquí la configuración es verdaderamente fácil pues podemos acceder a la directiva , con ella actuamos sobre la URL que se carga en el navegador y la empleamos para saber si aplicamos algo o bien no a la configuración. Así que básicamente podemos hacer algo parecido a cuando hacemos redirecciones con ModRewrite.
Ejemplo para marcar un noindex,follow en paginaciones de la página web con .htconfig:
Aquí os dejo otra para no indexar contacto o aviso legal a fin de que dejen de aparecer esas páginas cuando alguien busca la marca... (a criterio de cada uno si es mejor hacerlo o bien no)
O para no indexar ni proseguir los links de nuestro chungui blog cuyo contenido histórico está robado de otros blogs:
Como veis, si realmente nos dejan tocar en donde toca hacer estas definiciones puede ser sencillísimo. Desgraciadamente ya os digo que muchos negocios pequeños no podrán acceder a este archivo y en los más grandes la gente de sistemas no verá con muy buenos ojos que andemos tocando ahí (por el hecho de que es mucho más sensible que un htaccess).
2) Con .htaccess y ficheros
En .htaccess (donde en posicionamiento en buscadores estamos más acostumbrados a entrar) también podemos hacer cosas, pero por degracia las directivas de y aqui no están libres. Así que no podemos acceder a URLs como tales, sino a los archivos y carpetitas de la página web. En lugar de aquí disponemos de para jugar con los nombres de ficheros y con para mandar cabeceras en directorios completos. Sin embargo recordemos que charlamos de ficheros reales en el servidor no de URLs de la página. Esto significa que por servirnos de un ejemplo en un WP tanto la url "/mi-bonito-post" como "/category/mis-posts" o "/page/15" realmente terminan todas ejecutando el fichero "/index.php" con lo que no podríamos distinguir cabeceras de estas páginas con este sistema.
Os pongo el ejemplo que en el artículo de yoast aparecía para no crear cache ni descripción de nuestros ficheros .doc o bien .pdf (si bien corregido que el suyo tiene un errorcillo y con el IfModule añadido a fin de que no pete), como veis aqui si podemos utilizarlo pues se refiere a archivos concretos.
También podríamos hacer lo mismo con todo el contenido del directorio "wp-admin":
Como si que es un directorio real en el servidor (podemos aun verlo en el FTP de nuestro proyecto) si podemos trabajar con el en .htaccess.
2) Con .htaccess y ambientes de modRewrite
Hasta ahora tenemos 2 vías sencillas para trabajar con esto: Una en un sitio que es difícil que nos den acceso y otra con un sistema que no es capaz de distinguir URLs virtuales/amigables/sobreescritas que terminan todas y cada una en exactamente el mismo fichero. ¿Nos falta algo verdad? Si, La capacidad de hacer esto con URLs de este tipo pero en el .htaccess. Un lugar donde la directiva dedicada a leer esto no está disponible...
Por suerte, en la enorme mayoría de los casos en los que tenemos este problema, este sucede pues estamos usando ModRewrite en la página. Un módulo de Apache con el que indicamos estas URLs amigables (y que en SEO empleamos muchas veces para hacer las redirecciones trescientos uno). Bien, puesto que resulta que ModRewrite a la hora de acotar como se leen las URLs es capaz además de crear ambientes (environments), entonces estos entornos pueden percibir headers distintos cada uno de ellos.
¿Como hacemos esto? Pues es un tanto más complejo que antes, pero prosigue siendo fácil...
- Identificamos en nuesrto .htaccess donde empiezan las acciones de modRewrite
- Debemos escribir siempre: Después del condicional de y de su configuración basica, mas ya antes de ninguna declaración que afecte a ninguna URL
- Tres líneas distintas:
- La primerar recoge la variable por cien THE_REQUEST que es lo que realmente el navegador ha pedido al servidor. Es la petición completa por lo que incluye el método y el protocolo. Así si accedemos a "/pagina" la variable THE_REQUEST tendrá el valor "GET /pagina HTTP/1.1". Sobre este valor debemos hacer la expresión regular para detecar las URLs a las que afectar.
- La segunda línea declarará el nombre del entorno para todas y cada una de las URLs y archivos que coincidan con la línea anterior.
- La tercera línea será la declaración de cabeceras
Por ejemplo, para hacer un noindex, nofollow sobre el weblog las tres líneas serían:
RewriteCond por cien THE_REQUEST "^(GET|POST) /blog/.* HTTP" RewriteRule .* - [ENV=NOINDEXBLOG:true] Header set X-Robots-Tag "noindex,follow" env=NOINDEXBLOG
- La primerar recoge la variable por cien THE_REQUEST que es lo que verdaderamente el navegador ha pedido al servidor. Es la petición completa por lo que incluye el método y el protocolo. Así si accedemos a "/pagina" la variable THE_REQUEST tendrá el valor "GET /pagina HTTP/1.1". Sobre este valor debemos hacer la expresión regular para detecar las URLs a las que afectar.
- La segunda línea declarará el nombre del entorno para todas las URLs y archivos que coincidan con la línea precedente.
- La tercera línea será la declaración de cabeceras
Por ejemplo, para hacer un noindex, nofollow sobre el weblog las 3 líneas serían:
Veamos esto para el caso de wordpress que tiene un .htaccess sencillito...
.htaccess original de wordpress:
Y imaginemos que deseamos hacer que las paginaciones no se indexen, así que debemos detectar las URLs que terminan en "page/número" y asignarle un "noindex,follow". Así que encontramos en el código la expresión , vemos su configuración básica que enciende el motor y establece la URL base a "/" y bajo esta añadimos la declaración del ambiente "NOINDEXNOFOLLOW". Luego, declaramos los headers para este ambiente.
.htaccess con noindex en paginaciones para wordpress:
A partir de ahí, se trata solo de saber hacer las Expresiones regulares correctas. Por poner un ejemplo si nos ponemos a tejer fino y solo queremos desindexar las paginaciones desde la 5ª página y solo si estas son de la home o bien de categorias principales de wordpress el código sería el mismo, pero la expresión regular se complicaría:
¿No es excelente delimitar todo esto así? La página web tiene que acompañar claro, si no somos capaces de crear las expresiones regulares precisas para advertir las páginas no podremos trabajar, pero en muchas ocasiones si que podemos hacerlo y una vez conocido el sistema no es tan difícil de implementar. Somos muy poco intrusivos con la programación de los sites y ante errores al estar toda la definición en un único fichero es muy fácil de supervisar.
Back to top12) Conclusión
La cantidad de detalles a supervisar sobre indexación es abrumadora. En dos días hemos tocado solo los 2 recursos más básicos que existen y ya da para replantear las estrategias de muchos sites.
Como todo, priorizar y seleccionar es esencial. No tenemos que aplicarlo todo a todos y cada uno de los sites e incluso de tener que hacerse no tiene pues ser desde el primer instante. Empecemos por controlar que no hemos cometido fallos, prosigamos seleccionando bien que queremos hacer con las arañas y después ya poquito a poco la vamos liando.
Al final estas cosas se aprecian. Sobretodo en sites donde Google no llega a todas las páginas que le ofrecemos el control sobre que indexar y que proseguir supone elegir que Keywords realmente nos importan y eso se traduce en mejora de visitas.
De instante os voy a dejar tranquilos con estos temas... quien sabe, igual en un tiempo me lance a por los sitemaps, canonicals (aquí hay mucha chicha), atributos rel... tambien tocaría editar los viejos artículos que tengo sobre HTML... cuanto trabajo por delante...
¿Te gustó este post? Puedes proseguir sus comentarios a través de, o bien realizardesde tu blog.
Back to top