La velocidad de esta página TTFB … LCP …
Uncategorized

Acelera Contact Form 7

Selim Koç 5 min de lectura

Open source · Rufo

Contact Form 7.
Solo donde hace falta.

Rufo elimina automáticamente los archivos CSS y JavaScript de Contact Form 7 que no se usan en todas las páginas sin formulario. Gratis en WordPress.org.

El problema

5 millones de webs.
Todas sus páginas, más lentas.

¿Sabías que el plugin Contact Form 7, creado por Takayuki Miyoshi, se usa en más de 5 millones de webs WordPress? Lleva años siendo la opción preferida para formularios de contacto en WordPress. Viene cargado de funciones y es facilísimo de usar. Pero tiene un gran problema en cuanto a velocidad: Contact Form 7 añade sus archivos CSS y JavaScript a todas y cada una de las páginas de tu web, aunque no haya ningún formulario de contacto en ellas. Y aunque estos archivos no son enormes, siguen ralentizando tu web. Y eso importa, sobre todo ahora que todo el mundo intenta que su web vaya más rápido.

Qué hace Rufo

Archivos solo donde hay formularios.

/contactTiene un formulario de Contact Form 7
Archivos de CF7 cargados
/blog, /about, /shop …No hay formulario en la página
Eliminados

Automático. Nada que configurar.

Instalación

Listo en un minuto.

  1. Inicia sesión en el escritorio de administración de WordPress.
  2. Abre Plugins en el menú de la izquierda.
  3. Haz clic en Añadir nuevo plugin.
  4. Busca «Rufo».
  5. Instálalo y actívalo. Eso es todo.

Para desinstalarlo, desactívalo y bórralo. Rufo no usa base de datos ni ningún otro recurso de tu web.

La guía

¿Prefieres código? Así funciona.

Dos formas de evitar que Contact Form 7 cargue sus archivos en páginas sin formulario.

Bien, ya hemos identificado el problema. Ahora hablemos de soluciones. Aquí tienes dos opciones para eliminar esos archivos de las páginas sin formularios de contacto:

Opción 1: código PHP personalizado

Puedes escribir código PHP personalizado y añadirlo al archivo functions.php de tu tema. Este código le indica a WordPress que no cargue los archivos de Contact Form 7 en las páginas que no tienen formularios de contacto.

¡Pero espera! Si vas a modificar un tema que podría actualizarse más adelante, lo mejor es usar un tema hijo. Así tus cambios no desaparecerán cuando se actualice el tema principal.

Hay dos formas de hacerlo:

Opción 1, A. Usar los datos exactos de la página

Si conoces el ID de la página con el formulario de contacto, puedes usar este código. Le indica a WordPress que no cargue los archivos de Contact Form 7 en la página con el ID especificado.

if ( !is_singular() && get_the_ID() != 65 ) {
        add_filter( 'wpcf7_load_js', '__return_false' ); 
        add_filter( 'wpcf7_load_css', '__return_false' );
}

Si tienes formularios de contacto en varias páginas, con los ID 65 y 99:

if ( !is_singular() && !in_array(get_the_ID(), [65,99]) ) {
        add_filter( 'wpcf7_load_js', '__return_false' ); 
        add_filter( 'wpcf7_load_css', '__return_false' );
}

Si prefieres usar el slug de la página en lugar del ID.

if ( !is_singular() ) { 

    $page_slug = get_post_field( 'post_name', get_queried_object_id() );
    $excluded_slugs = ['example-page-slug-1', 'example-page-slug-2']; 
    
    // Add your excluded slugs here 
    if ( !in_array($page_slug, $excluded_slugs) ) { 
          add_filter( 'wpcf7_load_js', '__return_false' ); 
          add_filter( 'wpcf7_load_css', '__return_false' ); 
    } 
}

Opción 1, B. Buscar el shortcode del formulario de contacto en el contenido de la página:

Este código comprueba si el contenido de una página incluye el shortcode de Contact Form 7. Si no lo encuentra, impide que se carguen los archivos CSS y JavaScript en esa página.

function globaliser_page_has_contact_form() 
     {

        global $post;

        if ( is_singular() ) 
        {
           $content = $post->post_content;   
           if ( has_shortcode( $content, 'contact-form-7' ) ) 
           {
             return true;
           }
        }
        return false;
     }


     if ( !globaliser_page_has_contact_form() ) 
     {
         add_filter( 'wpcf7_load_js', '__return_false' ); 
         add_filter( 'wpcf7_load_css', '__return_false' );
     }

Opción 2: plugin Rufo para WordPress

¿No quieres tocar código? ¡Sin problema! También puedes usar el plugin Rufo para WordPress. Esta práctica herramienta detecta automáticamente las páginas sin formularios de contacto y elimina los archivos CSS y JavaScript innecesarios. Es una solución más sencilla y fácil de usar que escribir código a medida.

Hace lo mismo que el segundo método anterior: elimina automáticamente los archivos CSS y JavaScript de las páginas sin formularios de contacto.

¿Por qué hicimos un plugin en lugar de limitarnos al código? Bueno, hay quien sugiere editar directamente el plugin Contact Form 7, pero en el mundo WordPress eso no es buena idea.

Además, buscamos en internet y vimos que otras soluciones también proponen añadir código. Así que creamos este plugin para ponérselo fácil a todo el mundo, sobre todo a quienes no son expertos en tecnología.

Y, por cierto, si te interesa crear tus propios plugins de WordPress con una arquitectura elegante llamada MVC, tenemos otro plugin, ATA, que te puede ayudar. ¡Pero esa es otra historia!

Tu historia de éxito podría ser la próxima.

¿Tienes preguntas? Estamos aquí para ayudarte a dar el paso correcto.

Tu caso de éxito podría ser el próximo.

¿Tienes dudas? Te ayudamos a dar el paso correcto.