Conversión sencilla de texto HTML a texto plano

El HTML ha evolucionado mucho desde sus inicios y gracias a el somos capaces de visualizar páginas que se basan en su mayoría en texto -depende, por supuesto- pero que están adornadas con todo tipo de encabezados, fotografías que acompañan las palabras, y demás elementos. Sin embargo, en ocasiones podemos necesitar el texto en un formato menos rico, más plano.


Texto HTML a texto plano


A fin de cuentas, cualquiera que quiera dicho texto en formato de texto plano puede acceder al código fuente de la página, el cual interpreta el navegador, y guardarselo, el problema es que éste está lleno de los elementos típicos del lenguaje que hacen posible su formato, y que dependiendo de la complejidad de la página pueden ser muy abundantes, tanto como para perder bastante al lector del texto, eso por no hablar de casos en los que necesitemos dicha información para adaptarlo a otros formatos.


Por eso hoy he querido hacer esta nota en la que os hablo de dos utilidades para convertir texto HTML a texto plano, una desde Windows, muy potente y que sin duda no os decepcionará, y otra más simple para hacer operaciones sencillas desde el propio navegador. Empezamos.


HTMLasText (Windows)


Estamos ante una de las mejores aplicaciones al respecto que he visto, y en realidad por la cual estoy escribiendo este artículo. HTMLasText es simple pero potente, portable pero imprescindible si trabajamos con HTML y en ocasiones necesitamos texto sin formato. Su mayor ventaja sobre otros programas es que puede trabajar con múltiples archivos, convirtiéndose en una herramienta que puede servirnos para transformar sitios enteros en formato texto.


Aparte, las opciones de conversión son suficientemente intuitivas para que no haya que explicar que hacen. Tenemos todas estas disponibles:



  • Especificar los caracteres por línea

  • Añadir saltos de línea o separadores cada vez que se encuentren encabezados

  • Añadir el título o deshacernos de él

  • Incluir carácteres para marcar negritas (por ejemplo comillas, etc)

  • Respetar los centrados de texto

  • Respetar las alineaciones laterales de texto

  • Evitar elementos como tablas o separadores

  • Formateo de vínculos


La utilidad viene de la mano de NirSoft, compañía de software que dispone de otros programas conocidos como Battery Info View o My Uninstaller.


HTML to Text (Chrome)


HTML to Text es una utilidad muy similar pero esta vez que utilizamos bajo Google Chrome. Ideada para convertir texto HTML rápidamente a texto plano, en palabras de su autor, para hacer más entendible que el código, su utilización es realmente sencilla.


Al acceder a la extensión se nos muestra una caja de texto donde debemos pegar, manualmente, el texto HTML. Después simplmente tenemos que utilizar el botón de convertir para ver el resultado en una nueva caja de texto, donde se habrá eliminado todo el código y además los espacios en blanco restantes si así lo decidimos en la pantalla principal.


Se trata de una herramienta sencilla enfocada a gente que tenga que trabajar adaptando texto HTML, o que tal vez se encuentre realizando una migración y recopilando datos por algún motivo.


La entrada Conversión sencilla de texto HTML a texto plano aparece primero en Bitelia.












via Bitelia http://bitelia.com/2013/01/texto-html-a-texto-plano

El diseño web adaptativo o responsive design

Estamos en un mundo móvil, y cada vez más accedemos a internet desde dispositivos variados, con necesidades y en situaciones diferentes. Así como los diseñadores sobre el papel tenían el control absoluto de lo que se presentaba estáticamente, fijo, impreso, al diseñar para web se encuentran con multitud de resolución de pantallas, con navegadores diferentes, con formas de interactuar que van desde un teclado, mouse, stylus o los dedos. Como dice John Allsop, desarrollador, “debemos entender y adoptar la idea de que la web no tiene los mismos límites y debemos diseñar con esta flexibilidad. Pero primero debemos aceptar la marea y el flujo de las cosas”.


El diseño web adaptativo, del inglés responsive web design, a veces se traduce no del todo correctamente como “diseño responsivo”, tiene todo que ver con esto. Es una técnica de diseño y desarrollo web que, mediante el uso de estructuras e imágenes fluidas y media queries en la hoja de estilo CSS permite que el sitio web se adapte al entorno del usuario, sea cual sea el dispositivo que utilice para navegar.



El término fue creado por Ethan Marcotte, quien además de escribir una serie de artículos sobre el tema en A List Apart, publicó un libro al que llamó Responsive Web Design , donde describe teoría y práctica. El concepto One Web había partido del W3C en 2008 y hace referencia a construir una Web para todos (Web for All), accesible desde cualquier dispositivo (Web on Everything).


En los sitios móviles puede darse el caso de que la función y el contenido necesiten ser diferentes que en el sitio visto en la versión de ordenador de sobremesa, y allí es donde el diseño adaptativo puede resolverlo, quitando o reduciendo la visibilidad de ciertos elementos.


El diseño web adaptativo supone que usando HTML y CSS logremos una sola versión que cubre todas las resoluciones de pantalla, por lo que el sitio web creado es accesible desde todo tipo de dispositivos. Marcotte define como tres los ingredientes técnicos para el diseño web adaptativo:



  • Fluid grid (cuadrícula fluida): En lugar de píxeles utiliza porcentajes para definir los anchos de las columnas o divs.

  • Imágenes flexibles: Las imágenes no tienen anchos fijos sino un máximo (o max-width), que por lo general suele mostrarse al 100% en un ordenador de escritorio. De esta manera, las imágenes se reducen para ajustarse a otras pantallas o resoluciones de navegador.

  • Media queries: permiten consultas al CSS personalizado basándose en el ancho mínimo y máximo de un navegador (min-max width).


Ventajas


La cantidad de usuarios que acceden a la web desde dispositivos móviles ha aumentado y seguirá haciéndolo. Un estudio de Compuware, un proveedor de servicios y software, muestra que un 57% de los usuarios no recomendaría una compañía con un sitio móvil mal diseñado y que un 40% visitarían la página de un competidor antes que usar un sitio escasamente optimizado para su navegación en móviles.


Las ventajas del diseño web adaptativo son obvias:



  • Mejor experiencia de usuario: todos los usuarios ven la web de la mejor manera posible para el dispositivo desde el que acceden

  • Costes más bajos: Se reducen los costos de creación y mantenimiento: ya no es necesario desarrollar aplicaciones para distintas versiones móviles

  • Actualizaciones más eficientes: cualquier actualización o modificación en el diseño, se ve reflejado en todas las plataformas, lo que reduce tiempos y márgenes de errores

  • Búsquedas: Al hacer una búsqueda, aparecerá una URL única en los resultados, por lo que se ahorran redirecciones y posibles fallos.

  • Mejor SEO: Google puede descubrir mejor tu contenido

  • Accesible a todos: incluidos las personas con distintos problemas de disminución visual


The Boston Globe y otros ejemplos



La de The Boston Globe es considerada la web insignia del diseño web adaptativo, en parte porque fue uno de los primeros grandes sitios en internet en adoptar el responsive design y también por estar el mismo Ethan Marcotte en el equipo de desarrolladores que se encargó de su rediseño. Además de esta, hay otros buenos ejemplos de diseños adaptativos, empezando por la misma de Marcotte, como era de esperar:













