{"id":2155,"date":"2020-09-15T18:50:11","date_gmt":"2020-09-15T16:50:11","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=2155"},"modified":"2026-03-06T11:53:46","modified_gmt":"2026-03-06T10:53:46","slug":"que-es-un-crawler-o-rastreador-de-google","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/crawler-de-google\/","title":{"rendered":"Qu\u00e9 es un crawler o rastreador de Google"},"content":{"rendered":"<p>En este post os vamos a hablar de algo muy importante para el SEO de tu p\u00e1gina: los crawler o rastreadores, es decir, los encargados de entrar en tu sitio web y ver qu\u00e9 es lo que tienes.<\/p>\n<p>Un crawler es un programa que analiza una p\u00e1gina web y por ello, todos los motores de b\u00fasqueda de Internet tienen rastreadores con mucha potencia que se dedican a recorrer sitios web para crear bases de datos con la informaci\u00f3n que recopilan.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-2168\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/\u00bfQu\u00e9-es-un-crawler-o-rastreador-Destripamos-Googlebot.png\" alt=\"crawler o rastreador que es para google\" width=\"1100\" height=\"600\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/\u00bfQu\u00e9-es-un-crawler-o-rastreador-Destripamos-Googlebot.png 1100w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/\u00bfQu\u00e9-es-un-crawler-o-rastreador-Destripamos-Googlebot-300x164.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/\u00bfQu\u00e9-es-un-crawler-o-rastreador-Destripamos-Googlebot-1024x559.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/\u00bfQu\u00e9-es-un-crawler-o-rastreador-Destripamos-Googlebot-768x419.png 768w\" sizes=\"(max-width: 1100px) 100vw, 1100px\" \/><\/p>\n<blockquote><p><b>Googlebot es el crawler de Google<\/b><\/p><\/blockquote>\n<p>Esta informaci\u00f3n recogida por el crawler es la que servir\u00e1 despu\u00e9s para indexar la p\u00e1gina web en cuesti\u00f3n y por ello el rastreador o ara\u00f1a web debe contar con unas normas claras para crawlear o rastrear un dominio ya que de ellas depende la informaci\u00f3n que obtenga.<\/p>\n<h3>\u00bfQuieres trabajar el SEO de tu web o ecommerce con el crawler de DinoRANK? \u00a1Analizar\u00e1s tu sitio web como lo hace Google! <span style=\"color: #3366ff;\">Escucha nuestro podcast:<\/span><\/h3>\n<p><iframe id=\"audio_57136197\" style=\"border: 1px solid #EEE; box-sizing: border-box; width: 100%;\" src=\"https:\/\/www.ivoox.com\/player_ej_57136197_4_1.html?c1=ff6600\" height=\"200\" frameborder=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>En este art\u00edculo te vamos a contar todo lo que necesitas acerca de los crawler y c\u00f3mo tienes que actuar ante ellos en vistas al posicionamiento de tu web.<\/p>\n<h2>\u00bfPara qu\u00e9 sirve un crawler?<\/h2>\n<p>Aunque por lo general consideramos que el crawler o ara\u00f1a web pasa por un sitio para obtener su informaci\u00f3n, en realidad estos rastreadores consiguen otros datos que tambi\u00e9n son muy interesantes para los buscadores y que, por lo tanto, afectan al posicionamiento.<\/p>\n<p>Los principales usos del crawler son:<\/p>\n<ul>\n<li>Crear \u00edndices de b\u00fasqueda a partir de la informaci\u00f3n y los enlaces de una web<\/li>\n<li>Encontrar links rotos, ya que su propio rastreo se lleva a cabo a trav\u00e9s de los enlaces internos<\/li>\n<li>Crear cat\u00e1logos para los buscadores en el caso de los e-commerce<\/li>\n<\/ul>\n<p>Toda esta informaci\u00f3n conseguida de las distintas formas de rastreo de una p\u00e1gina web es la que utilizan los buscadores para crear los resultados de b\u00fasqueda que obtiene un usuario al introducir los datos sobre los que quiere saber algo.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-2158\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/que-es-crawler.png\" alt=\"que-es-crawler\" width=\"1099\" height=\"566\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/que-es-crawler.png 1099w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/que-es-crawler-300x155.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/que-es-crawler-1024x527.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/que-es-crawler-768x396.png 768w\" sizes=\"(max-width: 1099px) 100vw, 1099px\" \/><\/p>\n<h2>\u00bfQu\u00e9 tipo de crawlers existen?<\/h2>\n<p>No todos los diferentes rastreadores o crawler son iguales ni funcionan de la misma manera ya que todo depende, como dec\u00edamos antes, de la informaci\u00f3n que tengan que recoger. Es decir, hay varias <b>formas de rastreo de una p\u00e1gina web<\/b>. Por ejemplo, los Focused Crawler buscan datos espec\u00edficos que se le han indicado en las normas a seguir.<\/p>\n<p>De hecho, por lo general los crawler se pueden dividir en \u201cbuenos\u201d y \u201cmalos\u201d, es decir, aquellos que se limitan a recoger los datos para entreg\u00e1rselos al buscador del que dependen, y los que solo quieren informaci\u00f3n para copiarla.<\/p>\n<p>Tambi\u00e9n existe otra posible diferenciaci\u00f3n basada en el origen de los crawler. Algunos pertenecen a buscadores como Google o Bing y otros son creados por herramientas SEO para obtener la informaci\u00f3n que necesitan para funcionar, como <a href=\"https:\/\/dinorank.com\/blog\/tutorial-ahrefs\/\">Ahrefs<\/a> o <a href=\"https:\/\/dinorank.com\/blog\/tutorial-screaming-frog\/\">Screaming Frog<\/a>.<\/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<h3>Crawler &#8211; Rastreador &#8211; Scraper \u00bfSon diferentes?<\/h3>\n<p>Si has o\u00eddo hablar antes de los crawler o las ara\u00f1as web seguramente hayas visto tambi\u00e9n otros t\u00e9rminos como rastreador o scraper. Tienes que saber que crawler y rastreador son sin\u00f3nimos pero no as\u00ed scraper, ya que su funci\u00f3n var\u00eda ligeramente.<\/p>\n<p>Es cierto que, a grandes rasgos, un scraper tambi\u00e9n es un rastreador en el sentido de que se dedica a obtener datos de una p\u00e1gina web. Sin embargo, la diferencia radica en que la intenci\u00f3n del scrapping es <b>crawlear o rastrear un dominio<\/b> para conseguir informaci\u00f3n de un sitio para utilizarla en otro, siendo as\u00ed una t\u00e9cnica muy usada en el Black Hat SEO para copiar p\u00e1ginas web.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-2159\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/bloquear-crawler.png\" alt=\"bloquear-crawler\" width=\"1100\" height=\"773\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/bloquear-crawler.png 1100w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/bloquear-crawler-300x211.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/bloquear-crawler-1024x720.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/09\/bloquear-crawler-768x540.png 768w\" sizes=\"(max-width: 1100px) 100vw, 1100px\" \/><\/p>\n<h2>C\u00f3mo bloquear los crawlers o ara\u00f1as web en tu dominio<\/h2>\n<p><b>Por lo general, un crawler rastrea todas las p\u00e1ginas de un sitio web <\/b>pero existe la posibilidad de que no te interese que registre determinadas p\u00e1ginas o incluso el sitio por completo. Adem\u00e1s, si tienes conocimiento acerca de alg\u00fan crawler \u201cmalo\u201d o scraper de los que hemos hablado antes, ser\u00eda conveniente bloquearlo tambi\u00e9n.<\/p>\n<p>Por ello se pueden <b>bloquear crawlers desde el archivo robots.txt<\/b> de una forma sencilla dando a los diferentes rastreadores la orden de que no rastreen el contenido de tu sitio web. Eso s\u00ed, tienes que saber que esto no impide que la web sea indexada por los buscadores.<\/p>\n<p>La l\u00ednea de c\u00f3digo que debes a\u00f1adir al archivo robots.txt para bloquear el acceso a los crawler maliciosos o scrapers es la siguiente:<\/p>\n<p><em>\u201cUser-agent: nombre del crawler<\/em><\/p>\n<p><em>Disallow: \/\u201d<\/em><\/p>\n<p>Puedes a\u00f1adir todos los crawler o scraper que desees a\u00f1adiendo el mismo c\u00f3digo para cada uno de ellos.<\/p>\n<h2>Resumiendo<\/h2>\n<p>Los crawler, rastreadores o ara\u00f1as web son indispensables para el posicionamiento de tu web ya que son quienes les van a decir a los buscadores qu\u00e9 es lo que hay en tu web recorri\u00e9ndola enlace por enlace. Por ello, debes procurar facilitarles el acceso de forma que obtengan el mayor n\u00famero de datos posibles para mejorar tu ranking en los resultados de b\u00fasqueda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este post os vamos a hablar de algo muy importante para el SEO de tu p\u00e1gina: los crawler o rastreadores, es decir, los encargados de entrar en tu sitio web y ver qu\u00e9 es lo que tienes. Un crawler es un programa que analiza una p\u00e1gina web y por ello, todos los motores de [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":2168,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-2155","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\/2155","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=2155"}],"version-history":[{"count":2,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/2155\/revisions"}],"predecessor-version":[{"id":32701,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/2155\/revisions\/32701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/2168"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=2155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=2155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=2155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}