webperf wordpress

Click here to load reader

Download Webperf wordpress

Post on 08-May-2015

2.136 views

Category:

Education

0 download

Embed Size (px)

DESCRIPTION

"Web Performance para Wordpress" es una presentación de Javier Casares pronunciada en La Salle Campus Barcelona el 26 de abril de 2012. Esta es una de las sesiones sobre #webperf que organiza Javier Casares en colaboración con nuestro centro universitario. Se pueden seguir en directo a través del canal Livestream de La Salle BCN: http://new.livestream.com/LaSalleBCN

TRANSCRIPT

  • 1.Colabora: Web Performancepara WordPressJavier Casares javier@casares.org#webperf @WebPerfES

2. Javier Casares Internet 1995 Barcelona 1979 Web 1997 javiercasares.com/wpo SEO 2003 javier@casares.org WPO 2009 @JavierCasares#webperf@WebPerfES 3. Preparacin WordPress es potente pero viene muy mal configurado. Antes de lanzarlo hay que preparar bastantes cambios. Comprobar Apache, PHP y MySQL. Recomendable: Apache 2.2.x PHP 5.3.x MySQL 5.5.x#webperf @WebPerfES 4. Apache Virtual HostRewriteEngine OnRewriteOptions InheritServerAdmin root@example.comDocumentRoot /web/javier/ServerName javiercasares.comServerAlias www.javiercasares.com casares.org www.casares.orgHeader unset ETagFileETag NoneAllow from allOptions +Indexes FollowSymLinksAllowOverride All contina#webperf @WebPerfES 5. Apache Virtual HostExpiresActive onExpiresDefault "access plus 1 hour"ExpiresByType image/* "access plus 1 month"ExpiresByType video/* "access plus 1 month"ExpiresByType text/css "access plus 1 month"ExpiresByType application/x-javascript "access plus 1 month"ExpiresByType application/javascript "access plus 1 month"ExpiresByType text/html "access plus 1 hour" contina#webperf @WebPerfES 6. Apache Virtual HostDeflateCompressionLevel 9SetOutputFilter DEFLATEBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4.0[678] no-gzipBrowserMatch bMSIE !no-gzip !gzip-only-text/htmlDeny from all#webperf @WebPerfES 7. Virtual Host estticosRewriteEngine OnRewriteOptions InheritServerAdmin root@example.comDocumentRoot /web/static/ServerName javiercasares.netServerAlias w1.javiercasares.net w2.javiercasares.netFileETag AllExpiresActive onExpiresDefault "access plus 1 month"RequestHeader unset CookieHeader unset Set-Cookie contina#webperf @WebPerfES 8. Virtual Host estticosDeflateCompressionLevel 9SetOutputFilter DEFLATEBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4.0[678] no-gzipBrowserMatch bMSIE !no-gzip !gzip-only-text/html#webperf @WebPerfES 9. Preparacin Ficheros tamao 0: /.htaccess /sitemap.xml /robots.txt Carpetas no existentes (permisos 777): /wp-content/cache/ /wp-content/uploads/#webperf @WebPerfES 10. .htaccess Control de hostname (si-www / no-www). Filtrado de peticiones a ficheros directos (sin pasar por el software PHP). No dejar que sea escribible (aunque WordPress lo pida).#webperf@WebPerfES 11. .htaccessRewriteEngine OnRewriteBase /RewriteCond %{HTTP_HOST} !^javiercasares.com$ [NC]RewriteRule ^.*$ http://javiercasares.com%{REQUEST_URI}[R=301,L]RewriteCond $1 ^(index.php)?$ [OR]RewriteCond $1 .(css|js|sql|txt|xml|7z|bmp|bz2|csv|doc|docx|epub|gif|gz|ico|jpeg|jpg|key|log|mp3|odp|ods|odt|ogg|pdf|png|pps|ppt|pptx|ps|psd|rar|rtf|svg|tar|tbz|tgz|tif|tiff|vcf|xls|xlsx|zip)$ [NC,OR]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} dRewriteRule ^(.*)$ - [S=1]RewriteRule . /index.php [L]#webperf @WebPerfES 12. sitemap.xml Se puede dejar inicialmente en blanco (se actualizar mediante un plugin). Ha de tener permisos de escritura (666). Se puede usar la versin alternativa con el fichero .#webperf @WebPerfES 13. robots.txt Hay que crear un fichero fsico y no dejar que el sistema lo virtualice. Indicaremos la localizacin del Sitemap. Filtraremos determinadas estructuras de URL para evitar contenidos duplicados (evitar el Google Panda).#webperf @WebPerfES 14. robots.txtSitemap: http://javiercasares.com/sitemap.xmlUser-Agent: *Disallow: /blog/*/feed/Disallow: /blog/*/trackback/Disallow: /blog/*/attachment/Disallow: /blog/author/Disallow: /category/*/page/Disallow: /category/*/feed/Disallow: /tag/*/page/Disallow: /tag/*/feed/Disallow: /page/Disallow: /xmlrpc.phpDisallow: /*?s=#webperf@WebPerfES 15. Configuracin El fichero se puede mejorar mucho con muchas opciones: Configuracin de BDD Claves autentificacin Cach e historial Dominio de cookies Configuracin FTP Configuracin hostname#webperf @WebPerfES 16. wp-config.phpdefine(DB_NAME, javiercasares);define(DB_USER, javiercasares);define(DB_PASSWORD, xxxxxxxxxxxxxx);define(DB_HOST, aaa.bbb.ccc.ddd);//define(DB_CHARSET, utf8);//define(DB_COLLATE, ); Tras esto, aadir la codificacin secreta https://api.wordpress.org/secret-key/1.1/salt/#webperf @WebPerfES 17. wp-config.phpdefine(WPLANG, es_ES);define(WP_CACHE, true);define(WP_POST_REVISIONS, false);define(AUTOSAVE_INTERVAL,120);define(COOKIE_DOMAIN, javiercasares.com);define(WP_SITEURL, http://javiercasares.com);define(WP_HOME, http://javiercasares.com);#webperf @WebPerfES 18. wp-config.phpdefine(FS_METHOD, direct);define(FTP_BASE, /web/javier/);define(FTP_CONTENT_DIR, /web/javier/wp-content/);define(FTP_PLUGIN_DIR , /web/javier/wp-content/plugins/);define(FTP_USER, aaaaaaaaaa);define(FTP_PASS, xxxxxxxxxxxx);define(FTP_HOST, aaa.bbb.ccc.ddd); Otras variables para actualizacin automtica: http://codex.wordpress.org/Editing_wp- config.php#WordPress_Upgrade_Constants#webperf @WebPerfES 19. Instalacin Subimos los ficheros por FTP (o como sea). Entramos en el panel de instalacin. Instalamos. Felicitamos por una instalacin tan simple (por ejemplo a @WordPress)#webperf @WebPerfES 20. Administracin Que nadie se pueda registrar (al menos en general ser as). WordPress corregir de forma automtica el XHTML incorrectamente anidado Servicios de actualizacin: http://rpc.pingomatic.com/ http://ping.blo.gs/ http://rpc.technorati.com/rpc/ping#webperf @WebPerfES 21. Administracin No tener comentarios anidados (y si se tienen, no ms de 2 niveles de recursividad). No paginar los comentarios (genera contenidos duplicados y pginas absurdas). No mostrar avatares (el sistema de Gravatar es bastante malo a la hora de llamar a las imgenes). Opcin de plugin para cachear.#webperf @WebPerfES 22. Administracin Los enlaces permanentes pueden ser: /%postname%/ Desde la versin WordPress 3.2.x, el sistema ya lleva como nativo este ajuste, por lo que los problemas de rendimiento histricos se han eliminado.#webperf@WebPerfES 23. Multimedia Hay 2 opciones: Usar la carpeta /wp-content/ Usar un dominio para estticos Un dominio para estticos: Ha de ser un dominio distinto (.com o .net) Ha de ser sin cookies ETag o Cachs altas#webperf @WebPerfES 24. Multimedia Carpeta para los ficheros: /web/static Ruta para los ficheros: http://examplestatic.net#webperf @WebPerfES 25. Plugins Generales Akismet Sistema antispam de los creadores de WordPress. http://wordpress.org/extend/plugins/akismet/ Elimina Cabeceras (no repositorio) Quita cabeceras que pueden molestar (link rel="wlwmanifest") o provocar problemas de seguridad (meta name="generator"). https://dl.dropbox.com/u/19964073/EliminaCabeceras.zip#webperf @WebPerfES 26. Plugins Generales Limitador de intentos de login Bloquea ataques de acceso al panel de administracin http://wordpress.org/extend/plugins/limit-login-attempts/ Simple Trackback Validation Bloquea ataques de links en trackbacks. http://wordpress.org/extend/plugins/simple-trackback-validation/#webperf@WebPerfES 27. Plugins Generales WordPress Backup to Dropbox Genera una copia de todo el WordPress en Dropbox. http://wordpress.org/extend/plugins/wordpress-backup-to-dropbox/ WordPress Firewall 2 Analiza peticiones extraas y ataques XSS http://wordpress.org/extend/plugins/wordpress-firewall-2/#webperf@WebPerfES 28. Plugins SEO All in One SEO Pack Hay que configurarlo bien para que no entre en conflicto con otros plugins y configuraciones. http://wordpress.org/extend/plugins/all-in-one-seo-pack/ Google XML Sitemaps Bsico para generar los Sitemaps. http://wordpress.org/extend/plugins/google-sitemap-generator/#webperf@WebPerfES 29. Plugins SEO OpenGraphProtocol (no repositorio) Genera encabezados para Open Graph Protocol (Facebook). https://dl.dropbox.com/u/19964073/OpenGraphProtocol.zip PubSubHubbub Ayuda a avisar a sistemas de novedades en contenidos. http://wordpress.org/extend/plugins/pubsubhubbub/#webperf @WebPerfES 30. Plugins Mantenimiento Better Delete Revision http://wordpress.org/extend/plugins/better-delete-revision/ Debug Queries http://wordpress.org/extend/plugins/debug-queries/ P3 (Plugin Performance Profiler) http://wordpress.org/extend/plugins/p3-profiler/#webperf@WebPerfES 31. Plugins WPO WP cach Dnde est Ricardo Galli cuando se le necesita? https://dl.dropbox.com/u/19964073/wp-cache.zip Este plugin NO CACHEA, gestiona la cach propia de WordPress Los cambios de rendimiento de la cach interna a otros plugins no es tan distinta (sobre todo si luego)#webperf@WebPerfES 32. Plugins WPO Lazy Load Gracias a jQuery, carga las imgenes de forma asncrona, cuando el usuario las ve en la pantalla. Es un plugin de Automattic. http://wordpress.org/extend/plugins/lazy-load/ Va bien para reducir el tiempo de respuesta inicial de carga de la pgina.#webperf@WebPerfES 33. Plugins WPO WP Smush.it Optimiza los contenidos multimedia cuando se suben al panel. http://wordpress.org/extend/plugins/wp-smushit/ Utiliza Yahoo! SmushIt, la herramienta que se usa para calcular en YSlow.#webperf @WebPerfES 34. Plugins WPO WP Minify Dnde ests? Selecciona TODOS los CSS y los JS (otros plugins slo los que estn encolados). Los agrupa y comprime, tambin el HTML. Ya no est en el repositorio y da algunos problemas (posible incompatibilidad WP 3.2). No hay ningn plugin que llegue a su nivel.#webperf @WebPerfES 35. Plugins WPO WP Parallel Loading System Permite automatizar el Domain Sharding de imgenes. http://wordpress.org/extend/plugins/parallel-loading-system/ Es recomendable un mximo de 3 subdominios. Hay que recordar hacer un hack para no generar contenidos duplicados en los subdominios (robots.txt segn hostname con Disallow: /)#webperf@WebPerfES 36. Cuando tu ISP no te permite tocar En muchos casos no podemos optimizar recursos de los servidores (Apache, PHP, MySQL). Ests en un servidor compartido de 1 euro de 1&1 (a la p*** calle ahora mismo!) Tienes tus servidores en Estados Unidos o fuera del pas de mayor trfico.