via Bitelia http://da.feedsportal.com/c/33160/f/538987/s/25f7dbea/l/0Lbitelia0N0C20A120C110Cdiseno0Eweb0Eadaptativo0Eresponsive0Edesign/ia1.htm

8 recomendaciones para mejorar el SEO de tu sitio web

El SEO de un sitio web es una de las razones fundamentales de su éxito. En palabras simples, la optimización para motores de búsqueda (Search Engine Optimization) es la forma natural de lograr que un sitio web se ubique en las primeras posiciones de los resultados de las consultas en buscadores como Google, Bing, Yahoo, entre otros.


Mejorar SEO web


Aunque el SEO depende de múltiples factores, algunos de mayor peso que otros, es necesario ir desde lo más elemental para lograr que los objetivos de nuestra estrategia de posicionamiento se cumplan. Hacer SEO va mucho más allá de reconocer palabras clave, además de esto hay que saber como usarlas de manera adecuada. Tampoco es un trabajo fácil, de hecho requiere dedicación y tiempo, pero nadie ha dicho que sea una labor imposible de llevar por tu propia cuenta. Con estas 8 recomendaciones para mejorar el SEO de tu sitio web podrás comenzar a dar los primeros pasos sin gastar un céntimo.


1.- Utiliza guiones “-” para separar las palabras clave dentro de la URL de tus páginas web. En la medida de lo posible utiliza URLs cortas pero que a su vez sean descriptivas.


2.- Inserta palabras clave dentro del contenido del sitio, pero hazlo de manera inteligente. Usar palabras clave en exceso puede traer consecuencias adversas. Debes respetar la naturaleza del texto, el mismo debe ser fácil de leer y entender, no incluyas palabras clave de manera forzada. Dicho de otra forma, escribe para los humanos no para los motores de búsqueda.


3.- Incluye palabras clave dentro de la meta-etiqueta description , aunque esto no afecta directamente el ranking de tu sitio en los motores de búsqueda, sí ayuda a atraer más clics desde la página de resultados.


4.- Resalta en negritas las palabras clave dentro del contenido del sitio, esto ayuda a que los usuarios centren su atención en las palabras de más relevancia y contribuye de manera importante en la optimización del SEO.


5.- Rellena los atributos alt y title de las imágenes de tu sitio utilizando palabras clave, esto ayudará a que el buscador las indexe. Esto es mucho más importante si utilizamos imágenes que funcionan como enlaces.


6.- Como decía al principio, el truco está en saber como usar nuestras palabras clave. La posición en la que se incluyan tendrá un impacto importante en el SEO de la página. De manera más clara, las palabras clave que se incluyen en la parte superior de la página son mejor valoradas por los rastreadores y por lo tanto ofrecen mejores resultados.


7.- Los encabezados h1, h2 y h3 son extremadamente importantes para el SEO, incluye palabras clave en ellos. No todos tienen el mismo impacto, pero es necesario tenerlos en cuenta por igual. El más importante, evidentemente, es h1.


8.- Agrega información al atributo title de los enlaces, esto no solo ayuda al SEO sino que también mejora la accesibilidad del sitio.


Más allá de estas recomendaciones hay muchas otras cosas que debemos tener en cuenta -y sobre las que debemos tomar acciones- para lograr los objetivos que persigue el SEO. Espero que esto sea lo suficientemente útil para ayudarte a identificar por donde van las cosas.












via Bitelia http://da.feedsportal.com/c/33160/f/538987/s/252d8cb4/l/0Lbitelia0N0C20A120C110Crecomendaciones0Epara0Emejorar0Eseo0Eweb/ia1.htm

¿Quién dice que el SEO está muerto? – infografía

seo En muchas ocasiones – y muchos tipos de personas – han dicho que el SEO ha muerto. La siguiente infografía da un repaso al perfil de estos especialistas, desde los expertos en redes sociales a los periodistas, pasando por los diseñadores o los emprendedores. Cada uno tiene sus motivos y, a su manera, cada uno lo practica, aunque sin darse cuenta.


La muerte del SEO es algo que se lleva anunciando desde hace tiempo. Y hay opiniones para todos los gustos. Esta infografía, elaborada por SeoBook, muestra a los diferentes perfiles de profesionales del mundo de Internet que defienden que las prácticas de posicionamiento están caducadas. Sin embargo, se argumenta que este ejercicio es algo dinámico, que se transforma con los cambios.


[Haz clic en la imagen para ampliar]


muerte seo







via TICbeat http://www.ticbeat.com/tecnologias/quien-dice-seo-muerto-infografia/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+rwwes+%28TICbeat%29

Google Penguin: algunas cosas que necesitas saber

Desde del 24 de abril del año en curso, Google lanzó una nueva actualización del algoritmo que, en palabras simples, ayuda al buscador a establecer el ranking de los sitios web. El algoritmo, cuyo nombre clave es Penguin , llegó para cambiar la forma en que se hace SEO de manera, digamos, tradicional.


Con esta actualización, Google pretende acabar con las malas practicas y, sobre todo, con los tramposos que se valen de ciertos artilugios para posicionar sus sitios en lugares privilegiados de los resultados de búsqueda, sin preocuparse por ofrecer contenido relevante o de calidad. Casi 4 meses después, muchos de los responsables de mantener sitios web continúan haciendo el trabajo de SEO como si Google no hubiese cambiado, y muchos inocentes han visto caer dramáticamente el tráfico en sus sitios por simple desconocimiento.


Mejorar la búsqueda en Google Search con comandos


Para los que no están todavía muy claros, o apenas se inician en este mundo, SEO son las iniciales de Search Engine Optimization , lo que en nuestro idioma sería Optimización para Motores de Búsqueda. Y no es otra cosa que preparar los sitios web para ganar mayor visibilidad en los buscadores de manera natural. La diferencia entre un SEO bien hecho y uno mal hecho es la que establece, nada más y nada menos, que tu sitio sea conocido o que sea completamente inexistente.


¿Qué cambió con la llegada de Google Penguin?


Ahora que estamos un poco más claros, repasemos un poco las cosas que cambiaron con la llegada de Google Penguin.


La cantidad de enlaces externos que apuntan hacia tu sitio, es un factor crucial para determinar la posición que ocupará este en las páginas de resultados de Google, pero ahora no basta con tener muchos enlaces entrantes. El nuevo algoritmo analiza además el contexto en el que se encuentra cada enlace, es decir, Google evalúa que ese sitio donde aparece el enlace a tu web esté relacionado con tu temática. Por ejemplo, si tienes una página web en la que te dedicas a hacer reviews sobre juegos de vídeo, no tiene mucho sentido que aparezca un enlace en un blog que habla sobre promociones para ir de vacaciones a las islas griegas. De encontrarse esta situación, tu sitio será penalizado por Penguin. Esto también está estrechamente ligado a la relevancia de los enlaces, un factor muy importante a la hora de determinar la posición en los resultados.


