SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
Colabora:




               Web Performance
                para WordPress
                      Javier Casares
                   javier@casares.org


#webperf   @WebPerfES
Javier Casares
   •   Internet 1995          •   Barcelona 1979
   •   Web 1997               •   javiercasares.com/wpo
   •   SEO 2003               •   javier@casares.org
   •   WPO 2009               •   @JavierCasares




#webperf      @WebPerfES
Preparación
   • 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
Apache Virtual Host
<VirtualHost aaa.bbb.ccc.ddd:80>
  RewriteEngine On
  RewriteOptions Inherit
  ServerAdmin root@example.com
  DocumentRoot /web/javier/
  ServerName javiercasares.com
  ServerAlias www.javiercasares.com casares.org www.casares.org
  Header unset ETag
  FileETag None
  <Directory "/web/javier/">
    Allow from all
    Options +Indexes FollowSymLinks
    AllowOverride All
  </Directory>

… continúa

#webperf     @WebPerfES
Apache Virtual Host
  <IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "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"
  </IfModule>

… continúa




#webperf     @WebPerfES
Apache Virtual Host
  <IfModule mod_deflate.c>
    DeflateCompressionLevel 9
    <FilesMatch ".(js|css|php)$">
      SetOutputFilter DEFLATE
      BrowserMatch ^Mozilla/4 gzip-only-text/html
      BrowserMatch ^Mozilla/4.0[678] no-gzip
      BrowserMatch bMSIE !no-gzip !gzip-only-text/html
    </FilesMatch>
  </IfModule>
  <Filesmatch ^wp-config.php$>
    Deny from all
  </Filesmatch>
</VirtualHost>




#webperf     @WebPerfES
Virtual Host estáticos
<VirtualHost aaa.bbb.ccc.ddd:80>
  RewriteEngine On
  RewriteOptions Inherit
  ServerAdmin root@example.com
  DocumentRoot /web/static/
  ServerName javiercasares.net
  ServerAlias w1.javiercasares.net w2.javiercasares.net
  FileETag All
  <IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 month"
  </IfModule>
  <IfModule mod_headers.c>
    RequestHeader unset Cookie
    Header unset Set-Cookie
  </IfModule>

… continúa
#webperf     @WebPerfES
Virtual Host estáticos
  <IfModule mod_deflate.c>
    DeflateCompressionLevel 9
    <FilesMatch ".(js|css|php)$">
      SetOutputFilter DEFLATE
      BrowserMatch ^Mozilla/4 gzip-only-text/html
      BrowserMatch ^Mozilla/4.0[678] no-gzip
      BrowserMatch bMSIE !no-gzip !gzip-only-text/html
    </FilesMatch>
   </IfModule>
</VirtualHost>




#webperf     @WebPerfES
Preparación
   • Ficheros “tamaño 0”:
       – /.htaccess
       – /sitemap.xml
       – /robots.txt
   • Carpetas “no existentes” (permisos 777):
       – /wp-content/cache/
       – /wp-content/uploads/


#webperf     @WebPerfES
.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
.htaccess
RewriteEngine On
RewriteBase /

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} –d
RewriteRule   ^(.*)$ - [S=1]
RewriteRule   . /index.php [L]
#webperf       @WebPerfES
sitemap.xml
   • Se puede dejar inicialmente en blanco (se
     actualizará mediante un plugin).
   • Ha de tener permisos de escritura (666).
   • Se puede usar la versión alternativa con el
     fichero <sitemap.xml.gz>.




#webperf   @WebPerfES
robots.txt
   • Hay que crear un fichero “físico” y no dejar
     que el sistema lo virtualice.
   • Indicaremos la localización del Sitemap.
   • Filtraremos determinadas estructuras de URL
     para evitar contenidos duplicados (evitar el
     Google Panda).



