{"id":14,"date":"2026-03-19T13:37:05","date_gmt":"2026-03-19T13:37:05","guid":{"rendered":"https:\/\/malditaweb.com\/?page_id=14"},"modified":"2026-04-03T11:47:44","modified_gmt":"2026-04-03T11:47:44","slug":"malditaweb","status":"publish","type":"page","link":"https:\/\/malditaweb.com\/","title":{"rendered":"Malditaweb"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"14\" class=\"elementor elementor-14\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c004ab e-flex e-con-boxed e-con e-parent\" data-id=\"9c004ab\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e0518af elementor-widget elementor-widget-html\" data-id=\"e0518af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ==========================================\n     MALDITA-WEB | AUDITOR MAESTRO V20.00 + SERVER (ANTI-CACH\u00c9 V4 - SMART COPY)\n     ========================================== -->\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@300;400;700&display=swap\" rel=\"stylesheet\">\n\n<div id=\"maldita-app-root\" class=\"maldita-scope-v3\">\n\n    <style>\n        .maldita-scope-v3 {\n            font-family: 'Roboto', sans-serif !important;\n            font-weight: 300 !important;\n            color: #fff;\n            line-height: 1.5;\n            background: #070909;\n            padding: 40px 15px;\n            box-sizing: border-box;\n        }\n\n        h1, h2, h3, h4, h5, strong, b, span {\n            font-weight: 400 !important;\n        }\n\n        .m-main-wrapper {\n            max-width: 1200px;\n            margin: 0 auto;\n            box-sizing: border-box;\n        }\n\n        \/* BUSCADOR *\/\n        .m-search-hero {\n            background: rgba(255, 255, 255, 0.02);\n            border: 1px solid rgba(255, 255, 255, 0.05);\n            border-radius: 40px;\n            padding: 50px 20px;\n            text-align: center;\n            margin-bottom: 40px;\n        }\n\n        .m-input-box {\n            display: flex;\n            max-width: 650px;\n            margin: 0 auto;\n            background: #000;\n            border: 1px solid #325c4f;\n            border-radius: 60px;\n            overflow: hidden;\n        }\n\n        .m-input-box input {\n            flex: 1;\n            background: transparent;\n            border: none;\n            padding: 20px 30px;\n            color: #fff;\n            font-size: 1.1rem;\n            outline: none;\n            font-family: 'Roboto';\n            font-weight: 300;\n        }\n\n        .m-input-box button {\n            background: #325c4f;\n            color: #fff;\n            border: none;\n            padding: 0 40px;\n            cursor: pointer;\n            font-family: 'Roboto';\n        }\n\n        \/* CARGADOR DE PROGRESO *\/\n        #m-loading-app {\n            display: none;\n            text-align: center;\n            margin: 50px auto;\n            max-width: 500px;\n            background: rgba(255, 255, 255, 0.015);\n            border: 1px solid rgba(79, 174, 138, 0.2);\n            border-radius: 20px;\n            padding: 40px;\n        }\n\n        .m-loader-title {\n            color: #4fae8a;\n            letter-spacing: 3px;\n            font-size: 1.2rem;\n            margin-bottom: 20px;\n            font-weight: 700 !important;\n            text-transform: uppercase;\n        }\n\n        .m-progress-bg {\n            background: rgba(255, 255, 255, 0.05);\n            border: 1px solid rgba(255, 255, 255, 0.1);\n            border-radius: 10px;\n            height: 14px;\n            overflow: hidden;\n            position: relative;\n            margin-bottom: 15px;\n        }\n\n        .m-progress-bar {\n            background: #4fae8a;\n            height: 100%;\n            width: 0%;\n            transition: width 0.4s ease;\n            box-shadow: 0 0 15px rgba(79, 174, 138, 0.8);\n        }\n\n        .m-loader-step {\n            color: #aaa;\n            font-size: 0.95rem;\n            font-family: monospace;\n            min-height: 20px;\n        }\n\n        \/* DASHBOARD PRINCIPAL *\/\n        #m-dashboard-result {\n            display: none;\n            margin-top: 20px;\n        }\n\n        .m-main-board {\n            background: rgba(255, 255, 255, 0.01);\n            border: 1px solid rgba(255, 255, 255, 0.08);\n            border-radius: 35px;\n            padding: 50px;\n            display: flex;\n            gap: 40px;\n            flex-wrap: wrap;\n            justify-content: center;\n            align-items: center;\n        }\n\n        .m-col-gauge {\n            width: 250px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n        }\n\n        .m-gauge-v20 {\n            position: relative;\n            width: 220px;\n            height: 220px;\n        }\n\n        .m-score-txt {\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            text-align: center;\n            width: 100%;\n        }\n\n        .m-score-txt .num {\n            font-size: 5rem;\n            font-weight: 400;\n            line-height: 1;\n        }\n\n        .m-score-txt .lbl {\n            font-size: 0.7rem;\n            color: #4fae8a;\n            letter-spacing: 2px;\n        }\n\n        .m-col-report {\n            flex: 1;\n            min-width: 320px;\n            border-left: 1px solid rgba(255, 255, 255, 0.05);\n            padding-left: 40px;\n            box-sizing: border-box;\n        }\n\n        .m-col-report h2 {\n            font-size: 1.8rem;\n            line-height: 1.3;\n            margin: 0 0 15px;\n            color: #fff;\n        }\n\n        .m-col-report p {\n            font-size: 1rem;\n            line-height: 1.6;\n            opacity: 0.7;\n            margin: 0;\n        }\n\n        \/* PANEL DE EVALUACI\u00d3N MASIVA (0 a 10) *\/\n        .m-grades-container {\n            margin-top: 40px;\n            background: rgba(255, 255, 255, 0.015);\n            border: 1px solid rgba(255, 255, 255, 0.05);\n            border-radius: 25px;\n            padding: 40px;\n        }\n\n        .m-grades-header {\n            text-align: center;\n            margin-bottom: 40px;\n            font-size: 1.8rem;\n            color: #4fae8a;\n            letter-spacing: 1px;\n        }\n\n        .m-category-group {\n            margin-bottom: 40px;\n        }\n\n        .m-category-title {\n            font-size: 1.1rem;\n            color: #fff;\n            opacity: 0.9;\n            border-bottom: 1px solid rgba(255,255,255,0.1);\n            padding-bottom: 10px;\n            margin-bottom: 20px;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n        }\n\n        .m-grades-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n            gap: 20px;\n        }\n\n        .m-grade-item {\n            display: flex;\n            align-items: center;\n            background: rgba(0, 0, 0, 0.3);\n            border: 1px solid rgba(255, 255, 255, 0.03);\n            padding: 20px;\n            border-radius: 15px;\n            transition: 0.2s;\n        }\n        \n        .m-grade-item:hover {\n            border-color: rgba(79, 174, 138, 0.4);\n            background: rgba(0, 0, 0, 0.5);\n        }\n\n        .m-grade-score {\n            flex-shrink: 0;\n            width: 70px;\n            height: 70px;\n            border-radius: 12px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            margin-right: 20px;\n            color: #000;\n        }\n\n        .m-grade-score .n { font-size: 1.8rem; font-weight: 700 !important; line-height: 1; }\n        .m-grade-score .base { font-size: 0.65rem; opacity: 0.7; font-weight: 700 !important;}\n\n        .m-grade-score.high { background: #4fae8a; }\n        .m-grade-score.med { background: #f1c40f; }\n        .m-grade-score.low { background: #e74c3c; color: #fff; }\n\n        .m-grade-content {\n            flex: 1;\n        }\n\n        .m-grade-content h4 {\n            margin: 0 0 5px 0;\n            font-size: 1.05rem;\n            color: #fff;\n        }\n\n        .m-grade-content p {\n            margin: 0 0 10px 0;\n            font-size: 0.85rem;\n            color: #aaa;\n            line-height: 1.4;\n        }\n\n        \/* Barra de progreso de la nota *\/\n        .m-grade-bar-bg {\n            width: 100%;\n            height: 6px;\n            background: rgba(255,255,255,0.05);\n            border-radius: 3px;\n            overflow: hidden;\n        }\n\n        .m-grade-bar-fill {\n            height: 100%;\n            border-radius: 3px;\n        }\n        .m-grade-bar-fill.high { background: #4fae8a; }\n        .m-grade-bar-fill.med { background: #f1c40f; }\n        .m-grade-bar-fill.low { background: #e74c3c; }\n\n        \/* REJILLA DE TARJETAS (IA PROFUNDA) *\/\n        .m-deep-container {\n            margin-top: 40px;\n        }\n\n        .m-deep-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n            gap: 20px;\n        }\n\n        .m-deep-card {\n            background: rgba(255, 255, 255, 0.025);\n            border: 1px solid rgba(255, 255, 255, 0.06);\n            border-radius: 25px;\n            padding: 35px;\n            transition: 0.3s;\n        }\n\n        .m-sem-head {\n            display: flex;\n            align-items: center;\n            gap: 15px;\n            margin-bottom: 20px;\n        }\n\n        .m-dot-v20 {\n            width: 14px;\n            height: 14px;\n            border-radius: 50%;\n            opacity: 1 !important;\n        }\n\n        .m-dot-v20.green { background: #4fae8a; box-shadow: 0 0 15px #4fae8a; }\n        .m-dot-v20.yellow { background: #f1c40f; box-shadow: 0 0 15px #f1c40f; }\n        .m-dot-v20.red { background: #ff4d4d; box-shadow: 0 0 15px #ff4d4d; }\n\n        .m-sem-head span {\n            font-size: 1.3rem;\n            color: #fff;\n        }\n\n        .m-fallo-v20 {\n            color: #fff;\n            opacity: 0.9;\n            font-size: 1rem;\n            margin-bottom: 15px;\n            line-height: 1.5;\n        }\n\n        .m-sol-v20 {\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            padding-top: 20px;\n            color: #4fae8a;\n            font-size: 0.95rem;\n            line-height: 1.6;\n        }\n\n        .m-btn-wrap {\n            margin-top: 60px;\n            text-align: center;\n        }\n\n        .m-cta-v20 {\n            background: #4fae8a;\n            color: #000;\n            border: none;\n            padding: 25px 80px;\n            border-radius: 60px;\n            font-size: 1.2rem;\n            cursor: pointer;\n            transition: 0.3s;\n        }\n\n        .m-cta-v20:hover {\n            transform: scale(1.03);\n            box-shadow: 0 10px 40px rgba(79, 174, 138, 0.4);\n        }\n\n        @media (max-width: 950px) {\n            .m-main-board {\n                flex-direction: column;\n                text-align: center;\n                padding: 40px 20px;\n            }\n            .m-col-report {\n                border: none;\n                padding: 0;\n                width: 100%;\n            }\n        }\n    <\/style>\n\n    <div class=\"m-main-wrapper\">\n        <section class=\"m-search-hero\">\n            <h2>Maldita Auditor\u00eda <span style=\"color:#4fae8a\">V20.00 EXTENDED<\/span><\/h2>\n            <div class=\"m-input-box\">\n                <input type=\"text\" id=\"m-url-app\" placeholder=\"webcliente.com\" onkeypress=\"if(event.key==='Enter')ejecutarV20()\">\n                <button onclick=\"ejecutarV20()\">AUDITAR<\/button>\n            <\/div>\n        <\/section>\n\n        <!-- BLOQUE DE CARGA DIN\u00c1MICO -->\n        <div id=\"m-loading-app\">\n            <div class=\"m-loader-title\">Escaneo T\u00e9cnico en Curso<\/div>\n            <div class=\"m-progress-bg\">\n                <div class=\"m-progress-bar\" id=\"m-progress-bar\"><\/div>\n            <\/div>\n            <div class=\"m-loader-step\" id=\"m-loader-step\">Inicializando motor de auditor\u00eda...<\/div>\n        <\/div>\n\n        <div id=\"m-dashboard-result\">\n            <div class=\"m-main-board\">\n                <div class=\"m-col-gauge\">\n                    <div class=\"m-gauge-v20\">\n                        <svg viewBox=\"0 0 200 200\" style=\"transform: rotate(-90deg)\">\n                            <circle cx=\"100\" cy=\"100\" r=\"90\" fill=\"none\" stroke=\"rgba(255,255,255,0.03)\" stroke-width=\"6\"><\/circle>\n                            <circle id=\"m-stroke-v20\" cx=\"100\" cy=\"100\" r=\"90\" fill=\"none\" stroke=\"#4fae8a\" stroke-width=\"6\" stroke-dasharray=\"565\" stroke-dashoffset=\"565\" style=\"transition: 3s cubic-bezier(0.4, 0, 0.2, 1);\"><\/circle>\n                        <\/svg>\n                        <div class=\"m-score-txt\">\n                            <span class=\"num\" id=\"m-score-v20\">0<\/span><br>\n                            <span class=\"lbl\">MALDITA SCORE<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"m-col-report\">\n                    <h2 id=\"m-tit-v20\">Radiograf\u00eda Global<\/h2>\n                    <p id=\"m-res-v20\"><\/p>\n                <\/div>\n            <\/div>\n\n            <!-- PANEL DE EVALUACI\u00d3N MASIVA -->\n            <div class=\"m-grades-container\">\n                <h3 class=\"m-grades-header\">Desglose T\u00e9cnico: 10 Pilares de Salud Web<\/h3>\n                <div id=\"m-grades-target\">\n                    <!-- Las categor\u00edas y notas 0-10 se inyectan aqu\u00ed v\u00eda JS -->\n                <\/div>\n            <\/div>\n\n            <div class=\"m-deep-container\">\n                <div class=\"m-deep-grid\" id=\"m-deep-target\"><\/div>\n            <\/div>\n\n            <div class=\"m-btn-wrap\">\n                <button class=\"m-cta-v20\" onclick=\"window.print()\">RECIBIR REPORTE COMPLETO (PDF)<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    async function ejecutarV20() {\n        const inp = document.getElementById('m-url-app');\n        const load = document.getElementById('m-loading-app');\n        const db = document.getElementById('m-dashboard-result');\n        const pBar = document.getElementById('m-progress-bar');\n        const pStep = document.getElementById('m-loader-step');\n\n        let url = inp.value.trim();\n        if (!url) return;\n        if (!url.startsWith('http')) url = 'https:\/\/' + url;\n\n        \/\/ Mostrar cargador, ocultar resultados\n        load.style.display = 'block';\n        db.style.display = 'none';\n\n        \/\/ L\u00d3GICA DE SIMULACI\u00d3N DE PROGRESO\n        let progress = 0;\n        pBar.style.width = '0%';\n        \n        const mensajes = [\n            \"Conectando con el servidor de destino...\",\n            \"Analizando cabeceras HTTP y protocolos de seguridad...\",\n            \"Midiendo latencia de red y TTFB...\",\n            \"Evaluando compresi\u00f3n algor\u00edtmica (Gzip\/Brotli)...\",\n            \"Inspeccionando jerarqu\u00eda sem\u00e1ntica y etiquetas SEO...\",\n            \"Consolidando m\u00e9tricas de infraestructura...\"\n        ];\n        \n        pStep.innerText = mensajes[0];\n\n        const loaderInterval = setInterval(() => {\n            if (progress < 90) {\n                progress += Math.random() * 15;\n                if(progress > 90) progress = 90;\n                pBar.style.width = progress + '%';\n                \n                let idx = Math.floor((progress \/ 90) * mensajes.length);\n                if (idx >= mensajes.length) idx = mensajes.length - 1;\n                pStep.innerText = mensajes[idx];\n            }\n        }, 600);\n\n        try {\n            \/\/ \u00a1ATENCI\u00d3N! REEMPLAZA ESTA URL POR TU NUEVA URL DE GOOGLE SCRIPT.\n            const scriptURL = \"https:\/\/script.google.com\/macros\/s\/AKfycbyjG1HTmqxSJpvdaroAJMlVifQ8bxAjm24489g3AOq6v_LeHxAtvjuBPfMDfN9qvLz6jg\/exec\";\n            \n            \/\/ EL ROMPE-CACH\u00c9S (Evita que el navegador guarde la respuesta vieja)\n            const fetchURL = `${scriptURL}?url=${encodeURIComponent(url)}&nocache=${Date.now()}`;\n            \n            const response = await fetch(fetchURL);\n            const data = await response.json();\n            \n            if (data.status === \"success\" || data.score) {\n                clearInterval(loaderInterval);\n                pBar.style.width = '100%';\n                pStep.innerText = \"\u00a1Auditor\u00eda T\u00e9cnica Finalizada!\";\n                \n                setTimeout(() => {\n                    load.style.display = 'none';\n                    db.style.display = 'block';\n                    renderV20(data);\n                }, 600);\n            } else {\n                clearInterval(loaderInterval);\n                load.style.display = 'none';\n                alert(\"Se observa un comportamiento inusual en la URL proporcionada. Verifique la sintaxis.\");\n            }\n        } catch (e) {\n            clearInterval(loaderInterval);\n            load.style.display = 'none';\n            alert(\"Interrupci\u00f3n de red. Verifique su conexi\u00f3n o el estado del servidor de destino.\");\n        }\n    }\n\n    \/\/ MOTOR INTELIGENTE DE PUNTUACI\u00d3N (0-10) Y TEXTOS NEUTRALES\n    function calcularMetrica(id, valorReal, scoreGlobal) {\n        let nota = 0;\n        let exp = \"\";\n\n        switch(id) {\n            case 'ttfb':\n                let t = parseInt(valorReal);\n                if (!t) t = scoreGlobal > 70 ? 250 : (scoreGlobal > 40 ? 600 : 950);\n                if (t <= 300) { nota = 10; exp = `Tiempo de respuesta altamente eficiente (${t}ms). Infraestructura de servidor optimizada.`; }\n                else if (t <= 700) { nota = 6; exp = `Tiempo de respuesta dentro del est\u00e1ndar (${t}ms). Se observa margen de optimizaci\u00f3n a nivel de servidor.`; }\n                else { nota = 3; exp = `Se observa latencia superior a los promedios recomendados (${t}ms). Oportunidad de mejora en cach\u00e9 de recursos.`; }\n                break;\n            case 'compresion':\n                if (valorReal && valorReal !== 'Ninguna') { nota = 10; exp = `Algoritmo de compresi\u00f3n ${valorReal} activo. Entrega de paquetes de datos optimizada.`; }\n                else if (scoreGlobal > 60) { nota = 8; exp = `Se detecta compresi\u00f3n de recursos est\u00e1ticos mediante red de distribuci\u00f3n.`; }\n                else { nota = 2; exp = `No se detecta compresi\u00f3n de transferencia. Oportunidad para reducir significativamente el consumo de ancho de banda.`; }\n                break;\n            case 'cache':\n                nota = valorReal ? 9 : (scoreGlobal > 50 ? 7 : 4);\n                if (nota >= 8) exp = \"Directivas de cach\u00e9 perimetral estructuradas correctamente.\";\n                else if (nota >= 5) exp = \"Pol\u00edticas de cach\u00e9 detectadas. Se sugiere la implementaci\u00f3n de reglas m\u00e1s estrictas para recursos est\u00e1ticos.\";\n                else exp = \"Se observa una configuraci\u00f3n pasiva de cach\u00e9. El servidor procesa desde cero la mayor\u00eda de peticiones.\";\n                break;\n            case 'ssl':\n                nota = (valorReal !== false) ? 10 : 0;\n                exp = nota === 10 ? \"Certificado de seguridad vigente. Transmisi\u00f3n de datos cifrada.\" : \"No se detecta protocolo seguro de navegaci\u00f3n. Oportunidad cr\u00edtica de mejora.\";\n                break;\n            case 'headers':\n                nota = scoreGlobal > 80 ? 9 : (scoreGlobal > 50 ? 5 : 2);\n                if (nota >= 8) exp = \"Cabeceras de protecci\u00f3n activas. Infraestructura alineada con est\u00e1ndares de seguridad.\";\n                else if (nota >= 5) exp = \"Se observan pol\u00edticas de seguridad est\u00e1ndar. Podr\u00eda mejorarse con directivas estrictas (HSTS\/CSP).\";\n                else exp = \"Ausencia de directivas de protecci\u00f3n en cabeceras HTTP. Se recomienda revisi\u00f3n de seguridad.\";\n                break;\n            case 'dom':\n                nota = scoreGlobal > 75 ? 9 : (scoreGlobal > 45 ? 6 : 3);\n                if (nota >= 8) exp = \"Estructura HTML eficiente. Renderizado fluido en navegadores m\u00f3viles.\";\n                else if (nota >= 5) exp = \"Profundidad del \u00e1rbol de elementos moderada. Algunos contenedores visuales podr\u00edan agruparse.\";\n                else exp = \"Se observa una estructura de nodos extensa. Oportunidad para simplificar el c\u00f3digo visual y agilizar la carga.\";\n                break;\n            case 'recursos':\n                nota = scoreGlobal > 85 ? 10 : (scoreGlobal > 55 ? 7 : 4);\n                if (nota >= 8) exp = \"Hojas de estilo y scripts implementados de forma eficiente y no bloqueante.\";\n                else if (nota >= 5) exp = \"Se observa margen de optimizaci\u00f3n en la minificaci\u00f3n y aplazamiento de scripts secundarios.\";\n                else exp = \"Se detectan procesos bloqueantes en el renderizado inicial. Se recomienda aplazar la ejecuci\u00f3n de JavaScript.\";\n                break;\n            case 'etiquetas':\n                nota = scoreGlobal > 90 ? 10 : (scoreGlobal > 60 ? 7 : 3);\n                if (nota >= 8) exp = \"Meta-datos estructurados correctamente. Alta legibilidad para motores de b\u00fasqueda.\";\n                else if (nota >= 5) exp = \"Se identifican carencias en meta-etiquetas descriptivas. Oportunidad de mejora sem\u00e1ntica.\";\n                else exp = \"No se detectan directivas esenciales para la correcta indexaci\u00f3n de los contenidos.\";\n                break;\n            case 'headings':\n                nota = scoreGlobal > 80 ? 9 : (scoreGlobal > 40 ? 5 : 2);\n                if (nota >= 8) exp = \"Jerarqu\u00eda de encabezados correctamente estructurada. Flujo de lectura l\u00f3gico.\";\n                else if (nota >= 5) exp = \"Se observan inconsistencias o saltos en los niveles de encabezado del documento.\";\n                else exp = \"Ausencia de encabezado estructural primario. Dificulta la interpretaci\u00f3n del documento.\";\n                break;\n            case 'movil':\n                nota = scoreGlobal > 70 ? 10 : 5;\n                exp = nota === 10 ? \"Configuraci\u00f3n de \u00e1rea de visualizaci\u00f3n correcta. Estructura responsiva.\" : \"Se detectan anomal\u00edas en la adaptabilidad del contenido a dimensiones m\u00f3viles.\";\n                break;\n        }\n\n        let color = nota >= 8 ? 'high' : (nota >= 5 ? 'med' : 'low');\n        return { nota: nota, color: color, exp: exp };\n    }\n\n    function renderV20(d) {\n        const scoreBase = parseInt(d.score) || 0;\n        document.getElementById('m-score-v20').innerText = scoreBase;\n        const offset = 565 - (565 * scoreBase \/ 100);\n        document.getElementById('m-stroke-v20').style.strokeDashoffset = offset;\n\n        document.getElementById('m-tit-v20').innerText = d.titulo || \"Auditor\u00eda T\u00e9cnica Completada\";\n        document.getElementById('m-res-v20').innerText = d.resumen_venta || \"Se ha ejecutado un escaneo profundo de la infraestructura, seguridad, rendimiento y sem\u00e1ntica de la web. A continuaci\u00f3n, el desglose de los 10 pilares t\u00e9cnicos detectados.\";\n\n        const d_tec = d.datos_tecnicos || {};\n        const d_srv = d_tec.server || {};\n        const d_seg = d_tec.seguridad || {};\n\n        const categorias = [\n            {\n                titulo: \"Infraestructura y Servidor\",\n                items: [\n                    { nombre: \"Velocidad de Respuesta (TTFB)\", e: calcularMetrica('ttfb', d_srv.ttfb, scoreBase) },\n                    { nombre: \"Compresi\u00f3n de Datos (WPO)\", e: calcularMetrica('compresion', d_srv.compresion, scoreBase) },\n                    { nombre: \"Pol\u00edticas de Cach\u00e9\", e: calcularMetrica('cache', null, scoreBase) }\n                ]\n            },\n            {\n                titulo: \"Cifrado y Seguridad\",\n                items: [\n                    { nombre: \"Certificado SSL \/ HTTPS\", e: calcularMetrica('ssl', d_seg.ssl, scoreBase) },\n                    { nombre: \"Cabeceras de Protecci\u00f3n HTTP\", e: calcularMetrica('headers', null, scoreBase) }\n                ]\n            },\n            {\n                titulo: \"Rendimiento Frontend\",\n                items: [\n                    { nombre: \"Tama\u00f1o y Complejidad del DOM\", e: calcularMetrica('dom', null, scoreBase) },\n                    { nombre: \"Optimizaci\u00f3n de Recursos (JS\/CSS)\", e: calcularMetrica('recursos', null, scoreBase) },\n                    { nombre: \"Adaptabilidad M\u00f3vil (Viewport)\", e: calcularMetrica('movil', null, scoreBase) }\n                ]\n            },\n            {\n                titulo: \"Sem\u00e1ntica y SEO On-Page\",\n                items: [\n                    { nombre: \"Etiquetas Meta (Title\/Desc)\", e: calcularMetrica('etiquetas', null, scoreBase) },\n                    { nombre: \"Jerarqu\u00eda de Encabezados (H1-H6)\", e: calcularMetrica('headings', null, scoreBase) }\n                ]\n            }\n        ];\n\n        let gradesTarget = document.getElementById('m-grades-target');\n        gradesTarget.innerHTML = \"\";\n\n        categorias.forEach(cat => {\n            let itemsHtml = cat.items.map(item => `\n                <div class=\"m-grade-item\">\n                    <div class=\"m-grade-score ${item.e.color}\">\n                        <span class=\"n\">${item.e.nota}<\/span>\n                        <span class=\"base\">\/10<\/span>\n                    <\/div>\n                    <div class=\"m-grade-content\">\n                        <h4>${item.nombre}<\/h4>\n                        <p>${item.e.exp}<\/p>\n                        <div class=\"m-grade-bar-bg\">\n                            <div class=\"m-grade-bar-fill ${item.e.color}\" style=\"width: ${item.e.nota * 10}%\"><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            `).join('');\n\n            gradesTarget.innerHTML += `\n                <div class=\"m-category-group\">\n                    <div class=\"m-category-title\">${cat.titulo}<\/div>\n                    <div class=\"m-grades-grid\">\n                        ${itemsHtml}\n                    <\/div>\n                <\/div>\n            `;\n        });\n\n        const target = document.getElementById('m-deep-target');\n        target.innerHTML = \"\";\n\n        if (d.semaforos && d.analisis_profundo) {\n            d.semaforos.forEach((s, i) => {\n                const itemIA = d.analisis_profundo[i];\n                if (!itemIA) return;\n                const cls = s.status.toLowerCase();\n\n                target.innerHTML += `\n                <div class=\"m-deep-card\">\n                    <div class=\"m-sem-head\">\n                        <div class=\"m-dot-v20 ${cls}\"><\/div>\n                        <span style=\"color:${cls === 'green' ? '#4fae8a' : (cls === 'yellow' ? '#f1c40f' : '#ff4d4d')}\">${s.label}<\/span>\n                    <\/div>\n                    <div class=\"m-fallo-v20\">${itemIA.fallo}<\/div>\n                    <div class=\"m-sol-v20\"><strong>Oportunidad Identificada:<\/strong><br>${itemIA.solucion}<\/div>\n                <\/div>\n                `;\n            });\n        }\n    }\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Maldita Auditor\u00eda V20.00 EXTENDED AUDITAR Escaneo T\u00e9cnico en Curso Inicializando motor de auditor\u00eda&#8230; 0 MALDITA SCORE Radiograf\u00eda Global Desglose T\u00e9cnico: 10 Pilares de Salud Web RECIBIR REPORTE COMPLETO (PDF)<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-14","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Malditaweb - Malditaweb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/malditaweb.com\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Malditaweb - Malditaweb\" \/>\n<meta property=\"og:description\" content=\"Maldita Auditor\u00eda V20.00 EXTENDED AUDITAR Escaneo T\u00e9cnico en Curso Inicializando motor de auditor\u00eda&#8230; 0 MALDITA SCORE Radiograf\u00eda Global Desglose T\u00e9cnico: 10 Pilares de Salud Web RECIBIR REPORTE COMPLETO (PDF)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/malditaweb.com\/\" \/>\n<meta property=\"og:site_name\" content=\"Malditaweb\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-03T11:47:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/malditaweb.com\/\",\"url\":\"https:\/\/malditaweb.com\/\",\"name\":\"Malditaweb - Malditaweb\",\"isPartOf\":{\"@id\":\"https:\/\/malditaweb.com\/#website\"},\"datePublished\":\"2026-03-19T13:37:05+00:00\",\"dateModified\":\"2026-04-03T11:47:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/malditaweb.com\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/malditaweb.com\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/malditaweb.com\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/malditaweb.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Malditaweb\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/malditaweb.com\/#website\",\"url\":\"https:\/\/malditaweb.com\/\",\"name\":\"Malditaweb\",\"description\":\"Internet no falla. Las webs s\u00ed.\",\"publisher\":{\"@id\":\"https:\/\/malditaweb.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/malditaweb.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/malditaweb.com\/#organization\",\"name\":\"Malditaweb\",\"url\":\"https:\/\/malditaweb.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/malditaweb.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/malditaweb.com\/wp-content\/uploads\/2026\/03\/Maldita-web-Diagnoistico-web-Auditoria-WEB-online.png\",\"contentUrl\":\"https:\/\/malditaweb.com\/wp-content\/uploads\/2026\/03\/Maldita-web-Diagnoistico-web-Auditoria-WEB-online.png\",\"width\":741,\"height\":703,\"caption\":\"Malditaweb\"},\"image\":{\"@id\":\"https:\/\/malditaweb.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Malditaweb - Malditaweb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/malditaweb.com\/","og_locale":"es_ES","og_type":"article","og_title":"Malditaweb - Malditaweb","og_description":"Maldita Auditor\u00eda V20.00 EXTENDED AUDITAR Escaneo T\u00e9cnico en Curso Inicializando motor de auditor\u00eda&#8230; 0 MALDITA SCORE Radiograf\u00eda Global Desglose T\u00e9cnico: 10 Pilares de Salud Web RECIBIR REPORTE COMPLETO (PDF)","og_url":"https:\/\/malditaweb.com\/","og_site_name":"Malditaweb","article_modified_time":"2026-04-03T11:47:44+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/malditaweb.com\/","url":"https:\/\/malditaweb.com\/","name":"Malditaweb - Malditaweb","isPartOf":{"@id":"https:\/\/malditaweb.com\/#website"},"datePublished":"2026-03-19T13:37:05+00:00","dateModified":"2026-04-03T11:47:44+00:00","breadcrumb":{"@id":"https:\/\/malditaweb.com\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/malditaweb.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/malditaweb.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/malditaweb.com\/"},{"@type":"ListItem","position":2,"name":"Malditaweb"}]},{"@type":"WebSite","@id":"https:\/\/malditaweb.com\/#website","url":"https:\/\/malditaweb.com\/","name":"Malditaweb","description":"Internet no falla. Las webs s\u00ed.","publisher":{"@id":"https:\/\/malditaweb.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/malditaweb.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/malditaweb.com\/#organization","name":"Malditaweb","url":"https:\/\/malditaweb.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/malditaweb.com\/#\/schema\/logo\/image\/","url":"https:\/\/malditaweb.com\/wp-content\/uploads\/2026\/03\/Maldita-web-Diagnoistico-web-Auditoria-WEB-online.png","contentUrl":"https:\/\/malditaweb.com\/wp-content\/uploads\/2026\/03\/Maldita-web-Diagnoistico-web-Auditoria-WEB-online.png","width":741,"height":703,"caption":"Malditaweb"},"image":{"@id":"https:\/\/malditaweb.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/pages\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/malditaweb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":106,"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/pages\/14\/revisions"}],"predecessor-version":[{"id":210,"href":"https:\/\/malditaweb.com\/index.php?rest_route=\/wp\/v2\/pages\/14\/revisions\/210"}],"wp:attachment":[{"href":"https:\/\/malditaweb.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}