En general las webs que caen en estás practicas son considerados por Google como sitios de baja calidad y son severamente castigados. Por otra parte, si un sitio contiene muchos enlaces hacia páginas con diferentes temas sin producir contenido relevante para los usuarios, serán sospechosos de vender enlaces y corren el riesgo de ser excluidos completamente de los resultados de búsqueda, pues esto va en contra de las políticas del buscador.


Los comentarios SPAM también son penalizados con el nuevo algoritmo. Es decir, si eres de los que acostumbra a dejar comentarios en distintos blogs y páginas web haciendo uso de palabras clave y con enlaces a tu sitio, corres el riesgo de que tu sitio sea azotado por el látigo de Penguin.


Otro factor que puede impactar negativamente el posicionamiento, es el uso de múltiples palabras clave para apuntar a una o varias páginas de tu sitio. Quizá la manera más clara de decirlo, es que no tiene sentido que muchas palabras clave sean utilizadas para referir a un mismo enlace, así como tampoco lo tiene que una sola palabra clave te lleve a muchos lugares distintos dentro de un mismo sitio web.


¿Qué hago si mi sitio fue penalizado injustamente?


La “agresividad” del nuevo algoritmo puede hacer que sitios que no han incurrido en malas practicas se vean afectados. Si sientes que el ranking de tu pagina web fue afectado injustamente y de manera negativa por Google Penguin, tienes algunas opciones para recuperar tu posición sin tener que empezar de nuevo.




  • A través del sitio de Herramientas para Webmasters de Google, los administradores de páginas web recibirán notificaciones alertando sobre la presencia de enlaces en sitios marcados como de baja calidad. al remover estos enlaces, Google levantará la sanción. En caso de que no esté en tu poder remover ese enlace, debes intentar contactar con el administrador del sitio en cuestión y solicitarle que lo remueva. En caso de no obtener respuesta, puedes escribir a Google explicando la situación para que reconsidere el caso.




  • Otra opción que ofrece Google, es enviarles una solicitud para someter tu sitio a una revisión. Pero deberías estar muy seguro de estar “libre de pecado” y de que la penalización ha sido injustificada.




  • También se está probando la integración de un botón, dentro del mismo sitio de Herramientas para Webmasters, junto a cada enlace sospechoso, con el que podríamos solicitar la eliminación del mismo.




Después de todo, Google no es tan malo.


¿Qué puedo hacer para evitar que mi sitio sea penalizado?


En términos generales, lo mejor que puedes hacer es apegarte a las Directrices para Webmasters , establecidas por el propio buscador y respetar las buenas practicas de calidad, contenido y diseño propuestas en ellas. Aunque todo esto pueda parecer un poco “tiránico” , es necesario que te sometas a las reglas si quieres que tu sitio figure.


Si lo vemos en forma de pequeñas capsulas, deberías procurar:




  • Generar contenido confiable. No solamente contenido en el que otras personas confíen, me refiero a que tu mismo confíes en la información que estás suministrando.




  • Producir contenido útil e informativo, que vaya mucho más allá de lo obvio.




  • Que el contenido que generas realmente proporcione información con mayor sustancia que la que pueden ofrecer otros enlaces en la página de resultados de Google.




  • Especializarte en un tema y ser una referencia sobre este. Google te percibirá como un autor con autoridad para opinar sobre la temática y obtendrás mejor calificación.




Si aún tienes dudas o sientes que necesitas mejor preparación, Google también a puesto a nuestra disposición la Webmasters Academy, un lugar donde, entre otras cosas, podrás aprender muchísimo sobre como producir sitios y contenido de calidad, así como optimizar los que ya administras.












via Bitelia http://bitelia.com/2012/08/google-penguin-seo

Resetea tus CSS a conciencia con normalize.css

normalize.css


Los navegadores tienen sus propios CSS por defecto y cada uno diferente a los de los demás. Lo suyo es resetear estos CSS para que luego no haya sorpresas. Sin embargo esto es algo tedioso… y a veces no del todo útil porque te cargas cosas que lo mismo luego te pueden ser de utilidad. Por eso no está de más probar cosas como normalize.css, un normalizador de código CSS multiplataforma, moderno y listo para el presente-futuro HTML5.


Esto de normalizar el CSS es como un paso más allá de resetear y en el caso particular de normalize.css cuenta con las siguientes características:



  • Mantiene algunos defaults de los navegadores que pueden ser útiles.

  • Arregla ciertos bugs comunes que suelen ser pasados por alto.

  • No te hace ilegibles los estilos en el Firebug y demás inspectores.

  • Es modular, profusamente comentado y tiene una documentación bastante amplia.


En definitiva, que tiene buena pinta (sobre todo para aquellos que tenemos que hacer de vez en cuando cosas de frontend sin ser frontenders profesionales), que se usa en proyectos importantes como Bootstrap, que recientemente se ha liberado la versión 2.0.1 y que lo puedes descargar con una licencia MIT (es decir, que puedes pintar, colorear y compartir tanto como quieras) en GitHub (¿dónde si no?).


Pd: y ya sabes, si lo pruebas, no olvides de darnos tu feedback en los comentarios, que no están de adorno.


Vía e imagen | nicholasgallagher.com

En Genbeta Dev | Bootstrap














via Genbetadev http://www.genbetadev.com/herramientas/resetea-tus-css-a-conciencia-con-normalize-css

Recursos gráficos para usar en la web

Hace algunas semanas les contamos sobre Blue Vertigo , un portal para diseñadores donde podemos encontrar varios recursos con los cuales trabajar. En el día de hoy, vamos a hacer recomendaciones similares al hablarles un poco sobre los recursos gráficos que tenemos para trabajar en la web. Por supuesto, la lista podría ser interminable, por lo que será una guía para principiantes.



Tipografías


No por algo la guerra contra la Comic Sans sigue bien firme. Algunas personas todavía no pueden entender que la tipografía dice mucho sobre una marca o compañía, y que tiene que ser pensada cuidadosamente antes de ser aplicada. Si queremos usar diferentes tipografías para un proyecto gráfico, y no queremos usar la batería de tipos predeterminada que viene en nuestro sistema operativo, podemos buscar en la web tipografías gratuitas.


Una de las mejores fuentes es Da Font , un portal donde podremos encontrar infinidad de tipografías divididas de acuerdo con categorías que nos permitirán mejor encajar qué es lo que necesitamos. Por ejemplo, no vamos a usar una tipografía con serif si estamos buscando una imagen más distendida. El gran catálogo de Da Font cuenta con tipografías completamente gratuitas o con licencias Creative Commons.


Por otro lado, tenemos además Google Web Fonts , que cuenta con una variedad amplia de familias de fuentes que se pueden descargar e implementar. Con CSS3, además, podemos usar estas tipografías en sitios web sin tener que depender de que el usuario las tenga previamente instaladas en sus computadoras, lo que es un plus y realmente le da utilidad a Google Web Fonts.


Finalmente, FontSquirrel es otro manantial inagotable de fuentes que podemos usar por motivos comerciales, siempre con las licencias correspondientes. No es demasiado fácil de navegar, pero en la página principal ya nos encontramos con algunas sugerencias interesantes.


Imágenes