#webperf   @WebPerfES
robots.txt
Sitemap: http://javiercasares.com/sitemap.xml
User-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.php
Disallow: /*?s=

#webperf      @WebPerfES
Configuración
   • El fichero <wp-config.php> se puede mejorar
     mucho con muchas opciones:
       – Configuración de BDD
       – Claves autentificación
       – Caché e historial
       – Dominio de cookies
       – Configuración FTP
       – Configuración hostname

#webperf     @WebPerfES
wp-config.php
define('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, añadir la codificación “secreta”…
   https://api.wordpress.org/secret-key/1.1/salt/



#webperf     @WebPerfES
wp-config.php
define('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
wp-config.php
define('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 actualización automática:
   http://codex.wordpress.org/Editing_wp-
   config.php#WordPress_Upgrade_Constants
#webperf     @WebPerfES
Instalación
   •   Subimos los ficheros por FTP (o como sea).
   •   Entramos en el panel de instalación.
   •   Instalamos.
   •   Felicitamos por una instalación tan simple (por
       ejemplo a @WordPress)




#webperf     @WebPerfES
Administración
   • Que nadie se pueda registrar (al menos en
     general será así).
   • WordPress corregirá de forma automática el
     XHTML incorrectamente anidado
   • Servicios de actualización:
       – http://rpc.pingomatic.com/
       – http://ping.blo.gs/
       – http://rpc.technorati.com/rpc/ping

#webperf     @WebPerfES
Administración
   • No tener comentarios anidados (y si se tienen,
     no más de 2 niveles de recursividad).
   • No paginar los comentarios (genera
     contenidos duplicados y páginas absurdas).
   • No mostrar avatares (el sistema de Gravatar es
     bastante malo a la hora de llamar a las
     imágenes). Opción de plugin para cachear.


#webperf   @WebPerfES
Administración
   • Los enlaces permanentes pueden ser:
       – /%postname%/


   • Desde la versión WordPress 3.2.x, el sistema
     ya lleva como nativo este ajuste, por lo que los
     problemas de rendimiento históricos se han
     eliminado.


#webperf    @WebPerfES
Multimedia
   • Hay 2 opciones:
       – Usar la carpeta /wp-content/
       – Usar un dominio para estáticos
   • Un dominio para estáticos:
       – Ha de ser un dominio distinto (.com o .net)
       – Ha de ser “sin cookies”
       – ETag o Cachés altas


#webperf     @WebPerfES
Multimedia
   • Carpeta para los ficheros:
       – /web/static


   • Ruta para los ficheros:
       – http://examplestatic.net




#webperf     @WebPerfES
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
Plugins Generales
   • Limitador de intentos de login
       – Bloquea ataques de acceso al panel de
         administración
       – 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
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 extrañas y ataques XSS
       – http://wordpress.org/extend/plugins/wordpress-firewall-2/



#webperf        @WebPerfES
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
       – Básico para generar los Sitemaps.
       – http://wordpress.org/extend/plugins/google-sitemap-generator/



#webperf        @WebPerfES
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
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
Plugins WPO
   • WP caché
       – ¿Dónde 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
Plugins WPO
   • Lazy Load
       – Gracias a jQuery, carga las imágenes de forma
         asíncrona, 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 página.



#webperf        @WebPerfES
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
Plugins WPO
   • WP Minify
       – ¿Dónde estás?
       – Selecciona TODOS los CSS y los JS (otros plugins
         sólo los que están encolados).
       – Los agrupa y comprime, también el HTML.
       – Ya no está en el repositorio y da algunos
         problemas (posible incompatibilidad WP 3.2).
       – No hay ningún plugin que llegue a su nivel.

#webperf     @WebPerfES
Plugins WPO
   • WP Parallel Loading System
       – Permite automatizar el Domain Sharding de
         imágenes.
       – http://wordpress.org/extend/plugins/parallel-loading-system/
       – Es recomendable un máximo de 3 subdominios.
       – Hay que recordar hacer un “hack” para no generar
         contenidos duplicados en los subdominios
         (robots.txt según hostname con “Disallow: /”)


#webperf        @WebPerfES
Cuando tu ISP no te permite tocar
   • En muchos casos no podemos optimizar
     recursos de los servidores (Apache, PHP,
     MySQL…).
   • Estás 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 país de mayor tráfico.


#webperf   @WebPerfES
Varnish
   • ¡Haz que tu web vuele! http://www.varnish-cache.org/
   • Web-Proxy + caché
   • Sirve para WordPress y para cualquier otro
     software o gestor de contenidos.
   • Se puede externalizar (recomendado) en un
     VPS.
   • Lo óptimo es discos SSD (con uno de 80GB hay
     de sobra) o en memoria (pero es caro).
#webperf    @WebPerfES
Varnish
   • Configurar el VCL
       – Tiempos de gracia de media hora a un día.
       – Elimina cookies y codificaciones.
       – Prioriza el tipo de caché:
           •   ETag
           •   Cache-Control
           •   Expires
           •   Last-Modified
           •   Age
       – Elimina cabeceras HTTP inútiles.
#webperf         @WebPerfES
Varnish
   • VCL para WordPress
   if (req.url ~ "/wp-admin/css/" || req.url ~ "/wp-admin/images/"
   || req.url ~ "/wp-admin/js/") {
     return(lookup);
   }

   if (req.url ~ "/wp-(login|admin)" || req.url ~ "preview=true") {
     return(pipe);
   }

   … continúa




#webperf        @WebPerfES
Varnish
   set req.http.Cookie = regsuball(req.http.Cookie,
   "comment_author=[^;]+(; )?", "");

   set req.http.Cookie = regsuball(req.http.Cookie,
   "comment_author_email =[^;]+(; )?", "");

   set req.http.Cookie = regsuball(req.http.Cookie,
   "comment_author_url =[^;]+(; )?", "");

   if (req.http.Cookie ~ "wordpress_logged_in_") {
     return (pass);
   }

   … continúa




#webperf        @WebPerfES
Varnish
   if (req.url ~ "/xmlrpc.php"){
     return(pipe);
   }

   if (req.url ~ "/wp-config.php"){
     return(error);
   }



    • ¡Seguro que se puede mejorar aún más!




#webperf      @WebPerfES
Varnish y las IP
   • Varnish es un Web-Proxy, así que al servidor
     web no le llega la IP del usuario, sólo la del
     Varnish…
   • Instalar el WP-IP-Proxy (espero que pronto
     esté en el repositorio oficial) o integrarlo en el
     “wp-config”.
       – https://dl.dropbox.com/u/19964073/wp-ip-proxy.zip

   • Solventa comentarios, AntiSpam y demás…

#webperf       @WebPerfES
Varnish y las cachés
   • Si cacheo y actualizo mi página… ¿qué?
   • WordPress Varnish as a Service Plugin
       – Información:
       – http://javiercasares.com/wp-varnish-aas/
       – Repositorio:
       – http://wordpress.org/extend/plugins/wordpress-varnish-as-a-service/

   • Cada día intentando mejorarlo, se aceptan
     sugerencias. javier@casares.org

#webperf        @WebPerfES
Pruebas
   • La máquina VPS:
       – 1 GB / 4 GB / 256 MB de RAM
       – 8 CPU (100% / 12,5% cada una)
       – MySQL 5.5
       – Apache 2.2
       – PHP 5.3
       – Varnish 3.0 (caché en disco)


#webperf     @WebPerfES
Pruebas
   • Las herramientas:
       – http://www.webpagetest.org/
           •   Frankfurt, DE
           •   IE 9
           •   DSL 1,5 Mbps
           •   5 test
           •   First and Repeat




#webperf         @WebPerfES
Pruebas
   • Las herramientas:
       – http://loadimpact.com/
           •   100 Usuarios
           •   10 Minutos
           •   25% US (Ashburn)
           •   25% IE (Dublin)
           •   25% BR (Sao Paulo)
           •   25% SG (Singapore)



#webperf         @WebPerfES
Pruebas
   • Las herramientas:
       – ApacheBenchmark (ab)
           • ab -k -n 5000 -c 250 http://example.com/
           • 5000 peticiones en bloques de 250 concurrentes
           • keep alive activado




#webperf       @WebPerfES
Primer Byte recibido
                    no cache        si cache        si cache
                    no varnish      no varnish      si varnish


           256 MB         1,243 s         0,734 s          0,454 s
             1 GB         0,624 s         0,358 s          0,494 s
             4 GB              -               -           0,337 s




#webperf     @WebPerfES
Inicio de Render
                    no cache        si cache        si cache
                    no varnish      no varnish      si varnish


           256 MB         1,607 s         1,754 s          1,338 s
             1 GB         1,000 s         1,154 s          1,416 s
             4 GB              -               -           1,140 s




#webperf     @WebPerfES
Tiempo de Carga
                    no cache        si cache        si cache
                    no varnish      no varnish      si varnish


           256 MB         3,588 s         2,499 s          1,813 s
             1 GB         3,054 s         1,803 s          1,793 s
             4 GB              -               -           1,653 s




#webperf     @WebPerfES
Carga completa
                    no cache        si cache        si cache
                    no varnish      no varnish      si varnish


           256 MB         6,036 s         5,792 s          5,168 s
             1 GB         5,454 s         5,065 s          5,294 s
             4 GB              -               -           4,987 s




#webperf     @WebPerfES
Waterfall (no cache – no varnish)




#webperf   @WebPerfES
Waterfall (sí cache – no varnish)




#webperf   @WebPerfES
Waterfall (sí cache – sí varnish)




#webperf       @WebPerfES
Tiempo Carga (no cache – no varnish)




#webperf   @WebPerfES
Tiempo Carga (sí cache – no varnish)




#webperf   @WebPerfES
Tiempo Carga (sí cache – sí varnish)




#webperf   @WebPerfES
Connect Time (ms)
                    no cache       si cache       si cache
                    no varnish     no varnish     si varnish


           256 MB              3              0                6
             1 GB           11                0                7
             4 GB              -              -                7




#webperf     @WebPerfES
Processing Time (ms)
                    no cache       si cache         si cache
                    no varnish     no varnish       si varnish


           256 MB         31695               403              97
             1 GB         32100               405              95
             4 GB              -               -               98




#webperf     @WebPerfES
Waiting Time (ms)
                    no cache       si cache         si cache
                    no varnish     no varnish       si varnish


           256 MB         31104               403                5
             1 GB         31495               405                7
             4 GB              -               -                 5




#webperf     @WebPerfES
Total Time (ms)
                    no cache       si cache         si cache
                    no varnish     no varnish       si varnish


           256 MB         31695               404              103
             1 GB         32101               405              102
             4 GB              -               -               105




#webperf     @WebPerfES
Conclusiones
   • Es básico activar la caché interna de
     WordPress.
   • Para un sitio “normal” es suficiente con eso,
     para un sitio “profesional” es recomendable
     Varnish para estabilidad.




#webperf   @WebPerfES
No se vayan todavía, aún hay más…
   • VPS
       – 8 GB
       – 8 CPU (100% - 12,5% x CPU)
       – Varnish en memoria (5 GB)


   • ¿Qué tal si hacemos una “meneada” abusiva?
     aká ataque DDOS…


#webperf     @WebPerfES
Abusando de Varnish
   Peticiones simultáneas             100       1000       2500       5000
   Time taken for tests (s)        52,309     63,921     18,474     39,371
   Number of requests             100.000    100.000     25.000     50.000
   Requests per second            1.911,71   1.564,44   1.353,23   1.269,97
   Time per request (ms)            0,523      0,639      0,739      0,787
   Connect Time (ms)                    2        113        362        668
   Processing Time (ms)                 7        488      1.448      2.099
   Waiting Time (ms)                    2        177        878        901
   Total Time (ms)                     11        602      1.810      2.831




#webperf             @WebPerfES
Posibles mejoras
   • MySQL con innoDB (total, las próximas
     versiones de MySQL sólo serán innoDB).
   • Tablas relacionadas (se pueden sacar unas
     cuantas consultas para relacionar “ids”).
   • Encontrar mejores plugins (sugerir a los
     desarrolladores posibles mejoras e informar
     de problemas).
   • Usar PHP-FPM (FastCGI Process Manager).
#webperf   @WebPerfES
Sentido Común
   • No seamos más papistas que el Papa.
   • Hagamos un mix para encontrar la fórmula
     que mejor se adapte y que aumente el
     rendimiento.
   • Al principio es fácil rascar segundos, al final es
     difícil rascar décimas.



#webperf    @WebPerfES
Consultoría
   • Si a alguien le interesa y no quiere pringar:

              Puesta a punto de WordPress

       Instalación, Configuración, Diseño, Maquetación,
       SEO, WPO, Varnish…


   • ¡Un correo a simple@kisslab.com y hablamos!
#webperf     @WebPerfES
Colabora:




    ¡Gracias!

Ahora es el momento
de ponerme a caldo…

Mais conteúdo relacionado

Mais procurados

Ataque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPQuantiKa14
 
PowerShell para administradores
PowerShell para administradoresPowerShell para administradores
PowerShell para administradoresPablo Campos
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework SymfonyAlejandro Hernández
 
WordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBFWordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBFDarío BF
 
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Arsys
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
WordPress Multisite, un WordPress para dominarlos a todos
WordPress Multisite, un WordPress para dominarlos a todosWordPress Multisite, un WordPress para dominarlos a todos
WordPress Multisite, un WordPress para dominarlos a todosOscar Abad Folgueira
 
Con Symlink Hasta la Cocina..
Con Symlink Hasta la Cocina.. Con Symlink Hasta la Cocina..
Con Symlink Hasta la Cocina.. Dylan Irzi
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressIrontec
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 César Pajares
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteJuan Astudillo
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4 César Pajares
 
JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 César Pajares
 
Mike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLIMike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLImvkoen
 

Mais procurados (20)

Deploying Wordpress
Deploying WordpressDeploying Wordpress
Deploying Wordpress
 
1212
12121212
1212
 
Ataque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWP
 
wp-cli
wp-cliwp-cli
wp-cli
 
PowerShell para administradores
PowerShell para administradoresPowerShell para administradores
PowerShell para administradores
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework Symfony
 
WordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBFWordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBF
 
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
 
Como hacer de todo con PowerShell
Como hacer de todo con PowerShellComo hacer de todo con PowerShell
Como hacer de todo con PowerShell
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
WordPress Multisite, un WordPress para dominarlos a todos
WordPress Multisite, un WordPress para dominarlos a todosWordPress Multisite, un WordPress para dominarlos a todos
WordPress Multisite, un WordPress para dominarlos a todos
 
Con Symlink Hasta la Cocina..
Con Symlink Hasta la Cocina.. Con Symlink Hasta la Cocina..
Con Symlink Hasta la Cocina..
 
Cherokee
CherokeeCherokee
Cherokee
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSite
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4
 
JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4
 
Mike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLIMike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLI
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 

Semelhante a Webperf wordpress

La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...Asociación Webmasters Cantabria
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPressFernando Tellado
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresaIñaki Arenaza
 
Seguridad y optimización en Magento
Seguridad y optimización en MagentoSeguridad y optimización en Magento
Seguridad y optimización en MagentoDevopensource
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Josefina Moratalla
 
Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8Dani Reguera Bakhache
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPressPedro Santos
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Dani Reguera Bakhache
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaPedro Santos
 
Wordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSWordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSJoselyn Anfossi
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/LinuxMartin Gregorio
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPSpacetoshare
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqlJuan Timoteo Cori
 
Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con phpjaumeven
 
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Laura Colorado
 

Semelhante a Webperf wordpress (20)

Play2012
Play2012Play2012
Play2012
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPress
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
 
Seguridad y optimización en Magento
Seguridad y optimización en MagentoSeguridad y optimización en Magento
Seguridad y optimización en Magento
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
 
Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPress
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress
 
Wordpress
WordpressWordpress
Wordpress
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup Majadahonda
 
Curso De Wordpress
Curso De WordpressCurso De Wordpress
Curso De Wordpress
 
Wordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMSWordpress: De un Blog a un CMS
Wordpress: De un Blog a un CMS
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
 
Migraciones en WordPress
Migraciones en WordPressMigraciones en WordPress
Migraciones en WordPress
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con php
 
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 

Mais de La Salle BCN

Marketing Technology, The Next Big Thing by Lluís Font @lluisfont
Marketing Technology, The Next Big Thing by Lluís Font @lluisfontMarketing Technology, The Next Big Thing by Lluís Font @lluisfont
Marketing Technology, The Next Big Thing by Lluís Font @lluisfontLa Salle BCN
 
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URL
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URLNuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URL
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URLLa Salle BCN
 
Gemma vallet webinar_socialmaster_jul2015
Gemma vallet webinar_socialmaster_jul2015Gemma vallet webinar_socialmaster_jul2015
Gemma vallet webinar_socialmaster_jul2015La Salle BCN
 
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓ
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓPROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓ
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓLa Salle BCN
 
Jordi puigneró idigital-presentacio-smartcat
Jordi puigneró   idigital-presentacio-smartcatJordi puigneró   idigital-presentacio-smartcat
Jordi puigneró idigital-presentacio-smartcatLa Salle BCN
 
Estrategia smart city ajuntament bcn - la-salle_bcn
Estrategia smart city   ajuntament bcn - la-salle_bcnEstrategia smart city   ajuntament bcn - la-salle_bcn
Estrategia smart city ajuntament bcn - la-salle_bcnLa Salle BCN
 
Ponencia Smashtech sobre Smart Cities
Ponencia Smashtech sobre Smart CitiesPonencia Smashtech sobre Smart Cities
Ponencia Smashtech sobre Smart CitiesLa Salle BCN
 
¿Cómo sacar el máximo partido a Linkedin?
¿Cómo sacar el máximo partido a Linkedin? ¿Cómo sacar el máximo partido a Linkedin?
¿Cómo sacar el máximo partido a Linkedin? La Salle BCN
 
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)La Salle BCN
 
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...La Salle BCN
 
Vender en el siglo XXI - Conferencia de Luis Hernández
Vender en el siglo XXI - Conferencia de Luis HernándezVender en el siglo XXI - Conferencia de Luis Hernández
Vender en el siglo XXI - Conferencia de Luis HernándezLa Salle BCN
 
Vender en el siglo XXI - Conferencia Jordi Garrido
Vender en el siglo XXI - Conferencia Jordi GarridoVender en el siglo XXI - Conferencia Jordi Garrido
Vender en el siglo XXI - Conferencia Jordi GarridoLa Salle BCN
 
Vender en el siglo XXI - Conferencia Joaquim Giménez
Vender en el siglo XXI - Conferencia Joaquim GiménezVender en el siglo XXI - Conferencia Joaquim Giménez
Vender en el siglo XXI - Conferencia Joaquim GiménezLa Salle BCN
 
Vender en el siglo XXI - Conferencia Héctor Martín
Vender en el siglo XXI - Conferencia Héctor MartínVender en el siglo XXI - Conferencia Héctor Martín
Vender en el siglo XXI - Conferencia Héctor MartínLa Salle BCN
 
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...La Salle BCN
 
L'estratègia Smart City de l'Ajuntament de Barcelona
L'estratègia Smart City de l'Ajuntament de BarcelonaL'estratègia Smart City de l'Ajuntament de Barcelona
L'estratègia Smart City de l'Ajuntament de BarcelonaLa Salle BCN
 
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCN
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCNTendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCN
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCNLa Salle BCN
 
La Salle Breakfast: Cómo convertir una idea en negocio
La Salle Breakfast: Cómo convertir una idea en negocioLa Salle Breakfast: Cómo convertir una idea en negocio
La Salle Breakfast: Cómo convertir una idea en negocioLa Salle BCN
 
¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?
 ¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios? ¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?
¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?La Salle BCN
 

Mais de La Salle BCN (20)

Marketing Technology, The Next Big Thing by Lluís Font @lluisfont
Marketing Technology, The Next Big Thing by Lluís Font @lluisfontMarketing Technology, The Next Big Thing by Lluís Font @lluisfont
Marketing Technology, The Next Big Thing by Lluís Font @lluisfont
 
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URL
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URLNuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URL
Nuevas tecnologías aplicadas al marketing en retail, Santi Sánchez, La Salle-URL
 
Gemma vallet webinar_socialmaster_jul2015
Gemma vallet webinar_socialmaster_jul2015Gemma vallet webinar_socialmaster_jul2015
Gemma vallet webinar_socialmaster_jul2015
 
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓ
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓPROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓ
PROTOTIP D’EDIFICI AUTOSUFICIENT A TORRE BARÓ
 
Miel de agave
Miel de agaveMiel de agave
Miel de agave
 
Jordi puigneró idigital-presentacio-smartcat
Jordi puigneró   idigital-presentacio-smartcatJordi puigneró   idigital-presentacio-smartcat
Jordi puigneró idigital-presentacio-smartcat
 
Estrategia smart city ajuntament bcn - la-salle_bcn
Estrategia smart city   ajuntament bcn - la-salle_bcnEstrategia smart city   ajuntament bcn - la-salle_bcn
Estrategia smart city ajuntament bcn - la-salle_bcn
 
Ponencia Smashtech sobre Smart Cities
Ponencia Smashtech sobre Smart CitiesPonencia Smashtech sobre Smart Cities
Ponencia Smashtech sobre Smart Cities
 
¿Cómo sacar el máximo partido a Linkedin?
¿Cómo sacar el máximo partido a Linkedin? ¿Cómo sacar el máximo partido a Linkedin?
¿Cómo sacar el máximo partido a Linkedin?
 
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)
Cómo exprimir Google Analytics, por Oriol Farré (La Salle Campus Barcelona)
 
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...
Ponència: "Smart Cities or Smart Citizens" per Ramon Martín de Pozuelo (La Sa...
 
Vender en el siglo XXI - Conferencia de Luis Hernández
Vender en el siglo XXI - Conferencia de Luis HernándezVender en el siglo XXI - Conferencia de Luis Hernández
Vender en el siglo XXI - Conferencia de Luis Hernández
 
Vender en el siglo XXI - Conferencia Jordi Garrido
Vender en el siglo XXI - Conferencia Jordi GarridoVender en el siglo XXI - Conferencia Jordi Garrido
Vender en el siglo XXI - Conferencia Jordi Garrido
 
Vender en el siglo XXI - Conferencia Joaquim Giménez
Vender en el siglo XXI - Conferencia Joaquim GiménezVender en el siglo XXI - Conferencia Joaquim Giménez
Vender en el siglo XXI - Conferencia Joaquim Giménez
 
Vender en el siglo XXI - Conferencia Héctor Martín
Vender en el siglo XXI - Conferencia Héctor MartínVender en el siglo XXI - Conferencia Héctor Martín
Vender en el siglo XXI - Conferencia Héctor Martín
 
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...
Impacto de la formación en la empleabilidad y la retribución (ICSA y La Salle...
 
L'estratègia Smart City de l'Ajuntament de Barcelona
L'estratègia Smart City de l'Ajuntament de BarcelonaL'estratègia Smart City de l'Ajuntament de Barcelona
L'estratègia Smart City de l'Ajuntament de Barcelona
 
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCN
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCNTendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCN
Tendencias y futuro del e-commerce - Santiago Sánchez, La Salle BCN
 
La Salle Breakfast: Cómo convertir una idea en negocio
La Salle Breakfast: Cómo convertir una idea en negocioLa Salle Breakfast: Cómo convertir una idea en negocio
La Salle Breakfast: Cómo convertir una idea en negocio
 
¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?
 ¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios? ¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?
¿En qué consiste el Certificado de Rehabilitación Energética de los Edificios?
 

Último

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 

Último (20)

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 

Webperf wordpress

  • 1. Colabora: Web Performance para WordPress Javier 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. Preparación • 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 Host <VirtualHost aaa.bbb.ccc.ddd:80> RewriteEngine On RewriteOptions Inherit ServerAdmin root@example.com DocumentRoot /web/javier/ ServerName javiercasares.com ServerAlias www.javiercasares.com casares.org www.casares.org Header unset ETag FileETag None <Directory "/web/javier/"> Allow from all Options +Indexes FollowSymLinks AllowOverride All </Directory> … continúa #webperf @WebPerfES
  • 5. Apache Virtual Host <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "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" </IfModule> … continúa #webperf @WebPerfES
  • 6. Apache Virtual Host <IfModule mod_deflate.c> DeflateCompressionLevel 9 <FilesMatch ".(js|css|php)$"> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html </FilesMatch> </IfModule> <Filesmatch ^wp-config.php$> Deny from all </Filesmatch> </VirtualHost> #webperf @WebPerfES
  • 7. Virtual Host estáticos <VirtualHost aaa.bbb.ccc.ddd:80> RewriteEngine On RewriteOptions Inherit ServerAdmin root@example.com DocumentRoot /web/static/ ServerName javiercasares.net ServerAlias w1.javiercasares.net w2.javiercasares.net FileETag All <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" </IfModule> <IfModule mod_headers.c> RequestHeader unset Cookie Header unset Set-Cookie </IfModule> … continúa #webperf @WebPerfES
  • 8. Virtual Host estáticos <IfModule mod_deflate.c> DeflateCompressionLevel 9 <FilesMatch ".(js|css|php)$"> SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html </FilesMatch> </IfModule> </VirtualHost> #webperf @WebPerfES
  • 9. Preparación • Ficheros “tamaño 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. .htaccess RewriteEngine On RewriteBase / 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} –d RewriteRule ^(.*)$ - [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 versión alternativa con el fichero <sitemap.xml.gz>. #webperf @WebPerfES
  • 13. robots.txt • Hay que crear un fichero “físico” y no dejar que el sistema lo virtualice. • Indicaremos la localización del Sitemap. • Filtraremos determinadas estructuras de URL para evitar contenidos duplicados (evitar el Google Panda). #webperf @WebPerfES
  • 14. robots.txt Sitemap: http://javiercasares.com/sitemap.xml User-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.php Disallow: /*?s= #webperf @WebPerfES
  • 15. Configuración • El fichero <wp-config.php> se puede mejorar mucho con muchas opciones: – Configuración de BDD – Claves autentificación – Caché e historial – Dominio de cookies – Configuración FTP – Configuración hostname #webperf @WebPerfES
  • 16. wp-config.php define('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, añadir la codificación “secreta”… https://api.wordpress.org/secret-key/1.1/salt/ #webperf @WebPerfES
  • 17. wp-config.php define('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.php define('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 actualización automática: http://codex.wordpress.org/Editing_wp- config.php#WordPress_Upgrade_Constants #webperf @WebPerfES
  • 19. Instalación • Subimos los ficheros por FTP (o como sea). • Entramos en el panel de instalación. • Instalamos. • Felicitamos por una instalación tan simple (por ejemplo a @WordPress) #webperf @WebPerfES
  • 20. Administración • Que nadie se pueda registrar (al menos en general será así). • WordPress corregirá de forma automática el XHTML incorrectamente anidado • Servicios de actualización: – http://rpc.pingomatic.com/ – http://ping.blo.gs/ – http://rpc.technorati.com/rpc/ping #webperf @WebPerfES
  • 21. Administración • No tener comentarios anidados (y si se tienen, no más de 2 niveles de recursividad). • No paginar los comentarios (genera contenidos duplicados y páginas absurdas). • No mostrar avatares (el sistema de Gravatar es bastante malo a la hora de llamar a las imágenes). Opción de plugin para cachear. #webperf @WebPerfES
  • 22. Administración • Los enlaces permanentes pueden ser: – /%postname%/ • Desde la versión WordPress 3.2.x, el sistema ya lleva como nativo este ajuste, por lo que los problemas de rendimiento históricos se han eliminado. #webperf @WebPerfES
  • 23. Multimedia • Hay 2 opciones: – Usar la carpeta /wp-content/ – Usar un dominio para estáticos • Un dominio para estáticos: – Ha de ser un dominio distinto (.com o .net) – Ha de ser “sin cookies” – ETag o Cachés 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 administración – 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 extrañas 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 – Básico 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é – ¿Dónde 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 imágenes de forma asíncrona, 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 página. #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 – ¿Dónde estás? – Selecciona TODOS los CSS y los JS (otros plugins sólo los que están encolados). – Los agrupa y comprime, también el HTML. – Ya no está en el repositorio y da algunos problemas (posible incompatibilidad WP 3.2). – No hay ningún plugin que llegue a su nivel. #webperf @WebPerfES
  • 35. Plugins WPO • WP Parallel Loading System – Permite automatizar el Domain Sharding de imágenes. – http://wordpress.org/extend/plugins/parallel-loading-system/ – Es recomendable un máximo de 3 subdominios. – Hay que recordar hacer un “hack” para no generar contenidos duplicados en los subdominios (robots.txt según 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…). • Estás 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 país de mayor tráfico. #webperf @WebPerfES
  • 37. Varnish • ¡Haz que tu web vuele! http://www.varnish-cache.org/ • Web-Proxy + caché • Sirve para WordPress y para cualquier otro software o gestor de contenidos. • Se puede externalizar (recomendado) en un VPS. • Lo óptimo es discos SSD (con uno de 80GB hay de sobra) o en memoria (pero es caro). #webperf @WebPerfES
  • 38. Varnish • Configurar el VCL – Tiempos de gracia de media hora a un día. – Elimina cookies y codificaciones. – Prioriza el tipo de caché: • ETag • Cache-Control • Expires • Last-Modified • Age – Elimina cabeceras HTTP inútiles. #webperf @WebPerfES
  • 39. Varnish • VCL para WordPress if (req.url ~ "/wp-admin/css/" || req.url ~ "/wp-admin/images/" || req.url ~ "/wp-admin/js/") { return(lookup); } if (req.url ~ "/wp-(login|admin)" || req.url ~ "preview=true") { return(pipe); } … continúa #webperf @WebPerfES
  • 40. Varnish set req.http.Cookie = regsuball(req.http.Cookie, "comment_author=[^;]+(; )?", ""); set req.http.Cookie = regsuball(req.http.Cookie, "comment_author_email =[^;]+(; )?", ""); set req.http.Cookie = regsuball(req.http.Cookie, "comment_author_url =[^;]+(; )?", ""); if (req.http.Cookie ~ "wordpress_logged_in_") { return (pass); } … continúa #webperf @WebPerfES
  • 41. Varnish if (req.url ~ "/xmlrpc.php"){ return(pipe); } if (req.url ~ "/wp-config.php"){ return(error); } • ¡Seguro que se puede mejorar aún más! #webperf @WebPerfES
  • 42. Varnish y las IP • Varnish es un Web-Proxy, así que al servidor web no le llega la IP del usuario, sólo la del Varnish… • Instalar el WP-IP-Proxy (espero que pronto esté en el repositorio oficial) o integrarlo en el “wp-config”. – https://dl.dropbox.com/u/19964073/wp-ip-proxy.zip • Solventa comentarios, AntiSpam y demás… #webperf @WebPerfES
  • 43. Varnish y las cachés • Si cacheo y actualizo mi página… ¿qué? • WordPress Varnish as a Service Plugin – Información: – http://javiercasares.com/wp-varnish-aas/ – Repositorio: – http://wordpress.org/extend/plugins/wordpress-varnish-as-a-service/ • Cada día intentando mejorarlo, se aceptan sugerencias. javier@casares.org #webperf @WebPerfES
  • 44. Pruebas • La máquina VPS: – 1 GB / 4 GB / 256 MB de RAM – 8 CPU (100% / 12,5% cada una) – MySQL 5.5 – Apache 2.2 – PHP 5.3 – Varnish 3.0 (caché en disco) #webperf @WebPerfES
  • 45. Pruebas • Las herramientas: – http://www.webpagetest.org/ • Frankfurt, DE • IE 9 • DSL 1,5 Mbps • 5 test • First and Repeat #webperf @WebPerfES
  • 46. Pruebas • Las herramientas: – http://loadimpact.com/ • 100 Usuarios • 10 Minutos • 25% US (Ashburn) • 25% IE (Dublin) • 25% BR (Sao Paulo) • 25% SG (Singapore) #webperf @WebPerfES
  • 47. Pruebas • Las herramientas: – ApacheBenchmark (ab) • ab -k -n 5000 -c 250 http://example.com/ • 5000 peticiones en bloques de 250 concurrentes • keep alive activado #webperf @WebPerfES
  • 48. Primer Byte recibido no cache si cache si cache no varnish no varnish si varnish 256 MB 1,243 s 0,734 s 0,454 s 1 GB 0,624 s 0,358 s 0,494 s 4 GB - - 0,337 s #webperf @WebPerfES
  • 49. Inicio de Render no cache si cache si cache no varnish no varnish si varnish 256 MB 1,607 s 1,754 s 1,338 s 1 GB 1,000 s 1,154 s 1,416 s 4 GB - - 1,140 s #webperf @WebPerfES
  • 50. Tiempo de Carga no cache si cache si cache no varnish no varnish si varnish 256 MB 3,588 s 2,499 s 1,813 s 1 GB 3,054 s 1,803 s 1,793 s 4 GB - - 1,653 s #webperf @WebPerfES
  • 51. Carga completa no cache si cache si cache no varnish no varnish si varnish 256 MB 6,036 s 5,792 s 5,168 s 1 GB 5,454 s 5,065 s 5,294 s 4 GB - - 4,987 s #webperf @WebPerfES
  • 52. Waterfall (no cache – no varnish) #webperf @WebPerfES
  • 53. Waterfall (sí cache – no varnish) #webperf @WebPerfES
  • 54. Waterfall (sí cache – sí varnish) #webperf @WebPerfES
  • 55. Tiempo Carga (no cache – no varnish) #webperf @WebPerfES
  • 56. Tiempo Carga (sí cache – no varnish) #webperf @WebPerfES
  • 57. Tiempo Carga (sí cache – sí varnish) #webperf @WebPerfES
  • 58. Connect Time (ms) no cache si cache si cache no varnish no varnish si varnish 256 MB 3 0 6 1 GB 11 0 7 4 GB - - 7 #webperf @WebPerfES
  • 59. Processing Time (ms) no cache si cache si cache no varnish no varnish si varnish 256 MB 31695 403 97 1 GB 32100 405 95 4 GB - - 98 #webperf @WebPerfES
  • 60. Waiting Time (ms) no cache si cache si cache no varnish no varnish si varnish 256 MB 31104 403 5 1 GB 31495 405 7 4 GB - - 5 #webperf @WebPerfES
  • 61. Total Time (ms) no cache si cache si cache no varnish no varnish si varnish 256 MB 31695 404 103 1 GB 32101 405 102 4 GB - - 105 #webperf @WebPerfES
  • 62. Conclusiones • Es básico activar la caché interna de WordPress. • Para un sitio “normal” es suficiente con eso, para un sitio “profesional” es recomendable Varnish para estabilidad. #webperf @WebPerfES
  • 63. No se vayan todavía, aún hay más… • VPS – 8 GB – 8 CPU (100% - 12,5% x CPU) – Varnish en memoria (5 GB) • ¿Qué tal si hacemos una “meneada” abusiva? aká ataque DDOS… #webperf @WebPerfES
  • 64. Abusando de Varnish Peticiones simultáneas 100 1000 2500 5000 Time taken for tests (s) 52,309 63,921 18,474 39,371 Number of requests 100.000 100.000 25.000 50.000 Requests per second 1.911,71 1.564,44 1.353,23 1.269,97 Time per request (ms) 0,523 0,639 0,739 0,787 Connect Time (ms) 2 113 362 668 Processing Time (ms) 7 488 1.448 2.099 Waiting Time (ms) 2 177 878 901 Total Time (ms) 11 602 1.810 2.831 #webperf @WebPerfES
  • 65. Posibles mejoras • MySQL con innoDB (total, las próximas versiones de MySQL sólo serán innoDB). • Tablas relacionadas (se pueden sacar unas cuantas consultas para relacionar “ids”). • Encontrar mejores plugins (sugerir a los desarrolladores posibles mejoras e informar de problemas). • Usar PHP-FPM (FastCGI Process Manager). #webperf @WebPerfES
  • 66. Sentido Común • No seamos más papistas que el Papa. • Hagamos un mix para encontrar la fórmula que mejor se adapte y que aumente el rendimiento. • Al principio es fácil rascar segundos, al final es difícil rascar décimas. #webperf @WebPerfES
  • 67. Consultoría • Si a alguien le interesa y no quiere pringar: Puesta a punto de WordPress Instalación, Configuración, Diseño, Maquetación, SEO, WPO, Varnish… • ¡Un correo a simple@kisslab.com y hablamos! #webperf @WebPerfES
  • 68. Colabora: ¡Gracias! Ahora es el momento de ponerme a caldo…