{"id":1788,"date":"2020-07-21T20:01:01","date_gmt":"2020-07-21T18:01:01","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=1788"},"modified":"2025-05-26T18:28:57","modified_gmt":"2025-05-26T16:28:57","slug":"que-es-una-canibalizacion-seo-detectar-y-solventar","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/canibalizacion-seo\/","title":{"rendered":"Qu\u00e9 es una canibalizaci\u00f3n SEO: detectar y solventar"},"content":{"rendered":"<p>\u00bfAlguna vez te has encontrado una p\u00e1gina de tu sitio web que, por muchas mejoras SEO que le hagas, no logras posicionarla bien?<\/p>\n<p>En estos casos, puede que est\u00e9s ante una situaci\u00f3n m\u00e1s com\u00fan de lo que crees en el mundo del SEO: <b>La Canibalizaci\u00f3n<\/b>.<\/p>\n<p>La canibalizaci\u00f3n es un problema que no afecta al funcionamiento de tu web pero s\u00ed perjudica su posicionamiento.<\/p>\n<p>Adem\u00e1s, puede llegar a ser bastante <b>dif\u00edcil de detectar<\/b>. M\u00e1s a\u00fan en webs con muchos a\u00f1os y contenido detr\u00e1s. Cr\u00e9eme que es un <b>quebradero de cabeza <\/b>encontrarlas.<\/p>\n<p>Pero&#8230; \u00bfY si te digo que hay una manera de <b>localizar estas canibalizaciones en cuesti\u00f3n de segundos<\/b>?<\/p>\n<p>Con DinoRANK y su m\u00f3dulo de canibalizaciones es posible detectarlas de forma r\u00e1pida y sencilla.<\/p>\n<p>En este art\u00edculo te lo muestro.<\/p>\n<h2>\u00bfQu\u00e9 es una canibalizaci\u00f3n SEO?<\/h2>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:7px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#ffffff;border-top-left-radius:5px;border-top-right-radius:5px\">Esta es su definici\u00f3n:<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:5px;border-bottom-right-radius:5px\">\n<p><img decoding=\"async\" class=\"alignleft size-thumbnail wp-image-4287\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2021\/03\/dinoprofe-ok-150x150.png\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2021\/03\/dinoprofe-ok-150x150.png 150w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2021\/03\/dinoprofe-ok-300x300.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2021\/03\/dinoprofe-ok-370x370.png 370w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2021\/03\/dinoprofe-ok.png 400w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/p>\n<p>Una <b>canibalizaci\u00f3n SEO<\/b> se produce cuando dos o m\u00e1s URL&#8217;s del mismo sitio web resuelven una <b>misma intenci\u00f3n de b\u00fasqueda<\/b> a la hora de intentar posicionarse en el buscador.<\/p>\n<p>Como consecuencia de esto, y suponiendo que ambos contenidos resuelven de forma correcta dicha intencionalidad, ninguna de ellas obtendr\u00e1 el mejor posicionamiento que pudieran tener, ya que <strong>Google no puede discernir cu\u00e1l de ellas es la que mejor responde a la intenci\u00f3n de b\u00fasqueda<\/strong> del usuario, haciendo as\u00ed que dos o m\u00e1s URLs de tu sitio web compitan por el mismo tr\u00e1fico.<\/p>\n<\/div><\/div>\n<p>Y visto desde el lado del usuario, si en la p\u00e1gina de resultados aparecen dos URL&#8217;s de la misma web, <strong>el usuario tampoco podr\u00e1 decidir<\/strong> cu\u00e1l es la que mejor va a resolver su duda.<\/p>\n<p>Este proceso ocurre de forma inconsciente cuando no se dispone de conocimientos de SEO, por lo que es importante (y recomendable) detectarlo y solucionarlo lo antes posible.<\/p>\n<p>La canibalizaci\u00f3n en SEO es un problema que hay que resolver, si no quieres que el posicionamiento de tu p\u00e1gina web se vea afectado de forma negativa.<\/p>\n<p><iframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/QWFt8LE1g84?si=FTGfWmVC6qD2aYaz\" width=\"100%\" height=\"415\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p>Por suerte, es muy f\u00e1cil <b>detectar este problema con la ayuda de DinoRANK<\/b>, ya que cuenta con un m\u00f3dulo dedicado en exclusiva a ello.<\/p>\n<p>Con tan solo un par de clics, podr\u00e1s ver si tienes URL en tu sitio web que est\u00e9n rankeando por la misma consulta.<\/p>\n<h2><span id=\"Como_de_negativa_es_la_canibalizacion_para_el_posicionamiento_SEO\">3 aspectos negativos de la canibalizaci\u00f3n para tu posicionamiento SEO<\/span><\/h2>\n<p>Sabiendo qu\u00e9 es la canibalizaci\u00f3n SEO, quiz\u00e1s te surja la duda de: \u00bfes de verdad tan negativa para mi posicionamiento web? <strong>La respuesta corta es s\u00ed<\/strong>. Rotundo.<\/p>\n<p>Eso s\u00ed, en cuanto al funcionamiento de tu sitio web, nada cambia: <strong>seguir\u00e1 funcionando correctamente<\/strong> y tu p\u00fablico podr\u00e1 seguir visit\u00e1ndola con normalidad.<\/p>\n<p>Debes tener claro que <strong>el aspecto negativo es relativo solo al posicionamiento<\/strong> org\u00e1nico en buscadores.<\/p>\n<p>Algunos perjuicios pueden ser estos:<\/p>\n<h3><span id=\"_Tendras_menos_visibilidad_organica\">Tendr\u00e1s menos visibilidad en buscadores<\/span><\/h3>\n<p>Es el principal punto negativo de la canibalizaci\u00f3n SEO, ya que si existen dos URL\u2019s para una misma intenci\u00f3n de b\u00fasqueda, la que tenga el contenido que &#8216;aporte menos valor&#8217; va a <strong>frenar el avance de la otra <\/strong>en buscadores.<\/p>\n<p>Te pongo un ejemplo: imagina que, por desconocimiento a nivel de SEO, creas 2 contenidos muy completos y uno de ellos alcanza la posici\u00f3n 14 en Google y el otro en el top6.<\/p>\n<p>Con este escenario, comprende que <strong>est\u00e1s compitiendo contigo mismo<\/strong>, ya que es posible que el contenido en top6 pueda estar m\u00e1s arriba y el otro se lo est\u00e9 impidiendo.<\/p>\n<h3><span id=\"_Los_anchor_text_de_los_enlaces_internos_confundiran_mas_aun_a_Google\">Confundir\u00e1s m\u00e1s a Google con tu enlazado interno<\/span><\/h3>\n<p>Al tener m\u00e1s de una URL para una tema concreto, cuando trabajes tu enlazado interno, \u00bfqu\u00e9 <em>anchor text<\/em> vas a usar para cada URL?<\/p>\n<p>Si analizas con calma esto entender\u00e1s que, al tener al menos dos contenidos sobre la misma tem\u00e1tica o keyword principal, enlazar\u00e1s ambos internamente con diferentes textos ancla.<\/p>\n<p>Lo \u00fanico que vas a conseguir es no dejar claras tus intenciones a Google.<\/p>\n<h3>Los backlinks que consigas le dar\u00e1n m\u00e1s &#8216;fuerza&#8217; al contenido menos relevante<\/h3>\n<p>Si por el valor que aportan tus contenidos consigues enlaces desde otros dominios web, al tener canibalizaciones, corres el riesgo de que un sitio enlace, de los 2 contenidos que se canibalizan, al que menos relevante sea.<\/p>\n<p>Se puede decir que estar\u00e1s compitiendo contigo mismo. Literal.<\/p>\n<p>Piensa que esos enlaces que podr\u00eda recibir el contenido &#8216;bueno&#8217;, se los est\u00e1 llevando el que est\u00e1 frenando su posicionamiento.<\/p>\n<p><span data-sheets-root=\"1\"><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><\/span><\/p>\n<h2>C\u00f3mo detectar canibalizaciones SEO con DinoRANK<\/h2>\n<p>En otros tiempos, resolver las canibalizaciones de un sitio web era un trabajo denso que <b>requer\u00eda de muchas horas<\/b>.<\/p>\n<p>Ahora con el m\u00f3dulo de <b>Canibalizaciones<\/b> de DinoRANK, eso <b>se acab\u00f3<\/b>.<\/p>\n<p>Para demostrar lo f\u00e1cil que es detectar estas canibalizaciones, te pondr\u00e9 de ejemplo mi blog de marca personal, <em>ismaelruizg.com<\/em>, que cuenta con m\u00e1s de 500 entradas de blog. Seguiremos estos pasos:<\/p>\n<h3>1. A\u00f1ade tu proyecto a DinoRANK<\/h3>\n<p>Antes de empezar, debes agregar tu proyecto a DinoRANK, en caso de que no lo hubieras hecho ya.<\/p>\n<p>Para ello, s\u00f3lo debes hacer clic en el bot\u00f3n de <i>a\u00f1adir proyecto <\/i>que aparece en la parte superior del dashboard de DinoRANK y completar los 3 campos del formulario con los datos de tu dominio.<\/p>\n<p><span style=\"color: #0000ff;\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-22811 size-full\" title=\"A\u00f1ade tu proyecto a DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/anadir-proyecto-para-detectar-canibalizaciones-dinorank.jpeg\" alt=\"A\u00f1ade tu proyecto a DinoRANK\" width=\"1200\" height=\"582\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/anadir-proyecto-para-detectar-canibalizaciones-dinorank.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/anadir-proyecto-para-detectar-canibalizaciones-dinorank-300x146.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/anadir-proyecto-para-detectar-canibalizaciones-dinorank-1024x497.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/anadir-proyecto-para-detectar-canibalizaciones-dinorank-768x372.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/span><\/p>\n<p>Una vez hayas a\u00f1adido, despl\u00e1zate por el men\u00fa de la izquierda hasta la secci\u00f3n \u201c<i>SEO de contenidos<\/i>\u201d y haz clic en el m\u00f3dulo de \u201c<b>Canibalizaciones<\/b>\u201d.<\/p>\n<h3>2. Sincroniza Analytics y Google Search Console<\/h3>\n<p>Acto seguido, se te pedir\u00e1 que <b>sincronices tu cuenta de Google Search Console y Analytics <\/b>para poder realizar el an\u00e1lisis de intenciones de b\u00fasqueda duplicadas.<\/p>\n<p><span style=\"color: #0000ff;\"><img decoding=\"async\" class=\"aligncenter wp-image-22817 size-full\" title=\"Sincroniza Analytics y Google Search Console\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-sitio-web-para-detectar-canibalizaciones.jpeg\" alt=\"Sincroniza Analytics y Google Search Console\" width=\"1200\" height=\"570\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-sitio-web-para-detectar-canibalizaciones.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-sitio-web-para-detectar-canibalizaciones-300x143.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-sitio-web-para-detectar-canibalizaciones-1024x486.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-sitio-web-para-detectar-canibalizaciones-768x365.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/span><\/p>\n<p>Haz clic en \u201c<b>Sincronizar ahora<\/b>\u201d y se te abrir\u00e1 una ventanita con un asistente para conectar tu propiedad de Google con DinoRANK.<\/p>\n<p>Elige la que corresponda, en caso de tener varias.<\/p>\n<p><span style=\"color: #0000ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-22816 size-full\" title=\"Conectar tu propiedad de Google con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-gsc-ga4-con-dinorank-para-canibalizaciones.jpeg\" alt=\"Conectar tu propiedad de Google con DinoRANK\" width=\"1200\" height=\"586\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-gsc-ga4-con-dinorank-para-canibalizaciones.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-gsc-ga4-con-dinorank-para-canibalizaciones-300x147.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-gsc-ga4-con-dinorank-para-canibalizaciones-1024x500.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/sincronizar-gsc-ga4-con-dinorank-para-canibalizaciones-768x375.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/span><\/p>\n<h3>3. Canibalizaciones detectadas<\/h3>\n<p>Cuando termines la sincronizaci\u00f3n, la herramienta analizar\u00e1 entre todas las URLs que forman tu sitio web y te devolver\u00e1, en cuesti\u00f3n de segundos, un <b>resumen de las posibles canibalizaciones.<\/b><\/p>\n<p>Como puedes ver, te aparecer\u00e1n <b>varias posibles canibalizaciones<\/b>. En este caso, me centrar\u00e9 en analizar la primera de ellas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23056 size-full\" title=\"Canibalizaciones detectadas\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Canibalizaciones-detectadas-con-DinoRANK.jpeg\" alt=\"Canibalizaciones detectadas\" width=\"1200\" height=\"578\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Canibalizaciones-detectadas-con-DinoRANK.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Canibalizaciones-detectadas-con-DinoRANK-300x145.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Canibalizaciones-detectadas-con-DinoRANK-1024x493.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Canibalizaciones-detectadas-con-DinoRANK-768x370.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Vemos que la herramienta detecta, a trav\u00e9s de la informaci\u00f3n que le llega de Google Search Console, que estamos intentando posicionar la keyword &#8220;<em>c\u00f3mo ganar dinero desde casa<\/em>&#8221; y que <strong>tenemos dos URL&#8217;s que responden a esa misma intenci\u00f3n de b\u00fasqueda<\/strong>.<\/p>\n<p>Si te fijas en sus <em>slugs<\/em>, en un principio, mi intenci\u00f3n inicial era posicionar la long tail &#8220;<em>ganar dinero desde casa haciendo manualidades<\/em>&#8220;.<\/p>\n<p>De hecho, si <strong>nos vamos al m\u00f3dulo de Keyword Research de DinoRANK<\/strong>, comprobamos que est\u00e1 rankeado en top7 de Google. Nada mal.<\/p>\n<p><span style=\"color: #0000ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23057 size-full\" title=\"Keyword &quot;ganar dinero desde casa haciendo manualidades&quot;\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-desde-casa-haciendo.jpg\" alt=\"Keyword &quot;ganar dinero desde casa haciendo manualidades&quot;\" width=\"1200\" height=\"695\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-desde-casa-haciendo.jpg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-desde-casa-haciendo-300x174.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-desde-casa-haciendo-1024x593.jpg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-desde-casa-haciendo-768x445.jpg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/span><\/p>\n<p>Por otra parte, tenemos el segundo contenido que, seg\u00fan la herramienta, se canibaliza con el anterior.<\/p>\n<p>De igual forma, la intenci\u00f3n inicial fue la de poder posicionar por la keyword &#8220;<em>ganar dinero por internet<\/em>&#8220;, la cual comprobamos que tiene un buen volumen de b\u00fasquedas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23058 size-full\" title=\"Keyword &quot;Ganar dinero por Internet&quot;\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-por-internet.jpg\" alt=\"Keyword &quot;Ganar dinero por Internet&quot;\" width=\"1200\" height=\"718\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-por-internet.jpg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-por-internet-300x180.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-por-internet-1024x613.jpg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Ganar-dinero-por-internet-768x460.jpg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<h3>4. An\u00e1lisis y toma de decisiones<\/h3>\n<p>Es evidente que, llegados a este punto, tenemos que la herramienta nos marca como posible canibalizaci\u00f3n 2 contenidos que, en principio, no luchaban por una misma palabra clave principal.<\/p>\n<p>Ante esto, podemos analizar en profundidad cada uno de los consejos que el m\u00f3dulo de Canibalizaciones SEO nos propone.<\/p>\n<p>Pero lo importante, y que debe prevalecer ante todo, es <strong>que t\u00fa seas quien decida<\/strong> si seguir esas recomendaciones.<\/p>\n<h3>\u00bfExisten otros m\u00e9todos para encontrar canibalizaciones?<\/h3>\n<p>S\u00ed, pero todos ellos son bastante m\u00e1s tradicionales y laboriosos, y ninguno tan r\u00e1pido y efectivo como el que tiene DinoRANK.<\/p>\n<h2><b>\u00bfQu\u00e9 hacer si detectas que tus contenidos est\u00e1n canibalizando?<\/b><\/h2>\n<p>Ahora ya sabes c\u00f3mo detectarlas. Pues bien, veamos ahora qu\u00e9 hacer.<\/p>\n<p>Tras completar el an\u00e1lisis de canibalizaciones con DinoRANK a tu sitio web, has descubierto que <strong>resuelves una misma intenci\u00f3n de b\u00fasqueda con dos o m\u00e1s contenidos<\/strong>. Es decir, hay varias URL&#8217;s que est\u00e1n compitiendo entre s\u00ed.<\/p>\n<p>Una vez que has detectado esta canibalizaci\u00f3n de palabras clave, no te queda otro remedio que actuar, si no quieres que tu p\u00e1gina siga cayendo en picado, ya que Google puede interpretar que ninguna de ellas tienen un contenido completo y \u00fatil para el usuario.<\/p>\n<p>Piensa que esto <strong>provoca que la autoridad se disgregue entre ellas<\/strong>, haciendo que tu sitio web pierda fuerza en las SERPs.<\/p>\n<blockquote><p>Para que lo entiendas mejor: todos los clics que podr\u00eda llevarse una de las URL&#8217;s de tu sitio web se est\u00e1n repartiendo en dos o m\u00e1s.<\/p><\/blockquote>\n<p>Lo primero que tienes que hacer es tomar una decisi\u00f3n:<b> a qu\u00e9 URL asignar la keyword o intenci\u00f3n de b\u00fasqueda que se est\u00e1 canibalizando<\/b> para concentrar en ella todo el contenido relacionado y que empiece a posicionar.<\/p>\n<p>Una vez que la hayas elegido, tendr\u00e1s que recoger toda la informaci\u00f3n \u00fatil que estuviera diseminada en otras URL&#8217;s y reescribirla para que tome fuerza.<\/p>\n<p>Para tomar esa decisi\u00f3n puedes consultar <b>cu\u00e1l de esas URL recibe m\u00e1s visitas<\/b>, cu\u00e1l tiene <b>menor porcentaje de rebote<\/b>, en <b>cu\u00e1l se producen m\u00e1s conversiones<\/b> en caso de que las haya.<\/p>\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#acc1b5;border-radius:4px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#DFF4E8;color:#000000;border-top-left-radius:2px;border-top-right-radius:2px\">Si tienes canibalizaciones en tu web, qu\u00e9date con esta idea:<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:2px;border-bottom-right-radius:2px\">\n<p>Lo normal es elegir la URL que ya est\u00e1 bien posicionada, para no perder ese avance en el caso de que te interese mantenerlo.<\/p>\n<\/div><\/div>\n<p>Quiz\u00e1 te sorprendas con los resultados y no siempre para bien.<\/p>\n<p>No ser\u00eda la primera vez que, por ejemplo, un post posiciona mejor que una <i>landing page<\/i> cuando precisamente lo que quieres es que sea \u00e9sta \u00faltima la que posicione porque es donde se realizan las conversiones, ya sean suscripciones, ventas, reservas, etc.<\/p>\n<h3>Entonces, \u00bfqu\u00e9 hacemos con las URL&#8217;s que hemos desestimado?<\/h3>\n<p><strong>\u00a1No las borres!<\/strong> Si lo haces, perder\u00e1s la autoridad que hayan podido estar recogiendo durante el tiempo que ha durado la canibalizaci\u00f3n.<\/p>\n<p>Mi consejo es que sigas las recomendaciones que te da el propio <strong>m\u00f3dulo de Canibalizaciones de DinoRANK<\/strong>, sobre el cual te hablo m\u00e1s adelante en este mismo art\u00edculo.<\/p>\n<p>Una vez hayas identificado estos contenidos que compiten entre s\u00ed, los pasos a seguir m\u00e1s comunes son:<\/p>\n<h3><b>Crea redirecciones 301<\/b><\/h3>\n<p>Hacer una redirecci\u00f3n desde la URL que hayamos descartado hacia el enlace de la p\u00e1gina con la que canibalizaba suele ser una buena soluci\u00f3n para algunos casos.<\/p>\n<p>Una <a href=\"https:\/\/dinorank.com\/blog\/como-hacer-redireccion-301-rapido\/\" target=\"_blank\" rel=\"noopener\">redirecci\u00f3n 301 o redirect 301<\/a> es un c\u00f3digo que hace que una URL &#8216;apunte&#8217; a otra distinta evitando la aparici\u00f3n de errores 404.<\/p>\n<blockquote><p>Con el 301 estar\u00e1s creando un puente que lleva a tus usuarios directamente a la p\u00e1gina destino que te interesa.<\/p><\/blockquote>\n<p>De esta forma, reconducir\u00e1s todo el tr\u00e1fico que siga atrayendo la URL \u201cmala\u201d y evitar\u00e1s que accedan a una p\u00e1gina inexistente, lo que generar\u00eda <a href=\"https:\/\/dinorank.com\/blog\/encuentra-y-resuelve-errores-404\/\">errores (404)<\/a> y altas tasas de rebote.<\/p>\n<h3><b>Adapta el contenido<\/b><\/h3>\n<p>Una segunda opci\u00f3n muy habitual, en el caso de que no quieras prescindir de esas URL, es adaptar su contenido para una nueva keyword long tail que resuelva una intenci\u00f3n de b\u00fasqueda m\u00e1s espec\u00edfica (pero <strong>diferente<\/strong>).<\/p>\n<p>Puedes usar el m\u00f3dulo de <b>Keyword Research<\/b> en DinoRANK para conseguir ideas de palabras clave m\u00e1s concretas en base a las cuales modificar tu contenido.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23077 size-full\" title=\"Keyword Research en DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Modulo-keyword-research.jpeg\" alt=\"Keyword Research en DinoRANK\" width=\"1200\" height=\"736\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Modulo-keyword-research.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Modulo-keyword-research-300x184.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Modulo-keyword-research-1024x628.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/Modulo-keyword-research-768x471.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<h3><b>Usa URL&#8217;s can\u00f3nicas<\/b><\/h3>\n<p>Por \u00faltimo, siempre puedes hacer uso de las URL&#8217;s can\u00f3nicas, que <strong>sirven para sugerir a Google cu\u00e1l es el contenido m\u00e1s relevante de tu sitio<\/strong> web, en torno a una misma palabra clave o intenci\u00f3n de b\u00fasqueda.<\/p>\n<p>Sin embargo, creemos que no es la mejor soluci\u00f3n, ya que no transmite flujo de autoridad. Adem\u00e1s, tal como te indico se trata de \u201csugerencias\u201d, es decir, que Google puede hacer caso o no.<\/p>\n<p>Una vez que hayas solucionado la \u201cparte urgente\u201d de la <b>canibalizaci\u00f3n de palabras clave<\/b> en tu sitio web, deber\u00edas replantearte por qu\u00e9 ha ocurrido y qu\u00e9 es lo que ha podido fallar en tu estrategia a la hora de atacar determinadas keywords.<\/p>\n<h2><b>\u00bfC\u00f3mo evitar la canibalizaci\u00f3n de contenido SEO?<\/b><\/h2>\n<p>En este punto, ya sabes c\u00f3mo detectar canibalizaciones SEO en tu web y qu\u00e9 hacer si existen.<\/p>\n<p>Es el momento de conocer el procedimiento a seguir para evitarlas, porque este grave error puede parecer f\u00e1cil de evitar cuando empiezas con una nueva web, pero a medida que va creciendo y su contenido aumenta, <strong>es mejor que sigas una estrategia de prevenci\u00f3n<\/strong> con la que evites la aparici\u00f3n de estas duplicidades.<\/p>\n<p>Aqu\u00ed mi filosof\u00eda es tan clara como firme:<\/p>\n<blockquote><p>1 intenci\u00f3n de b\u00fasqueda \u2192 1 contenido o URL<\/p><\/blockquote>\n<p>Para ello, lo primero que tienes que hacer es <b>un buen an\u00e1lisis de palabras clave y decidir qu\u00e9 tipo de estrategia vas a mantener con ellas<\/b>.<\/p>\n<p>Ten en cuenta que, por lo general, un sitio web se actualiza de forma constante con nuevo contenido as\u00ed que debes tener muy presente c\u00f3mo utilizas las keywords.<\/p>\n<h3><b>Usa keywords de tipo <\/b><b>long tail<\/b><\/h3>\n<p>Algo que puedes hacer es <b>categorizar tu contenido mediante el uso de <\/b><b><i>long tails<\/i><\/b>.<\/p>\n<p>Por ejemplo, si tu sitio web es un e-commerce de ropa de mujer, seguramente habr\u00e1 t\u00e9rminos como \u201cfalda\u201d o \u201cblusa\u201d que se repitan constantemente.<\/p>\n<p>Puedes jugar con palabras clave como \u201cfalda de verano\u201d, \u201cfalda para fiestas\u201d, \u201cfalda estampada\u201d, etc. para evitar la <b>canibalizaci\u00f3n de keywords<\/b> en distintas URL.<\/p>\n<p>En el caso de que te dediques a un nicho muy limitado que no dispone de un amplio abanico de palabras clave relacionadas, deber\u00edas <b>plantear la forma en la que organizar tus contenidos<\/b>.<\/p>\n<p>Puedes usar para ello el m\u00f3dulo de <b>Generaci\u00f3n de arquitectura web<\/b> que tiene DinoBRAIN.<\/p>\n<p>Por ejemplo, para un nicho que trate sobre \u201c<b>fuentes para jard\u00edn<\/b>\u201d, es muy complicado encontrar un abanico de palabras clave relacionadas con las que generar contenido.<\/p>\n<p>Si introduces esta tem\u00e1tica en el <b>generador de arquitectura con IA<\/b> de DinoBRAIN, obtendr\u00e1s una serie de ideas de contenido interesantes para este nicho, adem\u00e1s de la arquitectura a seguir:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23078 size-full\" title=\"Idea de arquitectura web\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/ideas-keywords-long-tail-dinorank-1.jpeg\" alt=\"Idea de arquitectura web\" width=\"1200\" height=\"578\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/ideas-keywords-long-tail-dinorank-1.jpeg 1200w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/ideas-keywords-long-tail-dinorank-1-300x145.jpeg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/ideas-keywords-long-tail-dinorank-1-1024x493.jpeg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/05\/ideas-keywords-long-tail-dinorank-1-768x370.jpeg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Piensa que 10 contenidos cuidados y trabajados pueden proporcionarte un mejor posicionamiento que 30 contenidos que respondan a una misma intenci\u00f3n de b\u00fasqueda y que acaben canibaliz\u00e1ndose los unos a los otros.<\/p>\n<h3><b>Aplica la etiqueta \u201cnoindex\u201d<\/b><\/h3>\n<p>Otra opci\u00f3n es aplicar la etiqueta \u201cnoindex\u201d a las URL&#8217;s <b>en las que se repitan palabras clave que te interesa posicionar con otro contenido<\/b>.<\/p>\n<p>De esta forma, los buscadores pasar\u00e1n de largo y no la mostrar\u00e1n en los resultados de b\u00fasqueda.<\/p>\n<p>Es una soluci\u00f3n muy \u00fatil, en especial para los e-commerce, que pueden desactivar la indexaci\u00f3n de p\u00e1ginas de productos para posicionar directamente las categor\u00edas.<\/p>\n<h3><b>Recicla URL&#8217;s<\/b><\/h3>\n<p>Piensa tambi\u00e9n en el tipo de contenido que sueles publicar en tu web y c\u00f3mo gestionarlo para <b>evitar la canibalizaci\u00f3n seo<\/b>.<\/p>\n<p>Por ejemplo, si tienes un e-commerce y cada verano haces ofertas especiales, no tiene sentido que todos los a\u00f1os crees un nuevo post anunciando esas ofertas tipo \u201c\/ofertas-verano-2023\u201d, \u201c\/ofertas-verano-2024\u2033, etc.<\/p>\n<p>Es mejor que tengas una sola p\u00e1gina con la url o slug \u201c\/ofertas-verano\/\u201d y vayas renovando su contenido cada a\u00f1o.<\/p>\n<p>Por otro lado, en el caso de querer anunciar eventos, ofertas u otro tipo de actividad que se repite de forma peri\u00f3dica, es mejor promocionar las nuevas ediciones mediante otras herramientas como las redes sociales o la newsletter, sin tener que estar creando nuevos posts que te puedan hacer caer en la canibalizaci\u00f3n.<\/p>\n<h3><b>Usa el <\/b><b>link building<\/b><\/h3>\n<p>Para finalizar, <b>haz un uso adecuado del <\/b><b><i>link building<\/i><\/b>, tanto interno como externo, para que Google y, por tanto, los usuarios, tengan bien claro d\u00f3nde est\u00e1 el contenido importante en tu sitio web y cu\u00e1les son las URL que rankean por determinadas keywords.<\/p>\n<p>Adem\u00e1s, ayudar\u00e1 a eliminar la posible ambig\u00fcedad del contenido.<\/p>\n<p>Para analizarlo, te recomiendo utilizar el <strong>m\u00f3dulo de link building de DinoRANK<\/strong>. Con \u00e9l podr\u00e1s ver todas las URLs externas que enlazan a tu web y con qu\u00e9 <a href=\"https:\/\/dinorank.com\/blog\/diccionario-seo\/que-es-anchor-text\/\">anchor text<\/a> lo hacen.<\/p>\n<p>Tambi\u00e9n puedes saber la calidad de dicho enlace gracias al LB Rank para determinar cu\u00e1les son m\u00e1s valiosos.<\/p>\n<p>Para <a href=\"https:\/\/dinorank.com\/blog\/como-conseguir-enlaces-de-calidad\/\" target=\"_blank\" rel=\"noopener\">encontrar buenos enlaces<\/a> para tu contenido no hay una la f\u00f3rmula m\u00e1gica. Simplemente tendr\u00e1s que seguir los factores o directrices b\u00e1sicas. Algunos de ellos son:<\/p>\n<ul>\n<li>Tr\u00e1fico del dominio<\/li>\n<li>Relevancia sem\u00e1ntica<\/li>\n<li>Autoridad de marca<\/li>\n<li>EDE (Est\u00e1ndar de Excelencia)<\/li>\n<li>Aspectos t\u00e9cnicos<\/li>\n<\/ul>\n<h2>Detectar las canibalizaciones SEO ahora ser\u00e1 para ti m\u00e1s f\u00e1cil que nunca<\/h2>\n<p>Hay que<b> evitar confundir al usuario<\/b>, puesto que la misma intenci\u00f3n de b\u00fasqueda con diferentes contenidos pueden provocar que Google no sepa exactamente en qu\u00e9 URL resuelve mejor la duda del usuario.<\/p>\n<p>Si esto ocurre, la soluci\u00f3n que tomar\u00e1 el usuario es muy sencilla: pasar al siguiente resultado y no hacer clic en tu sitio web.<\/p>\n<p>Afortunadamente, detectar la canibalizaci\u00f3n de palabras clave con DinoRANK es tan sencillo como elegir esta opci\u00f3n en el men\u00fa lateral izquierdo, as\u00ed que no tendr\u00e1s que perder tiempo en la b\u00fasqueda de <b>canibalizaciones <\/b>en tu sitio web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfAlguna vez te has encontrado una p\u00e1gina de tu sitio web que, por muchas mejoras SEO que le hagas, no logras posicionarla bien? En estos casos, puede que est\u00e9s ante una situaci\u00f3n m\u00e1s com\u00fan de lo que crees en el mundo del SEO: La Canibalizaci\u00f3n. La canibalizaci\u00f3n es un problema que no afecta al funcionamiento [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":23381,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-1788","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\/1788","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=1788"}],"version-history":[{"count":4,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/1788\/revisions"}],"predecessor-version":[{"id":29480,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/1788\/revisions\/29480"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/23381"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=1788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=1788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=1788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}