En lo que respecta a la fotografía, tenemos en principio dos opciones: usar fotografía con licencia Creative Commons, o usar fotografía de stock, que cuenta con un catálogo de fotografías gratuitas que podemos usar para nuestros proyectos. En lo que respecta a las fotografías CC, tenemos una variedad más amplia de paisajes, e imágenes más artísticas, mientras que con las fotografías de stock tenemos un acercamiento más comercial.


Por el lado de CC, podemos usar varios buscadores que nos permiten encontrar fotografías con licencias de este tipo, hasta en las opciones de búsqueda avanzada de Google Images. Podemos ir directamente a la fuente e ir al buscador de Creative Commons, donde podemos seleccionar entre diferentes buscadores que se adaptarán a nuestro criterio. También podemos encontrar fotografías con licencias CC en Flickr, en su apartado especial .


Finalmente, una de nuestras herramientas favoritas para encontrar imágenes con licencias CC es Compfight , un buscador muy potente que necesita nada más un concepto para encontrar las fotografías relacionadas con él.


Por el lado de las fotografías de stock, tenemos que tener cuidado con que sean realmente de descarga gratuita, de otra forma nos veremos en problemas legales. El problema que tiene la fotografía de stock gratuita es que usualmente suele estar bastante limitada. No tenemos una selección tan amplia como cuando compramos imágenes, y es entendible porque se trata de todo un negocio.


Un buen sitio para encontrar fotografía de stock gratuita es Freerange Stock . Nos ofrece imágenes de al menos 2400x1600px, y un sistema de licencias para usar las fotografías para proyectos. Lo único que tenemos que hacer es agregar el crédito de la fotografía. Por supuesto que no es obligatorio, pero la cortesía nunca está de más. Por otra parte, FreePhotoBank puede tener un diseño web bastante horrible, pero tiene un catálogo interesante de fotografía de stock.


También podemos optar por pagar por fotografías individuales. Muchos sitios cuentan con la posibilidad de descargar y comprar una licencia para fotografías por un precio muy barato, de apenas algunos dólares, así que si estamos detrás de un proyecto serio, no está mal pensar en comprar las imágenes correspondientes para darle un look más profesional.


Vectores


La búsqueda de vectores es un poco más avanzada, y va más allá de los meros píxeles de las fotografías. Los vectores nos pueden ayudar a generar un logo, una imagen de marca, etc. Si estamos trabajando junto a un diseñador, seguramente nos entregará el logo en vectores cuando termine de trabajarlo, es normal. Ahora bien, si queremos improvisar algo sobre la marcha, ¿de dónde podemos sacar imágenes en vectores?


Nuevamente, tenemos dos opciones, la gratuita y la de pago. En cuanto a la gratuita, existen varios portales donde podemos encontrar un catálogo grande de imágenes en vectores que pueden bajarse de forma gratuita. OCAL (Open Clip Art Library) es una de las más grandes, pero vamos a tener que saber buscar para encontrar algo interesante. Uno de mis favoritos es VectorStock , donde podemos encontrar todos los elementos necesarios para diseñar un logo.


Templates


Cuando estamos hablando de templates, nos referimos a plantillas realizadas previamente donde podemos completar con nuestra información. Algo así como lo que podemos encontrar en Blogger, WordPress o Tumblr cuando estamos creando nuestro blog. Pero, por otra parte, podemos comprar un template para darle un look más profesional a nuestra página.


Una opción interesante es Free CSS Templates , donde podemos bajar plantillas de CSS para aplicar a una página (o usarlas de inspiración). Páginas como estas hay muchas, pero si realmente queremos darle un aspecto profesional, siempre consideremos contratar a un diseñador.












via Bitelia http://bitelia.com/2012/08/recursos-graficos-para-usar-en-la-web

Conferencia: Optimizar el rendimiento web

En la pasada Tenerife LAN Party, impartí una conferencia sobre la eficiencia en sitios web, titulada Optimizar el rendimiento web. Estuvo dirigida principalmente a propietarios de sitios web, y se trataron conceptos, trucos y consejos para mejorar el rendimiento de cualquier tipo de web (velocidad de acceso, transferencia mensual, posicionamiento, etc...).


La conferencia fue impartida gracias al Cabildo de Tenerife y a Innova7.


Conferencia: Optimizar el rendimiento de una web

La conferencia constó de varias secciones, entre las que se encuentran las siguientes:




  • Conceptos: Un resumen rápido de términos y conceptos que se utilizaron frecuentemente durante la conferencia.

  • Esquema cliente-servidor: Funcionamiento del modelo cliente-servidor y sus características en cuanto a la optimización de velocidad.

  • Tecnología: Que tecnologías participan en un sitio web y como deberían estar organizadas y separadas.

  • Trucos y consejos: Una serie de numerosos e interesantes consejos para mejorar el rendimiento de nuestra web.

  • Google Webmaster Tools: Un repaso a las herramientas de Webmasters de Google, echando un vistazo a sus opciones y características.

  • CDN: Cloudflare: Por último, definición y ventajas de utilizar un CDN, junto a un breve repaso de las funciones principales del excelente Cloudflare.



Como siempre, las diapositivas completas, utilizadas en la conferencia, están colgadas en SlideShare: TLP2k12: Optimización del rendimiento web.


1. Introducción


Antes de empezar, hay que dejar claros los cuatro factores principales que tendremos en mente cuando nos decidimos a optimizar nuestro sitio:


Velocidad de acceso, Eficiencia, Transferencia mensual y Posicionamiento


  • Velocidad: Nuestro sitio web tiene que cargarse lo más rápido posible, obteniendo una buena respuesta, lo más próxima a una carga instantánea.

  • Eficiencia: El servidor debe estar disponible para realizar las peticiones que le pedimos lo más rápido posible. No debe estar ocupado ni demorarse mucho en procesarlas.

  • Transferencia: Hay que reducir lo máximo posible la cantidad de datos (Megabytes, Gigabytes, Terabytes...) que se consumen al mes. La mayoría de las compañías establecen costes por superar ciertas cantidades de transferencia, por no hablar de que cuanto menos tamaño ocupen los recursos que pedimos, menos tardarán en descargarse.

  • Posicionamiento: Aunque no es una de las finalidades principales de la conferencia, muchas de estas técnicas te pueden ayudar en el atractivo objetivo de aparecer en una mejor posición en Google.


Cliente



A lo largo de la conferencia se utilizó a menudo el término cliente. Con él nos referiremos generalmente, a un usuario utilizando un navegador para acceder a una web.



Pero debemos saber que con cliente, no sólo nos referimos a navegadores, existen muchos otros casos que entran dentro de la definición de cliente:


Clientes: Navegadores, crawlers, robots, atacantes, etc...


  • Crawlers: Los crawlers o robots, son sistemas automáticos, programados para acceder a un sitio web con una determinada misión. Por ejemplo, el crawler de Karmacracy, un estupendo acortador de URLs con entorno social y otras características, o Googlebot, el robot indexador de páginas de Google.

  • Elementos dañinos: Robots programados para acceder a webs en busca de formularios para dejar spam, usuarios zombies miembros de redes de bots, o «cosechadores» de direcciones emails para enviar publicidad, entre otros.

  • Navegadores: Y como decíamos antes, navegadores como Chrome, Firefox, Safari, Opera o, incluso, Internet Explorer.


