{"id":4826,"date":"2025-08-14T13:26:20","date_gmt":"2025-08-14T11:26:20","guid":{"rendered":"https:\/\/wpmastertoolkit.com\/module\/head-sorter\/"},"modified":"2025-08-14T14:16:46","modified_gmt":"2025-08-14T12:16:46","slug":"head-sorter","status":"publish","type":"module","link":"https:\/\/wpmastertoolkit.com\/es\/module\/clasificador-de-cabezas\/","title":{"rendered":"Clasificador jefe"},"content":{"rendered":"<h1 class=\"wp-block-heading\">Head Sorter - Reorganizaci\u00f3n inteligente del <code data-no-auto-translation=\"\">&lt;head&gt;<\/code> para aumentar la velocidad y el SEO<\/h1>\n\n\n\n<p>En muchos sitios de WordPress, el orden de las etiquetas en el directorio <code data-no-auto-translation=\"\">&lt;head&gt;<\/code> es un caos silencioso: metadatos ahogados, CSS que llega demasiado tarde, scripts que se bloquean... El resultado es una renderizaci\u00f3n m\u00e1s lenta, m\u00e9tricas Web Vitals m\u00e1s bajas y un SEO m\u00e1s pobre. El m\u00f3dulo <strong>Clasificador jefe<\/strong> de <strong>WPMasterToolKit<\/strong> se ha creado para poner las cosas en orden autom\u00e1ticamente -sin complicadas configuraciones- y dar prioridad a lo que realmente importa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfA qu\u00e9 plug-in puede sustituir el m\u00f3dulo \"Head Sorter\"?<\/h2>\n\n\n\n<p>En muchos casos, Head Sorter puede sustituir a peque\u00f1os plugins dedicados a \"clasificar etiquetas de cabecera\", optimizar el orden de carga o fragmentos internos que intentan mover manualmente <code data-no-auto-translation=\"\">&lt;meta&gt;<\/code>, <code data-no-auto-translation=\"\">&lt;link&gt;<\/code> y <code data-no-auto-translation=\"\">&lt;script&gt;<\/code>. Aqu\u00ed, todo se gestiona de forma sistem\u00e1tica y segura mediante un analizador HTML.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo funciona?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Interceptaci\u00f3n de la renderizaci\u00f3n frontal<\/strong><br>El m\u00f3dulo se acopla a <code data-no-auto-translation=\"\">template_redirect<\/code> (prioridad <strong>-1000<\/strong>) para iniciar un <strong>b\u00fafer de salida<\/strong> (b\u00fafer de salida). No afecta a <strong>que el Front-end<\/strong>.<\/li>\n\n\n\n<li><strong>Detecci\u00f3n de HTML<\/strong><br>Si la p\u00e1gina no contiene <code data-no-auto-translation=\"\">&lt;\/html&gt;<\/code>El contenido permanece inalterado.<\/li>\n\n\n\n<li><strong>An\u00e1lisis de <code data-no-auto-translation=\"\">&lt;head><\/code> con DOMDocument<\/strong><br>El contenido del <code data-no-auto-translation=\"\">&lt;head><\/code> se carga en un <strong>DOMDocument<\/strong> (con tratamiento silencioso de errores), entonces <strong>se eval\u00faan y clasifican todas las etiquetas secundarias<\/strong> seg\u00fan un <strong>peso<\/strong>.<\/li>\n\n\n\n<li><strong>Ordenar por importancia<\/strong><br>A los nodos (etiquetas, texto, comentarios) se les asigna un peso. En <strong>vuelve a insertar<\/strong> entonces los elementos del <code data-no-auto-translation=\"\">&lt;head><\/code> de mayor a menor importancia, en <strong>conservar<\/strong> comentarios y textos.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">La tabla de prioridades (de m\u00e1s a menos importante)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>META<\/strong> (10) : <code data-no-auto-translation=\"\">charset<\/code>, <code data-no-auto-translation=\"\">viewport<\/code>y algunos <code data-no-auto-translation=\"\">http-equiv<\/code> cr\u00edticas (<code data-no-auto-translation=\"\">content-security-policy<\/code>, <code data-no-auto-translation=\"\">content-type<\/code>, <code data-no-auto-translation=\"\">default-style<\/code>etc.)<\/li>\n\n\n\n<li><strong>T\u00cdTULO<\/strong> (9)<\/li>\n\n\n\n<li><strong>PRECONEXI\u00d3N<\/strong> (8) : <code data-no-auto-translation=\"\">&lt;link rel=\"preconnect\"><\/code><\/li>\n\n\n\n<li><strong>ASYNC_SCRIPT<\/strong> (7) : <code data-no-auto-translation=\"\">&lt;script src ... async><\/code><\/li>\n\n\n\n<li><strong>IMPORT_STYLES<\/strong> (6) : <code data-no-auto-translation=\"\">&lt;style><\/code> que contiene <code data-no-auto-translation=\"\">@import<\/code><\/li>\n\n\n\n<li><strong>SYNC_SCRIPT<\/strong> (5) : <code data-no-auto-translation=\"\">&lt;script><\/code> bloqueo en l\u00ednea (no <code data-no-auto-translation=\"\">defer<\/code>no <code data-no-auto-translation=\"\">async<\/code>no <code data-no-auto-translation=\"\">type=\"module\"<\/code>y no <code data-no-auto-translation=\"\">type<\/code> JSON)<\/li>\n\n\n\n<li><strong>SYNC_STYLES<\/strong> (4) : <code data-no-auto-translation=\"\">&lt;link rel=\"stylesheet\"><\/code> y <code data-no-auto-translation=\"\">&lt;style><\/code><\/li>\n\n\n\n<li><strong>PRELOAD<\/strong> (3) : <code data-no-auto-translation=\"\">&lt;link rel=\"preload|modulepreload\"><\/code><\/li>\n\n\n\n<li><strong>DEFER_SCRIPT<\/strong> (2) : <code data-no-auto-translation=\"\">&lt;script src ... defer><\/code> o <code data-no-auto-translation=\"\">&lt;script type=\"module\"><\/code> (sin <code data-no-auto-translation=\"\">async<\/code>)<\/li>\n\n\n\n<li><strong>PREFETCH_PRERENDER<\/strong> (1) : <code data-no-auto-translation=\"\">&lt;link rel=\"prefetch|dns-prefetch|prerender\"><\/code><\/li>\n\n\n\n<li><strong>OTROS<\/strong> (0): todo lo dem\u00e1s, incluidos los scripts JSON (<code data-no-auto-translation=\"\">application\/ld+json<\/code>etc.) y los nodos que no son elementos (textos, comentarios) que se conservan<\/li>\n<\/ul>\n\n\n\n<p>En concreto, su <strong>etiquetas cr\u00edticas (<code data-no-auto-translation=\"\">charset<\/code>, <code data-no-auto-translation=\"\">viewport<\/code>, <code data-no-auto-translation=\"\">title<\/code>) ir a la parte superior<\/strong>recursos, seguidos de <strong>conexi\u00f3n y CSS<\/strong> necesarios para la renderizaci\u00f3n, y los scripts de bloqueo se eliminan en la medida de lo posible dando prioridad a los <code data-no-auto-translation=\"\">async<\/code>\/<code data-no-auto-translation=\"\">defer<\/code>\/<code data-no-auto-translation=\"\">module<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 es bueno para el rendimiento y el SEO<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FCP\/LCP m\u00e1s r\u00e1pidos<\/strong> meta y estilos esenciales llegan antes, lo que reduce el tiempo de renderizado inicial.<\/li>\n\n\n\n<li><strong>Menos bloqueo JS<\/strong> guiones <code data-no-auto-translation=\"\">async\/defer\/module<\/code> se favorecen, reduciendo el impacto en la ruta cr\u00edtica de renderizado.<\/li>\n\n\n\n<li><strong>SEO t\u00e9cnico<\/strong> a <code data-no-auto-translation=\"\">&lt;head><\/code> mejor estructurado ayuda a los motores de b\u00fasqueda a entenderlo e indexarlo correctamente (t\u00edtulo coherente\/meta primero).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Comportamientos y compatibilidad a tener en cuenta<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>S\u00f3lo front-end<\/strong> : enganchado <code data-no-auto-translation=\"\">template_redirect<\/code>. Admin no se ve afectado.<\/li>\n\n\n\n<li><strong>Conservaci\u00f3n de contenidos<\/strong> comentarios y textos en el <code data-no-auto-translation=\"\">&lt;head><\/code> se conservan.<\/li>\n\n\n\n<li><strong>Guiones JSON<\/strong> (por ejemplo <code data-no-auto-translation=\"\">application\/ld+json<\/code>) : <strong>no se tratan como guiones de bloqueo<\/strong> (peso \"OTRO\") para evitar moverlos agresivamente.<\/li>\n\n\n\n<li><strong>M\u00f3dulos ES<\/strong> (<code data-no-auto-translation=\"\">type=\"module\"<\/code>): tratado como <strong>defer<\/strong> por defecto (bueno para renderizar).<\/li>\n\n\n\n<li><strong>HTML mal formado<\/strong> DOMDocument puede intentar \"corregir\" una cabecera mal estructurada, pero mantenga el HTML limpio para obtener mejores resultados.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo utilizar este m\u00f3dulo<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Activar el m\u00f3dulo Head Sorter<\/strong> en WPMasterToolKit.<\/li>\n\n\n\n<li><strong>Vaciar la cach\u00e9<\/strong> tus plugins\/servidor\/CDN si utilizas alguno.<\/li>\n\n\n\n<li><strong>Controlar una p\u00e1gina<\/strong> (p\u00e1gina de inicio, art\u00edculo de muestra) para comprobar el orden de los <code data-no-auto-translation=\"\">&lt;head><\/code> con las herramientas de desarrollo del navegador.<\/li>\n\n\n\n<li>No hay que hacer ajustes: todo est\u00e1 <strong>autom\u00e1tico<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Nuestras opciones t\u00e9cnicas (y por qu\u00e9)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>B\u00fafer de salida<\/strong> lo antes posible (<code data-no-auto-translation=\"\">template_redirect<\/code>prioridad -1000) para capturar el renderizado final de la p\u00e1gina sin tocar el coraz\u00f3n de WordPress o los temas.<\/li>\n\n\n\n<li><strong>DOMDocument<\/strong> para un <strong>manejo fiable<\/strong> HTML, en lugar de fr\u00e1giles expresiones regulares.<\/li>\n\n\n\n<li><strong>Matriz de pesos<\/strong> c\u00f3digo claro y extensible para priorizar :\n<ul class=\"wp-block-list\">\n<li><strong>Meta\/t\u00edtulo<\/strong> sobre todo (est\u00e1ndares web + SEO).<\/li>\n\n\n\n<li><strong>Preconectar\/Precargar\/Hojas de estilo<\/strong> antes de bloquear los scripts.<\/li>\n\n\n\n<li><strong><code data-no-auto-translation=\"\">async<\/code>\/<code data-no-auto-translation=\"\">defer<\/code>\/<code data-no-auto-translation=\"\">module<\/code><\/strong> mejor que los guiones s\u00edncronos convencionales.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Conservadurismo en JSON<\/strong> exclusi\u00f3n de <code data-no-auto-translation=\"\">type<\/code> que contiene <code data-no-auto-translation=\"\">json<\/code> de la categor\u00eda \"script s\u00edncrono\" para evitar que afecte al etiquetado de datos estructurados.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ganchos y filtros<\/h2>\n\n\n\n<p>Este m\u00f3dulo <strong>no expone ning\u00fan <code data-no-auto-translation=\"\">apply_filters<\/code> o <code data-no-auto-translation=\"\">do_action<\/code> personalizado<\/strong>. El comportamiento es totalmente interno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Consejos pr\u00e1cticos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Evite <code data-no-auto-translation=\"\">@import<\/code> en su <code data-no-auto-translation=\"\">&lt;style><\/code> : aunque tengan prioridad aqu\u00ed, siguen siendo <strong>m\u00e1s lento<\/strong> a <code data-no-auto-translation=\"\">&lt;link rel=\"stylesheet\"><\/code>.<\/li>\n\n\n\n<li>Si un script cr\u00edtico necesita ejecutarse antes, prefiera <strong><code data-no-auto-translation=\"\">defer<\/code><\/strong> (o <strong><code data-no-auto-translation=\"\">type=\"module\"<\/code><\/strong>) en lugar de s\u00edncrono, para no bloquear el renderizado.<\/li>\n\n\n\n<li>Utilice <code data-no-auto-translation=\"\">rel=\"preconnect\"<\/code> y <code data-no-auto-translation=\"\">rel=\"preload\"<\/code> con moderaci\u00f3n y precisi\u00f3n (precargue s\u00f3lo lo que sea cr\u00edtico).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>El m\u00f3dulo <strong>Clasificador jefe<\/strong> pone orden en la <code data-no-auto-translation=\"\">&lt;head&gt;<\/code> de tu sitio WordPress de forma autom\u00e1tica, respetando las buenas pr\u00e1cticas de rendimiento y SEO t\u00e9cnico. Act\u00edvalo, borra tus cach\u00e9s y disfruta de una carga m\u00e1s limpia y r\u00e1pida, sin perder tiempo microgestionando etiquetas.<\/p>","protected":false},"excerpt":{"rendered":"<p>El m\u00f3dulo Head Sorter de WPMasterToolKit optimiza autom\u00e1ticamente la cabecera HTML de su sitio WordPress reorganizando los elementos cr\u00edticos de la cabecera. <head>. Esto mejora la velocidad de carga de la p\u00e1gina y el SEO sin requerir ninguna configuraci\u00f3n adicional. Utilizando la biblioteca DOMDocument de PHP, prioriza las etiquetas importantes, lo que contribuye a mejorar el rendimiento y enriquecer la experiencia del usuario.<\/p>","protected":false},"featured_media":0,"parent":0,"template":"","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_surecart_dashboard_logo_width":"180px","_surecart_dashboard_show_logo":true,"_surecart_dashboard_navigation_orders":true,"_surecart_dashboard_navigation_invoices":true,"_surecart_dashboard_navigation_subscriptions":true,"_surecart_dashboard_navigation_downloads":true,"_surecart_dashboard_navigation_billing":true,"_surecart_dashboard_navigation_account":true},"class_list":["post-4826","module","type-module","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/module\/4826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/module"}],"about":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/types\/module"}],"wp:attachment":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/media?parent=4826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}