{"id":29713,"date":"2025-06-18T10:12:01","date_gmt":"2025-06-18T08:12:01","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=29713"},"modified":"2026-04-16T11:13:30","modified_gmt":"2026-04-16T09:13:30","slug":"generative-engine-optimization-que-es-geo-en-seo-y-como-puedes-aplicarlo-a-tu-sitio-web","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/que-es-geo-en-seo-y-como-aplicar-a-tu-sitio-web\/","title":{"rendered":"Generative Engine Optimization: qu\u00e9 es GEO en SEO y c\u00f3mo puedes aplicarlo a tu sitio web"},"content":{"rendered":"<p>Dicen que con la llegada de la inteligencia artificial muchas profesiones van a dejar de existir.<\/p>\n<p>Si quieres saber mi opini\u00f3n, estoy de acuerdo.<\/p>\n<p>Como tambi\u00e9n creo que el SEO no va a ser una de ellas.<\/p>\n<p>Mientras la gente siga buscando informaci\u00f3n en Internet, <strong>el SEO seguir\u00e1 teniendo sentido<\/strong>.<\/p>\n<p>\u00bfY qu\u00e9 son las plataformas de IA sino una manera de consultar informaci\u00f3n?<\/p>\n<p>Se trata de un medio diferente, con unas caracter\u00edsticas particulares y con unas nuevas reglas que deberemos controlar si queremos seguir dando visibilidad a nuestros proyectos online.<\/p>\n<p>Hoy vamos a hablar de <strong>SEO para IA<\/strong>, un nuevo concepto conocido como GEO que est\u00e1 tomando una enorme fuerza, especialmente desde la incorporaci\u00f3n en Google de las <a href=\"https:\/\/dinorank.com\/blog\/como-posicionar-ai-overviews\/\">AI Overviews<\/a>.<\/p>\n<p>Veremos en qu\u00e9 consiste esta estrategia, <strong>por qu\u00e9 debes empezar a trabajarla<\/strong> cuanto antes y c\u00f3mo puedes llevarla a la pr\u00e1ctica.<\/p>\n<div id=\"brxe-d62272\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-1141e3\" class=\"brxe-text-basic h3\">\u00bfOtra newsletter de SEO? Quiz\u00e1s\u2026<\/div><div id=\"brxe-071f14\" class=\"brxe-text-basic\">Esto es lo que podemos ofrecerte:\n<\/div><ul id=\"brxe-eosgrh\" class=\"brxe-list\"><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Un email semanal con las novedades importantes del sector. <\/span><span class=\"separator\"><\/span><\/div><\/li><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Aprende SEO que podr\u00e1s aplicar en tu web o en las de tus clientes.<\/span><span class=\"separator\"><\/span><\/div><\/li><li ><div class=\"content\"><span class=\"icon\"><i class=\"ion-ios-checkmark-circle\"><\/i><\/span><span class=\"title\">Accede a webinars y a los eventos SEO totalmente gratuitos que organizamos.<\/span><span class=\"separator\"><\/span><\/div><\/li><\/ul><div id=\"brxe-ajplje\" class=\"brxe-text-basic\"><strong>Sin ruido, sin humo. Gratis.<\/strong> Solo necesito tu email y un poquito de tu atenci\u00f3n, nosotros hacemos el resto.\n\nT\u00fa decides.\n<\/div><div id=\"brxe-c60d60\" data-script-id=\"c60d60\" class=\"brxe-code incontent-form-html\"><style>@import url(https:\/\/fonts.bunny.net\/css?family=ibm-plex-sans:400,700);<\/style>\n<style>\n#_form_301_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_301_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_301_._form-top{top:0}#_form_301_._form-bottom{bottom:0}#_form_301_._form-left{left:0}#_form_301_._form-right{right:0}#_form_301_ input[type=\"text\"],#_form_301_ input[type=\"tel\"],#_form_301_ input[type=\"date\"],#_form_301_ textarea{padding:6px;height:auto;border:#979797 1px solid;border-radius:4px;color:#000 !important;font-size:14px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#_form_301_ textarea{resize:none}#_form_301_ ._submit{-webkit-appearance:none;cursor:pointer;font-family:arial, sans-serif;font-size:14px;text-align:center;background:#00C4A7 !important;border:0 !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important;border-radius:5px !important;color:#FFFFFF !important;padding:13px !important}#_form_301_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_301_ ._submit.processing{position:relative}#_form_301_ ._submit.processing::before{content:\"\";width:1em;height:1em;position:absolute;z-index:1;top:50%;left:50%;border:double 3px transparent;border-radius:50%;background-image:linear-gradient(#00C4A7, #00C4A7), conic-gradient(#00C4A7, #FFFFFF);background-origin:border-box;background-clip:content-box, border-box;animation:1200ms ease 0s infinite normal none running _spin}#_form_301_ ._submit.processing::after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:#00C4A7 !important;border:0 !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important;border-radius:5px !important;color:#FFFFFF !important;padding:13px !important}@keyframes _spin{0%{transform:translate(-50%, -50%) rotate(90deg)}100%{transform:translate(-50%, -50%) rotate(450deg)}}#_form_301_ ._close-icon{cursor:pointer;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/esfkyjh1u_forms-close-dark.png\");background-repeat:no-repeat;background-size:14.2px 14.2px;position:absolute;display:block;top:11px;right:9px;overflow:hidden;width:16.2px;height:16.2px}#_form_301_ ._close-icon:before{position:relative}#_form_301_ ._form-body{margin-bottom:30px}#_form_301_ ._form-image-left{width:150px;float:left}#_form_301_ ._form-content-right{margin-left:164px}#_form_301_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_301_ ._form-branding ._logo{display:block;width:130px;height:14px;margin-top:6px;background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/hh9ujqgv5_aclogo_li.png\");background-size:130px auto;background-repeat:no-repeat}#_form_301_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_301_ ._form-label,#_form_301_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_301_._dark ._form-branding{color:#333}#_form_301_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_301_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_301_ ._form_element *{font-size:14px}#_form_301_ ._form_element._clear{clear:both;width:100%;float:none}#_form_301_ ._form_element._clear:after{clear:left}#_form_301_ ._form_element input[type=\"text\"],#_form_301_ ._form_element input[type=\"date\"],#_form_301_ ._form_element select,#_form_301_ ._form_element textarea:not(.g-recaptcha-response){display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:inherit}#_form_301_ ._field-wrapper{position:relative}#_form_301_ ._inline-style{float:left}#_form_301_ ._inline-style input[type=\"text\"]{width:150px}#_form_301_ ._inline-style:not(._clear){margin-right:20px}#_form_301_ ._form_element img._form-image{max-width:100%}#_form_301_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_301_ ._clear-element{clear:left}#_form_301_ ._full_width{width:100%}#_form_301_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_301_ input[type=\"text\"]._has_error,#_form_301_ textarea._has_error{border:#F37C7B 1px solid}#_form_301_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_301_ ._show_be_error{float:left}#_form_301_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_301_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_301_ ._error._below{padding-top:8px;top:100%;right:0}#_form_301_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_301_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_301_ ._error-inner{padding:12px 12px 12px 36px;background-color:#FFDDDD;background-image:url(\"data:image\/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 3V9H7V3H9ZM9 13V11H7V13H9Z' fill='%23CA0000'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:12px center;font-size:14px;font-family:arial, sans-serif;font-weight:600;line-height:16px;color:#000;text-align:center;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;box-shadow:0 1px 4px rgba(31, 33, 41, 0.298295)}@media only screen and (max-width:319px){#_form_301_ ._error-inner{padding:7px 7px 7px 25px;font-size:12px;line-height:12px;background-position:4px center;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}#_form_301_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_301_ ._button-wrapper ._error-inner._form_error{position:static}#_form_301_ ._error-inner._no_arrow{margin-bottom:10px}#_form_301_ ._error-arrow{position:absolute;width:0;height:0}#_form_301_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_301_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_301_ select.datetime_time{width:29%;display:inline;height:32px}#_form_301_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_301_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_301_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_301_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_301_ ._form-content{margin:0;width:100%}#_form_301_ ._form-inner{display:block;min-width:100%}#_form_301_ ._form-title,#_form_301_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_301_ ._form-title{font-size:1.2em}#_form_301_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_301_ ._form-element,#_form_301_ ._inline-style,#_form_301_ input[type=\"text\"],#_form_301_ label,#_form_301_ p,#_form_301_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_301_ ._row._checkbox-radio label{display:inline}#_form_301_ ._row,#_form_301_ p,#_form_301_ label{margin-bottom:0.7em;width:100%}#_form_301_ ._row input[type=\"checkbox\"],#_form_301_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_301_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_301_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_301_ ._form-image{max-width:100%;height:auto !important}#_form_301_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_301_ input[type=\"radio\"],#_form_301_ input[type=\"checkbox\"]{display:inline-block;width:1.3em;height:1.3em;font-size:1em;margin:0 0.3em 0 0;vertical-align:baseline}#_form_301_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_301_ ._inline-style{margin:20px 0 0 !important}#_form_301_ ._inline-style input[type=\"text\"]{width:100%}}#_form_301_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_301_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_301_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_301_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_301_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_301_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_301_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_301_ .field-required{color:#FF0000}#_form_301_{position:relative;text-align:left;margin:25px auto 0;padding:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(255, 255, 255, 0) !important;border-top:0px solid #737373 !important;border-right:0px solid #737373 !important;border-bottom:0px solid #737373 !important;border-left:0px solid #737373 !important;max-width:800px;-moz-border-radius:1px !important;-webkit-border-radius:1px !important;border-radius:1px !important;color:#000000}#_form_301_ ._show_be_error{min-width:100%}#_form_301_._inline-form,#_form_301_._inline-form ._form-content{font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_301_._inline-form ._row span,#_form_301_._inline-form ._row label{font-family:IBM Plex Sans;font-size:14px;font-weight:400;line-height:1.6em;color:#888 !important}#_form_301__inlineform input[type=\"text\"],#_form_301__inlineform input[type=\"date\"],#_form_301__inlineform input[type=\"tel\"],#_form_301__inlineform select,#_form_301__inlineform textarea:not(.g-recaptcha-response){font-family:IBM Plex Sans;font-size:14px;font-weight:400;font-color:#000000;line-height:1.6em}#_form_301_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_301_._inline-form .sms_consent_message,#_form_301_._inline-form ._form-thank-you{font-family:IBM Plex Sans;font-size:14px;font-weight:400;color:#888 !important}#_form_301_._inline-form ._form-label,#_form_301_._inline-form ._form-emailidentifier,#_form_301_._inline-form ._form-checkbox-option-label{font-family:IBM Plex Sans;font-size:14px;font-weight:700;line-height:1.6em;color:#888 !important}#_form_301_._inline-form ._submit{margin-top:12px;font-family:IBM Plex Sans;font-size:14px;font-weight:400}#_form_301_._inline-form ._html-code h1,#_form_301_._inline-form ._html-code h2,#_form_301_._inline-form ._html-code h3,#_form_301_._inline-form ._html-code h4,#_form_301_._inline-form ._html-code h5,#_form_301_._inline-form ._html-code h6,#_form_301_._inline-form ._form-title{font-family:IBM Plex Sans;font-size:22px;line-height:normal;font-weight:700;color:black;margin-bottom:0;display:block}#_form_301_._inline-form ._form-branding{font-family:\"IBM Plex Sans\", Helvetica, sans-serif;font-size:13px;font-weight:100;font-style:normal;text-decoration:none}#_form_301_:before,#_form_301_:after{content:\" \";display:table}#_form_301_:after{clear:both}#_form_301_._inline-style{width:auto;display:inline-block}#_form_301_._inline-style input[type=\"text\"],#_form_301_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_301_._inline-style button._inline-style{position:relative;top:27px}#_form_301_._inline-style p{margin:0}#_form_301_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_301_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_301_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_301_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_301_ .iti{width:100%}#_form_301_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_301_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_301_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_301_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_301_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_301_ .iti__country-list--dropup{margin-bottom:4px}#_form_301_ .phone-error-hidden{display:none}#_form_301_ .phone-error{color:#E40E49}#_form_301_ .phone-input-error{border:1px solid #E40E49 !important}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_301_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_301_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:18px !important;font-weight:500 !important}#_form_301_ ._submit:hover{background-color:#04937E !important}#_form_301_ input#email{padding:3px 12px;background-color:#ffffff}#_form_301_ ._row{margin-top:-5px}#_form_301_._form{margin-top:-5px}#_form_301_ ._error._below{position:relative !important}#_form_301_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_301_ ._form_element{margin:0 0 0px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_301_\" class=\"_form _form_301 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"301\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"301\" \/>\n  <input type=\"hidden\" name=\"s\" \/>\n  <input type=\"hidden\" name=\"c\" value=\"0\" \/>\n  <input type=\"hidden\" name=\"m\" value=\"0\" \/>\n  <input type=\"hidden\" name=\"act\" value=\"sub\" \/>\n  <input type=\"hidden\" name=\"v\" value=\"2\" \/>\n  <input type=\"hidden\" name=\"or\" value=\"9828494011f2fd6968fee0a8a9419a1e\" \/>\n  <div class=\"_form-content\">\n    <div class=\"_form_element _x74577619 _full_width \" >\n      <label for=\"email\" class=\"_form-label\">\n      <\/label>\n      <div class=\"_field-wrapper\">\n        <input type=\"text\" id=\"email\" name=\"email\" placeholder=\"Tu email...\" required\/>\n      <\/div>\n    <\/div>\n    <div class=\"_form_element _x87696446 _full_width \" >\n      <fieldset class=\"_form-fieldset\">\n        <div class=\"_row\">\n          <legend for=\"field[15][]\" class=\"_form-label\">\n          <\/legend>\n        <\/div>\n        <input data-autofill=\"false\" type=\"hidden\" id=\"field[15][]\" name=\"field[15][]\" value=\"~|\">\n        <div class=\"_row _checkbox-radio\">\n          <input id=\"field_15He le\u00eddo y acepto la pol\u00edtica de privacidad\" type=\"checkbox\" name=\"field[15][]\"\n          value=\"He le\u00eddo y acepto la pol\u00edtica de privacidad\"                                                                                 required                                >\n          <span>\n            <label for=\"field_15He le\u00eddo y acepto la pol\u00edtica de privacidad\">\n              He le\u00eddo y acepto la pol\u00edtica de privacidad<span class=\"field-required\">\n              *\n            <\/span>\n          <\/label>\n        <\/span>\n      <\/div>\n    <\/fieldset>\n  <\/div>\n  <div class=\"_form_element _x09639014 _full_width \" >\n    <input type=\"hidden\" name=\"field[121]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x64811239 _full_width \" >\n    <input type=\"hidden\" name=\"field[122]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x58860354 _full_width \" >\n    <input type=\"hidden\" name=\"field[123]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x23331849 _full_width \" >\n    <input type=\"hidden\" name=\"field[125]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x72046679 _full_width \" >\n    <input type=\"hidden\" name=\"field[126]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_form_element _x41336277 _full_width \" >\n    <input type=\"hidden\" name=\"field[127]\" value=\"\" \/>\n  <\/div>\n  <div class=\"_button-wrapper _full_width\">\n    <button id=\"_form_301_submit\" class=\"_submit\" type=\"submit\">\n      \u00a1Me apunto!\n    <\/button>\n  <\/div>\n  <div class=\"_clear-element\">\n  <\/div>\n<\/div>\n<div class=\"_form-thank-you\" style=\"display:none;\">\n<\/div>\n<\/form><script>\nwindow.cfields = {\"15\":\"poltica_privacidad\",\"121\":\"utm_campaign\",\"122\":\"utm_source\",\"123\":\"utm_medium\",\"125\":\"utm_content\",\"126\":\"utm_adset\",\"127\":\"utm_ad\"};\nwindow._show_thank_you = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');\n    form.querySelector('._form-content').style.display = 'none';\n    thank_you.innerHTML = message;\n    thank_you.style.display = 'block';\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_unsubscribe = function(id, message, trackcmp_url, email) {\n    var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you');\n    var branding = form.querySelector('._form-branding');\n    if (branding) {\n        branding.style.display = 'none';\n    }\n    form.querySelector('._form-content').style.display = 'none';\n    unsub.style.display = 'block';\n    form.insertAdjacentHTML('afterend', message)\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._show_error = function(id, message, html) {\n    var form = document.getElementById('_form_' + id + '_'),\n        err = document.createElement('div'),\n        button = form.querySelector('button[type=\"submit\"]'),\n        old_error = form.querySelector('._form_error');\n    if (old_error) old_error.parentNode.removeChild(old_error);\n    err.innerHTML = message;\n    err.className = '_error-inner _form_error _no_arrow';\n    var wrapper = document.createElement('div');\n    wrapper.className = '_form-inner _show_be_error';\n    wrapper.appendChild(err);\n    button.parentNode.insertBefore(wrapper, button);\n    var submitButton = form.querySelector('[id^=\"_form\"][id$=\"_submit\"]');\n    submitButton.disabled = false;\n    submitButton.classList.remove('processing');\n    if (html) {\n        var div = document.createElement('div');\n        div.className = '_error-html';\n        div.innerHTML = html;\n        err.appendChild(div);\n    }\n};\nwindow._show_pc_confirmation = function(id, header, detail, show, email) {\n    var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation');\n    if (pc_confirmation.style.display === 'none') {\n        form.querySelector('._form-content').style.display = 'none';\n        pc_confirmation.innerHTML = \"<div class='_form-title'>\" + header + \"<\/div>\" + \"<p>\" + detail + \"<\/p>\" +\n        \"<button class='_submit' id='hideButton'>Administrar preferencias<\/button>\";\n        pc_confirmation.style.display = 'block';\n        var mp = document.querySelector('input[name=\"mp\"]');\n        mp.value = '0';\n    } else {\n        form.querySelector('._form-content').style.display = 'inline';\n        pc_confirmation.style.display = 'none';\n    }\n\n    var hideButton = document.getElementById('hideButton');\n    \/\/ Add event listener to the button\n    hideButton.addEventListener('click', function() {\n        var submitButton = document.querySelector('#_form_301_submit');\n        submitButton.disabled = false;\n        submitButton.classList.remove('processing');\n        var mp = document.querySelector('input[name=\"mp\"]');\n        mp.value = '1';\n        const cacheBuster = new URL(window.location.href);\n        cacheBuster.searchParams.set('v', new Date().getTime());\n        window.location.href = cacheBuster.toString();\n    });\n\n    const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias;\n    var visitorObject = window[vgoAlias];\n    if (email && typeof visitorObject !== 'undefined') {\n        visitorObject('setEmail', email);\n        visitorObject('update');\n    } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {\n        \/\/ Site tracking URL to use after inline form submission.\n        _load_script(trackcmp_url);\n    }\n    if (typeof window._form_callback !== 'undefined') window._form_callback(id);\n};\nwindow._load_script = function(url, callback, isSubmit) {\n    var head = document.querySelector('head'), script = document.createElement('script'), r = false;\n    var submitButton = document.querySelector('#_form_301_submit');\n    script.charset = 'utf-8';\n    script.src = url;\n    if (callback) {\n        script.onload = script.onreadystatechange = function() {\n            if (!r && (!this.readyState || this.readyState == 'complete')) {\n                r = true;\n                callback();\n            }\n        };\n    }\n    script.onerror = function() {\n        if (isSubmit) {\n            if (script.src.length > 10000) {\n                _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Vuelve a intentarlo.\");\n            }\n            submitButton.disabled = false;\n            submitButton.classList.remove('processing');\n        }\n    }\n\n    head.appendChild(script);\n};\n(function() {\n    var iti;\n    if (window.location.search.search(\"excludeform\") !== -1) return false;\n    var getCookie = function(name) {\n        var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));\n        return match ? match[2] : null;\n    }\n    var setCookie = function(name, value) {\n        var now = new Date();\n        var time = now.getTime();\n        var expireTime = time + 1000 * 60 * 60 * 24 * 365;\n        now.setTime(expireTime);\n        document.cookie = name + '=' + value + '; expires=' + now + ';path=\/; Secure; SameSite=Lax;';\n    }\n    var addEvent = function(element, event, func) {\n        if (element.addEventListener) {\n            element.addEventListener(event, func);\n        } else {\n            var oldFunc = element['on' + event];\n            element['on' + event] = function() {\n                oldFunc.apply(this, arguments);\n                func.apply(this, arguments);\n            };\n        }\n    }\n    var _removed = false;\n        var form_to_submit = document.getElementById('_form_301_');\n    var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;\n\n    var getUrlParam = function(name) {\n        if (name.toLowerCase() !== 'email') {\n            var params = new URLSearchParams(window.location.search);\n            return params.get(name) || false;\n        }\n        \/\/ email is a special case because a plus is valid in the email address\n        var qString = window.location.search;\n        if (!qString) {\n            return false;\n        }\n        var parameters = qString.substr(1).split('&');\n        for (var i = 0; i < parameters.length; i++) {\n            var parameter = parameters[i].split('=');\n            if (parameter[0].toLowerCase() === 'email') {\n                return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]);\n            }\n        }\n        return false;\n    };\n\n    var acctDateFormat = \"%d\/%m\/%Y\";\n    var getNormalizedDate = function(date, acctFormat) {\n        var decodedDate = decodeURIComponent(date);\n        if (acctFormat && acctFormat.match(\/(%d|%e).*%m\/gi) !== null) {\n            return decodedDate.replace(\/(\\d{2}).*(\\d{2}).*(\\d{4})\/g, '$3-$2-$1');\n        } else if (Date.parse(decodedDate)) {\n            var dateObj = new Date(decodedDate);\n            var year = dateObj.getFullYear();\n            var month = dateObj.getMonth() + 1;\n            var day = dateObj.getDate();\n            return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`;\n        }\n        return false;\n    };\n\n    var getNormalizedTime = function(time) {\n        var hour, minutes;\n        var decodedTime = decodeURIComponent(time);\n        var timeParts = Array.from(decodedTime.matchAll(\/(\\d{1,2}):(\\d{1,2})\\W*([AaPp][Mm])?\/gm))[0];\n        if (timeParts[3]) { \/\/ 12 hour format\n            var isPM = timeParts[3].toLowerCase() === 'pm';\n            if (isPM) {\n                hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`;\n            } else {\n                hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1];\n            }\n        } else { \/\/ 24 hour format\n            hour = timeParts[1];\n        }\n        var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour;\n        var minutes = timeParts[2];\n        return `${normalizedHour}:${minutes}`;\n    };\n\n    for (var i = 0; i < allInputs.length; i++) {\n        var regexStr = \"field\\\\[(\\\\d+)\\\\]\";\n        var results = new RegExp(regexStr).exec(allInputs[i].name);\n        if (results != undefined) {\n            allInputs[i].dataset.name = allInputs[i].name.match(\/\\[time\\]$\/)\n                ? `${window.cfields[results[1]]}_time`\n                : window.cfields[results[1]];\n        } else {\n            allInputs[i].dataset.name = allInputs[i].name;\n        }\n        var fieldVal = getUrlParam(allInputs[i].dataset.name);\n\n        if (fieldVal) {\n            if (allInputs[i].dataset.autofill === \"false\") {\n                continue;\n            }\n            if (allInputs[i].type == \"radio\" || allInputs[i].type == \"checkbox\") {\n                if (allInputs[i].value == fieldVal) {\n                    allInputs[i].checked = true;\n                }\n            } else if (allInputs[i].type == \"date\") {\n                allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat);\n            } else if (allInputs[i].type == \"time\") {\n                allInputs[i].value = getNormalizedTime(fieldVal);\n            } else {\n                allInputs[i].value = fieldVal;\n            }\n        }\n    }\n\n    var remove_tooltips = function() {\n        for (var i = 0; i < tooltips.length; i++) {\n            tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n        }\n        tooltips = [];\n    };\n    var remove_tooltip = function(elem) {\n        for (var i = 0; i < tooltips.length; i++) {\n            if (tooltips[i].elem === elem) {\n                tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);\n                tooltips.splice(i, 1);\n                return;\n            }\n        }\n    };\n    var create_tooltip = function(elem, text) {\n        var tooltip = document.createElement('div'),\n            arrow = document.createElement('div'),\n            inner = document.createElement('div'), new_tooltip = {};\n        if (elem.type != 'radio' && (elem.type != 'checkbox' || elem.name === 'sms_consent')) {\n            tooltip.className = '_error';\n            arrow.className = '_error-arrow';\n            inner.className = '_error-inner';\n            inner.innerHTML = text;\n            tooltip.appendChild(arrow);\n            tooltip.appendChild(inner);\n            elem.parentNode.appendChild(tooltip);\n        } else {\n            tooltip.className = '_error-inner _no_arrow';\n            tooltip.innerHTML = text;\n            elem.parentNode.insertBefore(tooltip, elem);\n            new_tooltip.no_arrow = true;\n        }\n        new_tooltip.tip = tooltip;\n        new_tooltip.elem = elem;\n        tooltips.push(new_tooltip);\n        return new_tooltip;\n    };\n    var resize_tooltip = function(tooltip) {\n        var rect = tooltip.elem.getBoundingClientRect();\n        var doc = document.documentElement,\n            scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));\n        if (scrollPosition < 40) {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _below';\n        } else {\n            tooltip.tip.className = tooltip.tip.className.replace(\/ ?(_above|_below) ?\/g, '') + ' _above';\n        }\n    };\n    var resize_tooltips = function() {\n        if (_removed) return;\n        for (var i = 0; i < tooltips.length; i++) {\n            if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);\n        }\n    };\n    var validate_field = function(elem, remove) {\n        var tooltip = null, value = elem.value, no_error = true;\n        remove ? remove_tooltip(elem) : false;\n        if (elem.type != 'checkbox') elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n        if (elem.getAttribute('required') !== null) {\n            if (elem.type == 'radio' || (elem.type == 'checkbox' && \/any\/.test(elem.className))) {\n                var elems = form_to_submit.elements[elem.name];\n                if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) {\n                    no_error = elem.checked;\n                }\n                else {\n                    no_error = false;\n                    for (var i = 0; i < elems.length; i++) {\n                        if (elems[i].checked) no_error = true;\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, \"Seleccione una opci\u00f3n.\");\n                }\n            } else if (elem.type =='checkbox') {\n                var elems = form_to_submit.elements[elem.name], found = false, err = [];\n                no_error = true;\n                for (var i = 0; i < elems.length; i++) {\n                    if (elems[i].getAttribute('required') === null) continue;\n                    if (!found && elems[i] !== elem) return true;\n                    found = true;\n                    elems[i].className = elems[i].className.replace(\/ ?_has_error ?\/g, '');\n                    if (!elems[i].checked) {\n                        no_error = false;\n                        elems[i].className = elems[i].className + ' _has_error';\n                        err.push(\"Es necesario verificar %s\".replace(\"%s\", elems[i].value));\n                    }\n                }\n                if (!no_error) {\n                    tooltip = create_tooltip(elem, err.join('<br\/>'));\n                }\n            } else if (elem.tagName == 'SELECT') {\n                var selected = true;\n                if (elem.multiple) {\n                    selected = false;\n                    for (var i = 0; i < elem.options.length; i++) {\n                        if (elem.options[i].selected) {\n                            selected = true;\n                            break;\n                        }\n                    }\n                } else {\n                    for (var i = 0; i < elem.options.length; i++) {\n                        if (elem.options[i].selected\n                            && (!elem.options[i].value\n                            || (elem.options[i].value.match(\/\\n\/g)))\n                        ) {\n                            selected = false;\n                        }\n                    }\n                }\n                if (!selected) {\n                    elem.className = elem.className + ' _has_error';\n                    no_error = false;\n                    tooltip = create_tooltip(elem, \"Seleccione una opci\u00f3n.\");\n                }\n            } else if (value === undefined || value === null || value === '') {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Este campo es obligatorio.\");\n            }\n        }\n        if (no_error && elem.name == 'email') {\n            if (!value.match(\/^[\\+_a-z0-9-'&=]+(\\.[\\+_a-z0-9-']+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$\/i)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Introduzca una direcci\u00f3n de correo electr\u00f3nico v\u00e1lida.\");\n            }\n        }\n        if (no_error && (elem.id == 'phone')) {\n            if (elem.value.trim() && typeof iti != 'undefined' && !iti.isValidNumber()) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Ingresa un n\u00famero de tel\u00e9fono v\u00e1lido.\");\n            }\n        }\n        if (no_error && \/date_field\/.test(elem.className)) {\n            if (!value.match(\/^\\d\\d\\d\\d-\\d\\d-\\d\\d$\/)) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Introduzca una fecha v\u00e1lida.\");\n            }\n        }\n\n        if (no_error && elem.name === 'sms_consent') {\n            const elemShouldBeChecked = (!!elem.attributes.required && !elem.checked);\n            if (elemShouldBeChecked) {\n                elem.className = elem.className + ' _has_error';\n                no_error = false;\n                tooltip = create_tooltip(elem, \"Marca esta casilla para continuar\");\n            } else {\n                elem.className = elem.className.replace(\/ ?_has_error ?\/g, '');\n            }\n        }\n        tooltip ? resize_tooltip(tooltip) : false;\n        return no_error;\n    };\n    var needs_validate = function(el) {\n        if(el.getAttribute('required') !== null){\n            return true;\n        }\n        if((el.name === 'email' || el.id === 'phone') && el.value !== \"\"){\n            return true;\n        }\n\n        return false;\n    };\n    var validate_form = function(e) {\n        var err = form_to_submit.querySelector('._form_error'), no_error = true;\n        if (!submitted) {\n            submitted = true;\n            for (var i = 0, len = allInputs.length; i < len; i++) {\n                var input = allInputs[i];\n                if (needs_validate(input)) {\n                    if (input.type == 'text' || input.type == 'number' || input.type == 'time' || input.type == 'tel') {\n                        addEvent(input, 'blur', function() {\n                            this.value = this.value.trim();\n                            validate_field(this, true);\n                        });\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'radio' || input.type == 'checkbox') {\n                        (function(el) {\n                            function getElementsArray(name){\n                                const value =  form_to_submit.elements[name];\n                                if (Array.isArray(value)){\n                                    return value;\n                                }\n                                return [value];\n                            }\n                            var radios = getElementsArray(el.name);\n                            for (var i = 0; i < radios.length; i++) {\n                                addEvent(radios[i], 'change', function() {\n                                    validate_field(el, true);\n                                });\n                            }\n                        })(input);\n                    } else if (input.tagName == 'SELECT') {\n                        addEvent(input, 'change', function() {\n                            validate_field(this, true);\n                        });\n                    } else if (input.type == 'textarea'){\n                        addEvent(input, 'input', function() {\n                            validate_field(this, true);\n                        });\n                    }\n                }\n            }\n        }\n        remove_tooltips();\n        for (var i = 0, len = allInputs.length; i < len; i++) {\n            var elem = allInputs[i];\n            if (needs_validate(elem)) {\n                if (elem.tagName.toLowerCase() !== \"select\") {\n                    elem.value = elem.value.trim();\n                }\n                validate_field(elem) ? true : no_error = false;\n            }\n        }\n        if (!no_error && e) {\n            e.preventDefault();\n        }\n        resize_tooltips();\n        return no_error;\n    };\n    addEvent(window, 'resize', resize_tooltips);\n    addEvent(window, 'scroll', resize_tooltips);\n\n    var _form_serialize = function(form){if(!form||form.nodeName!==\"FORM\"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===\"\"){continue}switch(form.elements[i].nodeName){case\"INPUT\":switch(form.elements[i].type){case\"tel\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(\" \")+encodeURIComponent(form.elements[i].value));break;case\"text\":case\"number\":case\"date\":case\"time\":case\"hidden\":case\"password\":case\"button\":case\"reset\":case\"submit\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"checkbox\":case\"radio\":if(form.elements[i].checked){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value))}break;case\"file\":break}break;case\"TEXTAREA\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"SELECT\":switch(form.elements[i].type){case\"select-one\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break;case\"select-multiple\":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case\"BUTTON\":switch(form.elements[i].type){case\"reset\":case\"submit\":case\"button\":q.push(form.elements[i].name+\"=\"+encodeURIComponent(form.elements[i].value));break}break}}return q.join(\"&\")};\n\n    const formSupportsPost = false;\n    var form_submit = function(e) {\n\n        e.preventDefault();\n        if (validate_form()) {\n            if(form_to_submit.querySelector('input[name=\"phone\"]') && typeof iti != 'undefined') {\n                form_to_submit.querySelector('input[name=\"phone\"]').value = iti.getNumber();\n            }\n            \/\/ use this trick to get the submit button & disable it using plain javascript\n            var submitButton = e.target.querySelector('#_form_301_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_301_')).replace(\/%0A\/g, '\\\\n');\n            var err = form_to_submit.querySelector('._form_error');\n            err ? err.parentNode.removeChild(err) : false;\n            async function submitForm() {\n                var formData = new FormData();\n                const searchParams = new URLSearchParams(serialized);\n                searchParams.forEach((value, key) => {\n                    if (key !== 'hideButton') {\n                        formData.append(key, value);\n                    }\n                });\n                let request = {\n                    headers: {\n                        \"Accept\": \"application\/json\"\n                    },\n                    body: formData,\n                    method: \"POST\"\n                };\n\n                let pageUrlParams = new URLSearchParams(window.location.search);\n                if (pageUrlParams.has('t')) {\n                    request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t');\n                }\n                const response = await fetch('https:\/\/deandelafuenteromero.activehosted.com\/proc.php?jsonp=true', request);\n\n                return response.json();\n            }\n            if (formSupportsPost) {\n                submitForm().then((data) => {\n                    eval(data.js);\n                }).catch(() => {\n                    _show_error(\"301\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Vuelve a intentarlo.\");\n                });\n            } else {\n                _load_script('https:\/\/deandelafuenteromero.activehosted.com\/proc.php?' + serialized + '&jsonp=true', null, true);\n            }\n        }\n        return false;\n    };\n    addEvent(form_to_submit, 'submit', form_submit);\n})();\n\n<\/script><style>\/* Texto junto al checkbox: blanco y en l\u00ednea *\/\n._form_301 ._checkbox-radio label {\n  display: inline !important;\n  margin-left: 8px !important;\n}\n\n\/* Color blanco del texto \"Verifica que eres un humano\" *\/\n._form_301 label[for=\"ls\"],\n._form_301 ._form_element label._form-label {\n  color: #ffffff !important;\n  display: inline-block;\n  font-weight: 400 !important;\n  margin-left: 8px;\n}\n\n\/* Placeholder del campo de email *\/\n#_form_301_ #email::placeholder {\n  color: #002132 !important;\n}\n\n\/* Altura del campo de email reducida *\/\n#_form_301_ #email {\n  padding: 8px 12px !important;\n  height: 40px !important;\n  font-size: 14px !important;\n  line-height: 1.2 !important;\n  margin-bottom: 16px !important;\n}\n<\/style><\/div><\/div>\n<h2>\u00bfQu\u00e9 significa GEO en marketing digital?<\/h2>\n<p>El t\u00e9rmino GEO (Generative Engine Optimization) hace referencia al conjunto de t\u00e9cnicas orientadas a optimizar tus contenidos para <strong>aparecer en las respuestas de los motores de b\u00fasqueda basados en IA<\/strong>, denominados buscadores generativos.<\/p>\n<p>A veces tambi\u00e9n ver\u00e1s que algunos sitios se refieren a este concepto como GSO (Generative Search Optimization). Realmente es la misma idea, que se resume en:<\/p>\n<blockquote><p>Conseguir que tu marca sea citada como fuente por la IA<\/p><\/blockquote>\n<p>Y cuando hablo de motores b\u00fasqueda basado en IA, no s\u00f3lo me refiero a las AI Overviews de Google, que tanto est\u00e1n dando que hablar \u00faltimamente dentro de la comunidad SEO.<\/p>\n<p>Tambi\u00e9n incluyo a otras plataformas como ChatGPT, Gemini, Bing Copilot o Perplexity.<\/p>\n<p>Todos estos <strong>motores generativos de IA recopilan informaci\u00f3n de diversas fuentes confiables<\/strong>, sintetizan los contenidos y finalmente componen respuestas adaptadas a lo que pregunta el usuario.<\/p>\n<p>Si consigues que <strong>el contenido que t\u00fa creas sea utilizado como una de esas fuentes<\/strong>, es muy probable que tu marca acabe siendo citada o tu web aparezca enlazada dentro de determinadas respuestas ofrecidas por la IA, con la visibilidad que eso supone para tu proyecto o negocio.<\/p>\n<h3>\u00bfPor qu\u00e9 es importante el GEO?<\/h3>\n<p>El GEO es una nueva estrategia de marketing digital que viene motivada por un <strong>cambio en el comportamiento de los usuarios<\/strong> dentro de Internet. En concreto, sobre c\u00f3mo buscan y consumen la informaci\u00f3n.<\/p>\n<p>Ya no quieren perder su tiempo navegando a trav\u00e9s de diferentes enlaces y leyendo art\u00edculos (a veces llenos de paja). Lo que <strong>desean es una respuesta directa y concisa<\/strong>. Y la IA ofrece precisamente eso.<\/p>\n<p>Por esa raz\u00f3n, hoy en d\u00eda no basta con aparecer en el listado de resultados de Google para atraer m\u00e1s tr\u00e1fico org\u00e1nico. Si quieres que <strong>tu web y tu marca sean visibles<\/strong> debes entender c\u00f3mo funciona la inteligencia artificial generativa en motores de b\u00fasqueda y preocuparte por formar parte de ella.<\/p>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">Beneficios de trabajar el GEO<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> Aumentas la visibilidad de tu marca en las respuestas generadas por IA.<\/li>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> No necesariamente necesitas que el usuario haga clic. Una simple menci\u00f3n ya es un impulso al reconocimiento de tu marca.<\/li>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> Mejoras tus contenidos, haci\u00e9ndolos m\u00e1s legibles, mejor estructurados y m\u00e1s relevantes.<\/li>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> Mejoras tu credibilidad y tu autoridad.<\/li>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> Puedes anticiparte a la mayor\u00eda de tus competidores, que seguramente no est\u00e9n trabajando todav\u00eda el GEO.<\/li>\n<li><i class=\"sui sui-thumbs-o-up\" style=\"color:#00937D\"><\/i> Es un complemento del SEO. Puedes trabajar las dos estrategias y multiplicar tus resultados.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div>\n<h2>\u00bfCu\u00e1l es la diferencia entre SEO y GEO (o GSO)?<\/h2>\n<p>Mientras que el SEO tradicional se enfoca en conseguir que un sitio web aparezca dentro de los primeros resultados de Google y otros buscadores, el GEO (o GSO) tiene como objetivo que una marca se mencione como parte de las respuestas generadas por IA.<\/p>\n<p>Por lo tanto, <strong>SEO y GEO son estrategias de marketing digital orientadas a plataformas distintas<\/strong>, lo que implica que las t\u00e9cnicas utilizadas para optimizar los contenidos y los objetivos que se persiguen en cada caso tambi\u00e9n ser\u00e1n diferentes.<\/p>\n<p>En el siguiente cuadro te muestro una <strong>comparaci\u00f3n entre estos dos conceptos<\/strong> para que te quede m\u00e1s claro.<\/p>\n<div class=\"su-table su-table-responsive su-table-fixed\">\n<table class=\"mtr-table mtr-tr-td\">\n<tbody>\n<tr>\n<td data-mtr-content=\"\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><\/div><\/td>\n<td data-mtr-content=\"SEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>SEO<\/strong><\/div><\/td>\n<td data-mtr-content=\"GEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>GEO<\/strong><\/div><\/td>\n<\/tr>\n<tr>\n<td data-mtr-content=\"\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>Plataformas<\/strong><\/div><\/td>\n<td data-mtr-content=\"SEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Motores de b\u00fasqueda tradicionales\n<p>(Google, Yahoo, Bing,\u2026)<\/p><\/div><\/td>\n<td data-mtr-content=\"GEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Motores de b\u00fasqueda con IA generativa\n<p>(ChatGPT, Gemini, Copilot, Perplexity,\u2026)<\/p><\/div><\/td>\n<\/tr>\n<tr>\n<td data-mtr-content=\"\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>Objetivo<\/strong><\/div><\/td>\n<td data-mtr-content=\"SEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Enlace en los primeros resultados de b\u00fasqueda<\/div><\/td>\n<td data-mtr-content=\"GEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Menci\u00f3n en las respuestas generadas por la IA<\/div><\/td>\n<\/tr>\n<tr>\n<td data-mtr-content=\"\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>Estrategias<\/strong><\/div><\/td>\n<td data-mtr-content=\"SEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Palabras clave, backlinks, SEO t\u00e9cnico<\/div><\/td>\n<td data-mtr-content=\"GEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Autoridad, formato estructurado, claridad sem\u00e1ntica, lenguaje natural<\/div><\/td>\n<\/tr>\n<tr>\n<td data-mtr-content=\"\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><strong>Visibilidad<\/strong><\/div><\/td>\n<td data-mtr-content=\"SEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">El usuario debe hacer clic en el enlace<\/div><\/td>\n<td data-mtr-content=\"GEO\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">El usuario ve y reconoce tu marca en la respuesta<\/div><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2>Search Generative Experience (SGE): el impacto de los resultados de b\u00fasqueda impulsados por IA<\/h2>\n<p>SGE (Search Generative Experience) es el acr\u00f3nimo con el que se conoce la <strong>funcionalidad de Google <\/strong>para ofrecer en su buscador respuestas directas y completas a los usuarios gracias al <strong>uso de la IA generativa<\/strong>.<\/p>\n<p>Estoy seguro de que ya habr\u00e1s visto en acci\u00f3n esta nueva forma de buscar de Google que <strong>actualmente conocemos como AI Overviews<\/strong>.<\/p>\n<p>Y si tienes una web es probable que tambi\u00e9n hayas sufrido sus consecuencias.<\/p>\n<p><iframe title=\"Google AI Overviews ya HA LLEGADO \u2728 \u00bfC\u00f3mo nos afecta a los que nos dedicamos al SEO?\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/ZNlmZbcMPTs?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>Diferentes estudios muestran una dr\u00e1stica<strong> ca\u00edda del CTR de muchas p\u00e1ginas web <\/strong>debido al <a href=\"https:\/\/www.seroundtable.com\/ai-overviews-hurt-google-click-through-rates-39282.html\" target=\"_blank\" rel=\"nofollow noopener\">impacto de las AI Overview<\/a>. En concreto, las bajadas van del 15 al 35%.<\/p>\n<p>Pero esto es s\u00f3lo el principio.<\/p>\n<p>Google ya ha anunciado su nuevo <strong>AI Mode<\/strong>, que va mucho m\u00e1s lejos que las AI Overviews.<\/p>\n<p>Con AI Mode se podr\u00e1 solicitar a Google que realice an\u00e1lisis complejos de informaci\u00f3n, que genere gr\u00e1ficos y tablas, que haga b\u00fasquedas en tiempo real para responder a preguntas sobre lo que est\u00e1s viendo en tu c\u00e1mara o que te recomiende opciones de compra, entre muchas otras cosas.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-29717 size-full\" title=\"AI Mode de Google\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-mode-google.png\" alt=\"AI Mode de Google\" width=\"1023\" height=\"648\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-mode-google.png 1023w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-mode-google-300x190.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-mode-google-768x486.png 768w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/p>\n<p>\u00bfEstamos ante el fin del buscador tradicional y su listado de enlaces azules?<\/p>\n<h2>Entonces, \u00bfcu\u00e1l es la diferencia entre GEO, SGE y SEO?<\/h2>\n<p>Ya hemos visto antes que SEO consiste en la optimizaci\u00f3n tradicional de tu sitio web para que aparezca en los resultados de buscadores como Google y que GEO es la estrategia para optimizar tu contenido dentro del nuevo paradigma de b\u00fasqueda con IA.<\/p>\n<p>Por su parte, <strong>SGE es la nueva experiencia de b\u00fasqueda generativa de Google<\/strong>, que ha tomado la forma de lo que hoy conocemos como AI Overviews.<\/p>\n<p>As\u00ed, <strong>SEO y GEO son estrategias de marketing digital<\/strong>, mientras que SGE es una de las tecnolog\u00edas en las que deber\u00edas centrar tus esfuerzos de optimizaci\u00f3n si trabajas el GEO.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-29720 size-full\" title=\"Diferencias entre GEO, SGE y SEO\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-gse.png\" alt=\"Diferencias entre GEO, SGE y SEO\" width=\"1024\" height=\"539\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-gse.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-gse-300x158.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-gse-768x404.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Como ves SEO, GEO y SGE son t\u00e9rminos que, aunque est\u00e1n relacionados, hacen referencia a conceptos diferentes y por eso conviene conocer claramente qu\u00e9 papel juegan dentro de tu proyecto web.<\/p>\n<h2>\u00bfEst\u00e1n la SGE y el GEO reemplazando al SEO? El eterno debate sobre si la IA destruir\u00e1 el SEO<\/h2>\n<p>La respuesta corta es: NO.<\/p>\n<p>Ni SGE, ni el GEO, ni la IA est\u00e1n acabando con el SEO. \u00danicamente el panorama de posicionamiento web est\u00e1 evolucionando y a nosotros, como SEOs, nos va a tocar adaptarnos\u2026 Una vez m\u00e1s.<\/p>\n<p>Ver\u00e1s, durante los m\u00e1s de 12 a\u00f1os que llevo en esto del SEO he perdido la cuenta de las veces que he escuchado la m\u00edtica frase \u201cEl SEO ha muerto\u201d.<\/p>\n<p>Y por supuesto la irrupci\u00f3n de la IA en los buscadores no iba a ser una excepci\u00f3n.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-29719 size-full\" title=\"B\u00fasqueda en Google Videos sobre \u201cEl SEO ha muerto\u201d.\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-fin-del-seo.png\" alt=\"B\u00fasqueda en Google Videos sobre \u201cEl SEO ha muerto\u201d.\" width=\"1024\" height=\"729\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-fin-del-seo.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-fin-del-seo-300x214.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-fin-del-seo-768x547.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>\u00bfSabes qu\u00e9? Yo creo que el SEO ni est\u00e1 muerto ni va a morir en los pr\u00f3ximos a\u00f1os.<\/p>\n<p>Si te gusta el SEO sabr\u00e1s que esto no es como las tablas de multiplicar que, una vez te las aprendes, siempre son v\u00e1lidas.<\/p>\n<p>El mundo de Internet es muy cambiante y adem\u00e1s lo hace de forma muy r\u00e1pida.<\/p>\n<p>Por eso, quienes nos dedicamos al SEO tenemos que estar en un aprendizaje continuo y en constante adaptaci\u00f3n.<\/p>\n<p>Las herramientas de IA y el GEO son las \u00faltimas tendencias dentro de nuestro campo. Debemos conocerlas, aceptarlas e incorporarlas a nuestro sistema de trabajo.<\/p>\n<p>Y no, no son un reemplazo del SEO. Son un complemento que trabajado de manera conjunta nos permitir\u00e1 llegar a un p\u00fablico mucho m\u00e1s amplio y mejorar as\u00ed la visibilidad de nuestra marca.<\/p>\n<div id=\"brxe-5c527e\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-d69b57\" class=\"brxe-text-basic h3\">Descubre 6 t\u00e9cnicas sencillas (pero eficaces) para que las visitas de tu web crezcan m\u00e1s r\u00e1pido que la espuma de una cerveza mal tirada.\n<\/div><div id=\"brxe-445cc8\" class=\"brxe-text-basic\"><strong>Aunque no seas un experto en SEO<\/strong> ni puedas dedicarte mucho tiempo a esto.<\/div><div id=\"brxe-lbvkeh\" data-script-id=\"lbvkeh\" class=\"brxe-code incontent-form-html\"><style>@import url(https:\/\/fonts.bunny.net\/css?family=source-sans-pro:400,700);<\/style>\n<style>\n#_form_331_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_331_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_331_._form-top{top:0}#_form_331_._form-bottom{bottom:0}#_form_331_._form-left{left:0}#_form_331_._form-right{right:0}#_form_331_ input[type=\"text\"],#_form_331_ input[type=\"tel\"],#_form_331_ input[type=\"date\"],#_form_331_ 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_331_ textarea{resize:none}#_form_331_ ._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:3px !important;-webkit-border-radius:3px !important;border-radius:3px !important;color:#FFFFFF !important;padding:14px !important}#_form_331_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_331_ ._submit.processing{position:relative}#_form_331_ ._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_331_ ._submit.processing::after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:#00C4A7 !important;border:0 !important;-moz-border-radius:3px !important;-webkit-border-radius:3px !important;border-radius:3px !important;color:#FFFFFF !important;padding:14px !important}@keyframes _spin{0%{transform:translate(-50%, -50%) rotate(90deg)}100%{transform:translate(-50%, -50%) rotate(450deg)}}#_form_331_ ._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_331_ ._close-icon:before{position:relative}#_form_331_ ._form-body{margin-bottom:30px}#_form_331_ ._form-image-left{width:150px;float:left}#_form_331_ ._form-content-right{margin-left:164px}#_form_331_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_331_ ._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_331_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_331_ ._form-label,#_form_331_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_331_._dark ._form-branding{color:#333}#_form_331_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_331_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_331_ ._form_element *{font-size:14px}#_form_331_ ._form_element._clear{clear:both;width:100%;float:none}#_form_331_ ._form_element._clear:after{clear:left}#_form_331_ ._form_element input[type=\"text\"],#_form_331_ ._form_element input[type=\"date\"],#_form_331_ ._form_element select,#_form_331_ ._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_331_ ._field-wrapper{position:relative}#_form_331_ ._inline-style{float:left}#_form_331_ ._inline-style input[type=\"text\"]{width:150px}#_form_331_ ._inline-style:not(._clear){margin-right:20px}#_form_331_ ._form_element img._form-image{max-width:100%}#_form_331_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_331_ ._clear-element{clear:left}#_form_331_ ._full_width{width:100%}#_form_331_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_331_ input[type=\"text\"]._has_error,#_form_331_ textarea._has_error{border:#F37C7B 1px solid}#_form_331_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_331_ ._show_be_error{float:left}#_form_331_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_331_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_331_ ._error._below{padding-top:8px;top:100%;right:0}#_form_331_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_331_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_331_ ._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_331_ ._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_331_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_331_ ._button-wrapper ._error-inner._form_error{position:static}#_form_331_ ._error-inner._no_arrow{margin-bottom:10px}#_form_331_ ._error-arrow{position:absolute;width:0;height:0}#_form_331_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_331_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_331_ select.datetime_time{width:29%;display:inline;height:32px}#_form_331_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_331_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_331_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_331_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_331_ ._form-content{margin:0;width:100%}#_form_331_ ._form-inner{display:block;min-width:100%}#_form_331_ ._form-title,#_form_331_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_331_ ._form-title{font-size:1.2em}#_form_331_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_331_ ._form-element,#_form_331_ ._inline-style,#_form_331_ input[type=\"text\"],#_form_331_ label,#_form_331_ p,#_form_331_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_331_ ._row._checkbox-radio label{display:inline}#_form_331_ ._row,#_form_331_ p,#_form_331_ label{margin-bottom:0.7em;width:100%}#_form_331_ ._row input[type=\"checkbox\"],#_form_331_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_331_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_331_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_331_ ._form-image{max-width:100%;height:auto !important}#_form_331_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_331_ input[type=\"radio\"],#_form_331_ 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_331_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_331_ ._inline-style{margin:20px 0 0 !important}#_form_331_ ._inline-style input[type=\"text\"]{width:100%}}#_form_331_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_331_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_331_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_331_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_331_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_331_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_331_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_331_ .field-required{color:#FF0000}#_form_331_{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_331_ ._show_be_error{min-width:100%}#_form_331_._inline-form,#_form_331_._inline-form ._form-content{font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_331_._inline-form ._row span,#_form_331_._inline-form ._row label{font-family:Source Sans Pro;font-size:14px;font-weight:400;line-height:1.6em;color:#888 !important}#_form_331__inlineform input[type=\"text\"],#_form_331__inlineform input[type=\"date\"],#_form_331__inlineform input[type=\"tel\"],#_form_331__inlineform select,#_form_331__inlineform textarea:not(.g-recaptcha-response){font-family:Source Sans Pro;font-size:14px;font-weight:400;font-color:#000000;line-height:1.6em}#_form_331_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_331_._inline-form .sms_consent_message,#_form_331_._inline-form ._form-thank-you{font-family:Source Sans Pro;font-size:14px;font-weight:400;color:#888 !important}#_form_331_._inline-form ._form-label,#_form_331_._inline-form ._form-emailidentifier,#_form_331_._inline-form ._form-checkbox-option-label{font-family:Source Sans Pro;font-size:14px;font-weight:700;line-height:1.6em;color:#888 !important}#_form_331_._inline-form ._submit{margin-top:12px;font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_331_._inline-form ._html-code h1,#_form_331_._inline-form ._html-code h2,#_form_331_._inline-form ._html-code h3,#_form_331_._inline-form ._html-code h4,#_form_331_._inline-form ._html-code h5,#_form_331_._inline-form ._html-code h6,#_form_331_._inline-form ._form-title{font-family:Source Sans Pro;font-size:22px;line-height:normal;font-weight:700;color:black;margin-bottom:0;display:block}#_form_331_._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_331_:before,#_form_331_:after{content:\" \";display:table}#_form_331_:after{clear:both}#_form_331_._inline-style{width:auto;display:inline-block}#_form_331_._inline-style input[type=\"text\"],#_form_331_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_331_._inline-style button._inline-style{position:relative;top:27px}#_form_331_._inline-style p{margin:0}#_form_331_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_331_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_331_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_331_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_331_ .iti{width:100%}#_form_331_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_331_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_331_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_331_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_331_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_331_ .iti__country-list--dropup{margin-bottom:4px}#_form_331_ .phone-error-hidden{display:none}#_form_331_ .phone-error{color:#E40E49}#_form_331_ .phone-input-error{border:1px solid #E40E49 !important}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_331_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_331_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:18px !important;font-weight:500 !important}#_form_331_ ._submit:hover{background-color:#04937E !important}#_form_331_ input#email{padding:3px 12px;background-color:#ffffff;border-radius:2px}#_form_331_._form{margin-top:-5px}#_form_331_ ._error._below{position:relative !important}#_form_331_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_331_ ._form_element{margin:0 0 0px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_331_\" class=\"_form _form_331 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"331\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"331\" \/>\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=\"789ef8b4693eba56cf9cd6622eca7a0e\" \/>\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_331_submit\" class=\"_submit\" type=\"submit\">\n      Ap\u00fantate aqu\u00ed\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_331_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_331_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(\"331\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"331\", \"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_331_');\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_331_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_331_')).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(\"331\", \"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_299 ._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_299 label[for=\"ls\"],\n._form_299 ._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_299_ #email::placeholder {\n  color: #002132 !important;\n}\n\n\/* Altura del campo de email reducida *\/\n#_form_299_ #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\nlabel {\n    display: inline;\n}<\/style><\/div><\/div>\n<h2>C\u00f3mo optimizar tu sitio web para GEO: 5 estrategias para adaptarte a la IA generativa<\/h2>\n<p>Vale, todo lo anterior suena muy bien. Parece que el SEO va a seguir teniendo futuro a pesar de la IA. Pero\u2026<\/p>\n<p>\u00bfC\u00f3mo optimizar un sitio web para la inteligencia artificial generativa? \u00bfC\u00f3mo se puede hacer GEO?<\/p>\n<p>Aunque la IA es relativamente reciente, s\u00ed que hay una serie de pautas que se ha comprobado que funcionan para lograr que tu contenido sea tenido en cuenta por los motores de b\u00fasqueda generativos.<\/p>\n<p>Aqu\u00ed te dejo una lista con las<strong> mejores pr\u00e1cticas para trabajar la optimizaci\u00f3n de motores generativos en tu web<\/strong>.<\/p>\n<h3>1. Haz una investigaci\u00f3n de palabras clave centrada en SGE<\/h3>\n<p>La <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/como-hacer-keyword-research\/\" target=\"_blank\" rel=\"noopener\">investigaci\u00f3n de palabras clave<\/a> para GEO no es exactamente igual a la del SEO tradicional, ya que <strong>los usuarios no suelen usar la IA del mismo modo que el buscador de Google<\/strong>.<\/p>\n<p>As\u00ed, la mayor\u00eda no emplean t\u00e9rminos sueltos (por ejemplo, \u201ccomida perros\u201d), sino que <strong>hacen preguntas completas<\/strong> (\u201c\u00bfqu\u00e9 comida puedo dar a mi perro?\u201d).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-29718 size-full\" title=\"Ejemplo pregunta en AI overviews\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-overviews.png\" alt=\"Ejemplo pregunta en AI overviews\" width=\"1024\" height=\"436\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-overviews.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-overviews-300x128.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-ai-overviews-768x327.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Por eso, <strong>en tu keyword research es fundamental identificar esas consultas conversacionales<\/strong>, del tipo \u201cc\u00f3mo\u201d, \u201ccu\u00e1ndo\u201d, \u201cpor qu\u00e9\u201d, \u201ccu\u00e1l es la mejor manera de\u2026\u201d, para crear un contenido que responda lo mejor posible a dichas preguntas.<\/p>\n<p>A continuaci\u00f3n te dejo algunas pautas sobre c\u00f3mo orientar tu investigaci\u00f3n de palabras clave para IA.<\/p>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">C\u00f3mo hacer un keyword research para GEO<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> <strong>Identifica las preguntas frecuentes que hacen los usuarios<\/strong>: para ello puedes usar herramientas como AnswerThePublic o navegar a trav\u00e9s de las People Also Ask de Google.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> <strong>Detecta palabras clave de cola larga (long tail keywords)<\/strong>: suelen ser representativas de consultas conversacionales que hacen los usuarios.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> <strong>A\u00f1ade amplitud sem\u00e1ntica a las consultas<\/strong>: incorpora sin\u00f3nimos y t\u00e9rminos relacionados.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> <strong>Entiende muy bien la intenci\u00f3n de b\u00fasqueda<\/strong>: \u00bfpor qu\u00e9 hacen esa pregunta los usuarios? \u00bfQu\u00e9 tipo de respuesta esperan obtener?<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> <strong>Analiza las respuestas actuales de los buscadores generativos<\/strong>: si haces la consulta en SGE, \u00bfa qu\u00e9 otras preguntas da tambi\u00e9n respuesta? \u00bfQu\u00e9 t\u00e9rminos aparecen resaltados? \u00bfQu\u00e9 fuentes cita?<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div>\n<h3>2. Redacta tus contenidos para GEO<\/h3>\n<p>La manera de optimizar el contenido de tu web para los motores de b\u00fasqueda generativos tambi\u00e9n cambia con respecto a lo que sol\u00edamos hacer hasta ahora.<\/p>\n<p>En el SEO tradicional escribimos fij\u00e1ndonos en los usuarios y en el algoritmo de Google. En GEO, <strong>debemos tener en cuenta<\/strong> un tercer actor: <strong>los modelos de lenguaje<\/strong> (denominados LLM, Large Language Models).<\/p>\n<blockquote><p>Los LLMs son los modelos utilizados por la IA para leer, comprender y generar respuestas en lenguaje natural basadas en nuestro contenido.<\/p><\/blockquote>\n<p>Y aqu\u00ed es donde entra en juego el concepto de <strong>LLMO <\/strong>(Large Language Model Optimization), es decir, el arte de <strong>crear contenidos que los modelos de lenguaje entiendan<\/strong>, utilicen y, a ser posible, citen cuando construyen sus respuestas generadas por IA.<\/p>\n<p>En la siguiente tabla te dejo algunas recomendaciones para adaptar tus contenidos a esta filosof\u00eda.<\/p>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">C\u00f3mo redactar contenido GEO con enfoque LLMO<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Resuelve la intenci\u00f3n de b\u00fasqueda lo antes posible.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Utiliza encabezados claros en forma de pregunta.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Emplea un lenguaje claro, con frases concisas y siguiendo una estructura l\u00f3gica.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Usa un tono de lenguaje natural y conversacional para hacer tu contenido m\u00e1s humano.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Incluye sin\u00f3nimos, conceptos relacionados y contexto sem\u00e1ntico.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Utiliza listas, tablas, enumeraciones, etc.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Emplea ejemplos y estad\u00edsticas.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> A\u00f1ade citas y referencias expl\u00edcitas para reforzar la autoridad.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div>\n<h3>3. Utiliza metadatos y datos estructurados<\/h3>\n<p>Los modelos de lenguaje (LLMs) necesitan <strong>comprender la estructura y el contexto del contenido<\/strong> para usarlo en respuestas generadas por IA. Por eso, la <a href=\"https:\/\/dinorank.com\/blog\/datos-estructurados-para-seo-como-implementar\/\">utilizaci\u00f3n de datos estructurados<\/a> o el marcado Schema en nuestras p\u00e1ginas web es, si cabe, m\u00e1s importante que en el SEO tradicional.<\/p>\n<p>Recuerda que para <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/como-implementar-datos-estructurados-wordpress\/\" target=\"_blank\" rel=\"noopener\"><strong>a\u00f1adir datos estructurados a tus contenidos en WordPress<\/strong><\/a> puedes usar plugins de SEO avanzados (<a href=\"https:\/\/dinorank.com\/blog\/rank-math-seo\/\">Rank Math<\/a>, <a href=\"https:\/\/dinorank.com\/blog\/configurar-yoast-seo\/\">Yoast<\/a>, etc.) o ayudarte de herramientas como Schema Markup Generator, que te facilitan mucho esta labor.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-29721 size-full\" title=\"Schema Markup Generator - herramienta para completar datos estructurados\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-schema.png\" alt=\"Schema Markup Generator - herramienta para completar datos estructurados\" width=\"1024\" height=\"795\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-schema.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-schema-300x233.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/06\/geo-seo-schema-768x596.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Pero, adem\u00e1s de los datos estructurados, <strong>los metadatos de las p\u00e1ginas,<\/strong> como el t\u00edtulo, la meta descripci\u00f3n o los campos de fecha y autor, <strong>tambi\u00e9n son muy \u00fatiles para los modelos de IA<\/strong> en el momento de clasificar los contenidos.<\/p>\n<p>De este modo, los motores generativos pueden detectar mejor la intenci\u00f3n del contenido, reconocer roles o caracter\u00edsticas espec\u00edficas (autor, fuente, producto, fecha, etc.) e incluso extraer fragmentos que puedan incorporar en sus respuestas.<\/p>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">Algunos tipos de marcado Schema.org relevantes para la IA<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Art\u00edculos<\/strong>: <em>Article, BlogPosting, NewsArticle.<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>FAQs<\/strong>: <em>FAQPage<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Gu\u00edas paso a paso<\/strong>: <em>HowTo<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Productos<\/strong>: <em>Product, Offer<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Recetas<\/strong>: <em>Recipe<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Opiniones<\/strong>:<em> Review, AggregateRating<\/em><\/li>\n<li><i class=\"sui sui-code\" style=\"color:#00937D\"><\/i> <strong>Autores<\/strong>: <em>Person, Organization<\/em><\/li>\n<\/ul>\n<\/div>\n<\/div><\/div>\n<h3>4. Permite la indexaci\u00f3n de tu sitio web a los robots de IA<\/h3>\n<p>Tal y como ocurre en el SEO tradicional,<strong> los motores generativos utilizan robots o crawlers espec\u00edficos<\/strong> para rastrear el contenido web y alimentar as\u00ed sus modelos de lenguaje.<\/p>\n<p>As\u00ed que si tu sitio web bloquea el acceso a estos crawlers, no importa lo bueno que sea tu contenido, las IAs generativas no podr\u00e1n usarlo como fuente ni citarlo.<\/p>\n<p>Por eso, revisa tu archivo robots.txt y <strong>aseg\u00farate de no bloquear a los crawlers de IA<\/strong>. Aqu\u00ed te dejo un ejemplo:<\/p>\n<pre>User-agent: GPTBot\r\nAllow: \/\r\n\r\nUser-agent: Google-Extended\r\nAllow: \/\r\n\r\nUser-agent: bingbot\r\nAllow: \/\r\n\r\nUser-agent: PerplexityBot\r\nAllow: \/\r\n\r\nUser-agent: CCBot\r\nAllow: \/<\/pre>\n<p>El ejemplo anterior permite el acceso a tu web a los bots de ChatGPT, Gemini, Copilot y Perplexity, adem\u00e1s de CCBot, que es el crawler del proyecto Common Crawl, utilizado como fuente por muchos LLMs.<\/p>\n<p>Pero adem\u00e1s de \u00e9stos existen otros, que pueden ser m\u00e1s o menos interesantes para tu proyecto. Te recomiendo investigar un poco sobre el tema y entonces decidir a cu\u00e1les les abres las puertas de tu web.<\/p>\n<h3>5. Trabaja el EEAT<\/h3>\n<p>Los motores de b\u00fasqueda generativos deben<strong> decidir qu\u00e9 fuentes son suficientemente confiables<\/strong> como para incluirlas en sus respuestas generadas. Por eso, el <a id=\"CTA-1\" href=\"https:\/\/dinorank.com\/blog\/que-es-eeat-y-como-trabajarlo-caso-real-seo\/\" target=\"_blank\" rel=\"noopener\">EEAT<\/a>, un concepto que ya ven\u00edamos trabajando en el SEO tradicional durante los \u00faltimos a\u00f1os, es clave tambi\u00e9n dentro del GEO.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-20957 size-full\" title=\"EEAT en GEO (Generative Engine Optimization)\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/02\/eeat-trust.png\" alt=\"EEAT en GEO (Generative Engine Optimization)\" width=\"1024\" height=\"530\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/02\/eeat-trust.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/02\/eeat-trust-300x155.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/02\/eeat-trust-768x398.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Ten en cuenta que los modelos de lenguaje necesitan se\u00f1ales claras para distinguir un contenido gen\u00e9rico de otro creado por un experto, o bien para evitar informaci\u00f3n falsa o poco fiable.<\/p>\n<p>En este contexto, cuanto mayor sea<strong> tu reputaci\u00f3n como autor o la autoridad de tu sitio web<\/strong>\u00a0m\u00e1s probable es que la IA te elija como fuente para generar respuestas.<\/p>\n<p>Como ves, trabajar la optimizaci\u00f3n para motores de b\u00fasqueda generativos no es en realidad muy diferente de lo que estamos habituados a hacer en SEO. Simplemente hay que adaptar ciertas t\u00e9cnicas a las peculiaridades de los nuevos sistemas basados en inteligencia artificial.<\/p>\n<p>As\u00ed que, ahora que ya conoces c\u00f3mo puedes aprovecharte de esta nueva realidad, te pregunto:<\/p>\n<p>\u00bfVas a subirte al carro de la IA en la b\u00fasquedas en Internet o vas a dejarte arrollar por ella?<\/p>\n<p>T\u00fa decides. Pero hazlo pronto, ya que el GEO no es el futuro, sino el presente m\u00e1s inmediato.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dicen que con la llegada de la inteligencia artificial muchas profesiones van a dejar de existir. Si quieres saber mi opini\u00f3n, estoy de acuerdo. Como tambi\u00e9n creo que el SEO no va a ser una de ellas. Mientras la gente siga buscando informaci\u00f3n en Internet, el SEO seguir\u00e1 teniendo sentido. \u00bfY qu\u00e9 son las plataformas [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":29836,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-29713","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\/29713","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=29713"}],"version-history":[{"count":14,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/29713\/revisions"}],"predecessor-version":[{"id":33109,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/29713\/revisions\/33109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/29836"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=29713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=29713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=29713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}