Centrándonos en los navegadores, es útil tener una referencia global para saber como están las cosas. En Global Statcounter, a fecha de Mayo de 2012, podemos ver que Chrome es el navegador más utilizado, seguido de Internet Explorer y de Firefox (a nivel mundial).


Global Statcounter: Estadísticas de navegadores a nivel mundial y en España

En España, las cosas cambian un poco: la ventaja de Chrome sobre Internet Explorer es ligeramente mayor. De cualquier forma, esto nos sirve para darnos cuenta que hay que centrarse (sobre todo) en estos tres navegadores, y que por mucho que no nos guste Internet Explorer, es un navegador muy utilizado y no hay que olvidarlo.


Más información


Por último, si queremos aprender un poco más sobre navegadores y su historia, podemos hacerlo en Evolution of the Web, una estupenda infografía interactiva, en la que podemos navegar a lo largo de los años, y examinar como evolucionaron los navegadores y sus características, desde los tiempos del Mosaic hasta tecnologías como WebGL o CSS3.


Si por otra parte, estás interesado en el mundo de los crawlers y quieres más información sobre esto, puedes encontrar más datos en el artículo Robots: Accesos no humanos a la web.


2. Esquema cliente-servidor


Antes de meternos en materia, hay que tener claro el concepto del modelo Cliente-Servidor, para saber donde podemos empezar a optimizar.


Modelo básico


Este modelo es muy sencillo, en la siguiente imagen se puede ver el esquema, con un funcionamiento muy simple:


Esquema básico del modelo Cliente-Servidor

Un cliente realiza una petición (www.emezeta.com, por ejemplo), la cuál viaja a través de Internet y llega al servidor (donde se encuentra el sitio web). Entonces, la petición es procesada y la devuelve al cliente que la solicitó.


Servidor


Hemos explicado lo que es un cliente, pero... ¿Qué es un servidor? Básicamente, se trata de la máquina donde tenemos alojado nuestro sitio web. También suele denominarse hosting o alojamiento. Veamos cuales son los tipos más comunes de servidores:


Tipos de servidor: gratuito, compartido, virtual, dedicado o dinámico




  • Hosting gratuito: El primero y más básico de todos es el servidor gratuito. El usuario se preocupa sólo de registrarse y se enfoca en las tareas de escribir o publicar contenido, olvidándose de cualquier otro aspecto.


    ¿Ventajas? Coste 0. ¿Desventajas? Suelen mostrar publicidad y/o estar muy limitados en cuanto a ciertas características. Uno de los servicios gratuitos más utilizado es el de Blogger, muy potente y bastante personalizable.




  • Servidor compartido: Se trata de una máquina a nuestra disposición, que es compartida con muchos otros usuarios (con sus respectivas webs). Estos servidores suelen ser muy económicos, sin embargo, tienen el problema de que si una de las webs «vecinas» sobrecarga la máquina o tiene algún problema, repercute en el resto de los sitios. Un ejemplo muy común de estos servidores es Dreamhost.




  • Servidor virtual-dedicado: Se trata de una mejora al sistema anterior. De igual forma, también es compartida por varios usuarios, sin embargo, en este caso, la división se hace de forma virtualizada (a nivel de sistema operativo) por lo que cada usuario repercute única y exclusivamente en su propio sitio. En Emezeta utilizamos MediaTemple.




  • Servidor dedicado: En este caso, el servidor sólo lo utiliza el usuario que lo contrata. La máquina está de forma íntegra dedicada al usuario. Obviamente, son considerablemente más caros que los anteriores y requieren administración avanzada. Un ejemplo, OVH.




  • Servidor dinámico o elástico: Existen ciertos servidores para usuarios con necesidades más avanzadas. Por ejemplo, las instancias EC2 de Amazon permiten crear servidores elásticos ( se adapta a las necesidades de tráfico en cada momento) o características similares.


    Generalmente, requieren administración y mantenimiento avanzado, y su uso es recomendable para sitios con muchísimo tráfico o altas necesidades.





Modelo avanzado


Así que, volvamos al esquema cliente-servidor, pero con una visión un poco más avanzada. La barra de colores que aparece en la zona inferior de la siguiente imagen representa pequeños fragmentos de tiempo, que transcurrirán antes de la carga completa del sitio web.


Esquema avanzado del modelo Cliente-Servidor


  • DNS: Antes de acceder a una web, el sistema no sabe funcionar con los nombres de dominio que manejamos, por lo tanto debe traducir el nombre de dominio (emezeta.com) a su correspondiente IP, proceso que normalmente tarda algunos milisegundos.

  • Connect: Tras realizar la traducción de DNS, el cliente intentará realizar una conexión con el servidor. En el caso de realizarse mediante SSL (https), tardará un poco más en el proceso de negociación.

  • Send: Una vez realizados los pasos previos, se procede a enviar la petición al servidor.

  • Wait: Al llegar la petición al cliente, se pondrá en una cola de espera para ser atendido (el servidor tendrá muchas peticiones de otros usuarios, y tiene un límite de peticiones que atender simultáneamente). Una vez le llegue el turno, procesará la petición y estará lista para ser enviada.

  • Receive: Finalmente, cuando esté lista la respuesta, se enviará al cliente que la solicitó.


Este es el proceso detallado que se sigue al realizar una petición. Debemos darnos cuenta, que salvo la franja amarilla (que dependerá de lo ocupado que esté el servidor, y el tipo de servidor del que se trate), todas las demás franjas dependen de la red (ancho de banda del cliente, ancho de banda del servidor, tamaño del fichero a transferir, etc...).


Análisis de recursos


Puede parecer que, tratándose generalmente de franjas de milisegundos, no tenga mayor importancia, pero debemos darnos cuenta que una web contiene varios recursos (logotipo, iconos, imágenes, documentos, archivos de estilos CSS, archivos javascripts, widgets sociales, etc...) y que para cada uno de esos recursos se pasa por el mismo proceso que hemos descrito anteriormente.


Una web contiene varios recursos a servir (imágenes, iconos, documentos, etc...)

Es por eso que un buen punto de partida es realizar un análisis de todos los recursos que se sirven en nuestra web, intentando reducir el tiempo al máximo. Para ello vamos a aconsejar varias herramientas que realizarán la medición de los recursos de nuestra web en un panel de franjas:



  • GetFirebug: Extensión para el navegador Firefox con el cuál podremos hacer un análisis. Ojo, el análisis lo haríamos desde nuestro propio sistema (con nuestra conexión) por lo tanto tenemos que asegurarnos de que tenemos una conexión rápida.

  • Pingdom Tools: Para evitar el problema anterior, podemos realizar el análisis desde el servicio web de Pingdom. Es un servicio muy sencillo y accesible, sin embargo, últimamente falla un poco con las mediciones.

  • Google PageSpeed Insights: Probablemente, una de las más didácticas. No sólo permite realizar el análisis, sino que además da los resultados ordenados por prioridades y con breves descripciones orientativas.

  • WebPageTest: Probablemente, la mejor de todas. Ofrece gran cantidad de información, bien ordenada y clasificada.


3. Tecnologías


