{"id":28847,"date":"2025-05-22T13:20:36","date_gmt":"2025-05-22T11:20:36","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=28847"},"modified":"2026-03-16T09:23:39","modified_gmt":"2026-03-16T08:23:39","slug":"la-plantilla-de-informe-seo-perfecta-para-reportar-a-tus-clientes-incluye-ejemplo-para-descargar","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/la-plantilla-de-informe-seo-perfecta\/","title":{"rendered":"La plantilla de informe SEO perfecta para reportar a tus clientes. Incluye ejemplo para descargar"},"content":{"rendered":"<p>Hacer un informe no tiene por qu\u00e9 ser una tarea complicada.<\/p>\n<p>Es m\u00e1s, no deber\u00eda serlo.<\/p>\n<p>Sin embargo, la palabra informe enseguida suele traer a nuestra cabeza esos reportes financieros de las entidades bancarias, con un mont\u00f3n de hojas, cifras y gr\u00e1ficos dif\u00edciles de digerir.<\/p>\n<p>O los informes m\u00e9dicos, cuya terminolog\u00eda suele ponernos nerviosos, aunque no nos pase nada.<\/p>\n<p>\u00bfY qu\u00e9 me dices de las resoluciones de Hacienda? Yo tengo que leerlas varias veces para saber qu\u00e9 debo hacer.<\/p>\n<p>En mi opini\u00f3n, <strong>un informe SEO deber\u00eda ser<\/strong> todo lo contrario a eso: conciso, resolutivo y <strong>totalmente comprensible en una primera lectura<\/strong>.<\/p>\n<p>Adem\u00e1s, no tiene que costarte la vida preparar uno.<\/p>\n<p>Y lo bueno es que, <strong>puedes ayudarte de plantillas<\/strong> para agilizar su creaci\u00f3n.<\/p>\n<p>Eso s\u00ed, no nos vale cualquier plantilla.<\/p>\n<p>\u00bfQuieres saber c\u00f3mo debe ser una plantilla para un informe SEO eficaz? \u00bfTe gustar\u00eda poder <strong>descargar una plantilla <\/strong>as\u00ed?<\/p>\n<p>Entonces, qu\u00e9date conmigo porque lo que viene a continuaci\u00f3n te va a interesar.<\/p>\n<h2>Descarga GRATIS nuestra plantilla de informe SEO para clientes<\/h2>\n<p>Si est\u00e1s buscando una plantilla de informe SEO para descargar, no voy a hacerte esperar. Pulsando el siguiente bot\u00f3n puedes bajarte una <strong>plantilla SEO de reporting que hemos dise\u00f1ado<\/strong> para ti totalmente gratis.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/05\/Plantilla-informe-SEO.pptx\" class=\"su-button su-button-style-flat\" style=\"color:#FFFFFF;background-color:#00937D;border-color:#007664;border-radius:0px\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color:#FFFFFF;padding:0px 20px;font-size:16px;line-height:32px;border-color:#4db4a4;border-radius:0px;text-shadow:none\">  Descargar plantilla informes SEO <\/span><\/a>\n<p>Y si quieres saber c\u00f3mo rellenar correctamente esta plantilla, te invito a seguir leyendo el resto del post. Te contar\u00e9 qu\u00e9 aspectos debes tener en cuenta para no perder el tiempo y que el resultado deje totalmente satisfechos a tus clientes.<\/p>\n<h2>C\u00f3mo debe ser una plantilla de informe SEO que enamore a tus clientes<\/h2>\n<p>Uno de los principales errores que suele cometer la mayor\u00eda de la gente que descarga plantillas de Internet es dejarse llevar por las apariencias.<\/p>\n<p>Buscan en Google, ven algunos ejemplos y se quedan con la que m\u00e1s llama su atenci\u00f3n. La m\u00e1s vistosa o la que tiene un mayor n\u00famero de gr\u00e1ficos e im\u00e1genes.<\/p>\n<p>Pero, \u00bfrealmente es lo que necesitan?<\/p>\n<p>En este apartado quiero comentarte los <strong>3 puntos que considero claves a la hora de elegir una plantilla<\/strong> que resulte \u00fatil. Tanto para ti, como para tu cliente.<\/p>\n<h3>Sencilla de entender por parte de tus clientes<\/h3>\n<p>Si tuviera que quedarme con una sola cualidad para una plantilla de informes SEO, ser\u00eda precisamente \u00e9sta.<\/p>\n<p>El objetivo principal de tus informes es <strong>que tu cliente sepa valorar tu trabajo<\/strong>. Y si no comprende lo que le est\u00e1s contando, dif\u00edcilmente va a poder hacerlo.<\/p>\n<p>Por eso, cuando elijas una plantilla para tu cliente, debes dejar de lado tu ego.<\/p>\n<p>No se trata de meter mil gr\u00e1ficas, ni utilizar tecnicismos para parecer m\u00e1s interesante.<\/p>\n<p>Tu cliente quiere saber<strong> si el trabajo por el que te est\u00e1 pagando est\u00e1 consiguiendo resultados<\/strong> y no quiere perder su tiempo tratando de interpretar un informe complejo para averiguarlo.<\/p>\n<blockquote><p>Al reportar a un cliente, menos es m\u00e1s.<\/p><\/blockquote>\n<p>Ve directo al grano, <strong>utiliza un lenguaje claro<\/strong> y emplea m\u00e9tricas que sean relevantes para su negocio.<\/p>\n<p>Adem\u00e1s, <strong>a\u00f1ade explicaciones de cada gr\u00e1fico<\/strong>, resaltando lo m\u00e1s relevante, para facilitarle el trabajo todo lo que puedas.<\/p>\n<p>En definitiva, ponte en la piel de tu cliente y adapta tu plantilla de informes SEO a sus conocimientos y necesidades.<\/p>\n<h3>Ajustada a lo acordado con el cliente<\/h3>\n<p>Seguramente, cuando entregaste el <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/como-hacer-un-presupuesto-seo\/\" target=\"_blank\" rel=\"noopener\">presupuesto SEO<\/a> a tu cliente fijasteis unas determinadas tareas a realizar y las metas que quer\u00edais conseguir con ellas.<\/p>\n<p>Pues bien, en tu plantilla de reporting SEO deber\u00e1s reflejar claramente <strong>cu\u00e1l es el estado de esas tareas y de los objetivos contratados<\/strong>.<\/p>\n<p>\u00bfQu\u00e9 tareas est\u00e1n terminadas? \u00bfCu\u00e1les son las acciones que quedan por realizar? \u00bfQu\u00e9 se ha conseguido desde el mes anterior?<\/p>\n<p>Incluye en tus informes mensuales la respuesta a estas preguntas para que tus clientes sepan valorar la evoluci\u00f3n de tu trabajo.<\/p>\n<p><span data-sheets-root=\"1\"><div id=\"brxe-d62272\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-1141e3\" class=\"brxe-text-basic h3\">\u00bfOtra newsletter de SEO? Quiz\u00e1s\u2026<\/div><div id=\"brxe-071f14\" class=\"brxe-text-basic\">Esto es lo que podemos ofrecerte:\n<\/div><ul id=\"brxe-eosgrh\" class=\"brxe-list\"><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Un email semanal con las novedades importantes del sector. <\/span><span class=\"separator\"><\/span><\/div><\/li><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Aprende SEO que podr\u00e1s aplicar en tu web o en las de tus clientes.<\/span><span class=\"separator\"><\/span><\/div><\/li><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Accede a webinars y a los eventos SEO totalmente gratuitos que organizamos.<\/span><span class=\"separator\"><\/span><\/div><\/li><\/ul><div id=\"brxe-ajplje\" class=\"brxe-text-basic\"><strong>Sin ruido, sin humo. Gratis.<\/strong> Solo necesito tu email y un poquito de tu atenci\u00f3n, nosotros hacemos el resto.\n\nT\u00fa decides.\n<\/div><div id=\"brxe-c60d60\" data-script-id=\"c60d60\" class=\"brxe-code incontent-form-html\"><style>@import url(https:\/\/fonts.bunny.net\/css?family=ibm-plex-sans:400,700);<\/style>\n<style>\n#_form_301_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_301_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_301_._form-top{top:0}#_form_301_._form-bottom{bottom:0}#_form_301_._form-left{left:0}#_form_301_._form-right{right:0}#_form_301_ input[type=\"text\"],#_form_301_ input[type=\"tel\"],#_form_301_ input[type=\"date\"],#_form_301_ textarea{padding:6px;height:auto;border:#979797 1px solid;border-radius:4px;color:#000 !important;font-size:14px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#_form_301_ textarea{resize:none}#_form_301_ ._submit{-webkit-appearance:none;cursor:pointer;font-family:arial, sans-serif;font-size:14px;text-align:center;background:#00C4A7 !important;border:0 !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important;border-radius:5px !important;color:#FFFFFF !important;padding:13px !important}#_form_301_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_301_ ._submit.processing{position:relative}#_form_301_ ._submit.processing::before{content:\"\";width:1em;height:1em;position:absolute;z-index:1;top:50%;left:50%;border:double 3px transparent;border-radius:50%;background-image:linear-gradient(#00C4A7, #00C4A7), conic-gradient(#00C4A7, #FFFFFF);background-origin:border-box;background-clip:content-box, border-box;animation:1200ms ease 0s infinite normal none running _spin}#_form_301_ ._submit.processing::after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:#00C4A7 !important;border:0 !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important;border-radius:5px !important;color:#FFFFFF !important;padding:13px !important}@keyframes _spin{0%{transform:translate(-50%, -50%) rotate(90deg)}100%{transform:translate(-50%, -50%) rotate(450deg)}}#_form_301_ ._close-icon{cursor:pointer;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/esfkyjh1u_forms-close-dark.png\");background-repeat:no-repeat;background-size:14.2px 14.2px;position:absolute;display:block;top:11px;right:9px;overflow:hidden;width:16.2px;height:16.2px}#_form_301_ ._close-icon:before{position:relative}#_form_301_ ._form-body{margin-bottom:30px}#_form_301_ ._form-image-left{width:150px;float:left}#_form_301_ ._form-content-right{margin-left:164px}#_form_301_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_301_ ._form-branding ._logo{display:block;width:130px;height:14px;margin-top:6px;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/hh9ujqgv5_aclogo_li.png\");background-size:130px auto;background-repeat:no-repeat}#_form_301_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_301_ ._form-label,#_form_301_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_301_._dark ._form-branding{color:#333}#_form_301_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_301_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_301_ ._form_element *{font-size:14px}#_form_301_ ._form_element._clear{clear:both;width:100%;float:none}#_form_301_ ._form_element._clear:after{clear:left}#_form_301_ ._form_element input[type=\"text\"],#_form_301_ ._form_element input[type=\"date\"],#_form_301_ ._form_element select,#_form_301_ ._form_element textarea:not(.g-recaptcha-response){display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:inherit}#_form_301_ ._field-wrapper{position:relative}#_form_301_ ._inline-style{float:left}#_form_301_ ._inline-style input[type=\"text\"]{width:150px}#_form_301_ ._inline-style:not(._clear){margin-right:20px}#_form_301_ ._form_element img._form-image{max-width:100%}#_form_301_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_301_ ._clear-element{clear:left}#_form_301_ ._full_width{width:100%}#_form_301_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_301_ input[type=\"text\"]._has_error,#_form_301_ textarea._has_error{border:#F37C7B 1px solid}#_form_301_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_301_ ._show_be_error{float:left}#_form_301_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_301_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_301_ ._error._below{padding-top:8px;top:100%;right:0}#_form_301_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_301_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_301_ ._error-inner{padding:12px 12px 12px 36px;background-color:#FFDDDD;background-image:url(\"data:image\/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 3V9H7V3H9ZM9 13V11H7V13H9Z' fill='%23CA0000'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:12px center;font-size:14px;font-family:arial, sans-serif;font-weight:600;line-height:16px;color:#000;text-align:center;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;box-shadow:0 1px 4px rgba(31, 33, 41, 0.298295)}@media only screen and (max-width:319px){#_form_301_ ._error-inner{padding:7px 7px 7px 25px;font-size:12px;line-height:12px;background-position:4px center;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}#_form_301_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_301_ ._button-wrapper ._error-inner._form_error{position:static}#_form_301_ ._error-inner._no_arrow{margin-bottom:10px}#_form_301_ ._error-arrow{position:absolute;width:0;height:0}#_form_301_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_301_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_301_ select.datetime_time{width:29%;display:inline;height:32px}#_form_301_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_301_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_301_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_301_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_301_ ._form-content{margin:0;width:100%}#_form_301_ ._form-inner{display:block;min-width:100%}#_form_301_ ._form-title,#_form_301_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_301_ ._form-title{font-size:1.2em}#_form_301_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_301_ ._form-element,#_form_301_ ._inline-style,#_form_301_ input[type=\"text\"],#_form_301_ label,#_form_301_ p,#_form_301_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_301_ ._row._checkbox-radio label{display:inline}#_form_301_ ._row,#_form_301_ p,#_form_301_ label{margin-bottom:0.7em;width:100%}#_form_301_ ._row input[type=\"checkbox\"],#_form_301_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_301_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_301_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_301_ ._form-image{max-width:100%;height:auto !important}#_form_301_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_301_ input[type=\"radio\"],#_form_301_ input[type=\"checkbox\"]{display:inline-block;width:1.3em;height:1.3em;font-size:1em;margin:0 0.3em 0 0;vertical-align:baseline}#_form_301_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_301_ ._inline-style{margin:20px 0 0 !important}#_form_301_ ._inline-style input[type=\"text\"]{width:100%}}#_form_301_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_301_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_301_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_301_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_301_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_301_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_301_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_301_ .field-required{color:#FF0000}#_form_301_{position:relative;text-align:left;margin:25px auto 0;padding:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(255, 255, 255, 0) !important;border-top:0px solid #737373 !important;border-right:0px solid #737373 !important;border-bottom:0px solid #737373 !important;border-left:0px solid #737373 !important;max-width:800px;-moz-border-radius:1px !important;-webkit-border-radius:1px !important;border-radius:1px !important;color:#000000}#_form_301_ ._show_be_error{min-width:100%}#_form_301_._inline-form,#_form_301_._inline-form ._form-content{font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_301_._inline-form ._row span,#_form_301_._inline-form ._row label{font-family:IBM Plex Sans;font-size:14px;font-weight:400;line-height:1.6em;color:#888 !important}#_form_301__inlineform input[type=\"text\"],#_form_301__inlineform input[type=\"date\"],#_form_301__inlineform input[type=\"tel\"],#_form_301__inlineform select,#_form_301__inlineform textarea:not(.g-recaptcha-response){font-family:IBM Plex Sans;font-size:14px;font-weight:400;font-color:#000000;line-height:1.6em}#_form_301_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_301_._inline-form .sms_consent_message,#_form_301_._inline-form ._form-thank-you{font-family:IBM Plex Sans;font-size:14px;font-weight:400;color:#888 !important}#_form_301_._inline-form ._form-label,#_form_301_._inline-form ._form-emailidentifier,#_form_301_._inline-form ._form-checkbox-option-label{font-family:IBM Plex Sans;font-size:14px;font-weight:700;line-height:1.6em;color:#888 !important}#_form_301_._inline-form ._submit{margin-top:12px;font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_301_._inline-form ._html-code h1,#_form_301_._inline-form ._html-code h2,#_form_301_._inline-form ._html-code h3,#_form_301_._inline-form ._html-code h4,#_form_301_._inline-form ._html-code h5,#_form_301_._inline-form ._html-code h6,#_form_301_._inline-form ._form-title{font-family:IBM Plex Sans;font-size:22px;line-height:normal;font-weight:700;color:black;margin-bottom:0;display:block}#_form_301_._inline-form ._form-branding{font-family:\"IBM Plex Sans\", Helvetica, sans-serif;font-size:13px;font-weight:100;font-style:normal;text-decoration:none}#_form_301_:before,#_form_301_:after{content:\" \";display:table}#_form_301_:after{clear:both}#_form_301_._inline-style{width:auto;display:inline-block}#_form_301_._inline-style input[type=\"text\"],#_form_301_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_301_._inline-style button._inline-style{position:relative;top:27px}#_form_301_._inline-style p{margin:0}#_form_301_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_301_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_301_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_301_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_301_ .iti{width:100%}#_form_301_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_301_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_301_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_301_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_301_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_301_ .iti__country-list--dropup{margin-bottom:4px}#_form_301_ .phone-error-hidden{display:none}#_form_301_ .phone-error{color:#E40E49}#_form_301_ .phone-input-error{border:1px solid #E40E49 !important}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_301_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:18px !important;font-weight:500 !important}#_form_301_ ._submit:hover{background-color:#04937E !important}#_form_301_ input#email{padding:3px 12px;background-color:#ffffff}#_form_301_ ._row{margin-top:-5px}#_form_301_._form{margin-top:-5px}#_form_301_ ._error._below{position:relative !important}#_form_301_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_301_ ._form_element{margin:0 0 0px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_301_\" class=\"_form _form_301 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"301\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"301\" \/>\n  <input type=\"hidden\" name=\"s\" \/>\n  <input type=\"hidden\" name=\"c\" value=\"0\" \/>\n  <input type=\"hidden\" name=\"m\" value=\"0\" \/>\n  <input type=\"hidden\" name=\"act\" value=\"sub\" \/>\n  <input type=\"hidden\" name=\"v\" value=\"2\" \/>\n  <input type=\"hidden\" name=\"or\" value=\"9828494011f2fd6968fee0a8a9419a1e\" \/>\n  <div class=\"_form-content\">\n    <div class=\"_form_element _x74577619 _full_width \" >\n      <label for=\"email\" class=\"_form-label\">\n      <\/label>\n      <div class=\"_field-wrapper\">\n        <input type=\"text\" id=\"email\" name=\"email\" placeholder=\"Tu email...\" required\/>\n      <\/div>\n    <\/div>\n    <div class=\"_form_element _x87696446 _full_width \" >\n      <fieldset class=\"_form-fieldset\">\n        <div class=\"_row\">\n          <legend for=\"field[15][]\" class=\"_form-label\">\n          <\/legend>\n        <\/div>\n        <input data-autofill=\"false\" type=\"hidden\" id=\"field[15][]\" name=\"field[15][]\" value=\"~|\">\n        <div class=\"_row _checkbox-radio\">\n          <input id=\"field_15He le\u00eddo y acepto la pol\u00edtica de privacidad\" type=\"checkbox\" name=\"field[15][]\"\n          value=\"He le\u00eddo y acepto la pol\u00edtica de privacidad\"                                                                                 required                                >\n          <span>\n            <label for=\"field_15He le\u00eddo y acepto la pol\u00edtica de privacidad\">\n              He le\u00eddo y acepto la pol\u00edtica de privacidad<span class=\"field-required\">\n              *\n            <\/span>\n          <\/label>\n        <\/span>\n      <\/div>\n    <\/fieldset>\n  <\/div>\n  <div class=\"_form_element _x09639014 _full_width \" >\n    <input type=\"hidden\" name=\"field[121]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x64811239 _full_width \" >\n    <input type=\"hidden\" name=\"field[122]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x58860354 _full_width \" >\n    <input type=\"hidden\" name=\"field[123]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x23331849 _full_width \" >\n    <input type=\"hidden\" name=\"field[125]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x72046679 _full_width \" >\n    <input type=\"hidden\" name=\"field[126]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x41336277 _full_width \" >\n    <input type=\"hidden\" name=\"field[127]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_button-wrapper _full_width\">\n    <button id=\"_form_301_submit\" class=\"_submit\" type=\"submit\">\n      \u00a1Me apunto!\n    <\/button>\n  <\/div>\n  <div class=\"_clear-element\">\n  <\/div>\n<\/div>\n<div class=\"_form-thank-you\" style=\"display:none;\">\n<\/div>\n<\/form><script>\nwindow.cfields = {\"15\":\"poltica_privacidad\",\"121\":\"utm_campaign\",\"122\":\"utm_source\",\"123\":\"utm_medium\",\"125\":\"utm_content\",\"126\":\"utm_adset\",\"127\":\"utm_ad\"};\nwindow._show_thank_you = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\n    form.querySelector('._form-content').style.display = 'none';\n    thank_you.innerHTML = message;\n    thank_you.style.display = 'block';\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_unsubscribe = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you');\n    var branding = form.querySelector('._form-branding');\n    if (branding) {\n        branding.style.display = 'none';\n    }\n    form.querySelector('._form-content').style.display = 'none';\n    unsub.style.display = 'block';\n    form.insertAdjacentHTML('afterend', message)\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_error = function(id, message, html) {\n    var form = document.getElementById('_form_' + id + '_'),\n        err = document.createElement('div'),\n        button = form.querySelector('button[type=\"submit\"]'),\n        old_error = form.querySelector('._form_error');\n    if (old_error) old_error.parentNode.removeChild(old_error);\n    err.innerHTML = message;\n    err.className = '_error-inner _form_error _no_arrow';\n    var wrapper = document.createElement('div');\n    wrapper.className = '_form-inner _show_be_error';\n    wrapper.appendChild(err);\n    button.parentNode.insertBefore(wrapper, button);\n    var submitButton = form.querySelector('[id^=\"_form\"][id$=\"_submit\"]');\n    submitButton.disabled = false;\n    submitButton.classList.remove('processing');\n    if (html) {\n        var div = document.createElement('div');\n        div.className = '_error-html';\n        div.innerHTML = html;\n        err.appendChild(div);\n    }\n};\nwindow._show_pc_confirmation = function(id, header, detail, show, email) {\n    var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation');\n    if (pc_confirmation.style.display === 'none') {\n        form.querySelector('._form-content').style.display = 'none';\n        pc_confirmation.innerHTML = \"<div class='_form-title'>\" + header + \"<\/div>\" + \"<p>\" + detail + \"<\/p>\" +\n        \"<button class='_submit' id='hideButton'>Administrar preferencias<\/button>\";\n        pc_confirmation.style.display = 'block';\n        var mp = document.querySelector('input[name=\"mp\"]');\n        mp.value = '0';\n    } else {\n        form.querySelector('._form-content').style.display = 'inline';\n        pc_confirmation.style.display = 'none';\n    }\n\n    var hideButton = document.getElementById('hideButton');\n    \/\/ Add event listener to the button\n    hideButton.addEventListener('click', function() {\n        var submitButton = document.querySelector('#_form_301_submit');\n        submitButton.disabled = false;\n        submitButton.classList.remove('processing');\n        var mp = document.querySelector('input[name=\"mp\"]');\n        mp.value = '1';\n        const cacheBuster = new URL(window.location.href);\n        cacheBuster.searchParams.set('v', new Date().getTime());\n        window.location.href = cacheBuster.toString();\n    });\n\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._load_script = function(url, callback, isSubmit) {\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\n    var submitButton = document.querySelector('#_form_301_submit');\n    script.charset = 'utf-8';\n    script.src = url;\n    if (callback) {\n        script.onload = script.onreadystatechange = function() {\n            if (!r && (!this.readyState || this.readyState == 'complete')) {\n                r = true;\n                callback();\n            }\n        };\n    }\n    script.onerror = function() {\n        if (isSubmit) {\n            if (script.src.length > 10000) {\n                _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Vuelve a intentarlo.\");\n            }\n            submitButton.disabled = false;\n            submitButton.classList.remove('processing');\n        }\n    }\n\n    head.appendChild(script);\n};\n(function() {\n    var iti;\n    if (window.location.search.search(\"excludeform\") !== -1) return false;\n    var getCookie = function(name) {\n        var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\n        return match ? match[2] : null;\n    }\n    var setCookie = function(name, value) {\n        var now = new Date();\n        var time = now.getTime();\n        var expireTime = time + 1000 * 60 * 60 * 24 * 365;\n        now.setTime(expireTime);\n        document.cookie = name + '=' + value + '; expires=' + now + ';path=\/; Secure; SameSite=Lax;';\n    }\n    var addEvent = function(element, event, func) {\n        if (element.addEventListener) {\n            element.addEventListener(event, func);\n        } else {\n            var oldFunc = element['on' + event];\n            element['on' + event] = function() {\n                oldFunc.apply(this, arguments);\n                func.apply(this, arguments);\n            };\n        }\n    }\n    var _removed = false;\n        var form_to_submit = document.getElementById('_form_301_');\n    var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\n\n    var getUrlParam = function(name) {\n        if (name.toLowerCase() !== 'email') {\n            var params = new URLSearchParams(window.location.search);\n            return params.get(name) || false;\n        }\n        \/\/ email is a special case because a plus is valid in the email address\n        var qString = window.location.search;\n        if (!qString) {\n            return false;\n        }\n        var parameters = qString.substr(1).split('&');\n        for (var i = 0; i < parameters.length; i++) {\n            var parameter = parameters[i].split('=');\n            if (parameter[0].toLowerCase() === 'email') {\n                return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]);\n            }\n        }\n        return false;\n    };\n\n    var acctDateFormat = \"%d\/%m\/%Y\";\n    var getNormalizedDate = function(date, acctFormat) {\n        var decodedDate = decodeURIComponent(date);\n        if (acctFormat && acctFormat.match(\/(%d|%e).*%m\/gi) !== null) {\n            return decodedDate.replace(\/(\\d{2}).*(\\d{2}).*(\\d{4})\/g, '$3-$2-$1');\n        } else if (Date.parse(decodedDate)) {\n            var dateObj = new Date(decodedDate);\n            var year = dateObj.getFullYear();\n            var month = dateObj.getMonth() + 1;\n            var day = dateObj.getDate();\n            return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`;\n        }\n        return false;\n    };\n\n    var getNormalizedTime = function(time) {\n        var hour, minutes;\n        var decodedTime = decodeURIComponent(time);\n        var timeParts = Array.from(decodedTime.matchAll(\/(\\d{1,2}):(\\d{1,2})\\W*([AaPp][Mm])?\/gm))[0];\n        if (timeParts[3]) { \/\/ 12 hour format\n            var isPM = timeParts[3].toLowerCase() === 'pm';\n            if (isPM) {\n                hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`;\n            } else {\n                hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1];\n            }\n        } else { \/\/ 24 hour format\n            hour = timeParts[1];\n        }\n        var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour;\n        var minutes = timeParts[2];\n        return `${normalizedHour}:${minutes}`;\n    };\n\n    for (var i = 0; i < allInputs.length; i++) {\n        var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\n        var results = new RegExp(regexStr).exec(allInputs[i].name);\n        if (results != undefined) {\n            allInputs[i].dataset.name = allInputs[i].name.match(\/\\[time\\]$\/)\n                ? `${window.cfields[results[1]]}_time`\n                : window.cfields[results[1]];\n        } else {\n            allInputs[i].dataset.name = allInputs[i].name;\n        }\n        var fieldVal = getUrlParam(allInputs[i].dataset.name);\n\n        if (fieldVal) {\n            if (allInputs[i].dataset.autofill === \"false\") {\n                continue;\n            }\n            if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\n                if (allInputs[i].value == fieldVal) {\n                    allInputs[i].checked = true;\n                }\n            } else if (allInputs[i].type == \"date\") {\n                allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat);\n            } else if (allInputs[i].type == \"time\") {\n                allInputs[i].value = getNormalizedTime(fieldVal);\n            } else {\n                allInputs[i].value = fieldVal;\n            }\n        }\n    }\n\n    var remove_tooltips = function() {\n        for (var i = 0; i < tooltips.length; i++) {\n            tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n        }\n        tooltips = [];\n    };\n    var remove_tooltip = function(elem) {\n        for (var i = 0; i < tooltips.length; i++) {\n            if (tooltips[i].elem === elem) {\n                tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n                tooltips.splice(i, 1);\n                return;\n            }\n        }\n    };\n    var create_tooltip = function(elem, text) {\n        var tooltip = document.createElement('div'),\n            arrow = document.createElement('div'),\n            inner = document.createElement('div'), new_tooltip = {};\n        if (elem.type != 'radio' && (elem.type != 'checkbox' || elem.name === 'sms_consent')) {\n            tooltip.className = '_error';\n            arrow.className = '_error-arrow';\n            inner.className = '_error-inner';\n            inner.innerHTML = text;\n            tooltip.appendChild(arrow);\n            tooltip.appendChild(inner);\n            elem.parentNode.appendChild(tooltip);\n        } else {\n            tooltip.className = '_error-inner _no_arrow';\n            tooltip.innerHTML = text;\n            elem.parentNode.insertBefore(tooltip, elem);\n            new_tooltip.no_arrow = true;\n        }\n        new_tooltip.tip = tooltip;\n        new_tooltip.elem = elem;\n        tooltips.push(new_tooltip);\n        return new_tooltip;\n    };\n    var resize_tooltip = function(tooltip) {\n        var rect = tooltip.elem.getBoundingClientRect();\n        var doc = document.documentElement,\n            scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\n        if (scrollPosition < 40) {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\n        } else {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\n        }\n    };\n    var resize_tooltips = function() {\n        if (_removed) return;\n        for (var i = 0; i < tooltips.length; i++) {\n            if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\n        }\n    };\n    var validate_field = function(elem, remove) {\n        var tooltip = null, value = elem.value, no_error = true;\n        remove ? remove_tooltip(elem) : false;\n        if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n        if (elem.getAttribute('required') !== null) {\n            if (elem.type == 'radio' || (elem.type == 'checkbox' && \/any\/.test(elem.className))) {\n                var elems = form_to_submit.elements[elem.name];\n                if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) {\n                    no_error = elem.checked;\n                }\n                else {\n                    no_error = false;\n                    for (var i = 0; i < elems.length; i++) {\n                        if (elems[i].checked) no_error = true;\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, \"Seleccione una opci\u00f3n.\");\n                }\n            } else if (elem.type =='checkbox') {\n                var elems = form_to_submit.elements[elem.name], found = false, err = [];\n                no_error = true;\n                for (var i = 0; i < elems.length; i++) {\n                    if (elems[i].getAttribute('required') === null) continue;\n                    if (!found && elems[i] !== elem) return true;\n                    found = true;\n                    elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\n                    if (!elems[i].checked) {\n                        no_error = false;\n                        elems[i].className = elems[i].className + ' _has_error';\n                        err.push(\"Es necesario verificar %s\".replace(\"%s\", elems[i].value));\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, err.join('<br\/>'));\n                }\n            } else if (elem.tagName == 'SELECT') {\n                var selected = true;\n                if (elem.multiple) {\n                    selected = false;\n                    for (var i = 0; i < elem.options.length; i++) {\n                        if (elem.options[i].selected) {\n                            selected = true;\n                            break;\n                        }\n                    }\n                } else {\n                    for (var i = 0; i < elem.options.length; i++) {\n                        if (elem.options[i].selected\n                            && (!elem.options[i].value\n                            || (elem.options[i].value.match(\/\\n\/g)))\n                        ) {\n                            selected = false;\n                        }\n                    }\n                }\n                if (!selected) {\n                    elem.className = elem.className + ' _has_error';\n                    no_error = false;\n                    tooltip = create_tooltip(elem, \"Seleccione una opci\u00f3n.\");\n                }\n            } else if (value === undefined || value === null || value === '') {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Este campo es obligatorio.\");\n            }\n        }\n        if (no_error && elem.name == 'email') {\n            if (!value.match(\/^[\\+_a-z0-9-'&=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Introduzca una direcci\u00f3n de correo electr\u00f3nico v\u00e1lida.\");\n            }\n        }\n        if (no_error && (elem.id == 'phone')) {\n            if (elem.value.trim() && typeof iti != 'undefined' && !iti.isValidNumber()) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Ingresa un n\u00famero de tel\u00e9fono v\u00e1lido.\");\n            }\n        }\n        if (no_error && \/date_field\/.test(elem.className)) {\n            if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Introduzca una fecha v\u00e1lida.\");\n            }\n        }\n\n        if (no_error && elem.name === 'sms_consent') {\n            const elemShouldBeChecked = (!!elem.attributes.required && !elem.checked);\n            if (elemShouldBeChecked) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Marca esta casilla para continuar\");\n            } else {\n                elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n            }\n        }\n        tooltip ? resize_tooltip(tooltip) : false;\n        return no_error;\n    };\n    var needs_validate = function(el) {\n        if(el.getAttribute('required') !== null){\n            return true;\n        }\n        if((el.name === 'email' || el.id === 'phone') && el.value !== \"\"){\n            return true;\n        }\n\n        return false;\n    };\n    var validate_form = function(e) {\n        var err = form_to_submit.querySelector('._form_error'), no_error = true;\n        if (!submitted) {\n            submitted = true;\n            for (var i = 0, len = allInputs.length; i < len; i++) {\n                var input = allInputs[i];\n                if (needs_validate(input)) {\n                    if (input.type == 'text' || input.type == 'number' || input.type == 'time' || input.type == 'tel') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'radio' || input.type == 'checkbox') {\n                        (function(el) {\n                            function getElementsArray(name){\n                                const value =  form_to_submit.elements[name];\n                                if (Array.isArray(value)){\n                                    return value;\n                                }\n                                return [value];\n                            }\n                            var radios = getElementsArray(el.name);\n                            for (var i = 0; i < radios.length; i++) {\n                                addEvent(radios[i], 'change', function() {\n                                    validate_field(el, true);\n                                });\n                            }\n                        })(input);\n                    } else if (input.tagName == 'SELECT') {\n                        addEvent(input, 'change', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'textarea'){\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    }\n                }\n            }\n        }\n        remove_tooltips();\n        for (var i = 0, len = allInputs.length; i < len; i++) {\n            var elem = allInputs[i];\n            if (needs_validate(elem)) {\n                if (elem.tagName.toLowerCase() !== \"select\") {\n                    elem.value = elem.value.trim();\n                }\n                validate_field(elem) ? true : no_error = false;\n            }\n        }\n        if (!no_error && e) {\n            e.preventDefault();\n        }\n        resize_tooltips();\n        return no_error;\n    };\n    addEvent(window, 'resize', resize_tooltips);\n    addEvent(window, 'scroll', resize_tooltips);\n\n    var _form_serialize = function(form){if(!form||form.nodeName!==\"FORM\"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===\"\"){continue}switch(form.elements[i].nodeName){case\"INPUT\":switch(form.elements[i].type){case\"tel\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(\" \")+encodeURIComponent(form.elements[i].value));break;case\"text\":case\"number\":case\"date\":case\"time\":case\"hidden\":case\"password\":case\"button\":case\"reset\":case\"submit\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"checkbox\":case\"radio\":if(form.elements[i].checked){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value))}break;case\"file\":break}break;case\"TEXTAREA\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"SELECT\":switch(form.elements[i].type){case\"select-one\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"select-multiple\":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case\"BUTTON\":switch(form.elements[i].type){case\"reset\":case\"submit\":case\"button\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break}break}}return q.join(\"&\")};\n\n    const formSupportsPost = false;\n    var form_submit = function(e) {\n\n        e.preventDefault();\n        if (validate_form()) {\n            if(form_to_submit.querySelector('input[name=\"phone\"]') && typeof iti != 'undefined') {\n                form_to_submit.querySelector('input[name=\"phone\"]').value = iti.getNumber();\n            }\n            \/\/ use this trick to get the submit button & disable it using plain javascript\n            var submitButton = e.target.querySelector('#_form_301_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_301_')).replace(\/%0A\/g, '\\\\n');\n            var err = form_to_submit.querySelector('._form_error');\n            err ? err.parentNode.removeChild(err) : false;\n            async function submitForm() {\n                var formData = new FormData();\n                const searchParams = new URLSearchParams(serialized);\n                searchParams.forEach((value, key) => {\n                    if (key !== 'hideButton') {\n                        formData.append(key, value);\n                    }\n                });\n                let request = {\n                    headers: {\n                        \"Accept\": \"application\/json\"\n                    },\n                    body: formData,\n                    method: \"POST\"\n                };\n\n                let pageUrlParams = new URLSearchParams(window.location.search);\n                if (pageUrlParams.has('t')) {\n                    request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t');\n                }\n                const response = await fetch('https:\/\/deandelafuenteromero.activehosted.com\/proc.php?jsonp=true', request);\n\n                return response.json();\n            }\n            if (formSupportsPost) {\n                submitForm().then((data) => {\n                    eval(data.js);\n                }).catch(() => {\n                    _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Vuelve a intentarlo.\");\n                });\n            } else {\n                _load_script('https:\/\/deandelafuenteromero.activehosted.com\/proc.php?' + serialized + '&jsonp=true', null, true);\n            }\n        }\n        return false;\n    };\n    addEvent(form_to_submit, 'submit', form_submit);\n})();\n\n<\/script><style>\/* Texto junto al checkbox: blanco y en l\u00ednea *\/\n._form_301 ._checkbox-radio label {\n  display: inline !important;\n  margin-left: 8px !important;\n}\n\n\/* Color blanco del texto \"Verifica que eres un humano\" *\/\n._form_301 label[for=\"ls\"],\n._form_301 ._form_element label._form-label {\n  color: #ffffff !important;\n  display: inline-block;\n  font-weight: 400 !important;\n  margin-left: 8px;\n}\n\n\/* Placeholder del campo de email *\/\n#_form_301_ #email::placeholder {\n  color: #002132 !important;\n}\n\n\/* Altura del campo de email reducida *\/\n#_form_301_ #email {\n  padding: 8px 12px !important;\n  height: 40px !important;\n  font-size: 14px !important;\n  line-height: 1.2 !important;\n  margin-bottom: 16px !important;\n}\n<\/style><\/div><\/div><\/span><\/p>\n<h3>F\u00e1cil y r\u00e1pida de completar<\/h3>\n<p>Si en los dos puntos anteriores nos centramos principalmente en nuestro cliente, en este \u00faltimo nos vamos a focalizar en nosotros.<\/p>\n<p>Y es que tampoco hay que perder de vista que, si creamos o adaptamos una plantilla para hacer nuestros informes SEO, lo hacemos tambi\u00e9n por un motivo claro: que nos facilite el trabajo.<\/p>\n<p>As\u00ed, cuando elijas tu plantilla, <strong>procura que te quite el menor tiempo posible<\/strong>. Es decir, que sea sencilla de completar y, a ser posible, que el proceso de obtenci\u00f3n de la informaci\u00f3n sea lo m\u00e1s autom\u00e1tico posible.<\/p>\n<p>En DinoRANK somos conscientes de todos estos factores a la hora de comunicar con el cliente tus resultados. Por eso,<strong> nuestro m\u00f3dulo de informes SEO te lo pone muy f\u00e1cil<\/strong> y te permite configurar plantillas de reporting a tu medida, que se completan con unos pocos clics.<\/p>\n<p><a id=\"CTA-3\" href=\"https:\/\/dinorank.com\/blog\/informes\/\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-28719 size-full\" title=\"Informes SEO personalizados con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO.png\" alt=\"Informes SEO personalizados con DinoRANK\" width=\"1000\" height=\"450\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO.png 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO-300x135.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO-768x346.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p>Pero todo esto te lo contar\u00e9 m\u00e1s adelante. Ahora vamos a ver un ejemplo de informe SEO con los principales elementos que no pueden faltar.<\/p>\n<h2>\u00bfQu\u00e9 debe incluir una plantilla de informe mensual de SEO?<\/h2>\n<p>Ahora que ya conoces las caracter\u00edsticas m\u00e1s importantes que debe reunir una plantilla de informes SEO, vamos a bajar un poco m\u00e1s al terreno.<\/p>\n<p>En esta secci\u00f3n veremos cu\u00e1l debe ser su contenido. O, al menos, qu\u00e9 elementos son los m\u00e1s importantes a la hora de <strong>mostrar a tu cliente que su inversi\u00f3n en SEO est\u00e1 teniendo resultados positivos<\/strong>.<\/p>\n<p>Y lo vamos a ver a trav\u00e9s de la plantilla que te puedes descargar desde este mismo post, para que sepas c\u00f3mo rellenarla de la manera m\u00e1s pr\u00e1ctica posible.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/05\/Plantilla-informe-SEO.pptx\" class=\"su-button su-button-style-flat\" style=\"color:#FFFFFF;background-color:#00937D;border-color:#007664;border-radius:0px\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color:#FFFFFF;padding:0px 20px;font-size:16px;line-height:32px;border-color:#4db4a4;border-radius:0px;text-shadow:none\">  Descargar plantilla informes SEO <\/span><\/a>\n<h3>Descripci\u00f3n de las tareas realizadas en el mes<\/h3>\n<p>Como ya te he comentado antes, a tu cliente le interesa saber c\u00f3mo van los trabajos que te ha contratado y si realmente vas a cumplir con los planes que hab\u00edais acordado en el presupuesto.<\/p>\n<p>Por lo tanto, en tu plantilla de informe SEO debes tener un apartado que refleje las <strong>tareas que se han llevado a cabo en el \u00faltimo per\u00edodo <\/strong>(normalmente el \u00faltimo mes). A m\u00ed me suele dar muy buen resultado incluir esta secci\u00f3n en las primeras p\u00e1ginas del informe.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-28864 size-full\" title=\"Plantilla de informe SEO: tareas realizadas en el mes\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-tareas.png\" alt=\"Plantilla de informe SEO: tareas realizadas en el mes\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-tareas.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-tareas-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-tareas-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Ahora bien, si te fijas en la imagen, yo no me quedo en una mera enumeraci\u00f3n de tareas. Lo que hago es a\u00f1adir adem\u00e1s<strong> los logros conseguidos<\/strong> y tambi\u00e9n los problemas encontrados.<\/p>\n<p>De este modo, el cliente ya tiene una primera visi\u00f3n general del progreso y los resultados sin tener que mirar mucho m\u00e1s.<\/p>\n<h3>Posicionamiento de palabras clave org\u00e1nicas<\/h3>\n<p>Cuando un cliente ve que para una determinada keyword su web ha pasado de estar en posici\u00f3n 7 a estar dentro del Top 3 de Google, empieza a percibir el efecto que est\u00e1 teniendo tu trabajo como SEO.<\/p>\n<p>Por eso, dentro de tu informe dedica una secci\u00f3n para mostrar la <strong>evoluci\u00f3n de las principales palabras clave del proyecto<\/strong>.<\/p>\n<p>Si no tienes herramientas que te permitan hacer una monitorizaci\u00f3n o tracking de keywords profesional, <strong>puedes utilizar directamente las tablas de Google Search Console<\/strong>, que te permite adem\u00e1s comparar tus keywords con la posici\u00f3n en la que estaban en el mes anterior.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-28862 size-full\" title=\"Plantilla de informe SEO: posicionamiento de palabras clave org\u00e1nicas\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-keywords.png\" alt=\"Plantilla de informe SEO: posicionamiento de palabras clave org\u00e1nicas\" width=\"960\" height=\"540\" \/><\/p>\n<p>Como siempre, no te olvides de<strong> a\u00f1adir un peque\u00f1o comentario <\/strong>donde resaltes los cambios m\u00e1s importantes que se han producido. De este modo, tu cliente apreciar\u00e1 mucho mejor todo lo que se est\u00e1 consiguiendo.<\/p>\n<h3>Informe de tr\u00e1fico org\u00e1nico<\/h3>\n<p>Como hemos dicho antes, la evoluci\u00f3n de las palabras clave te permite mostrar a tu cliente que tu trabajo est\u00e1 teniendo \u00e9xito. No obstante, lo que realmente va a importarle es si esa mejora en las posiciones de las keywords tiene alg\u00fan <strong>impacto en su negocio<\/strong>.<\/p>\n<p>Y una forma de demostrarlo es <strong>a trav\u00e9s de las visitas que llegan a su p\u00e1gina web<\/strong>.<\/p>\n<p>La siguiente secci\u00f3n de tu plantilla de informe de resultados SEO es por lo tanto la relativa al tr\u00e1fico del sitio web.<\/p>\n<p>Aqu\u00ed tienes b\u00e1sicamente dos opciones: usar Google Search Console o Google Analytics.<\/p>\n<p>Mi recomendaci\u00f3n es que si quieres ense\u00f1ar a tu cliente el <strong>efecto de tus acciones en Google<\/strong>, emplees la gr\u00e1fica de Google Search Console.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28865 size-full\" title=\"Plantilla de informe SEO: tr\u00e1fico org\u00e1nico\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-trafico.png\" alt=\"Plantilla de informe SEO: tr\u00e1fico org\u00e1nico\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-trafico.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-trafico-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-trafico-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>En cambio, si est\u00e1s realizando<strong> acciones en diferentes canales<\/strong> (redes sociales, YouTube, Bing, etc) y quieres mostrar los resultados que tienen tus esfuerzos de marketing de contenidos, entonces utilices Google Analytics, ya que te permitir\u00e1 evaluar un contexto m\u00e1s global.<\/p>\n<p>Por \u00faltimo, una recomendaci\u00f3n: <strong>si est\u00e1s empezando tu proyecto<\/strong> y es tu primer o segundo mes quiz\u00e1 no notes todav\u00eda una gran mejor\u00eda en el tr\u00e1fico de la web. En ese caso, puedes sustituir esta gr\u00e1fica por la de<strong> impresiones de GSC<\/strong> y explicar a tu cliente que el incremento en impresiones es la antesala del aumento de visitas a la p\u00e1gina.<\/p>\n<h3>Reporting de conversiones<\/h3>\n<p>Si los usuarios llegan a una web y se marchan pronto, o no realizan ninguna acci\u00f3n susceptible de producir una venta, entonces el SEO no vale de mucho.<\/p>\n<p>Por eso, es fundamental <strong>mostrar a tus clientes que las conversiones desde su web est\u00e1n aumentando<\/strong>. Esto lo puedes hacer gracias a los eventos que configuraremos en Google Analytics.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28853 size-full\" title=\"Plantilla de informe SEO: conversiones\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-conversiones.png\" alt=\"Plantilla de informe SEO: conversiones\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-conversiones.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-conversiones-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-conversiones-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Como ves, manejar bien GA4 es b\u00e1sico en tu trabajo como SEO. Mi recomendaci\u00f3n es que te familiarices cuanto antes con esta herramienta para poder recoger sus estad\u00edsticas y plasmarlas en tus informes.<\/p>\n<p>Si no sabes por d\u00f3nde empezar, aqu\u00ed te dejo una <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/como-configurar-google-analytics-4-para-seo\/\" target=\"_blank\" rel=\"noopener\">gu\u00eda de GA4<\/a> con los tips m\u00e1s importantes de cara al SEO.<\/p>\n<h3>Informe de la competencia<\/h3>\n<p>Muchas veces a tus clientes les gusta <strong>compararse con sus principales competidores<\/strong>, especialmente en determinados sectores donde no existe una gran diferenciaci\u00f3n en cuanto a los servicios o productos que ofrecen unos u otros.<\/p>\n<p>En estos casos, puede venir bien incluir en el informe una visi\u00f3n muy general sobre la competencia, que muestre al cliente <strong>en qu\u00e9 punto nos encontramos con respecto a ellos<\/strong>.<\/p>\n<p>El principal problema es que para obtener datos de la competencia sueles tener que recurrir a herramientas de pago y eso puede ser un problema si tu presupuesto no es demasiado holgado.<\/p>\n<p>Pero no te preocupes, te voy a dar un truco que quiz\u00e1 te pueda ayudar.<\/p>\n<p>Resulta que <a href=\"https:\/\/dinorank.com\/blog\/tutorial-semrush\/\">Semrush<\/a> te permite crear una cuenta gratuita con la que puedes hacer hasta 10 consultas al d\u00eda. Evidentemente, no es algo que yo recomiende para un trabajo diario pero, para un an\u00e1lisis r\u00e1pido y puntual, s\u00ed que te puede venir bien.<\/p>\n<p>En concreto, con esta versi\u00f3n gratuita de Semrush puedes obtener las m\u00e9tricas de 3 \u00f3 4 competidores y plasmarlas en tu plantilla de informe SEO. Eso s\u00ed, no te olvides de a\u00f1adir una explicaci\u00f3n personalizada para que a tu cliente le resulte m\u00e1s sencillo compararse con ellos.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28852 size-full\" title=\"Plantilla de informe SEO: la competencia\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-competencia.png\" alt=\"Plantilla de informe SEO: la competencia\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-competencia.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-competencia-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-competencia-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<h3>Informe de auditor\u00eda SEO<\/h3>\n<p>Este informe, de tipo auditor\u00eda, no siempre suele ser necesario. Particularmente, me parece m\u00e1s<strong> \u00fatil durante las primeras etapas de un proyecto<\/strong>, es decir, cuando empiezas a trabajar la web de tu cliente y corriges todos esos errores que est\u00e1n perjudicando la indexaci\u00f3n o el rendimiento de la p\u00e1gina.<\/p>\n<p>Si tienes que incluir esta secci\u00f3n en tu informe de seguimiento SEO mensual, <strong>procura que no sea muy compleja de entender<\/strong>. Cuenta s\u00f3lo lo m\u00e1s relevante y no te l\u00edes con detalles demasiado t\u00e9cnicos.<\/p>\n<p>A veces, la gr\u00e1fica de indexaci\u00f3n de las p\u00e1ginas de GSC y un par de pantallazos del resultado de Google PageSpeed, junto con una buena explicaci\u00f3n, puede ser m\u00e1s que suficiente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28851 size-full\" title=\"Plantilla de informe SEO: auditor\u00eda SEO\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-auditoria.png\" alt=\"Plantilla de informe SEO: auditor\u00eda SEO\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-auditoria.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-auditoria-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-auditoria-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<h3>Avance de los pr\u00f3ximos pasos a realizar<\/h3>\n<p>La parte final del informe SEO debe destinarse a <strong>contar el trabajo del pr\u00f3ximo mes<\/strong>.<\/p>\n<p>\u00bfQu\u00e9 queda por hacer? \u00bfCu\u00e1les son los objetivos que se pretenden alcanzar en el siguiente per\u00edodo? \u00bfQu\u00e9 nuevas acciones, que no se hab\u00edan considerado, son necesarias llevar a cabo?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28863 size-full\" title=\"Plantilla de informe SEO: pr\u00f3ximos pasos a realizar\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-proximos-pasos.png\" alt=\"Plantilla de informe SEO: pr\u00f3ximos pasos a realizar\" width=\"960\" height=\"540\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-proximos-pasos.png 960w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-proximos-pasos-300x169.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-proximos-pasos-768x432.png 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>D\u00e9jale claro a tu cliente en qu\u00e9 vas a trabajar a partir de ahora, aclara las dudas que le surjan y, si fuera necesario, acuerda el plan de trabajo con \u00e9l.<\/p>\n<p>De este modo te resultar\u00e1 tambi\u00e9n m\u00e1s sencillo saber c\u00f3mo debes organizarte y qu\u00e9 tendr\u00e1s que plasmar en tu siguiente informe SEO peri\u00f3dico.<\/p>\n<h2>Configura tus plantillas de informes SEO f\u00e1cilmente con DinoRANK<\/h2>\n<p>Como has podido ver, utilizar una plantilla de informes SEO no es nada complicado, pero s\u00ed que puede resultar algo tedioso si tienes que recopilar informaci\u00f3n de m\u00faltiples fuentes de datos.<\/p>\n<p>Por eso, usar una herramienta como <strong>DinoRANK<\/strong>, que cuenta con un m\u00f3dulo de informes especializado, <strong>te facilita mucho todo el trabajo<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28510 size-full\" title=\"Informes personalizados con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/03\/dinorank-informes-personalizados.png\" alt=\"Informes personalizados con DinoRANK\" width=\"1024\" height=\"575\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/03\/dinorank-informes-personalizados.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/03\/dinorank-informes-personalizados-300x168.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/03\/dinorank-informes-personalizados-768x431.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Si quieres aprender a utilizarlo, te recomiendo leer este tutorial paso a paso sobre <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/como-hacer-un-informe-seo\/\" target=\"_blank\" rel=\"noopener\">c\u00f3mo hacer un informe SEO<\/a>.<\/p>\n<p>Pero DinoRANK no s\u00f3lo te permite crear tus propios informes personalizados. Tambi\u00e9n <strong>cuenta con un repositorio de plantillas SEO de reporting <\/strong>dise\u00f1adas para diferentes prop\u00f3sitos y listas para usar dentro de tu propio proyecto.<\/p>\n<p><a id=\"CTA-3\" href=\"https:\/\/dinorank.com\/blog\/informes\/\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-28719 size-full\" title=\"Informes SEO personalizados con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO.png\" alt=\"Informes SEO personalizados con DinoRANK\" width=\"1000\" height=\"450\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO.png 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO-300x135.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/01\/Banner-Informes-SEO-768x346.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p>En este apartado te voy a comentar dos de estas plantillas, que creo que te pueden venir muy bien para comunicar tus resultados a tus clientes.<\/p>\n<h3>Plantilla de informe SEO para clientes<\/h3>\n<p>\u00bfTe ha gustado la plantilla de informes SEO que hemos visto anteriormente? Pues tambi\u00e9n la tienes disponible dentro del repositorio de DinoRANK, para que la puedas completar mucho m\u00e1s f\u00e1cilmente a partir de la informaci\u00f3n recopilada sobre tu proyecto dentro herramienta.<\/p>\n<p>Vamos a verla un poco m\u00e1s en detalle.<\/p>\n<h4>Tareas realizadas<\/h4>\n<p>La primera secci\u00f3n es la dedicada a las tareas realizadas en el per\u00edodo.<\/p>\n<p>DinoRANK cuenta con un <strong>componente de gesti\u00f3n de tareas<\/strong>, donde puedes llevar el control de todos los trabajos que constituyen tu proyecto de SEO.<\/p>\n<p>Y dentro de los informes de DinoRANK, puedes usar un m\u00f3dulo para reflejar el estado de estas tareas. Simplemente seleccionas un rango de fechas y la herramienta te mostrar\u00e1 las tareas que est\u00e1n finalizadas en ese per\u00edodo, para que puedas <strong>cargarlas en el informe de forma autom\u00e1tica<\/strong>. Adem\u00e1s, para que quede m\u00e1s completo, puedes a\u00f1adir un texto aparte con los objetivos alcanzados y problemas encontrados.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28860 size-full\" title=\"Plantilla de informe SEO de DinoRANK: tareas realizadas en el mes\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-tareas.png\" alt=\"Plantilla de informe SEO de DinoRANK: tareas realizadas en el mes\" width=\"1024\" height=\"737\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-tareas.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-tareas-300x216.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-tareas-768x553.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h4>Seguimiento de palabras clave<\/h4>\n<p>Mostrar la posici\u00f3n de las palabras clave relevantes mediante las gr\u00e1ficas de Google Search Console puede ser suficiente en muchos casos. Sin embargo, no deja de ser una visi\u00f3n parcial, ya que \u00fanicamente nos ofrece valores medios dentro de un per\u00edodo y no nos permite quedarnos s\u00f3lo con las keywords m\u00e1s relevantes (o, al menos, no de manera sencilla).<\/p>\n<p>Por eso, resulta mucho m\u00e1s preciso y profesional llevar un seguimiento de nuestras palabras clave principales a trav\u00e9s de una herramienta SEO especializada. Y, en este punto, <strong>DinoRANK cuenta con uno de los <a href=\"https:\/\/dinorank.com\/seccion-tracking\/\" target=\"_blank\" rel=\"noopener\">trackers de keywords mejor valorados del mercado<\/a><\/strong>, por su fiabilidad y sencillez de uso.<\/p>\n<p>Los resultados de este tracker <strong>se pueden cargar dentro de nuestro informe SEO<\/strong>, configurando qu\u00e9 aspectos concretos queremos mostrar. De este modo, la evoluci\u00f3n de nuestras palabras clave ser\u00e1 mucho m\u00e1s exacta y f\u00e1cil de comprender por parte de nuestros clientes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28857 size-full\" title=\"Plantilla de informe SEO de DinoRANK: posicionamiento de palabras clave org\u00e1nicas\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-keywords.png\" alt=\"Plantilla de informe SEO de DinoRANK: posicionamiento de palabras clave org\u00e1nicas\" width=\"1024\" height=\"586\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-keywords.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-keywords-300x172.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-keywords-768x440.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h4>Tr\u00e1fico org\u00e1nico<\/h4>\n<p>Los informes de DinoRANK cuentan con<strong> m\u00f3dulos para la conexi\u00f3n con Google Search Console y con Google Analytics<\/strong>. De esta forma podemos obtener las mediciones de tr\u00e1fico sin necesidad de salir de la herramienta.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28861 size-full\" title=\"Plantilla de informe SEO de DinoRANK: tr\u00e1fico org\u00e1nico\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-trafico.png\" alt=\"Plantilla de informe SEO de DinoRANK: tr\u00e1fico org\u00e1nico\" width=\"1024\" height=\"819\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-trafico.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-trafico-300x240.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-trafico-768x614.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>En la plantilla que hemos configurado, vamos a usar los datos de GSC pero, si lo deseas, puedes cambiar este m\u00f3dulo por el de GA4 simplemente arrastr\u00e1ndolo desde el men\u00fa lateral.<\/p>\n<h4>Embudo de conversiones<\/h4>\n<p>A la hora de mostrar las conversiones en los informes de DinoRANK, contamos con una utilidad realmente pr\u00e1ctica. Se trata de una <a href=\"https:\/\/dinorank.com\/blog\/conversion-seo\/\"><strong>representaci\u00f3n, en forma de embudo, de los diferentes tipos de conversiones<\/strong><\/a> que pueden tener relevancia para el negocio de nuestro cliente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28856 size-full\" title=\"Plantilla de informe SEO de DinoRANK: conversiones\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-conversiones.png\" alt=\"Plantilla de informe SEO de DinoRANK: conversiones\" width=\"1024\" height=\"560\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-conversiones.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-conversiones-300x164.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-conversiones-768x420.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Evidentemente, para que DinoRANK pueda mostrar estos datos, previamente deber\u00e1s haber definido tus eventos dentro de GA4.<\/p>\n<p>Una vez lo hayas hecho y empiecen a recoger estad\u00edsticas, podr\u00e1s seleccionar dichos eventos dentro del m\u00f3dulo de informes y decirle a DinoRANK que te los muestre mediante esta visi\u00f3n tan intuitiva.<\/p>\n<h4>Competencia<\/h4>\n<p>\u00bfRecuerdas los problemas que contamos antes para hacer un an\u00e1lisis de los competidores dentro de un informe SEO?<\/p>\n<p>Con DinoRANK, esta cuesti\u00f3n la resuelves con unos pocos clics.<\/p>\n<p>Con el m\u00f3dulo \u201ccomparar competencia\u201d en la secci\u00f3n de informes, basta con indicar las URLs de tus competidores y pulsar un bot\u00f3n para obtener una gr\u00e1fica muy intuitiva que nos muestra la <strong>evoluci\u00f3n de nuestras visitas en comparaci\u00f3n con las suyas<\/strong>, lo que nos permite poner en valor m\u00e1s f\u00e1cilmente el trabajo realizado.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28855 size-full\" title=\"Plantilla de informe SEO de DinoRANK: la competencia\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-competencia.png\" alt=\"Plantilla de informe SEO de DinoRANK: la competencia\" width=\"1024\" height=\"694\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-competencia.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-competencia-300x203.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-competencia-768x521.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h4>Auditor\u00eda SEO<\/h4>\n<p>Si lo deseamos, tambi\u00e9n podemos introducir una <a href=\"https:\/\/dinorank.com\/blog\/auditoria-seo\/\">auditor\u00eda SEO<\/a> sencilla dentro de nuestra plantilla de informes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28854 size-full\" title=\"Plantilla de informe SEO de DinoRANK: auditor\u00eda SEO\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-auditoria.png\" alt=\"Plantilla de informe SEO de DinoRANK: auditor\u00eda SEO\" width=\"1024\" height=\"811\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-auditoria.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-auditoria-300x238.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-auditoria-768x608.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>En este caso, veremos algunas <strong>m\u00e9tricas relativas al rendimiento de las p\u00e1ginas, los estados de respuesta y errores en metaetiquetas<\/strong>, que ser\u00e1n \u00fatiles para informar a nuestro cliente sobre mejoras realizadas o acciones que faltan por llevar a cabo.<\/p>\n<h4>Pr\u00f3ximos pasos<\/h4>\n<p>Los informes de DinoRANK permiten <strong>a\u00f1adir bloques de texto libre<\/strong> en cualquier momento.<\/p>\n<p>Si te has fijado bien, habr\u00e1s visto que junto a cada gr\u00e1fica hay una secci\u00f3n explicativa. Pues bien, para introducir estas secciones en el informe es precisamente para lo que se utilizan estos bloques de texto tan vers\u00e1tiles.<\/p>\n<p>Y tambi\u00e9n los utilizaremos para cerrar el informe: un bloque de texto donde contemos las <strong>pr\u00f3ximas tareas a realizar dentro del proyecto y los hitos que nos quedan por alcanzar<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28859 size-full\" title=\"Plantilla de informe SEO de DinoRANK: pr\u00f3ximos pasos a realizar\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-proximos-pasos.png\" alt=\"Plantilla de informe SEO de DinoRANK: pr\u00f3ximos pasos a realizar\" width=\"1024\" height=\"311\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-proximos-pasos.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-proximos-pasos-300x91.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-proximos-pasos-768x233.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>De este modo, acabamos el reporte con una conclusi\u00f3n que permitir\u00e1 aclarar a nuestro cliente los pr\u00f3ximos pasos a dar para mejorar el posicionamiento web de su negocio.<\/p>\n<h3>Plantilla de informe de SEO local<\/h3>\n<p>\u00bfY qu\u00e9 ocurre con el SEO local? \u00bfAcaso no habr\u00eda que incluirlo en el informe?<\/p>\n<p>No te inquietes, no me he olvidado de esta rama del SEO, que es <strong>fundamental para quienes tienen un negocio f\u00edsico<\/strong>.<\/p>\n<p>DinoRANK es una herramienta profesional que te va a permitir mostrar tus avances en SEO local de manera muy sencilla e intuitiva.<\/p>\n<p><a id=\"CTA-3\" href=\"https:\/\/dinorank.com\/blog\/local\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-26101 size-large\" title=\"Optimiza tu SEO Local con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/10\/banner-seo-local-1024x427.jpg\" alt=\"Optimiza tu SEO Local con DinoRANK\" width=\"1024\" height=\"427\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/10\/banner-seo-local-1024x427.jpg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/10\/banner-seo-local-300x125.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/10\/banner-seo-local-768x321.jpg 768w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/10\/banner-seo-local.jpg 1071w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Incluso dispone de una plantilla de informes de SEO local ya predise\u00f1ada.<\/p>\n<p>Esta plantilla incluye un m\u00f3dulo para <strong>insertar en tus informes una malla con la posici\u00f3n que ocupa la ficha de empresa de tu cliente<\/strong> (Google Business Profile) dentro del mapa, seg\u00fan diferentes ubicaciones del usuario que hace la b\u00fasqueda.<\/p>\n<p>Adem\u00e1s puedes <strong>comparar los resultados con otros an\u00e1lisis anteriores<\/strong>, lo que te permite mostrar r\u00e1pidamente a tu cliente la evoluci\u00f3n del proyecto.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28858 size-full\" title=\"Plantilla de informe SEO de DinoRANK para SEO local\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-local.png\" alt=\"Plantilla de informe SEO de DinoRANK para SEO local\" width=\"1024\" height=\"694\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-local.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-local-300x203.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/04\/plantilla-informe-seo-dinorank-local-768x521.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Como ves, con el nuevo editor de informes personalizados de DinoRANK, crear informes SEO nunca hab\u00eda sido tan f\u00e1cil. Gracias a su<strong> sistema de m\u00f3dulos drag &amp; drop<\/strong>, puedes dise\u00f1ar informes a medida en cuesti\u00f3n de minutos, eligiendo exactamente qu\u00e9 informaci\u00f3n mostrar y c\u00f3mo presentarla.<\/p>\n<p>Y si no quieres calentarte mucho la cabeza, tambi\u00e9n puedes usar las plantillas de informes SEO que ya vienen preconfiguradas en su repositorio. Plantillas como las que hemos visto en este art\u00edculo y unas cuantas m\u00e1s.<\/p>\n<p>\u00bfQuieres <strong>crear informes visualmente atractivos y f\u00e1ciles de entender<\/strong> para tus clientes? Entonces <a href=\"https:\/\/dinorank.com\/blog\/informes\/\" target=\"_blank\" rel=\"noopener\">te animo a probar esta nueva funcionalidad de DinoRANK<\/a>. Estoy seguro de que no te defraudar\u00e1.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hacer un informe no tiene por qu\u00e9 ser una tarea complicada. Es m\u00e1s, no deber\u00eda serlo. Sin embargo, la palabra informe enseguida suele traer a nuestra cabeza esos reportes financieros de las entidades bancarias, con un mont\u00f3n de hojas, cifras y gr\u00e1ficos dif\u00edciles de digerir. O los informes m\u00e9dicos, cuya terminolog\u00eda suele ponernos nerviosos, aunque [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":28850,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-28847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consultor-seo"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/28847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/comments?post=28847"}],"version-history":[{"count":12,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/28847\/revisions"}],"predecessor-version":[{"id":32779,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/28847\/revisions\/32779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/28850"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=28847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=28847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=28847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}