{"id":2811,"date":"2020-11-12T13:34:37","date_gmt":"2020-11-12T12:34:37","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=2811"},"modified":"2026-03-06T10:30:49","modified_gmt":"2026-03-06T09:30:49","slug":"como-elegir-un-buen-consultor-seo","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/consultor-seo\/","title":{"rendered":"C\u00f3mo elegir un buen consultor SEO"},"content":{"rendered":"<p><strong>El consultor SEO ser\u00e1 capaz de desarrollar una estrategia de posicionamiento web efectiva<\/strong> atendiendo a las caracter\u00edsticas de tu dominio y tras haber realizado los an\u00e1lisis pertinentes. Es importante por lo tanto valorar su trabajo y no caer en el pensamiento de que lo que hace es &#8220;f\u00e1cil&#8221; o que no conlleva apenas una preparaci\u00f3n m\u00ednima.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-2789\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/Oferta-de-empleo-como-encontrar-un-buen-consultor-SEO.jpg\" alt=\"Oferta de empleo c\u00f3mo encontrar un buen consultor SEO\" width=\"1100\" height=\"600\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/Oferta-de-empleo-como-encontrar-un-buen-consultor-SEO.jpg 1100w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/Oferta-de-empleo-como-encontrar-un-buen-consultor-SEO-300x164.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/Oferta-de-empleo-como-encontrar-un-buen-consultor-SEO-1024x559.jpg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/Oferta-de-empleo-como-encontrar-un-buen-consultor-SEO-768x419.jpg 768w\" sizes=\"(max-width: 1100px) 100vw, 1100px\" \/><\/p>\n<p><strong>Para saber qu\u00e9 es y cu\u00e1nto cobra un consultor SEO sigue leyendo el<\/strong> <strong>art\u00edculo\u00a0<\/strong>y podr\u00e1s hacerte una idea acerca de c\u00f3mo funciona este tipo de servicios. Esperamos que te resulte de utilidad si est\u00e1s pensando en contratar los servicios de un consultor SEO.<\/p>\n<h2>\u00bfConsultor\u00eda SEO con agencia o con freelance?<\/h2>\n<p>A la hora de escoger un consultor SEO te encontrar\u00e1s tanto con agencias que ofrecen este servicio como con freelance que tambi\u00e9n lo hacen. A la hora de la verdad no tiene demasiada importancia ya que si el consultor es bueno, da igual su forma trabajo, pero hay algunas diferencias que tener en cuenta.<\/p>\n<p><iframe title=\"\u00bfQu\u00e9 es un consultor SEO? \ud83d\udcbc\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/m594XUGg78Y?start=9&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><strong>Un consultor SEO freelance suele ofrecer precios y servicios m\u00e1s personalizados<\/strong> que los que tiene una agencia, que por lo habitual trabajan con tarifas cerradas. Por ello, si no dispones de mucho presupuesto o solo quieres algo muy concreto quiz\u00e1 te convenga m\u00e1s contactar con un freelance. Adem\u00e1s, <strong>el freelance suele ser m\u00e1s flexible no solo en las tarifas sino tambi\u00e9n en los horarios y cambios de servicio<\/strong>.<\/p>\n<p><strong>Una agencia SEO tiene la ventaja de contar con expertos en su plantilla que pueden encargarse de tu proyecto desde una \u00f3ptica m\u00e1s completa<\/strong>, aunque esto no quiere decir que un freelance no tenga la opci\u00f3n de contar con colaboradores que le ayuden all\u00ed donde \u00e9l no llega.<\/p>\n<p>Aunque hasta hace poco exist\u00eda la idea de que el freelance pod\u00eda ser menos profesional que la agencia, cada vez se estrechan m\u00e1s las diferencias entre ambos as\u00ed que nuestro consejo es que busques y compares, eligiendo a quien te haga la oferta que mejor encaje con tus necesidades sin pararte a pensar si es un freelance o una agencia.<\/p>\n<h2>Criterios a observar en el momento de solicitar una consultor\u00eda SEO<\/h2>\n<p>A la hora de contratar a alguien para que se encargue de tu web tienes que tener en cuenta que <strong>una consultor\u00eda SEO debe ser realizada por un SEO experto.\u00a0<\/strong>Este tendr\u00e1 una amplia gama de conocimientos adquiridos a trav\u00e9s de la experiencia y sabr\u00e1 gestionar el posicionamiento de tu web por completo.<\/p>\n<p><strong>Un consultor experto en SEO debe\u00a0<\/strong>ofrecerte una visi\u00f3n realista del proyecto, es decir, tendr\u00e1 que analizar tu web y explicarte de forma pormenorizada qu\u00e9 es lo que ocurre y c\u00f3mo solucionarlo paso a paso. Debes huir de aquellos que te prometen colocarte en el n\u00famero 1 de las SERPs a cambio de una determinada cantidad de dinero sin explicarte una m\u00ednima estrategia a seguir.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-2818\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo.jpg\" alt=\"consultor-seo\" width=\"1000\" height=\"410\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-300x123.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-768x315.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>Normalmente, quienes act\u00faan as\u00ed se limitan a hacer publicidad de pago para que aparezcas en los primeros puestos pero eso no te va a garantizar conseguir clientes ni m\u00e1s conversiones a largo plazo, que es lo que de verdad te interesa.<\/p>\n<p>Adem\u00e1s, es recomendable que, <strong>una vez tengas uno o m\u00e1s candidatos con los que mejorar tu posicionamiento web, investigues acerca de su trayectoria,<\/strong> preguntes por ellos e incluso los busques en redes sociales en busca de opiniones de otros clientes.<\/p>\n<p>Por \u00faltimo, un aspecto muy importante a valorar es la comunicaci\u00f3n que establezca contigo, es decir, que <strong>te explique todo con claridad y responda las dudas que puedas tener sin titubeos<\/strong>. Esto se tiene que traducir tambi\u00e9n a la hora de establecer los t\u00e9rminos del acuerdo al que llegu\u00e9is tanto en lo que se refiere a los servicios como al pago: tarifas, forma de pago, etc\u00e9tera.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-2819\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-freelance.jpg\" alt=\"consultor-seo-freelance\" width=\"1000\" height=\"436\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-freelance.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-freelance-300x131.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultor-seo-freelance-768x335.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h2>\u00bfQu\u00e9 caracteriza a un consultor SEO freelance?<\/h2>\n<p>Un consultor SEO freelance, lejos de contar con una larga lista de titulaci\u00f3n reglada y estudios, debe tener experiencia y sobre todo, <strong>una gran capacidad de organizaci\u00f3n, gesti\u00f3n y paciencia,<\/strong> adem\u00e1s de haber desarrollado ciertas capacidades necesarias para llevar a cabo este tipo de trabajo.<\/p>\n<p>Esto no quiere decir que no le puedas pedir seriedad y coherencia a la hora de establecer los t\u00e9rminos del contrato ya que un consultor SEO freelance debe ofrecerte las mismas garant\u00edas y seguridad que una agencia que se dedique a lo mismo.<\/p>\n<p>Los talentos que debe manejar idealmente un consultor SEO son los siguientes:<\/p>\n<ul>\n<li><strong>Capacidad de elaborar estrategias<\/strong>. Podr\u00e1 gestionar proyectos f\u00e1cilmente, analizar resultados y manejar documentaci\u00f3n al respecto.<\/li>\n<li><strong>Conocimientos t\u00e9cnicos<\/strong>. Maneja HTML, CSS y PHP adem\u00e1s de encargarse del backend como el archivo .htaccess o robots.txt junto con etiquetas, c\u00f3digos de error, dise\u00f1o responsive y, en fin, todo lo relativo a los detalles m\u00e1s t\u00e9cnicos.<\/li>\n<li><strong>Facilidad de an\u00e1lisis<\/strong>. Interpreta gr\u00e1ficos de todo tipo y sabe monitorizar, analizar y medir a la perfecci\u00f3n todos los datos relacionados con el posicionamiento web.<\/li>\n<li><strong>Creaci\u00f3n de contenidos<\/strong>. Se encarga de marcar una tendencia al SEO en los contenidos de la web tanto mejorando los que ya hay como creando nuevos. Adem\u00e1s, realiza el keyword research para posicionar las palabras clave de inter\u00e9s.<\/li>\n<\/ul>\n<p>Usa esta gu\u00eda para aprender <a href=\"https:\/\/dinorank.com\/blog\/como-hacer-keyword-research\/\" target=\"_blank\" rel=\"noopener\">c\u00f3mo hacer un Keyword Research<\/a><\/p>\n<p>Lo m\u00e1s habitual es que un consultor SEO destaque en uno o dos aspectos por encima de los otros, lo cual no quiere decir que no pueda realizar un gran trabajo. Sin embargo, lo ideal es encontrar un experto SEO profesional cuya trayectoria y experiencia le hayan hecho manejarse de forma \u00f3ptima en todos estos aspectos.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2820\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultoria-seo.jpg\" alt=\"consultoria-seo\" width=\"1000\" height=\"360\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultoria-seo.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultoria-seo-300x108.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/consultoria-seo-768x276.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p><span data-sheets-root=\"1\"><div id=\"brxe-vappve\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-nwuakt\" class=\"brxe-text-basic h2\">\u00bfTe dedicas al SEO o est\u00e1s pensando en ofrecerlo como servicio?\n<\/div><div id=\"brxe-aphiih\" class=\"brxe-text-basic\"><strong>Accede gratis a 2 clases del M\u00e1ster SEO de DinoRANK<\/strong> y lleva tu nivel un poquito m\u00e1s all\u00e1:<\/div><div id=\"brxe-ovsanc\" data-script-id=\"ovsanc\" 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_307_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_307_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_307_._form-top{top:0}#_form_307_._form-bottom{bottom:0}#_form_307_._form-left{left:0}#_form_307_._form-right{right:0}#_form_307_ input[type=\"text\"],#_form_307_ input[type=\"tel\"],#_form_307_ input[type=\"date\"],#_form_307_ 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_307_ textarea{resize:none}#_form_307_ ._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_307_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_307_ ._submit.processing{position:relative}#_form_307_ ._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_307_ ._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_307_ ._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_307_ ._close-icon:before{position:relative}#_form_307_ ._form-body{margin-bottom:30px}#_form_307_ ._form-image-left{width:150px;float:left}#_form_307_ ._form-content-right{margin-left:164px}#_form_307_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_307_ ._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_307_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_307_ ._form-label,#_form_307_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_307_._dark ._form-branding{color:#333}#_form_307_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_307_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_307_ ._form_element *{font-size:14px}#_form_307_ ._form_element._clear{clear:both;width:100%;float:none}#_form_307_ ._form_element._clear:after{clear:left}#_form_307_ ._form_element input[type=\"text\"],#_form_307_ ._form_element input[type=\"date\"],#_form_307_ ._form_element select,#_form_307_ ._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_307_ ._field-wrapper{position:relative}#_form_307_ ._inline-style{float:left}#_form_307_ ._inline-style input[type=\"text\"]{width:150px}#_form_307_ ._inline-style:not(._clear){margin-right:20px}#_form_307_ ._form_element img._form-image{max-width:100%}#_form_307_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_307_ ._clear-element{clear:left}#_form_307_ ._full_width{width:100%}#_form_307_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_307_ input[type=\"text\"]._has_error,#_form_307_ textarea._has_error{border:#F37C7B 1px solid}#_form_307_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_307_ ._show_be_error{float:left}#_form_307_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_307_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_307_ ._error._below{padding-top:8px;top:100%;right:0}#_form_307_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_307_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_307_ ._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_307_ ._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_307_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_307_ ._button-wrapper ._error-inner._form_error{position:static}#_form_307_ ._error-inner._no_arrow{margin-bottom:10px}#_form_307_ ._error-arrow{position:absolute;width:0;height:0}#_form_307_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_307_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_307_ select.datetime_time{width:29%;display:inline;height:32px}#_form_307_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_307_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_307_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_307_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_307_ ._form-content{margin:0;width:100%}#_form_307_ ._form-inner{display:block;min-width:100%}#_form_307_ ._form-title,#_form_307_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_307_ ._form-title{font-size:1.2em}#_form_307_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_307_ ._form-element,#_form_307_ ._inline-style,#_form_307_ input[type=\"text\"],#_form_307_ label,#_form_307_ p,#_form_307_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_307_ ._row._checkbox-radio label{display:inline}#_form_307_ ._row,#_form_307_ p,#_form_307_ label{margin-bottom:0.7em;width:100%}#_form_307_ ._row input[type=\"checkbox\"],#_form_307_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_307_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_307_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_307_ ._form-image{max-width:100%;height:auto !important}#_form_307_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_307_ input[type=\"radio\"],#_form_307_ 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_307_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_307_ ._inline-style{margin:20px 0 0 !important}#_form_307_ ._inline-style input[type=\"text\"]{width:100%}}#_form_307_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_307_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_307_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_307_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_307_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_307_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_307_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_307_ .field-required{color:#FF0000}#_form_307_{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_307_ ._show_be_error{min-width:100%}#_form_307_._inline-form,#_form_307_._inline-form ._form-content{font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_307_._inline-form ._row span,#_form_307_._inline-form ._row label{font-family:IBM Plex Sans;font-size:14px;font-weight:400;line-height:1.6em;color:black !important}#_form_307__inlineform input[type=\"text\"],#_form_307__inlineform input[type=\"date\"],#_form_307__inlineform input[type=\"tel\"],#_form_307__inlineform select,#_form_307__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_307_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_307_._inline-form .sms_consent_message,#_form_307_._inline-form ._form-thank-you{font-family:IBM Plex Sans;font-size:14px;font-weight:400;color:black !important}#_form_307_._inline-form ._form-label,#_form_307_._inline-form ._form-emailidentifier,#_form_307_._inline-form ._form-checkbox-option-label{font-family:IBM Plex Sans;font-size:14px;font-weight:700;line-height:1.6em;color:black !important}#_form_307_._inline-form ._submit{margin-top:12px;font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_307_._inline-form ._html-code h1,#_form_307_._inline-form ._html-code h2,#_form_307_._inline-form ._html-code h3,#_form_307_._inline-form ._html-code h4,#_form_307_._inline-form ._html-code h5,#_form_307_._inline-form ._html-code h6,#_form_307_._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_307_._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_307_:before,#_form_307_:after{content:\" \";display:table}#_form_307_:after{clear:both}#_form_307_._inline-style{width:auto;display:inline-block}#_form_307_._inline-style input[type=\"text\"],#_form_307_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_307_._inline-style button._inline-style{position:relative;top:27px}#_form_307_._inline-style p{margin:0}#_form_307_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_307_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_307_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_307_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_307_ .iti{width:100%}#_form_307_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_307_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_307_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_307_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_307_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_307_ .iti__country-list--dropup{margin-bottom:4px}#_form_307_ .phone-error-hidden{display:none}#_form_307_ .phone-error{color:#E40E49}#_form_307_ .phone-input-error{border:1px solid #E40E49 !important}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_307_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_307_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:20px !important;font-weight:600 !important}#_form_307_ ._submit:hover{background-color:#04937E !important}#_form_307_ input#email{padding:12px;background-color:#ffffff}#_form_307_ ._row{margin-top:-5px;margin-bottom:-10px}#_form_307_._form{margin-top:-5px}#_form_307_ ._error._below{position:relative !important}#_form_307_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_307_ ._form_element{margin:0 0 0px}#_form_307_ ._row{margin-top:0px;margin-bottom:0px}#_form_307_ ._submit{margin-top:-10px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_307_\" class=\"_form _form_307 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"307\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"307\" \/>\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=\"2910697a81fdfefbca4abdcfbec4cfc9\" \/>\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_307_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_307_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_307_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(\"307\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"307\", \"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_307_');\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_307_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_307_')).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(\"307\", \"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_307 ._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_307 label[for=\"ls\"],\n._form_307 ._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_307_ #email::placeholder {\n  color: #002132 !important;\n}\n\n\/* Altura del campo de email reducida *\/\n#_form_307_ #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<h2>\u00bfQu\u00e9 tareas deben realizarse en una consultor\u00eda SEO para mejorar el posicionamiento de una web en Google?<\/h2>\n<p><strong>El experto SEO analizar\u00e1 la anal\u00edtica web con el fin de optimizar y mejorar el posicionamiento en buscadores<\/strong>. Para ello, llevar\u00e1 a cabo las siguientes acciones:<\/p>\n<ul>\n<li><strong>Auditor\u00eda interna<\/strong>. Es el punto b\u00e1sico para comenzar a mejorar el posicionamiento de una web. El consultor SEO debe ser capaz de analizar una p\u00e1gina tanto de forma externa como de forma interna y todo esto implica tener conocimientos de HTML y an\u00e1lisis de palabras clave entre otros.<\/li>\n<li><a href=\"https:\/\/dinorank.com\/blog\/diccionario-seo\/que-es-linkbuilding\/\"><strong>Linkbuilding<\/strong><\/a>. El consultor SEO debe saber analizar los enlaces que tiene una p\u00e1gina web, tanto internos como entrantes y salientes para considerar una estrategia de linkbuilding que beneficie al posicionamiento de la web.<\/li>\n<li><strong>Estudio de la competencia<\/strong>. Ver cu\u00e1les son las estrategias que est\u00e1n siguiendo los competidores forma parte del trabajo que debe hacer un consultor SEO para buscar nuevas formas de mejorar el posicionamiento.<\/li>\n<li><strong>Campa\u00f1as de publicidad<\/strong>. No es imprescindible pero en el caso de que se considere necesario, el consultor SEO tiene que saber crear campa\u00f1as SEM que tengan \u00e9xito.<\/li>\n<li><strong>Monitorizaci\u00f3n<\/strong>. Por supuesto nada de todo esto es realmente \u00fatil si el consultor SEO no hace un seguimiento de los resultados para comprobar si se tiene que seguir la misma estrategia o hay que hacer cambios.<\/li>\n<\/ul>\n<p>Para llevar a cabo todas estas acciones, <a href=\"https:\/\/dinorank.com\/blog\/que-herramientas-usa-un-consultor-seo\/\"><strong>el consultor SEO necesitar\u00e1 herramientas especializadas<\/strong><\/a> que debe saber manejar con cierta pericia para poder obtener los resultados que busca. No hay una suite SEO m\u00e1s completa mejor o peor sino que cada consultor tiende a utilizar aquellas cuyos resultados m\u00e1s le convencen. Algunas de las m\u00e1s habituales son <a href=\"https:\/\/dinorank.com\/blog\/tutorial-semrush\/\">SEMRush<\/a> o Ahrefs adem\u00e1s de, por supuesto, Google Analytics y Google Search Console.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2821\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/precio-consultoria-seo.jpg\" alt=\"precio-consultoria-seo\" width=\"1000\" height=\"419\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/precio-consultoria-seo.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/precio-consultoria-seo-300x126.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/11\/precio-consultoria-seo-768x322.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h2>\u00bfCu\u00e1l es el precio aproximado de una consultor\u00eda SEO?<\/h2>\n<p>En realidad <strong>no existen precios estipulados acerca de la consultor\u00eda SEO<\/strong> ya que depende de muchos factores como, por ejemplo, los servicios que se vayan a realizar en cuanto al posicionamiento. No vas a pagar lo mismo si solo quieres una auditor\u00eda que si prefieres que sea el consultor SEO profesional el que se encargue tambi\u00e9n de todas las acciones a ejecutar.<\/p>\n<p>Por lo general, <strong>la mayor\u00eda de los consultores SEO, ya sean freelance o agencia, suelen computar en horas de trabajo la tarifa total de sus servicios<\/strong>. Adem\u00e1s incluyen otros factores como el tipo de proyecto ya que no es lo mismo trabajar en una p\u00e1gina web que tiene pocas URL a una que cuente con centenares de ellas, algo de lo que debes ser consciente a la hora de pedir presupuestos.<\/p>\n<p><strong>Una consultor\u00eda SEO puede costar desde 100\u20ac en su faceta m\u00e1s simple hasta los 800-1000\u20ac como media en los casos m\u00e1s complejos<\/strong>. Recuerda que tampoco es igual pedir una auditor\u00eda que contratar a un freelance o agencia de forma permanente, o cuanto menos que est\u00e9 trabajando en tu proyecto durante unos meses.<\/p>\n<blockquote><p>Si quieres saber lo que cobra un SEO en Espa\u00f1a seg\u00fan el tipo de servicio, <a href=\"https:\/\/dinorank.com\/blog\/ganar-dinero-escribiendo-articulos\/\">aqu\u00ed encontrar\u00e1s una tabla de precios<\/a>.<\/p><\/blockquote>\n<p>Es dif\u00edcil definir lo que es caro o barato ya que t\u00fa mismo deber\u00e1s evaluar si compensa la tarifa que te ofrecen con los servicios que te van a prestar y los beneficios que vas a obtener. Es importante no menospreciar el trabajo que realiza un SEO profesional, el cual te hemos detallado m\u00e1s arriba, pero tampoco caer en el pensamiento de que es algo que puede hacer cualquiera.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p><strong>Los servicios de un consultor SEO profesional, ya sea freelance o agencia, te ayudar\u00e1n a mejorar el posicionamiento de tu web y a conseguir m\u00e1s conversiones respecto a tus productos o servicios<\/strong> a trav\u00e9s de estrategias bien definidas que despu\u00e9s habr\u00e1 que monitorizar para evaluar los resultados.<\/p>\n<p>Por ello, tienes que ser cuidadoso a la hora de seleccionar en manos de qui\u00e9n vas a poner tu proyecto y tomar esta decisi\u00f3n en base a experiencia y trayectoria, dejando las tarifas en un segundo lugar. Como se suele decir, lo barato sale caro, pero tampoco caigas en la trampa de pagar demasiado dinero a cambio de promesas de \u00e9xito inmediato. Usa la l\u00f3gica y podr\u00e1s beneficiarte al contratar a tu consultor SEO.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El consultor SEO ser\u00e1 capaz de desarrollar una estrategia de posicionamiento web efectiva atendiendo a las caracter\u00edsticas de tu dominio y tras haber realizado los an\u00e1lisis pertinentes. Es importante por lo tanto valorar su trabajo y no caer en el pensamiento de que lo que hace es &#8220;f\u00e1cil&#8221; o que no conlleva apenas una preparaci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2789,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-2811","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aprender-seo"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/2811","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=2811"}],"version-history":[{"count":5,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/2811\/revisions"}],"predecessor-version":[{"id":32680,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/2811\/revisions\/32680"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/2789"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=2811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=2811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=2811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}