Otro punto interesante, es conocer las diferentes tecnologías que participan en un sitio web, ya que cada una tiene una finalidad y están bien estructuradas. Yo he creado la siguiente guía de niveles para explicarlo:


Tecnologías: Contenido, Motor y Presentación (Estructura, apariencia e interactividad)


  • Contenido: En la parte más cercana al servidor (izquierda) tenemos el contenido. Es realmente la información almacenada, los datos, el contenido. Generalmente se almacena en bases de datos (MySQL, PostgreSQL, MariaDB, SQLite, MongoDB, etc...) o en archivos de información (XML, JSON, etc...).

  • Motor: En la siguiente capa tenemos la tecnología que «crea» el sitio. Lenguajes como PHP, JSP, Python, Perl, Ruby u otros dominan este nivel. Los frameworks como Django, Ruby on rails, CakePHP, etc... también entrarían en este nivel (ya que realmente son capas intermedias).

  • Presentación: Finalmente, dentro del último nivel del servidor estaría la capa que se encarga de la presentación del sitio. La he desglosado en tres pequeños apartados:




    • Estructura: El lenguaje de etiquetado (HTML4, XHTML, HTML5...) es el que domina esta parte. Un buen consejo es utilizar el validador de W3C para corregir nuestros errores de etiquetado y tener un código válido para cualquier plataforma.

    • Apariencia: El diseño del sitio web, la alineación de los elementos, así como los estilos o los recursos gráficos (tipografías, iconos, imágenes...) son los que predominan en este apartado.

    • Interactividad: Por último, esta capa es la que se encarga de mantener la interacción con el usuario desde el lado del cliente (sin enviarse al servidor, ahorrando tiempo y recursos). Este apartado lo domina el Javascript, con frameworks como JQuery, Prototype u otros.




4. Consejos


Con los conceptos y términos explicados hasta ahora, ya podemos comenzar la parte de consejos y trucos para optimizar el rendimiento de nuestro sitio web.


Velocidad visual


Un consejo muy útil es el de intentar reducir la velocidad visual de una web. ¿Qué es eso? Fácil: Existen muchas webs que no muestran el contenido en el navegador hasta que están completamente cargadas, incrementando el tiempo en el que el usuario ve una zona en blanco, mientras espera a que se realice la carga (parte superior de la imagen).


Velocidad visual

Hay una serie de consejos para intentar reducir este tiempo de espera al máximo:



  1. Colocar los archivos de estilos CSS justo al principio del documento (debajo de la apertura del head).

  2. Colocar los archivos Javascript que sea posible al final del documento (justo encima del cierre del body).

  3. Reducir, en la medida de lo posible, el número de archivos CSS/JS (combinándolos en un mismo fichero, por ejemplo).



Con la herramienta Loads.in puedes comprobar la velocidad visual de tu sitio automáticamente.



Compactar archivos JS o CSS


Otro truco bastante interesante es el de compactar (en inglés usan el término minify ) los archivos de texto CSS y JS. El proceso de compactar se basa en eliminar espacios extra, comentarios y minimizar el código fuente lo máximo posible, para hacer que el fichero ocupe muy poco y, por lo tanto, se descargue más rápido y consuma menos transferencia.


La mayoría de los Javascript más utilizados tienen sus versiones compactas (93KB, frente a los 246KB de la version normal).



En caso de no tenerla, es posible utilizar una herramienta como YUI Compressor para compactar nuestros archivos JS o CSS.



Sistema de caché


Una de las estrategias más utilizadas y efectivas en el mundo web (y en el de la informática en general), es utilizar sistemas de caché, consiguiendo varios objetivos:



  1. Ahorrar ancho de banda: Menor transferencia de datos.

  2. Reducir tiempo de espera: Mayor velocidad y menos esperas.

  3. Mantener servidor desocupado: Libre para otras tareas.


Un sistema de caché básico implementado en navegadores, es aquel que en el primer acceso a una web, descarga todos los recursos y los almacena en el navegador.


Sistema caché web

Así, si volvemos a acceder una segunda vez a la web, no tendremos que volver a descargar la misma información de nuevo (esfuerzo inútil), si no que se cargarán los archivos desde la caché del navegador (en nuestro disco duro) sin descargar de nuevo estos archivos.


Existen varios niveles de caché, algunos muy simples otros más avanzados y sofisticados, algunos ejemplo:



  • A nivel de cliente: Expires, Cache-Control o E-Tag.

  • A nivel de servidor: plantillas de HTML estático o aceleradores como APC (para PHP) o MemCached (mantener copias en la RAM del servidor).


Compresión «on-the-fly»


Existe una estupenda técnica para ahorrar ancho de banda que aún hoy en día está muy infrautilizada. Es la técnica de la compresión al vuelo (on-the-fly en inglés).


Se basa en aprovechar las capacidades implícitas de compresión y descompresión de los navegadores:


Compresión on-the-fly (al vuelo)


  1. El cliente realiza una petición (avisando que es capaz de descomprimir).

  2. Antes de enviar la respuesta al cliente, el servidor comprime el recurso.

  3. Entonces, lo envía (a un tamaño inferior, ganando en velocidad y ahorrando ancho de banda).

  4. Al recibirlo, el navegador lo descomprime y lo muestra.


Obviamente, el precio a pagar por esta genial estrategia es un aumento de CPU en el servidor y cliente (comprimiendo y descomprimiendo los recursos), pero totalmente asumibles y despreciables en cuanto a los beneficios que aporta.


Veamos un ejemplo que ilustre el ahorro de ancho de banda de una manera más gráfica y representativa, con el artículo La fauna del Twitter (animales en peligro de extensión), simulando que 200 usuarios piden dicho artículo (número bastante bajo, el artículo tiene actualmente más de 23.000 solicitudes):




  • Artículo sin compresión: Ocupa 95KB. 95x200 = 19MB.

  • Artículo con compresión: Ocupa 23KB. 23x200 = 4,6MB.



Nótese que hablamos sólo del documento HTML en cuestión, no incluyendo archivos CSS o Javascript asociados. También cabe remarcar que esta operación sólo podría efectuarse con archivos de texto plano (en archivos JPG, MP3 o similares no sirve, puesto que ya están comprimidos).



Para usar esta característica, en servidores Apache se usa el módulo mod_deflate, mientras que en NGINX se hace uso de NginxHttpGzipModule.



Imágenes


Si dividieramos un sitio web en tipos de recursos utilizados, las imágenes se llevan un porcentaje bastante alto, por lo que no podemos pasarlas por alto en nuestra guía de optimización.


Imágenes con pérdidas

El formato utilizado, la calidad, si se trata de una imagen con pérdidas (JPEG, WEBP, JPEG2000, JPEG XR...) o una imagen sin pérdidas (TIFF, PNG...), formatos de animaciones, imágenes vectoriales, etc...


Cada situación requiere un formato o característica concreta, que si se utilizan de forma adecuada, se podrá reducir el tamaño de la imagen y aumentar la calidad lo máximo posible.


Todas estas características y algunas más las explico detalladamente en el artículo Formatos de imagen: Guía de optimización.


Imágenes con pérdidas

