{"id":1974,"date":"2015-01-22T09:21:43","date_gmt":"2015-01-22T07:21:43","guid":{"rendered":"https:\/\/www.hiberus.com\/blog\/?p=1974"},"modified":"2023-11-28T12:23:21","modified_gmt":"2023-11-28T11:23:21","slug":"wpo-optimizar-velocidad-web","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/wpo-optimizar-velocidad-web\/","title":{"rendered":"WPO, c\u00f3mo optimizar la velocidad de tu web"},"content":{"rendered":"<p>Para entender la importancia de la optimizaci\u00f3n de los contenidos servidos en nuestra web\u00a0debemos hacer un peque\u00f1o viaje en el tiempo (ser\u00e1 breve, lo prometo).<\/p>\n<p>Nos adentramos en la \u00e9poca oscura de los m\u00f3dems de 56 kb\/s, cuando el mundo de las p\u00e1ginas webs comenzaba a aflorar. Muy pocos dispon\u00edan de conexi\u00f3n en casa y la mayor\u00eda de los que la ten\u00edan era para gestionar su mailing de trabajo. En esa \u00e9poca, los ordenadores ten\u00edan un poder computacional muy inferior a cualquier m\u00f3vil de hoy en d\u00eda y la mayor\u00eda de los recursos servidos eran de muy baja calidad (un buen punto si asociamos que a mayor calidad de una imagen m\u00e1s pesada es).<\/p>\n<p>Poco a poco, el internet se fue expandiendo y ya eran bastantes los que empezaban a plantearse disponer de una p\u00e1gina web. Al mismo tiempo, se empez\u00f3 a instaurar el ADSL como tecnolog\u00eda m\u00e1s habitual que ofrec\u00eda una tasa de descarga superior al m\u00f3dem anteriormente citado.<\/p>\n<p>Con los a\u00f1os se probaron diferentes tecnolog\u00edas como internet coaxial, PLC centralizado\u2026 y fibra \u00f3ptica siendo esta \u00faltima la m\u00e1s extendida por su capacidad de respuesta y la velocidad que ofrece.<\/p>\n<p>El uso de este tipo de tecnolog\u00edas de la informaci\u00f3n, que permite descargar muchos recursos en poco tiempo, ha descuidado la necesidad de optimizar al m\u00e1ximo el contenido de la web puesto que, aunque la p\u00e1gina sea m\u00e1s pesada tenemos m\u00e1s tasa de transferencia.<\/p>\n<p>Sin embargo, a d\u00eda de hoy, hay que contar con un elemento m\u00e1s en todo el marco de las tecnolog\u00edas de la informaci\u00f3n: el m\u00f3vil. Hoy en d\u00eda accedemos en proporci\u00f3n casi tanto o m\u00e1s a internet desde un dispositivo m\u00f3vil que desde el ordenador.<\/p>\n<p>Muchos cuentan con 4G (capaz de bajar y subir datos mucho m\u00e1s r\u00e1pido que las conexiones de fibra \u00f3ptica dom\u00e9stica) pero est\u00e1n limitados a una cuota de descarga y subida de datos dependiendo de la tarifa. Adem\u00e1s, tenemos que pensar que la mayor\u00eda de los dispositivos m\u00f3viles funcionan con tecnolog\u00eda ARM la cual, en t\u00e9rminos generales, es menos potente que la arquitectura de 64 bits de un ordenador dom\u00e9stico por poner un ejemplo.<\/p>\n<p>Esto nos vuelve a recordar la necesidad de optimizar nuestro contenido web, para asegurar la mejor experiencia para aquellos que tienen peor conexi\u00f3n, peor m\u00f3vil o sencillamente se les ha acabado el plan de datos de m\u00e1xima velocidad de su tarifa telef\u00f3nica.<\/p>\n<h2>\u00bfC\u00f3mo lo hacemos?<\/h2>\n<p>Hay una cantidad inmensa de herramientas gratuitas online que hacen m\u00e9tricas de nuestros sitios webs y nos desglosan unos resultados con documentaci\u00f3n \u201chow-to\u201d de c\u00f3mo proceder para optimizar el sitio. Yo me voy a centrar en Google Pagespeed, y en concreto voy a citar y a explicar las que han demostrado ser m\u00e1s complicadas de implementar tanto para desarrolladores amateurs como para desarrolladores expertos.<\/p>\n<h2>\u00bfTengo que optimizar mi p\u00e1gina web?<\/h2>\n<p>Es una pregunta complicada de responder. En el mejor de los casos te lanzar\u00eda la siguiente pregunta: \u00bfSacrificar\u00edas un poco de usabilidad de tu p\u00e1gina para obtener una mejora en la velocidad?<\/p>\n<p>Si la respuesta es \u201csi\u201d te est\u00e1s confundiendo. La velocidad es b\u00e1sicamente usabilidad y si sacrificas un poco para ganar un poco te quedas como antes, a lo que le tendr\u00e1s que sumar el tiempo y dinero invertido para quedarte igual.<\/p>\n<p>Pagespeed no se dise\u00f1\u00f3 para decirte qu\u00e9 hacer para mejorar tu resultado en el test, se dise\u00f1\u00f3 como una herramienta de aprendizaje de buenas praxis cara a la usabilidad de tu p\u00e1gina web. Ten muy claro que a d\u00eda de hoy rendimiento y SEO no va de la mano (no vas a posicionar mejor por tener una web m\u00e1s r\u00e1pida), pero no te olvides que si tu web est\u00e1 bien optimizada y ofrece un buen contenido va a ser m\u00e1s complicado que el usuario final salga inmediatamente de ella y por tanto mejorar\u00e1s tu tasa de rebote (elemento que s\u00ed afecta al posicionamiento web).<\/p>\n<h2>Consejos para optimizar la velocidad de tu\u00a0p\u00e1gina web<\/h2>\n<p><strong>Eliminar el JavaScript que bloquea la visualizaci\u00f3n y el CSS del contenido de la mitad superior de la p\u00e1gina:<\/strong><\/p>\n<p>Comenzamos por el CSS<\/p>\n<p>Google dice lo siguiente: Toda p\u00e1gina web deber\u00e1 contener en su cabecera estrictamente la cantidad de CSS necesaria para cargar los elementos que se visualizar\u00edan en un monitor de 1024 x 768 p\u00edxeles. Adem\u00e1s, como condici\u00f3n, todo el contenido que se va a renderizar en esa superficie tiene que estar en los primeros ~15KB de tu p\u00e1gina web.<\/p>\n<p>Parece complicado pero en esencia viene a decir lo siguiente:<\/p>\n<pre style=\"background: #f9f9f9; color: #080808;\">&lt;!<span style=\"color: #bf4f24;\">DOCTYPE<\/span> html&gt;\n    &lt;<span style=\"color: #bf4f24;\">head<\/span>&gt;\n        &lt;<span style=\"color: #bf4f24;\">title<\/span>&gt;Title&lt;\/<span style=\"color: #bf4f24;\">title<\/span>&gt;\n        &lt;<span style=\"color: #bf4f24;\">style<\/span>&gt;\n            <span style=\"color: #bf4f24;\">*<\/span>{margin:0;padding:0}<span style=\"color: #bf4f24;\">body<\/span>{filter:none;overflow-y:scroll;overflow-x:hidden;overflow:hidden;font-family:\n            Helvetica}<span style=\"color: #bf4f24;\">h3<\/span>{font-size:50px;color:#636363;padding:10px;text-align:justify}<span style=\"color: #bf4f24;\">#logo<\/span>{display:block;margin:auto;\n            max-width:800px;padding-top:30px}<span style=\"color: #bf4f24;\">.container<\/span>{bottom:30px;position:absolute;width:100%}<span style=\"color: #bf4f24;\">.text<\/span>{display:block;\n            margin:auto;max-width:800px}\n            \u2026\n        &lt;\/<span style=\"color: #bf4f24;\">style<\/span>&gt;\n    &lt;\/<span style=\"color: #bf4f24;\">head<\/span>&gt;\n    &lt;<span style=\"color: #bf4f24;\">body<\/span> <span style=\"color: #bf4f24;\">id<\/span><span style=\"color: #794938;\">=<\/span><span style=\"color: #0b6125;\">\"page\"<\/span>&gt;\n        &lt;<span style=\"color: #bf4f24;\">div<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"wrapper\"<\/span>&gt;\n            &lt;<span style=\"color: #bf4f24;\">img<\/span> <span style=\"color: #bf4f24;\">id<\/span><span style=\"color: #794938;\">=<\/span><span style=\"color: #0b6125;\">\"logo\"<\/span> <span style=\"color: #bf4f24;\">src<\/span>=<span style=\"color: #0b6125;\">\".png\"<\/span>\/&gt;\n            &lt;<span style=\"color: #bf4f24;\">div<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"container\"<\/span>&gt;\n                &lt;<span style=\"color: #bf4f24;\">div<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"text\"<\/span>&gt;\n                    &lt;<span style=\"color: #bf4f24;\">h3<\/span>&gt;P\u00e1gina en construcci\u00f3n.&lt;<span style=\"color: #bf4f24;\">br<\/span>&gt; &lt;<span style=\"color: #bf4f24;\">span<\/span> <span style=\"color: #bf4f24;\">id<\/span><span style=\"color: #794938;\">=<\/span><span style=\"color: #0b6125;\">\"soon\"<\/span>&gt;Volvemos en un rato&lt;\/<span style=\"color: #bf4f24;\">span<\/span>&gt;&lt;<span style=\"color: #bf4f24;\">span<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"one\"<\/span>&gt;.&lt;\/<span style=\"color: #bf4f24;\">span<\/span>&gt;&lt;<span style=\"color: #bf4f24;\">span<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"two\"<\/span>&gt;.&lt;\/<span style=\"color: #bf4f24;\">span<\/span>&gt;&lt;<span style=\"color: #bf4f24;\">span<\/span> <span style=\"color: #bf4f24;\">class<\/span>=<span style=\"color: #0b6125;\">\"three\"<\/span>&gt;.&lt;\/<span style=\"color: #bf4f24;\">span<\/span>&gt;&lt;\/<span style=\"color: #bf4f24;\">h3<\/span>&gt;\n                &lt;\/<span style=\"color: #bf4f24;\">div<\/span>&gt;\n            &lt;\/<span style=\"color: #bf4f24;\">div<\/span>&gt;\n        &lt;\/<span style=\"color: #bf4f24;\">div<\/span>&gt;\n    &lt;\/<span style=\"color: #bf4f24;\">body<\/span>&gt;\n&lt;\/<span style=\"color: #bf4f24;\">html<\/span>&gt;\n<\/pre>\n<p>Si os fij\u00e1is bien, no estamos cargando ning\u00fan CSS externo mendiante link rel=\u201dstylesheet\u201d. Esto b\u00e1sicamente nos pintar\u00eda la parte que se va a renderizar al cargar la p\u00e1gina pero, \u00bfqu\u00e9 pasa con el resto de la p\u00e1gina?<\/p>\n<p>S\u00f3lo tendr\u00edamos que insertar el recurso tras el body para que la descarga se realizara una vez le\u00eddo todo el bloque de la web. Quedar\u00eda tal que as\u00ed:<\/p>\n<pre style=\"background: #f9f9f9; color: #080808;\">&lt;\/<span style=\"color: #bf4f24;\">html<\/span>&gt;\n&lt;<span style=\"color: #bf4f24;\">link<\/span> <span style=\"color: #bf4f24;\">rel<\/span>=<span style=\"color: #0b6125;\">\"stylesheet\"<\/span> <span style=\"color: #bf4f24;\">type<\/span>=<span style=\"color: #0b6125;\">\"text\/css\"<\/span> <span style=\"color: #bf4f24;\">href<\/span>=<span style=\"color: #0b6125;\">\"http:\/\/mipagina.com\/mi-css.css\"<\/span> <span style=\"color: #bf4f24;\">media<\/span>=<span style=\"color: #0b6125;\">\"all\"<\/span> \/&gt;\n<\/pre>\n<p>Entiendo que es complicado hacer esto a mano, por ello os propongo los siguientes recursos:<\/p>\n<p>En <strong>Css Above the fold<\/strong> podr\u00e9is introducir la URL de vuestra web y os sacar\u00e1 la lista de CSS necesaria para importar en la cabecera de tu documento. Adem\u00e1s, para los m\u00e1s veteranos ofrecen un servicio REST que lo hace con llamadas a su API. S\u00f3lo quedar\u00eda contrastar las reglas de CSS que hemos incrustado en el header con el resto de reglas CSS que tenemos cargada en el resto de recursos externos, eliminar las duplicidades de los externos y listo.<\/p>\n<p>Para hacer el cotejo suelo emplear la herramienta\u00a0<a href=\"http:\/\/csscompressor.com\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Css Compressor<\/strong><\/a>\u00a0con la compresi\u00f3n en high, introduzco todo el CSS, comprimo y me da una l\u00ednea por regla, las paso a una hoja de c\u00e1lculo y la ordeno alfab\u00e9ticamente, as\u00ed es mucho m\u00e1s sencillo comprar. La imaginaci\u00f3n mueve el mundo.<\/p>\n<h4>Vamos con el JavaScript<\/h4>\n<p>Esta regla suele ser la m\u00e1s complicada de todas, sobretodo cara a implementarla en CMS, por eso es la que m\u00e1s me gusta. Todos somos muy amigos de librer\u00edas de JS externas como jQuery, Bootstrap o Prototype (la lista sigue hasta el infinito), pero tenemos que ser conscientes de que estas librer\u00edas suelen ser bastante pesadas y que si adem\u00e1s generamos scripts que dependen de las mismas nos complica la tarea de cargar de forma as\u00edncrona los scripts.<\/p>\n<p>Hay bastantes formas de plantear la ecuaci\u00f3n, pero yo me quedo con la siguiente:<\/p>\n<pre style=\"background: #f9f9f9; color: #080808;\"><span style=\"color: #a71d5d; font-style: italic;\">var<\/span> dfLoadStatus <span style=\"color: #794938;\">=<\/span> <span style=\"color: #811f24; font-weight: bold;\">0<\/span>;\n\n<span style=\"color: #a71d5d; font-style: italic;\">var<\/span> dfLoadFiles <span style=\"color: #794938;\">=<\/span> [\n    [<span style=\"color: #0b6125;\">\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.9.1\/jquery.min.js\"<\/span>],\n    [\n        <span style=\"color: #0b6125;\">\"\/\/ajax.googleapis.com\/ajax\/libs\/jqueryui\/1.10.3\/jquery-ui.min.js\"<\/span>,\n        <span style=\"color: #0b6125;\">\"blabla...\"<\/span>\n    ]\n];\n\n<span style=\"color: #a71d5d; font-style: italic;\">function<\/span> <span style=\"color: #bf4f24;\">downloadJSAtOnload<\/span>() {\n    <span style=\"color: #794938;\">if<\/span> (<span style=\"color: #794938;\">!<\/span>dfLoadFiles.<span style=\"color: #b4371f;\">length<\/span>) <span style=\"color: #794938;\">return<\/span>;\n    <span style=\"color: #a71d5d; font-style: italic;\">var<\/span> dfGroup <span style=\"color: #794938;\">=<\/span> dfLoadFiles.<span style=\"color: #693a17;\">shift<\/span>();\n    dfLoadStatus <span style=\"color: #794938;\">=<\/span> <span style=\"color: #811f24; font-weight: bold;\">0<\/span>;\n    <span style=\"color: #794938;\">for<\/span> (<span style=\"color: #a71d5d; font-style: italic;\">var<\/span> i <span style=\"color: #794938;\">=<\/span> <span style=\"color: #811f24; font-weight: bold;\">0<\/span>; i <span style=\"color: #794938;\">&lt;<\/span> dfGroup.<span style=\"color: #b4371f;\">length<\/span>; i<span style=\"color: #794938;\">++<\/span>) {\n        dfLoadStatus<span style=\"color: #794938;\">++<\/span>;\n        <span style=\"color: #a71d5d; font-style: italic;\">var<\/span> element <span style=\"color: #794938;\">=<\/span> <span style=\"color: #691c97;\">document<\/span>.<span style=\"color: #693a17;\">createElement<\/span>(<span style=\"color: #0b6125;\">'script'<\/span>);\n        element.<span style=\"color: #b4371f;\">src<\/span> <span style=\"color: #794938;\">=<\/span> dfGroup[i];\n        element.onload <span style=\"color: #794938;\">=<\/span> <span style=\"color: #691c97;\">element<\/span>.<span style=\"color: #bf4f24;\">onreadystatechange<\/span> <span style=\"color: #794938;\">=<\/span> <span style=\"color: #a71d5d; font-style: italic;\">function<\/span> () {\n            <span style=\"color: #794938;\">if<\/span> (<span style=\"color: #794938;\">!<\/span><span style=\"color: #234a97;\">this<\/span>.<span style=\"color: #b4371f;\">readyState<\/span> <span style=\"color: #794938;\">||<\/span> <span style=\"color: #234a97;\">this<\/span>.<span style=\"color: #b4371f;\">readyState<\/span> <span style=\"color: #794938;\">===<\/span> <span style=\"color: #0b6125;\">'complete'<\/span>) {\n                dfLoadStatus<span style=\"color: #794938;\">--<\/span>;\n                <span style=\"color: #794938;\">if<\/span> (dfLoadStatus <span style=\"color: #794938;\">===<\/span> <span style=\"color: #811f24; font-weight: bold;\">0<\/span>) {\n                    <span style=\"color: #5a525f; font-style: italic;\">\/\/Si se ha cargado jQuery carga el resto de scripts<\/span>\n                    <span style=\"color: #794938;\">if<\/span> (dfGroup.<span style=\"color: #b4371f;\">length<\/span> <span style=\"color: #794938;\">===<\/span> <span style=\"color: #811f24; font-weight: bold;\">1<\/span>) {\n                        downloadJSAtOnload();\n                    <span style=\"color: #5a525f; font-style: italic;\">\/\/Si todos los scripts se han cargado,<\/span>\n                    <span style=\"color: #5a525f; font-style: italic;\">\/\/lanza las acciones diferidas<\/span>\n                    } <span style=\"color: #794938;\">else<\/span> {\n                        performDeferredActions();\n                    }\n                }\n            }\n        };\n        <span style=\"color: #691c97;\">document<\/span>.<span style=\"color: #b4371f;\">body<\/span>.<span style=\"color: #693a17;\">appendChild<\/span>(element);\n    }\n}\n\n<span style=\"color: #794938;\">if<\/span> (<span style=\"color: #691c97;\">window<\/span>.addEventListener) {\n    <span style=\"color: #691c97;\">window<\/span>.addEventListener(<span style=\"color: #0b6125;\">\"load\"<\/span>, downloadJSAtOnload, <span style=\"color: #811f24; font-weight: bold;\">false<\/span>);\n} <span style=\"color: #794938;\">else<\/span> <span style=\"color: #794938;\">if<\/span> (<span style=\"color: #691c97;\">window<\/span>.attachEvent) {\n    <span style=\"color: #691c97;\">window<\/span>.<span style=\"color: #693a17;\">attachEvent<\/span>(<span style=\"color: #0b6125;\">\"onload\"<\/span>, downloadJSAtOnload);\n} <span style=\"color: #794938;\">else<\/span> {\n    <span style=\"color: #691c97;\">window<\/span>.onload <span style=\"color: #794938;\">=<\/span> downloadJSAtOnload;\n}\n\n<span style=\"color: #a71d5d; font-style: italic;\">function<\/span> <span style=\"color: #bf4f24;\">performDeferredActions<\/span>(){\n    <span style=\"color: #5a525f; font-style: italic;\">\/\/Esto s\u00f3lo se ejecutara una vez est\u00e9n todas las librer\u00edas cargadas<\/span>\n    <span style=\"color: #794938;\">$<\/span>(<span style=\"color: #0b6125;\">\"h3\"<\/span>).css(<span style=\"color: #0b6125;\">\"color\"<\/span>, <span style=\"color: #0b6125;\">\"red\"<\/span>);\n}\n<\/pre>\n<p>Esta tarea es complicada puesto que hay que aislar muy bien todas las llamadas a JS y a las librer\u00edas de nuestra web, pero aporta unos resultados incre\u00edbles en lo que respecta a la carga.<\/p>\n<p>Adem\u00e1s, podr\u00edamos mejorarlo a\u00fan m\u00e1s empleando alg\u00fan compresor de JS como <a href=\"http:\/\/closure-compiler.appspot.com\/home\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Closure Compiler<\/strong><\/a>.<\/p>\n<h4>Optimizar im\u00e1genes<\/h4>\n<p>Este punto es probablemente el m\u00e1s cr\u00edtico de todos. Engloba dos reglas, la primera: Mostrar el tama\u00f1o de im\u00e1genes adecuado al tama\u00f1o original de la imagen. Lo que viene a decir que si tenemos un div de 200 x 200 y le ponemos una imagen que originalmente es de 400 x 400 acotada al tama\u00f1o del div estamos cargando casi un 40% m\u00e1s de tama\u00f1o independientemente de lo optimizada que est\u00e9 la imagen.<\/p>\n<p>Es conveniente identificar estos recursos y re-escalarlos al tama\u00f1o adecuado.<\/p>\n<p>La segunda: Mostrar im\u00e1genes optimizadas para ser visualizadas en la web.<\/p>\n<p>Para esto, podemos emplear herramientas \u201cserver side\u201d como jpeg optim u optipng o podemos emplear programas inform\u00e1ticos que hagan la optimizaci\u00f3n de forma masiva y luego subir los ficheros por ftp (por poner un ejemplo). Te decantes por lo que te decantes, lee bien la documentaci\u00f3n del programa o aplicaci\u00f3n primero para evitar excederte o quedarte corto en la compresi\u00f3n.<\/p>\n<p>En Hiberus d<strong>ise\u00f1amos experiencias digitales \u00fanicas, con una tecnolog\u00eda escalable y optimizado a resultados. <a href=\"https:\/\/www.hiberus.com\/agencia-digital?utm_source=BlogHiberus&amp;utm_medium=referral&amp;utm_content=categoria-internet&amp;utm_campaign=adblock\">Ponte en contacto con nosotros<\/a> y estaremos encantados de ayudarte.<\/strong><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para entender la importancia de la optimizaci\u00f3n de los contenidos servidos en nuestra web\u00a0debemos hacer un peque\u00f1o viaje en el tiempo (ser\u00e1&#8230;<\/p>\n","protected":false},"author":38,"featured_media":8782,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[3,229,232,233],"tags":[34,61],"class_list":{"0":"post-1974","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-negocio-electronico","8":"category-generacion-trafico","9":"category-portales-dxp","10":"category-tecnologias-ecommmerce","11":"tag-ecommerce","12":"tag-portal-corporativo"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/1974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=1974"}],"version-history":[{"count":1,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/1974\/revisions"}],"predecessor-version":[{"id":15564,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/1974\/revisions\/15564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/8782"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=1974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=1974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=1974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}