<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>unijimpe &#187; Optimización Web</title> <atom:link href="http://blog.unijimpe.net/category/optimizacion-web/feed/" rel="self" type="application/rss+xml" /><link>http://blog.unijimpe.net</link> <description>Desarrollo Web, SEO, Adsense</description> <lastBuildDate>Mon, 28 Nov 2011 03:18:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Tips para identificar problemas en SEO</title><link>http://blog.unijimpe.net/tips-para-identificar-problemas-en-seo/</link> <comments>http://blog.unijimpe.net/tips-para-identificar-problemas-en-seo/#comments</comments> <pubDate>Mon, 06 Jun 2011 05:50:46 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[301]]></category> <category><![CDATA[buscador]]></category> <category><![CDATA[canonicalización]]></category> <category><![CDATA[headers]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[metatags]]></category> <category><![CDATA[nofollow]]></category> <category><![CDATA[redirección]]></category> <category><![CDATA[robots.txt]]></category> <category><![CDATA[sitemap.xml]]></category> <category><![CDATA[yahoo]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1273</guid> <description><![CDATA[<p>Auditar o identificar problemas relacionados con el SEO es el primer paso para posicionar adecuadamente un sitio web. Identificando los problemas podremos plantear soluciones adecuadas para corregir estos puntos débiles y reforzar nuestros aciertos.</p><p></p><p><strong>Análisis en </strong>&#8230;</p>]]></description> <content:encoded><![CDATA[<p>Auditar o identificar problemas relacionados con el SEO es el primer paso para posicionar adecuadamente un sitio web. Identificando los problemas podremos plantear soluciones adecuadas para corregir estos puntos débiles y reforzar nuestros aciertos.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2011/06/identificar-problemas-seo.jpg" alt="" title="identificar-problemas-seo" width="500" height="284" /></p><p><strong>Análisis en los Motores de Búsqueda</strong></p><p>El primer paso es verificar que la información de nuestro web esta indexada correctamente en los motores de búsqueda.</p><ul><li>Busca en Google: <code>site: tudominio.com</code>, esto devolverá todas la páginas indexadas de tu dominio. Compara el total de páginas indexadas con el total de páginas que tienes alojadas en tu servidor.</li><li>Prueba buscar el nombre de tu web o marca y verificar tu posición en los buscadores. Si no existen resultados de tu web es probable que hayas sido penalizado.</li><li>Revisa la versión en cache que tienen los buscadores y verifica que sea la misma versión de tu página actual, si no es así entonces el buscador tiene indexado una versión antigua de tu página.</li></ul><p><strong>Análisis Contenido Duplicado</strong></p><p>Verifica que tu dominio tenga <strong>canonicalización</strong>. Es decir que la versión <strong>no-www</strong> (<em>http://tudominio.com</em>) de tu web haga una redirección 301 a la versión <strong>www</strong> (<em>http://www.tudominio.com</em>) o viceversa. Si no existe esta redirección 301 ambas versiones puedes considerarse como dominios diferentes y una considerada como contenido duplicado.</p><p>Para hacer una revisión de contenido, realiza la búsqueda exacta de una frase (Entre comillas dobles) que se encuentre en tu web y analizar la cantidad y tipo de resultados devueltos. Tambíen puedes utilizar el la palabra clave <strong>intitle</strong> para indicar la búsqueda solo en los títulos.</p><ul><li>Buscar en el contenido: <code>"Frase a buscar"</code></li><li>Buscar en los titulos: <code>intitle: "Frase a buscar"</code></li></ul><p>Si tienes varias páginas con el mismo contenido, puedes utilizar la propiedad <strong>canonical</strong> para indicar a los buscadores cual de estas páginas debe ser considerada como contenido original:</p><div class="syntax_hilite"><div id="html-7"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">'canonical'</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">'http://blog.unijimpe.net/depurar-flash-con-firebug/'</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p><strong>Análisis de los URLs</strong></p><p>Revisar que los URLs de tu página sean cortos, limpios y descriptivos (<em>Descriptivos</em>: que contienen keywords indicadores del contenido hay en la página). Evitar incluir parámetros adicionales como identificadores, códigos de sesión entre otros. En resumen los URLs deben ser sencillos de recordar y deben indicar directamente el contenido que están alojando.</p><p>Ejemplos:</p><ul><li>Incorrecto: <code>http://blog.unijimpe.net/?p=1268</code></li><li>Correcto: <code>http://blog.unijimpe.net/depurar-flash-con-firebug/</code></li></ul><p><strong>Análisis de la etiqueta &lt;title&gt;</strong></p><p>Asegúrate que todas las páginas tengan títulos únicos y descriptivos. Recuerda que los títulos deben ser únicos pues de lo contrario los motores de búsqueda no distinguirán la diferencia entre las diferentes páginas. Deben ser descriptivos de forma que explique sin opción a dudas cual es el contenido de la página.</p><p>No es necesario incluir el nombre de tu marca en el titulo, pero si deciden hacerlo debe ser al final de titulo y con un carácter separador, esto para obtener mejores beneficios en el ranking de los buscadores. Además hay que verificar que los títulos deben ser de menos de 70 caracteres de longitud en lo posible.</p><p><strong>Análisis de los Metatags</strong></p><p>Revisa el metatag <strong>robots</strong> en todas las páginas de tu sitio. Ten en cuenta que si el metatag robots tiene asignado el valor <em>NoIndex</em> o <em>NoFollow</em> evitará que tu contenido sea indexado en los buscadores. El uso no intencionado de estos tags hará que el contenido no sea indexado. El siguiente código debe ser utilizado sólo cuando se quiera evitar que la página sea indexada, por ejemplo cuando el contenido es accesible sólo para usuarios registrados.</p><div class="syntax_hilite"><div id="html-8"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"robots"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"noindex, nofollow"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p>También es necesario revisar que el metatag <strong>description</strong> sea único y contenga un resumen del contenido de la página. El contenido de este tag será mostrado en los resultados de la búsqueda por lo que ayuda a los usuarios a obtener una  idea del contenido de nuestra página. Si no puedes crear un resumen de la página elimina el metatag <em>description</em> y Google hará un resumen automático.</p><div class="syntax_hilite"><div id="html-9"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"description"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"resumen del contenido de tu pagina "</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p><strong>Analisis de robots.txt y sitemap.xml</strong></p><p>En el archivo <em>robots.txt</em> se incluye un listado de las páginas o archivos que incluir o bloquear según el tipo de buscador. Es necesario verificar que este archivo no contengan enlaces que deseamos sean indexadas.</p><p>El archivo <em>sitemap.xml</em> es un documento XML que contiene todas las rutas con su respecto intervalo de tiempo a rastrear que deseamos enviar a los buscadores. Revisar que todas nuestras páginas estén incluidas con el intervalo de tiempo adecuado.</p><p>Para analizar estos dos archivos pueden utilizar las herramientas de <a href="www.google.com/webmasters/tools/?hl=es">Google Webmaster Tools</a>.</p><p><strong>Análisis de Redirecciones</strong><br /> Los buscadores interpretan el contenido de nuestra página pero no interpretan javascript, por lo que las redirecciones se deben hacer utilizando headers a nivel de servidor de lo contrario los motores de búsqueda no llegarán a la página de destino. Además de ello si se hace una redirección esta debe ser del tipo 301 para indicar que el contenido ha sido movido definitivamente a la nueva dirección. También hay que evitar el uso excesivo de las redirecciones pues estas incrementan el tiempo de carga de la página debido al tiempo que se toman los servidores para resolver las direcciones.</p><p>Se puede utilizar la herramienta <a href="http://samples.unijimpe.net/redirect-viewer/">HTTP Redirect Viewer</a> para el análisis del tipo y cantidad de redirecciones.</p><p><strong>Análisis de las Enlaces Internos</strong></p><p>Revisa que las páginas no tengan enlaces excesivos. Google informa que se debe utilizar una máximo de 100 enlaces por cada página, por que debes incluir sólo las páginas que consideres mas importantes para no exceder es límite.</p><p>También es necesario verificar el uso correcto de los textos <em>anchor</em> en los enlaces internos. Esta es una oportunidad para informar a los usuarios y motores de búsqueda el contenido del enlace de destino, por lo cual debes elegir correctamente el texto del enlace.</p><div class="syntax_hilite"><div id="html-10"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- incorrecto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Click Aquí<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- correcto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Tener en cuenta que Google no interpreta Javascript por lo cual los enlaces hechos de esta forma no serán interpretados y los buscadores nunca llegarán a la página de destino.</p><div class="syntax_hilite"><div id="html-11"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- incorrecto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"javascript:showContact();"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"#"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"showContact();"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- correcto --&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Si tus visitantes pueden publicar comentarios u otro tipo de contenido que incluyan enlaces, utiliza el la propiedad <em>rel="nofollow"</em> para evitar que estemos enlazando a sitios de baja calidad o sitios de spam lo que afectaría negativamente nuestro posicionamiento.</p><div class="syntax_hilite"><div id="html-12"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://spam-site.com"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"nofollow"</span><span style="color: #000000;">&gt;</span></a></span>Spammer Site<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p><strong>Análisis del Tiempo de Carga</strong></p><p>Si el tiempo de carga de tu página es excesivo los motores de búsqueda lo considerarán como un factor en contra y en el peor caso no lo indexarán debido a la dificultad para acceder a nuestra información. Para hacer un análisis de la velocidad de carga se puede utilizar el plugin para Firebug <a href="http://developer.yahoo.com/yslow/">YSlow</a> o también la herramienta online <a href="http://pagespeed.googlelabs.com/">Page Speed Online de Google</a>.</p><p>Para resolver este problema, revisa que las imágenes de tu web no sean muy pesadas, utiliza los headers de expiración, minifica tus archivos <em>js</em> y <em>css</em>, utiliza <em>gzip</em> para enviar contenido. Para mas tips para acelerar la velocidad de carga pueden leer <a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a>.</p><p><strong>Análisis del Código HTML</strong></p><p>Los motores de búsqueda interpretan nuestra página como un texto plano y los tags HTML indican la forma como debe ser interpretado, pero estos no pueden interpretar imágenes, vídeos, flash. Interpretan texto pero no tienen la capacidad de interpretar código Javascript por lo cual lo que vemos en pantalla no es necesariamente lo que puede ser interpretado por el motor de búsqueda.</p><p>Entonces hay que asegurarse que nuestro código HTML sea redactado adecuadamente y muestre al buscador el contenido correcto de nuestro web. Se puede hacer un análisis de como interpretan los buscadores una página con <a href="http://seoparser.com">SEO Parser</a> la cual esta en estado beta pero que permite hacer una análisis de como nos ven los buscadores.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://www.amazon.com/Art-SEO-Theory-Practice/dp/0596518862">The Art of SEO</a> - Chapter IV: Auditing an Existing Site to Identify SEO Problems</li><li><a href="http://googlewebmastercentral.blogspot.com/2008/09/demystifying-duplicate-content-penalty.html">Demystifying the "duplicate content penalty"</a></li><li><a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html">Specify your canonical </a></li><li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=es&#038;answer=96569">Acerca de rel="nofollow"</a></li><li><a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/tips-para-identificar-problemas-en-seo/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Optimización: Google Page Speed Online</title><link>http://blog.unijimpe.net/optimizacion-google-page-speed-online/</link> <comments>http://blog.unijimpe.net/optimizacion-google-page-speed-online/#comments</comments> <pubDate>Mon, 04 Apr 2011 03:40:06 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[cache]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[minificar]]></category> <category><![CDATA[optimizacion]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1260</guid> <description><![CDATA[<p><a href="http://code.google.com/speed/page-speed/">Page Speed</a> el plugin para <em>Firefox</em> y <em>Chrome</em> que permite hacer análisis de la velocidad de carga de un web y ofrece sugerencias de optimización presenta ahora una versión online para realizar un diagnostico de la &#8230;</p>]]></description> <content:encoded><![CDATA[<p><a href="http://code.google.com/speed/page-speed/">Page Speed</a> el plugin para <em>Firefox</em> y <em>Chrome</em> que permite hacer análisis de la velocidad de carga de un web y ofrece sugerencias de optimización presenta ahora una versión online para realizar un diagnostico de la velocidad de carga de nuestra web sin instalar ningún plugin a nuestro navegador favorito.</p><p><a href="http://pagespeed.googlelabs.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2011/04/page-speed-online.png" alt="" title="page-speed-online" width="500" height="242" /></a></p><p><a href="http://pagespeed.googlelabs.com/">Page Speed Online</a> ofrece un reporte agrupado en tres bloques:</p><ul><li><strong>High priority</strong> son puntos con los cuales puedes acelerar de gran manera tu web. Es recomendable implementar todas estas sugerencias. Entre estos puntos están: <em>optimizar las imágenes</em>, <em>generar thumbnails de las imágenes</em>, <em>activar keep-alive</em>, <em>combinar CSS en sprites</em>.</li><li><strong>Medium priority</strong> estos puntos son menos decisivos para la velocidad de tu web pero puede beneficiarse con estas sugerencias. Entre estos puntos tenemos: <em>Minificar CSS y JS</em>, r<em>educir la cantidad de redirecciones</em>, <em>configurar cache de contenido</em>.</li><li><strong>Low priority</strong> son puntos que tienen poco impacto en la velocidad de carga pero pueden ayudar en algo a acelerar nuestra web. En este bloque se encuentran: <em>Evitar peticiones erroneas</em>, <em>eliminar query string en peticiones estáticas</em>, etc.</li></ul><p>Adicionalmente Page Speed ofrece dos tipos de análisis, el primero para la versión de escritorio de tu web y el otro es para la versión móvil de tu web. Siguiendo las sugerencias que ofrece esta herramienta podremos acelerar la carga de nuestra web con pequeños cambios que harán que nuestros visitantes tengan una mejor experiencia en nuestra web.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/optimizacion-google-page-speed-online/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Cached Commons: Librerías Javascript Online para tus Proyectos</title><link>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/</link> <comments>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/#comments</comments> <pubDate>Wed, 01 Sep 2010 04:46:36 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[Servicios Web]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[cdn]]></category> <category><![CDATA[github]]></category> <category><![CDATA[gzip]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[minificar]]></category> <category><![CDATA[SWFObject]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1234</guid> <description><![CDATA[<p><strong>Cached Commons</strong> es una colección de librerías Javascript que han sido cacheadas, optimizadas y alojadas en el CDN de Github las cuales podemos incluir directamente en nuestros proyectos. Están disponibles librerías como: <em>jQuery</em>, <em>SWFObject</em>, &#8230;</p>]]></description> <content:encoded><![CDATA[<p><strong>Cached Commons</strong> es una colección de librerías Javascript que han sido cacheadas, optimizadas y alojadas en el CDN de Github las cuales podemos incluir directamente en nuestros proyectos. Están disponibles librerías como: <em>jQuery</em>, <em>SWFObject</em>, <em>SWFAddress</em>, <em>SyntaxHighlighter</em>, <em>jqPlot</em> entre otros.</p><p><a href="http://cachedcommons.org/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/08/cached-commons.jpg" alt="" title="cached-commons" width="400" height="231" /></a></p><p>Cada librería incluida ha sido <em>minificada</em>, luego se la envía al usuario utilizando compresión <em>GZIP</em> y además con los headers necesarios para ser guardados en el cache del usuario. Esto significa que han sido correctamente optimizados para cargarse rápidamente y por consiguiente acelerar la carga de nuestra web.</p><p><strong>Como utilizar Cached Commons</strong></p><p>Para utilizar cualquier librería alojada en <em>Cached Commons</em> solo debes copiar la ruta de la librería e incluirla directamente en tu proyecto.</p><p>Por ejemplo si deseamos utilizar la librería SWFObject podemos hacerlo mediante:</p><div class="syntax_hilite"><div id="html-15"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://cachedcommons.org/javascripts/swf/swfobject-2.2.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>También podemos utilizar la versión minificada:</p><div class="syntax_hilite"><div id="html-16"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"http://cachedcommons.org/javascripts/swf/swfobject-2.2-min.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Este proyecto es semejante al <a href="http://blog.unijimpe.net/google-ajax-libraries-api/">Google Ajax Libraries API</a> el cual también aloja a las principales librerías javascript, pero tiene la ventaja que aloja a muchas mas librerías y plugins más populares. Si aún así no encuentras la librería que necesitas puedes solicitar qu la agreguen al directorio.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/cached-commons-librerias-javascript-online-para-tus-proyectos/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Optimización: Utilizar compresión Gzip</title><link>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/</link> <comments>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/#comments</comments> <pubDate>Tue, 02 Feb 2010 04:51:05 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[compresion]]></category> <category><![CDATA[gzip]]></category> <category><![CDATA[htaccess]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[optimizacion]]></category> <category><![CDATA[velocidad]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1136</guid> <description><![CDATA[<p>Para optimizar la carga de una página web es necesario disminuir al máximo el número de peticiones o el tamaño de los archivos transmitidos. Para ayudar al ahorro de transferencia los servidores web han implementado formas &#8230;</p>]]></description> <content:encoded><![CDATA[<p>Para optimizar la carga de una página web es necesario disminuir al máximo el número de peticiones o el tamaño de los archivos transmitidos. Para ayudar al ahorro de transferencia los servidores web han implementado formas de compresión, mediante la cual el contenido es comprimido antes de enviarlo al browser.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/header-gzip.gif" alt="" title="header-gzip" width="437" height="204" /></p><p>En la actualidad la mayoría de los browsers soportan dos formatos de compresión, ello lo podemos observar en los headers que envía el browser al hacer una petición. En la propiedad <em>Accept-Encoding</em> con dos valores:</p><ul><li><strong>gzip</strong> es un formato de compresión libre, desarrollado por el proyecto GNU, es el mas popular pues la mayoría de los browsers lo soportan, además ofrece un ahorro del 66% en promedio.</li><li><strong>deflate</strong> menos efectivo que gzip pues ofrece un ahorro de 60%, uno de los pocos sitios que lo utiliza es msn.com.</li></ul><h3>Que archivos comprimir con GZIP</h3><p>Es recomendable comprimir solo los archivos <strong>html</strong>, <strong>php</strong>, <strong>css</strong>, <strong>js</strong> y algunos otros archivos en formato texto. En el caso de archivos <em>jpg</em>, <em>png</em>, <em>gif</em>, <em>pdf</em> estos ya están comprimidos y aplicarle gzip puede incrementar el tamaño de los archivos e incluso el consume de CPU del servidor. Otra regla que hay que tener en cuenta es que se recomienda comprimir archivos de mas de 1Kb.</p><h3>Utilizar GZIP con Apache 1.3</h3><p>En el caso de Apache 1.3 la compresión gzip es manejada por el módulo <em>mod_gzip</em>. Para ello se pueden utilizar las sentencias <em>mod_gzip_item_include</em> para incluir archivos a comprimir y <em>mod_gzip_item_exclude</em> para excluir archivos. Luego editamos el archivo .htaccess e incluimos el siguiente código.</p><div class="syntax_hilite"><div id="code-19"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">&lt;IfModule mod_gzip.<span style="">c</span>&gt;</div></li><li style="color:#26536A;"><div style="">mod_gzip_on Yes</div></li><li style="color:#3A6A8B;"><div style="">mod_gzip_item_include file \.<span style="">html</span>$</div></li><li style="color:#26536A;"><div style="">mod_gzip_item_include file \.<span style="">php</span>$</div></li><li style="color:#3A6A8B;"><div style="">mod_gzip_item_include file \.<span style="">css</span>$</div></li><li style="color:#26536A;"><div style="">mod_gzip_item_include file \.<span style="">js</span>$</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style="">mod_gzip_item_include mime ^application/javascript$</div></li><li style="color:#3A6A8B;"><div style="">mod_gzip_item_include mime ^application/x-javascript$</div></li><li style="color:#26536A;"><div style="">mod_gzip_item_include mime ^text/.*</div></li><li style="color:#3A6A8B;"><div style="">mod_gzip_item_include handler ^application/x-httpd-php</div></li><li style="color:#26536A;"><div style="">&nbsp;</div></li><li style="color:#3A6A8B;"><div style="">mod_gzip_item_exclude mime ^image/.*</div></li><li style="color:#26536A;"><div style="">&lt;/IfModule&gt;</div></li></ol></div></div></div><p></p><h3>Utilizar GZIP con Apache 2.x</h3><p>Para versiones de Apache 2.x la compresión es gestionada por el módulo <em>mod_deflate</em> (No confundir el nombre del módulo con la compresión, pues esta genera compresión gzip). Para comprimir los archivos podemos utilizar la sentencia <em>AddOutputFilterByType</em> de la siguiente forma:</p><div class="syntax_hilite"><div id="code-20"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">AddOutputFilterByType DEFLATE text/html text/css application/x-javascript</div></li></ol></div></div></div><p></p><p>En nuestro caso tenemos <em>Apache 2.0.54</em> por lo cual aplicamos el segundo método. Hemos creados dos ejemplos uno sin compresión (<a href="http://samples.unijimpe.net/optimization/no-gzip/">http://samples.unijimpe.net/optimization/no-gzip/</a>), en el cual podemos observar que toda la pagina tiene un tamaño de <em>135.4 Kb</em> y demora en cargar <em>3.46 segundos</em>.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/no-gzipped.gif" alt="" title="no-gzipped" width="474" height="129" /></p><p>Ahora si agregamos la compresión gzip (<a href="http://samples.unijimpe.net/optimization/gzip/">http://samples.unijimpe.net/optimization/gzip/</a>) podemos observar una reducción significante en el tamaño de los archivos. Ahora toda la página tiene un tamaño de 38.8KB con lo cual hemos ahorrado un 71.3%.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/gzipped.png" alt="" title="gzipped" width="469" height="129"  /></p><p><strong>Mas Información</strong><br /> Se puede habilitar la compresión con PHP e incluso controlar mas al detalle la compresión de los archivos, para ello les dejo algunos enlaces para encontrar mas información.</p><ul><li><a href="http://code.google.com/speed/articles/gzip.html">How gzip compression works</a></li><li><a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html">Apache Module mod_deflate</a></li><li><a href="http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/">How To Optimize Your Site With GZIP Compression</a></li><li><a href="http://www.webcodingtech.com/php/gzip-compression.php">How to enable gzip compression with PHP</a></li><li><a href="http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php">3 ways to compress CSS files using PHP</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/feed/</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>Optimización: Agregar Headers de Expiración</title><link>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/</link> <comments>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/#comments</comments> <pubDate>Sun, 31 Jan 2010 04:02:45 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[htaccess]]></category> <category><![CDATA[http]]></category> <category><![CDATA[optimizacion]]></category> <category><![CDATA[rendimiento]]></category> <category><![CDATA[velocidad]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1134</guid> <description><![CDATA[<p>Los Header de expiración son utilizados para indicar cuando expira un determinado archivo, en cuyo caso el mismo no es cargado nuevamente si es que aun no ha expirado. Entonces para archivos que no cambian comúnmente &#8230;</p>]]></description> <content:encoded><![CDATA[<p>Los Header de expiración son utilizados para indicar cuando expira un determinado archivo, en cuyo caso el mismo no es cargado nuevamente si es que aun no ha expirado. Entonces para archivos que no cambian comúnmente como las imágenes, vídeos, javascript, hojas de estilo podríamos agregarle headers de expiración con lo cual solo se cargarán la primera vez que accedemos a la pagina.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/01/headers.gif" alt="" title="headers" width="320" height="192" class="alignnone size-full wp-image-1135" /></p><p>Para ello se pueden utilizar los headers: <em>Expires</em> que contiene la fecha en la cual expira el archivo y <em>Cache-Control</em>, se pueden agregar estos dos headers por separado pero si agregamos el <em>Expires</em> este agregará también el header <em>Cache-Control</em>.</p><h3>Expiración Utilizando htaccess</h3><p>Los servidores web <em>Apache</em> son muy versátiles y permiten configurar de forma sencilla los headers de expiración, para ello debes incluir las directivas en el archivo <strong>.htaccess</strong>. Para el caso de la expiración se puede utilizar <em>ExpiresDefault</em>, para ello tenemos las siguientes directivas de tiempo: <em>years</em>, <em>months</em>, <em>weeks</em>, <em>days</em>, <em>hours</em>, <em>minutes</em>, <em>seconds</em>.</p><p>Lo recomendables es colocar una expiración de 30 días para los archivos estaticos (jpg, png, gif, swf, js, css), entonces podríamos agregar el siguiente código:</p><div class="syntax_hilite"><div id="code-26"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">ExpiresActive On</div></li><li style="color:#26536A;"><div style="">ExpiresDefault A0</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style=""># expiracion de <span style="color:#800000;color:#800000;">1</span> mes para archivos estaticos</div></li><li style="color:#3A6A8B;"><div style="">&lt;FilesMatch <span style="color:#CC0000;">"<span style="color:#000099;">\.</span>(gif|jpg|jpeg|png|swf|js|css)$"</span>&gt;</div></li><li style="color:#26536A;"><div style="">ExpiresDefault <span style="color:#CC0000;">"access plus 1 months"</span></div></li><li style="color:#3A6A8B;"><div style="">&lt;/FilesMatch&gt;</div></li></ol></div></div></div><p></p><p>Además de ello la expiración también se puede expresar en segundos, entonces modificando el ejemplo anterior tendríamos (30 dias = 60*60*24*30 = 2592000):</p><div class="syntax_hilite"><div id="code-27"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">ExpiresActive On</div></li><li style="color:#26536A;"><div style="">ExpiresDefault A0</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style=""># expiracion de <span style="color:#800000;color:#800000;">1</span> mes para archivos estaticos</div></li><li style="color:#3A6A8B;"><div style="">&lt;FilesMatch <span style="color:#CC0000;">"<span style="color:#000099;">\.</span>(gif|jpg|jpeg|png|swf|js|css)$"</span>&gt;</div></li><li style="color:#26536A;"><div style="">ExpiresDefault A2592000</div></li><li style="color:#3A6A8B;"><div style="">&lt;/FilesMatch&gt;</div></li></ol></div></div></div><p></p><p>Otra forma para agregar la expiración es el uso de la directiva <em>ExpiresByType</em> mediante la cual se le puede asignar tiempos diferentes dependiendo del tipo de archivo. Con esta directiva tendríamos el ejemplo anterior transformado en:</p><div class="syntax_hilite"><div id="code-28"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">ExpiresActive On</div></li><li style="color:#26536A;"><div style="">ExpiresDefault A0</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style="">ExpiresByType image/gif A2592000</div></li><li style="color:#3A6A8B;"><div style="">ExpiresByType image/png A2592000</div></li><li style="color:#26536A;"><div style="">ExpiresByType image/jpg A2592000</div></li><li style="color:#3A6A8B;"><div style="">ExpiresByType image/jpeg A2592000</div></li><li style="color:#26536A;"><div style="">ExpiresByType text/css A2592000</div></li><li style="color:#3A6A8B;"><div style="">ExpiresByType text/javascript A2592000</div></li></ol></div></div></div><p></p><p>Pueden ver el ejemplo funcionando en <a href="http://samples.unijimpe.net/optimization/expiration/">http://samples.unijimpe.net/optimization/expiration/</a>, si utilizan<em>Firebug</em> para ver el trafico de red observarán como se cargan las imágenes la primera vez, las siguientes estas se leen del cache del browser.  Les dejo los archivos de ejemplo con el .htaccess para cada ejemplo con el cual pueden hacer sus pruebas.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/expiration.zip" title="Headers de Expiración"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p><h3>Expiración Utilizando PHP</h3><p>PHP también es otra solución para agregar los headers de expiración. Para ello haremos uso de la función <em>header</em>.  El formato del header de expiración en:</p><div class="syntax_hilite"><div id="php-29"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Expires: Mon, 26 Jul 2010 05:00:00 GMT"</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>Creando dinámicamente la expiración, utilizando las funciones de fecha tendríamos un ejemplo con la expiración de 30 dias (60*60*24*30 = 30 dias expresados en segundos)</p><div class="syntax_hilite"><div id="php-30"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Cache-Control: must-revalidate"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Expires: "</span>.<a href="http://www.php.net/gmdate"><span style="color:#000066;">gmdate</span></a> <span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"D, d M Y H:i:s"</span>, <a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span> + <span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">24</span>*<span style="color:#CC66CC;color:#800000;">30</span><span style="color:#006600;">&#41;</span>.<span style="color:#FF0000;">" GMT"</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Mas Información</strong><br /> Hemos presentado una breve explicación utilizando .htaccess y PHP, pueden tener mas información y conceptos mas desarrollados en:</p><ul><li><a href="http://developer.yahoo.com/performance/rules.html#expires">Add an Expires or a Cache-Control Header</a></li><li><a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html">Apache Module mod_expires</a></li><li><a href="http://www.websiteoptimization.com/speed/tweak/cache/">Use Server Cache Control to Improve Performance</a></li><li><a href="http://www.badpenguin.org/php-howto-control-page-caching">PHP: Howto control page caching</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>Optimización: Reducir peticiones HTTP</title><link>http://blog.unijimpe.net/optimizacion-reducir-peticiones-http/</link> <comments>http://blog.unijimpe.net/optimizacion-reducir-peticiones-http/#comments</comments> <pubDate>Tue, 26 Jan 2010 03:30:07 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[http]]></category> <category><![CDATA[optimizacion]]></category> <category><![CDATA[rendimiento]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[velocidad]]></category> <category><![CDATA[web]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1133</guid> <description><![CDATA[<p>Una de las primeras reglas para aumentar la velocidad de carga de una web es <em>reducir la cantidad de peticiones HTTP</em>. Recordando lo comentado en <a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a> el 80% del tiempo se &#8230;</p>]]></description> <content:encoded><![CDATA[<p>Una de las primeras reglas para aumentar la velocidad de carga de una web es <em>reducir la cantidad de peticiones HTTP</em>. Recordando lo comentado en <a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a> el 80% del tiempo se emplea en descargar los componentes de una pagina mientras que solo el 20% en cargar el HTML. Si logramos reducir al máximo la carga de componentes externos lograremos mejorar el rendimiento de nuestro web.</p><h3>Combinar archivos CSS y JS</h3><p>Si tenemos una pagina que carga múltiples archivos JS para lograr efectos e interactividad o tal vez utilizamos múltiples archivos CSS (Esto generalmente ocurre al utilizar librerías de terceros que vienen con sus archivos JS y CSS). Podríamos combinar todos los archivos JS y CSS con lo cual podríamos disminuir la cantidad de peticiones HTTP .</p><p>Por ejemplo si tenemos una página que carga múltiples archivos Javascript tendríamos un código de la forma:</p><div class="syntax_hilite"><div id="html-38"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/reset.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/style.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/cropper.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/prototype.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span>&nbsp;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/builder.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/effects.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/dragdrop.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/controls.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/slider.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/sound.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/cropper.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Uniendo todo el contenido CSS en un archivo y el contenido JS en un solo archivo podríamos tener el siguiente código:</p><div class="syntax_hilite"><div id="html-39"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/cropper-complete.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/cropper-complete.js"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><h3>Utilizar Mapa de Imágenes</h3><p>Si utilizas varias imágenes como enlaces, una solución es unir las imágenes y utilizar mapa de imágenes para los enlaces, entonces en lugar de cargar una imagen por cada enlace, cargaremos una sola imagen para todos los enlaces y utilizamos un mapa de imágenes. Por ejemplo podríamos tener un menú de la forma:</p><div class="syntax_hilite"><div id="html-40"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"home.php"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"home.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"59"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">"Home"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"empresa.php"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"empresa.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"59"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">"Empresa"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"productos.php"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"productos.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"59"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">"Productos"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"servicios.php"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"servicios.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"59"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">"Servicios"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"contacto.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"59"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">"Contacto"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Uniendo las imágenes y reemplazando los enlaces por un mapa de imágenes se tendría:</p><div class="syntax_hilite"><div id="html-41"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"menu.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"295"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"20"</span> <span style="color: #000066;">usemap</span>=<span style="color: #ff0000;">"#map"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/map.html"><span style="color: #000000;">&lt;map</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"map"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;<span style="color: #009900;">&lt;area <span style="color: #000066;">shape</span>=<span style="color: #ff0000;">"rect"</span> <span style="color: #000066;">coords</span>=<span style="color: #ff0000;">"0,0,59,20"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"home.php"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Home"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;<span style="color: #009900;">&lt;area <span style="color: #000066;">shape</span>=<span style="color: #ff0000;">"rect"</span> <span style="color: #000066;">coords</span>=<span style="color: #ff0000;">"59,0,118,20"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"empresa.php"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Empresa"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;<span style="color: #009900;">&lt;area <span style="color: #000066;">shape</span>=<span style="color: #ff0000;">"rect"</span> <span style="color: #000066;">coords</span>=<span style="color: #ff0000;">"118,0,177,20"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"productos.php"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Productos"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;<span style="color: #009900;">&lt;area <span style="color: #000066;">shape</span>=<span style="color: #ff0000;">"rect"</span> <span style="color: #000066;">coords</span>=<span style="color: #ff0000;">"177,0,236,20"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"servicios.php"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Servicios"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;<span style="color: #009900;">&lt;area <span style="color: #000066;">shape</span>=<span style="color: #ff0000;">"rect"</span> <span style="color: #000066;">coords</span>=<span style="color: #ff0000;">"236,0,295,20"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Contacto"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/map&gt;</span></span></div></li></ol></div></div></div><p></p><h3>Uso de CSS Sprites</h3><p>Si utilizamos botones con rollover es típico hacerlo con dos imágenes una para el estado normal y otra para el rollover. Una técnica llamada <em>CSS Sprites</em> consiste en utilizar una sola imagen como fondo que contenga todas las imágenes a utilizar y para hacer el efecto de cambio de imagen se cambia la posición de la imagen de fondo.</p><p>Entonces al combinar las imágenes logramos disminuir la cantidad de peticiones HTTP con el consiguiente ahorro en el tiempo de carga. Pueden leer mas acerca de como funcionan los CSS Sprites en <a href="http://www.alistapart.com/articles/sprites">CSS Sprites: Image Slicing’s Kiss of Death</a></p><h3>Imágenes Inline</h3><p>Otra forma de disminuir la cantidad de peticiones es incluir las imágenes pequeñas como texto en el HTML, para ello se convierte la imagen en base64 y se incluye como texto. Por ejemplo normalmente incluimos una imagen con el siguiente código:</p><div class="syntax_hilite"><div id="html-42"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"boton.gif"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"16"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"16"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p>Convirtiendo la imagen en base64 podremos incluir la imagen sin llamar a un archivo externo de la siguiente forma:</p><div class="syntax_hilite"><div id="html-43"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"data:image/gif;base64,R0lGODlhEAAQAJEAAAAAAN3d3...XZ"</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">"16"</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">"16"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p>Donde <em>R0lGODlhEAAQAJEAAAAAAN3d3...XZ</em> texto resumido, resultado de convertir la imagen en texto codificado en base64. Ahora para reemplazar esta imagen tenemos que codificar la imagen, esto lo podemos hacer con la función <em>base64_encode</em> de PHP, entonces el código PHP que imprime la imagen como texto sería:</p><div class="syntax_hilite"><div id="html-44"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"data:image/gif;base64,&lt;?php echo base64_encode(file_get_contents("</span>boton.gif<span style="color: #ff0000;">")); ?&gt;</span>&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt; </span></div></li></ol></div></div></div><p></p><p>Otra opción para convertir las imágenes en base64 es utilizar un convertidor online como por ejemplo <a href="http://www.dailycoding.com/Utils/Converter/ImageToBase64.aspx">Online Image to Base64 Converter</a>. Hay que tener en cuenta que este método es recomendable para imágenes pequeñas de preferencia en formato GIF y menores a 100KB por que la codificación en base64 incrementa el tamaño del archivo.</p><p><strong>Mas Información</strong><br /> Con estos pequeños cambios podemos incrementar la velocidad de carga de nuestra web. No son muy complejos de implementar y además no interfieren con el backend de la página web. Pueden encontrar mas información en:</p><ul><li><a href="http://developer.yahoo.com/performance/rules.html#num_http">Minimize HTTP Requests</a></li><li><a href="http://robertnyman.com/2008/05/09/improve-your-web-site-performance-tips-tricks-to-get-a-good-yslow-rating/">How to reduce the number of HTTP requests</a></li><li><a href="http://www.elated.com/articles/creating-image-maps/">Tutorial: Creating Image Maps</a></li><li><a href="http://www.alistapart.com/articles/sprites">CSS Sprites: Image Slicing’s Kiss of Death</a></li><li><a href="http://www.websiteoptimization.com/speed/tweak/inline-images/">Inline Images with Data URLs</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/optimizacion-reducir-peticiones-http/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Optimizar Carga de Paginas Web</title><link>http://blog.unijimpe.net/optimizar-carga-de-paginas-web/</link> <comments>http://blog.unijimpe.net/optimizar-carga-de-paginas-web/#comments</comments> <pubDate>Tue, 29 Dec 2009 05:16:59 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[optimizacion]]></category> <category><![CDATA[rendimiento]]></category> <category><![CDATA[velocidad]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1130</guid> <description><![CDATA[<p>La optimización de los sitios web es un punto muy importante para mejorar el rendimiento de cualquier sitio web. Según el libro <a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309/">High Performance Web Sites: Essential Knowledge for Front-End Engineers</a> de Steve Souders, basado en &#8230;</p>]]></description> <content:encoded><![CDATA[<p>La optimización de los sitios web es un punto muy importante para mejorar el rendimiento de cualquier sitio web. Según el libro <a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309/">High Performance Web Sites: Essential Knowledge for Front-End Engineers</a> de Steve Souders, basado en los estudios hechos por el equipo de optimización de Yahoo han llegado a definir una regla:</p><blockquote><p> Sólo el <strong>10-20%</strong> del tiempo de respuesta se utiliza en descargar el documento HTML. <br />El otro <strong>80-90%</strong> está empleado en descargar todos los componentes en la página.</p></blockquote><p>Esto significa que si logramos optimizar la carga de todos los elementos de la pagina web, tendríamos el 80% de la velocidad de carga bajo nuestro control, con el consiguiente aumento considerable en la velocidad de carga de una web.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2009/12/firebug.jpg" alt="" title="firebug" width="400" height="280" class="alignnone size-full wp-image-1131" /></p><p><strong>Reglas para Optimización</strong></p><p>Para acelerar la carga de las paginas web podemos seguir algunas reglas que hemos recopilado de <a href="http://developer.yahoo.com/performance/">Exceptional Performance</a> de Yahoo y de <a href="http://code.google.com/speed/page-speed/docs/rules_intro.html">Web Performance Best Practices</a> de Google.</p><ul><li><strong>Reducir las peticiones HTTP</strong><br />Reduciendo la cantidad de elementos externos a nuestra página podemos reducir el tiempo de carga, para ello podemos combinar archivos JS, CSS, utilizar sprites para los botones, etc.</li><li><strong>Agregar headers de Expiración</strong><br />Agregando los headers indicando cuando expiran los archivos evitaremos la carga innecesaria de archivos que ya han sido cargados.</li><li><strong>Utilizar compresión Gzip</strong><br />Al comprimir los archivos con gzip antes de enviarlos al browser conseguiremos disminuir la cantidad de datos a transmitir.</li><li><strong>Colocar los Estilos en el Header</strong><br />Se recomienda colocar los archivos de estilos en el header para que se carguen primero y renderear rápidamente el web.</li><li><strong>Colocar los Scripts en el Footer</strong><br />Cuando se carga un archivo JS, este bloquea la carga de otros archivos hasta que se complete la carga, si el archivo JS es pesada hará que nuestra página se vea en blanco mientras se carga el Javascript.</li><li><strong>Poner Javascript y CSS en archivos externos</strong><br />Al colocar en archivos externos los javascripts y hojas de estilos, en la primera vez cargaremos estos archivos y en la siguientes peticiones las leeremos del cache del browser.</li><li><strong>Reducir las búsquedas DNS</strong><br />Se recomienda no utilizar varios dominios en la carga de los elementos del web, por cada dominio habrá un tiempo para resolver la dirección IP.</li><li><strong>Minificar archivos Javascript y CSS</strong><br />Minificar es eliminar los espacios en blanco y los saltos de linea innecesarios, minificar ayuda a reducir el tamaño de los archivos.</li><li><strong>Evitar las Redirecciones</strong><br />El hacer una redirección toma un tiempo para resolver el URL de destino, utilizar correctamente los tipos de redirecciones ayudará a mantener rápida la carga de nuestras paginas.</li><li><strong>Configurar los eTags</strong><br />Los eTags se agregan en los header para indicar si el archivo se ha modificado, para ello se compara el valor del eTag guardado en el browser con el eTag del archivo en el servidor.</li><li><strong>Remover Scripts duplicados</strong><br />Al eliminar los scripts duplicados conseguiremos disminuir la carga de nuestros archivos.</li><li><strong>Optimizar las Imagenes</strong><br />Podemos optimizar las imágenes, para ello hay que escoger adecuadamente el formato del archivo de imagen para reducir el tamaño del archivo.</li><li><strong>Utilizar dominios libre de Cookies</strong><br />Es recomendable colocar las imagenes, js y css en dominios que no utilizen cookies, esto ayudará a disminuir el trafico de contenido.</li></ul><p><strong>Herramientas para la Optimización</strong></p><p>Existen herramientas que nos pueden ayudar a hacer un diagnostico del estado de optimización de nuestra página, ello nos dará una guia de lo que podemos optimizar para mejorar la velocidad de nuestra web.</p><ul><li><a href="http://getfirebug.com/">Firebug</a><br />Firebug es el complemento básico para todo desarrollador web, esta extensión permite ver todos los archivos que se cargan con la pagina y los tiempos de carga.</li><li><a href="http://developer.yahoo.com/yslow/">YSlow</a><br />Este es una extensión para Firebug creada por Yahoo que permite hacer un diagnostico de la velocidad de carga de una pagina basado en reglas definidas por YSlow.</li><li><a href="http://code.google.com/speed/page-speed/ ">Page Speed</a><br />Este plugin creado por Google permite diagnosticar que puntos de nuestra web podemos mejorar para acelerar la carga de nuestras paginas.</li></ul><p><img src="http://blog.unijimpe.net/wp-content/uploads/2009/12/yslow.jpg" alt="" title="yslow" width="400" height="248" class="alignnone size-full wp-image-1132" /></p><p><strong>Mas Información</strong><br /> Hay mucha información y muy bien documentada de todas las formas para optimizar nuestras paginas.</p><ul><li><a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309/">High Performance Web Sites: Essential Knowledge for Front-End Engineers</a></li><li><a href="http://developer.yahoo.com/performance/rules.html">Best Practices for Speeding Up Your Web Site</a></li><li><a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/">Performance Research, Part 1: What the 80/20 Rule Tells Us about Reducing HTTP Requests</a></li><li><a href="http://code.google.com/speed/page-speed/docs/rules_intro.html">Web Performance Best Practices</a></li></ul><p>En futuros posts desarrollaremos uno a unos los puntos mencionados para optimizar nuestras páginas, las pondremos en práctica y analizaremos algunos casos prácticos.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br /> ]]></content:encoded> <wfw:commentRss>http://blog.unijimpe.net/optimizar-carga-de-paginas-web/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching using disk: basic

Served from: blog.unijimpe.net @ 2012-02-08 22:49:14 -->