Si lo que buscas son aplicaciones para optimizar automáticamente las imágenes, aquí podrás encontrar 12 aplicaciones para optimizar imágenes, de las cuales recomiendo, sobre todo, RIOT (Radical Image Optimization Tool).


«Lazy Load» de imágenes


El término lazy load (carga perezosa) se utiliza en informática para denominar a una estrategia en la que sólo se realiza la carga de un recurso cuando sabemos con certeza que se va a utilizar.


En artículos con mucho contenido gráfico pesado, como por ejemplo 50 cosplays increíbles, a pesar de haber optimizado las imágenes como se indica en el apartado anterior, el total de 50 imágenes ocupan en total 4,17MB.


Imágenes con pérdidas

Muchas veces, los usuarios entran a un artículo o sección sólo para ver algún detalle concreto, y no necesitan que se cargue la página completa. Este plugin Lazy Load intenta conseguir eso mismo.


En la imagen, a la izquierda, podemos ver lo que implica la carga de un artículo sin lazy load. Sin embargo, a la derecha, utilizando el plugin Lazy Load se reemplazan las imágenes por una pequeña animación de precarga (debidamente cacheada, por lo que sólo se carga una vez).


El plugin entra en acción cuando el usuario hace scroll y se mueve por la web, ya que todas las imágenes dentro del campo de visión del usuario (recuadro de color azul/verde) se van cargando, y si el usuario no avanza, el servidor se ahorra la transferencia de esas imágenes.


Imágenes con pérdidas

El mejor plugin que conozco para este tipo de carga es Lazy Load, de Mika Tuupola (basado en JQuery).


Reducción de peticiones


Como ya habrá supuesto el lector desde el inicio de este artículo, un punto importante en la optimización del rendimiento de una web es la reducción de peticiones. Si cada petición retrasa un poco la carga del sitio, cuantos menos archivos descarguemos, más rápida será.


Pero a parte de eliminar peticiones inútiles o innecesarias, existen algunas técnicas para ahorrar peticiones, como por ejemplo la técnica de los Sprites CSS.


CSS Sprites

Esta técnica es muy útil para imágenes muy pequeñas o iconos, y como se puede ver en el ejemplo, hasta Google la utiliza.


Se basa en unir todos estos iconos en una sola imagen, y en lugar de pedir las imágenes por separado, descargamos una sola vez la imagen con todos los iconos, y nos encargamos de recortarlas y colocarlas mediante CSS.


CSS Sprites: Ahorrar peticiones de imágenes

Habremos pasado de realizar muchísimas peticiones al servidor (una para cada icono), a realizar sólo una petición al servidor (la colección de imágenes), con lo que ello conlleva.


Imágenes en linea

Otro método a destacar es el de las imágenes en línea (in-line images en inglés), que no es más que la traducción de una imagen a un fragmento de texto.


Puedes hacer la prueba copiando y pegando el siguiente texto y colocándolo en la barra de dirección de tu navegador:


Las ventajas de este sistema es que te ahorras la petición al servidor, puesto que en lugar de descargar una imagen la cargamos desde un texto (0 peticiones). Por contra, este sistema es bastante pobre y sólo es realmente útil para algunos casos en los que las imágenes son muy pequeñas.


Favicon


El llamado favicon (favorite icon) es ese icono que aparece a la izquierda de una URL en nuestro navegador y que representa a nuestra web cuando, por ejemplo, tenemos varias pestañas abiertas.


Favicon

Este archivo es (y con diferencia) el recurso más pedido en casi cualquier web, ya que recibirás peticiones (incluso aunque no exista) de navegadores o sistemas que buscan este archivo para identificar la web en otros sistemas, incluirlo en pestañas o favoritos (de ahí su nombre, IE lo hacía así desde sus orígenes).


Para representar su importancia, he contabilizado el número de peticiones a este archivo en Emezeta durante un mes (más de 50.000 peticiones):



  • Icono sin optimizar (3KB): 3x50000 = 150MB de transferencia al mes.

  • Icono optimizado (0,66KB): 0,66x50000 = 33MB de transferencia al mes.


Como se puede ver, es muy importante que este archivo se reduzca lo máximo posible y se haga «cacheable».


Caché «universal»


Existe un repositorio de recursos comunes de Google: Google Webfonts y Google Libraries API. En ellos tenemos a nuestra disposición una URL con las últimas versiones de JQuery o distintas tipografías a elegir.


La utilidad y genialidad de estos repositorios es que aprovecha la capacidad de caché para una URL concreta. Vamos a verlo con un ejemplo:



  • Un sitio web A incluye el script de JQuery 1.7.2.

  • Un sitio web B (sin relación con A) incluye el mismo script JQuery.

  • Un usuario que acceda a cualquiera de los dos sitios, hará que se cachee en su navegador ese script y esté disponible para cualquier otra web que lo utilice.


Así pues, nos aprovecharemos de que ese recurso probablemente ya se encuentra cacheado en el navegador de usuario (es muy probable que el usuario haya visitado otro sitio web que lo utilice). Idem con las tipografías.


Aumentar rendimiento


Otra forma de aumentar la velocidad de descarga de nuestros sitios es la de separar los llamados recursos estáticos, archivos que no cambian y son siempre iguales (imágenes, estilos css, archivos javascript...) en un subdominio diferente del resto de la web.


Servidores para contenido estático

Esto se suele hacer porque el protocolo HTTP 1.1 limita a 2 las descargas simultáneas desde el mismo subdominio (y la mayoría de los navegadores sigue esa norma). Así también podemos aprovechar y establecer que el subdominio con contenido estático se envíe sin cookies (que no suelen ser útiles en imágenes, por ejemplo).


Balancear con otro servidor


Otra técnica muy utilizada es utilizar un servidor diferente para almacenamiento de imágenes y recursos estáticos.


Por ejemplo, Amazon S3 es una alternativa muy utilizada, ya que tiene precios muy bajos y se paga por uso (al contrario que los hostings, que suelen ser cuotas mensuales).


Sin embargo, a pesar de que el precio por transferencia es muy atractivo, según mi experiencia, Amazon S3 es muy útil para almacenar archivos grandes, pero no para archivos pequeños y muy solicitados, ya que el precio de las peticiones es lo que se hace caro a la larga.



Por cierto, para usuarios residentes en Canarias, Amazon cobra impuestos IVA, cuando en realidad a los canarios no debería cobrarlos. Si es así, exigid que se os aplique la exención (con una copia del DNI, modelo 036 y modelo 400 debería bastar).



Nginx como Proxy inverso


En la mayoría de los hostings se utiliza como software de servidor web Apache. Se trata de uno de los servidores web más extendidos y utilizados. Recientemente, está surgiendo un servidor web llamado NGINX, muy potente y ligero, que consume una cantidad notablemente menor de RAM y es mucho más veloz al servir peticiones.


Nginx como proxy inverso con Apache

¿En qué se basa un proxy inverso? Se trata de instalar dos servidores web en lugar de uno sólo, utilizando el servidor nginx (más veloz y eficiente en el consumo de RAM) para procesar todas las peticiones, aligerando así carga en nuestra máquina.


Si se trata de recursos estáticos (imágenes, iconos, etc...), los sirve el propio nginx. Si se trata de un recurso dinámico (PHP, Perl, Python u otros), nginx le pasa el testigo a Apache que sería el que lo procesaría.


Esto se suele hacer puesto que nginx a pesar de ser un gran servidor web, aún no está tan extendido como Apache ni tiene soporte para la gran cantidad de módulos y funciones avanzadas que se pueden realizar con Apache.


El archivo Robots.txt


El archivo robots.txt es un fichero de texto, con una cierta estructura, que muestra a los crawlers recomendaciones acerca de las secciones que no deberían mirar (ni indexar en los buscadores).


Debe quedar claro que se tratan de recomendaciones (no de restricciones), por lo que lo normal es que los robots cumplan las restricciones del fichero, pero que no sirve para restringir el acceso, por ejemplo, a bots dañinos.


El archivo robots.txt

Un buen fichero robots.txt, correctamente configurado y con secciones con contenido duplicado restringidas para el buscador de Google, puede mejorar significativamente el posicionamiento de nuestro sitio.



En el artículo Robots.txt: Todo lo que debería saber se explica detalladamente el funcionamiento del archivo robots.txt y como configurarlo correctamente para nuestro sitio.



Mapas de sitio


Los mapas de sitio (sitemaps) son archivos (generalmente documentos XML) que contienen una lista de todos los artículos (o secciones) de un sitio web.


Esto permite que los propietarios de un sitio web indiquen fácilmente al robot de Google, donde está el contenido de nuestro sitio, facilitando el trabajo de recopilación en su buscador.


Puedes crear varios sitemaps según tus criterios (por ejemplo, uno para artículos, otro para imágenes, etc...), siguiendo el formato de los sitemaps, ofrecido por Google. Un buen sitemap es uno de los pilares principales para conseguir más visitas.


Google Webmaster Tools


Una de las herramientas imprescindibles de Google para cualquier propietario de un sitio web, es Google Webmaster Tools, un panel en el cual podemos controlar gran cantidad de parámetros acerca de nuestra web en relación con el famoso buscador.


Mejorar el posicionamiento para un país concreto, establecer parámetros de URL representativos, examinar problemas de rastreo en el servidor, descripciones o títulos inconsistentes que afectan nuestra indexación en el buscador, tráfico con respecto a la red social Google+ o los mapas de sitio (sitemaps), entre muchas otras cosas.


Puedes echar un ojo a esta parte de la presentación (De la página 100 a la 119).


Aunque en este caso sólo tratamos el panel de Google Webmaster Tools, también sería interesante darnos de alta en las herramientas de webmaster de Bing, el buscador de Microsoft, que junto a Yahoo, forman este pack de utilidades.


Hotlinking


Uno de los males más famosos, que repercuten directamente en la transferencia de datos y carga de un servidor es el robo de contenido o hotlinking.


Con esa palabra se define al hecho de que uno o varios usuarios (con o sin conocimiento) colocan imágenes en su propia web, pero en lugar de estar alojadas en su propio servidor, utilizan una imagen alojada en un servidor ajeno.


Esto, en principio, no supone ningún problema. Sin embargo, si el sitio web tiene mucho tráfico (o si la imagen es robada por muchas webs), el ritmo de solicitudes puede llegar a inundar a peticiones (con el coste económico que ello podría llevar) o incluso a colapsar el servidor y hacerlo caer.


Hotlinking: Robo de recursos de un servidor

Para evitar esto se utilizan técnicas de anti-hotlinking, como pueden ser el uso del módulo ModRewrite, para Apache o el servicio ScrapeShield del CDN que se explicará a continuación.


CDN: Red de distribución de contenidos


Por último, para finalizar el artículo, vamos a explicar lo que es un CDN.


Cuando tenemos nuestro propio sitio web, éste está ubicado en un lugar del mundo (generalmente, en EEUU), por lo que, como parece obvio, los usuarios que estén más cerca de ese lugar, al acceder al sitio web, tendrán una respuesta más rápida que alguien que acceda, por ejemplo, desde Europa.


Servidor localizado por país

La única forma de mejorar la respuesta, es ubicar nuestro servidor en una localización más cercana al público general de nuestro sitio.


Sin embargo, ¿qué ocurre si nuestro público no está localizado en un sólo país, si no que está repartido por todo el planeta? ¿o si no nos interesa cambiar de servidor porque el que tenemos tiene unos requisitos muy especiales? Aquí entra en juego la importancia de un CDN.


Una red de distribución de contenidos se encarga de realizar copias de nuestro contenido y replicarse por varios datacenters ubicados por distintos países y continentes. Así, cuando un usuario pide un cierto recurso, el datacenter más cercano al usuario es el que responde, ofreciendo una respuesta más rápida que si respondiera el servidor original.


Datacenters del CDN Cloudflare

En nuestro caso vamos a hablar del excelente CDN CloudFlare, que en el momento de escribir esto, posee 14 datacenters repartidos por todo el mundo. Pero lo mejor no es esto, si no que además de aportar un servicio excelente, con gran cantidad de funcionalidades, su plan básico es totalmente gratuito.


Más adelante escribiré un artículo orientado específicamente al funcionamiento detallado, instalación y administración del CDN CloudFlare, pero de momento lo podemos ver como una gran red de servidores que «envuelve» nuestro propio servidor, lo que aporta varias ventajas:


CDN: Ahorro de transferencia y recursos de nuestro servidor


  • Localización: El contenido se sirve desde el datacenter más cercano al usuario, por lo que la respuesta es mayor.

  • Transferencia: El contenido es servido por los datacenters, por lo que nuestro servidor genera un ahorro de ancho de banda considerable.

  • Peticiones: También ahorramos un gran número de peticiones en nuestro servidor, por lo que las colas de peticiones (y las esperas) se reducen.

  • Contenido dinámico: El contenido dinámico se sigue sirviendo desde el servidor original, por lo que no se muestra incoherencia de datos.

  • Escudo ante ataques: La estructura de datacenters se lleva también el impacto de los clientes dañinos, protegiendo al servidor de ataques y otros elementos maliciosos.


El servicio Cloudflare proporciona un panel de analíticas donde podemos ver la cantidad de accesos de usuarios (tráfico regular), crawlers (robots y buscadores) y amenazas (atacantes, spam, etc...), permitiendo establecer un nivel de «peligro» ante ataques.


CDN Gratuito: Cloudflare (Analytics)

Y como los resultados siempre son más clarificadores, veamos los resultados de un mes utilizando CloudFlare en Emezeta blog:


CDN Gratuito: Cloudflare



  • Peticiones: De 28 millones de peticiones al mes, nuestro servidor pasa a recibir 2 millones (el resto es servido por el CDN). Un ahorro del 93%.

  • Transferencia: De 431GB de transferencia mensual, nuestro servidor pasa a servir sólo 103GB (el resto es servidor por el CDN). Un ahorro del 76%.



Finalmente, algunos enlaces de otras conferencias o cursos que te podrían interesar:







Contenido extraído de: Conferencia: Optimizar el rendimiento web de Emezeta blog







via Emezeta blog http://www.emezeta.com/articulos/conferencia-optimizar-el-rendimiento-web