{"id":20520,"date":"2020-12-17T12:00:41","date_gmt":"2020-12-17T11:00:41","guid":{"rendered":"https:\/\/dinorank.com\/blog\/?p=3080"},"modified":"2026-04-15T10:41:59","modified_gmt":"2026-04-15T08:41:59","slug":"como-hacer-seo-en-shopify","status":"publish","type":"post","link":"https:\/\/dinorank.com\/blog\/seo-para-shopify\/","title":{"rendered":"C\u00f3mo hacer SEO en Shopify: gu\u00eda esencial"},"content":{"rendered":"<div class=\"su-note border=#000000\"  style=\"border-color:#007963;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#00937D;border-color:#ccffff;color:#ffffff;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\">Este art\u00edculo ha sido actualizado en el mes de marzo de 2026 y se revisa peri\u00f3dicamente cada 2 meses para a\u00f1adir informaci\u00f3n relevante en funci\u00f3n de las novedades de cada momento.<\/div><\/div>\n<p>El SEO se puede aplicar a cualquier tipo de web y eso incluye los ecommerce, sea cual sea la plataforma en la que est\u00e1 funcionando. Hasta hace no mucho se ten\u00eda la idea de que una tienda online no necesitaba SEO pero,<strong> \u00bfacaso no quieres que tu ecommerce posicione y tenga visitas que conviertan?<\/strong><\/p>\n<p><a href=\"https:\/\/dinorank.com\/blog\/descubre-dinorank\/\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-24924 size-large\" title=\"Aumenta tus visitas desde Google con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-1024x427.png\" alt=\"Aumenta tus visitas desde Google con DinoRANK\" width=\"1024\" height=\"427\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-1024x427.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-300x125.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-768x321.png 768w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank.png 1071w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Es cierto que <a href=\"https:\/\/dinorank.com\/blog\/seo-para-ecommerce\/\">el SEO que se trabaja en un ecommerce<\/a> puede ser distinto del que se hace con otro tipo de p\u00e1ginas, en especial si est\u00e1s trabajando con Shopify.<\/p>\n<p>Por ello,\u00a0<strong>si te est\u00e1s preguntando como hacer el SEO en Shopify desde DinoRANK te lo contamos<\/strong> para que tu tienda online pueda generar m\u00e1s ventas gracias a su buen posicionamiento.<\/p>\n<h2>\u00bfEs posible trabajar activamente en mejorar el posicionamiento SEO en Shopify?<\/h2>\n<p>Como te dec\u00edamos al principio, es perfectamente posible<strong>\u00a0hacer SEO en tu tienda Shopify<\/strong> para posicionar tu ecommerce y conseguir tr\u00e1fico org\u00e1nico para aumentar tus ventas.<\/p>\n<p>De hecho, Shopify cuenta con algunas caracter\u00edsticas precisamente enfocadas al SEO por lo que si est\u00e1s usando este CMS ya tienes ciertas ventajas en este aspecto. M\u00e1s adelante te contamos cu\u00e1les son estas opciones y c\u00f3mo debes utilizarlas.<\/p>\n<p><strong>Si has creado una tienda online con Shopify y quieres hacer SEO con ella, sigue leyendo esta gu\u00eda<\/strong> porque te vamos a contar todos los pasos que debes seguir para posicionar tu ecommerce.<\/p>\n<div id=\"brxe-5c527e\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-d69b57\" class=\"brxe-text-basic h2\">Multiplica las visitas a tu tienda online en 3 pasos\n<\/div><div id=\"brxe-445cc8\" class=\"brxe-text-basic\"><strong>Descarga gratis<\/strong> <strong>esta masterclass<\/strong> de SEO para eCommerce y aprende a conseguir <strong>tr\u00e1fico cualificado desde Google<\/strong>.\n<\/div><div id=\"brxe-dec6ff\" data-script-id=\"dec6ff\" 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_303_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_303_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_303_._form-top{top:0}#_form_303_._form-bottom{bottom:0}#_form_303_._form-left{left:0}#_form_303_._form-right{right:0}#_form_303_ input[type=\"text\"],#_form_303_ input[type=\"tel\"],#_form_303_ input[type=\"date\"],#_form_303_ 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_303_ textarea{resize:none}#_form_303_ ._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_303_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_303_ ._submit.processing{position:relative}#_form_303_ ._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_303_ ._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_303_ ._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_303_ ._close-icon:before{position:relative}#_form_303_ ._form-body{margin-bottom:30px}#_form_303_ ._form-image-left{width:150px;float:left}#_form_303_ ._form-content-right{margin-left:164px}#_form_303_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_303_ ._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_303_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_303_ ._form-label,#_form_303_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_303_._dark ._form-branding{color:#333}#_form_303_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_303_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_303_ ._form_element *{font-size:14px}#_form_303_ ._form_element._clear{clear:both;width:100%;float:none}#_form_303_ ._form_element._clear:after{clear:left}#_form_303_ ._form_element input[type=\"text\"],#_form_303_ ._form_element input[type=\"date\"],#_form_303_ ._form_element select,#_form_303_ ._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_303_ ._field-wrapper{position:relative}#_form_303_ ._inline-style{float:left}#_form_303_ ._inline-style input[type=\"text\"]{width:150px}#_form_303_ ._inline-style:not(._clear){margin-right:20px}#_form_303_ ._form_element img._form-image{max-width:100%}#_form_303_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_303_ ._clear-element{clear:left}#_form_303_ ._full_width{width:100%}#_form_303_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_303_ input[type=\"text\"]._has_error,#_form_303_ textarea._has_error{border:#F37C7B 1px solid}#_form_303_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_303_ ._show_be_error{float:left}#_form_303_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_303_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_303_ ._error._below{padding-top:8px;top:100%;right:0}#_form_303_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_303_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_303_ ._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_303_ ._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_303_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_303_ ._button-wrapper ._error-inner._form_error{position:static}#_form_303_ ._error-inner._no_arrow{margin-bottom:10px}#_form_303_ ._error-arrow{position:absolute;width:0;height:0}#_form_303_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_303_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_303_ select.datetime_time{width:29%;display:inline;height:32px}#_form_303_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_303_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_303_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_303_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_303_ ._form-content{margin:0;width:100%}#_form_303_ ._form-inner{display:block;min-width:100%}#_form_303_ ._form-title,#_form_303_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_303_ ._form-title{font-size:1.2em}#_form_303_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_303_ ._form-element,#_form_303_ ._inline-style,#_form_303_ input[type=\"text\"],#_form_303_ label,#_form_303_ p,#_form_303_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_303_ ._row._checkbox-radio label{display:inline}#_form_303_ ._row,#_form_303_ p,#_form_303_ label{margin-bottom:0.7em;width:100%}#_form_303_ ._row input[type=\"checkbox\"],#_form_303_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_303_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_303_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_303_ ._form-image{max-width:100%;height:auto !important}#_form_303_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_303_ input[type=\"radio\"],#_form_303_ 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_303_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_303_ ._inline-style{margin:20px 0 0 !important}#_form_303_ ._inline-style input[type=\"text\"]{width:100%}}#_form_303_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_303_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_303_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_303_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_303_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_303_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_303_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_303_ .field-required{color:#FF0000}#_form_303_{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_303_ ._show_be_error{min-width:100%}#_form_303_._inline-form,#_form_303_._inline-form ._form-content{font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_303_._inline-form ._row span,#_form_303_._inline-form ._row label{font-family:Source Sans Pro;font-size:14px;font-weight:400;line-height:1.6em;color:#888 !important}#_form_303__inlineform input[type=\"text\"],#_form_303__inlineform input[type=\"date\"],#_form_303__inlineform input[type=\"tel\"],#_form_303__inlineform select,#_form_303__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_303_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_303_._inline-form .sms_consent_message,#_form_303_._inline-form ._form-thank-you{font-family:Source Sans Pro;font-size:14px;font-weight:400;color:#888 !important}#_form_303_._inline-form ._form-label,#_form_303_._inline-form ._form-emailidentifier,#_form_303_._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_303_._inline-form ._submit{margin-top:12px;font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_303_._inline-form ._html-code h1,#_form_303_._inline-form ._html-code h2,#_form_303_._inline-form ._html-code h3,#_form_303_._inline-form ._html-code h4,#_form_303_._inline-form ._html-code h5,#_form_303_._inline-form ._html-code h6,#_form_303_._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_303_._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_303_:before,#_form_303_:after{content:\" \";display:table}#_form_303_:after{clear:both}#_form_303_._inline-style{width:auto;display:inline-block}#_form_303_._inline-style input[type=\"text\"],#_form_303_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_303_._inline-style button._inline-style{position:relative;top:27px}#_form_303_._inline-style p{margin:0}#_form_303_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_303_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_303_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_303_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_303_ .iti{width:100%}#_form_303_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_303_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_303_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_303_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_303_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_303_ .iti__country-list--dropup{margin-bottom:4px}#_form_303_ .phone-error-hidden{display:none}#_form_303_ .phone-error{color:#E40E49}#_form_303_ .phone-input-error{border:1px solid #E40E49 !important}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_303_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_303_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:18px !important;font-weight:500 !important}#_form_303_ ._submit:hover{background-color:#04937E !important}#_form_303_ input#email{padding:3px 12px;background-color:#ffffff;border-radius:2px}#_form_303_._form{margin-top:-5px}#_form_303_ ._error._below{position:relative !important}#_form_303_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_303_ ._form_element{margin:0 0 0px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_303_\" class=\"_form _form_303 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"303\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"303\" \/>\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=\"513de613934ca8ef70dd17b0c29f683d\" \/>\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_303_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_303_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_303_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(\"303\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"303\", \"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_303_');\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_303_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_303_')).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(\"303\", \"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_303 ._checkbox-radio label {\n  display: inline !important;\n  margin-left: 4px !important;\n}\n\n\/* Color blanco del texto \"Verifica que eres un humano\" *\/\n._form_303 label[for=\"ls\"],\n._form_303 ._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_303_ #email::placeholder {\n  color: #002132 !important;\n}\n\n\/* Altura del campo de email reducida *\/\n#_form_303_ #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 es el SEO Manager de Shopify?<\/h2>\n<p>Antes que nada, si tienes una tienda online en Shopify te recomendamos que instales la app SEO Manager de Shopify, <strong>una poderosa herramienta enfocada al posicionamiento<\/strong> en este CMS que te ayudar\u00e1 a controlar la forma en la que los robots de b\u00fasqueda acceden y visualizan tu ecommerce.<\/p>\n<p>Gracias a SEO Manager de Shopify podr\u00e1s llevar a cabo acciones como:<\/p>\n<ul>\n<li>Conectar tu ecommerce con <strong>Google Search Console<\/strong><\/li>\n<li>Controlar <strong>el rastreo y la indexaci\u00f3n<\/strong><\/li>\n<li><strong>Previsualizar<\/strong> el aspecto de tu ecommerce en las SERPs<\/li>\n<li>Encontrar <strong>sugerencias acerca de palabras clave<\/strong> hacia las que apuntar<\/li>\n<li><strong>Analizar tu web<\/strong> en t\u00e9rminos de SEO<\/li>\n<li><strong>Ajustar las im\u00e1genes<\/strong> de tu tienda online y a\u00f1adir el atributo alt<\/li>\n<li>Descubrir<strong> enlaces rotos y p\u00e1ginas que no funcionan<\/strong><\/li>\n<li><strong>Controlar el stock<\/strong> e indicar qu\u00e9 productos deben aparecer en qu\u00e9 momento en Google, perfecto si cuentas con productos de car\u00e1cter estacional en tu cat\u00e1logo<\/li>\n<li>Configurar el <strong>sitemap<\/strong> seg\u00fan tus necesidades<\/li>\n<\/ul>\n<p>Esta aplicaci\u00f3n tiene varios planes de pago, para que puedas elegir el que mejor se adapte a tus necesidades, y puedes darte de baja en cualquier momento sin penalizaciones. Te recomendamos acceder a su prueba de 7 d\u00edas gratis para que compruebes si te merece la pena.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-3089\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/Shopify-ecommerce.png\" alt=\"Shopify-ecommerce\" width=\"809\" height=\"246\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/Shopify-ecommerce.png 809w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/Shopify-ecommerce-300x91.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/Shopify-ecommerce-768x234.png 768w\" sizes=\"(max-width: 809px) 100vw, 809px\" \/><\/p>\n<h2>C\u00f3mo hacer SEO con Shopify para mejorar el posicionamiento web<\/h2>\n<p>Antes te cont\u00e1bamos que Shopify cuenta con opciones que puedes configurar para trabajar el SEO de tu ecommerce y ganar tr\u00e1fico org\u00e1nico que a su vez te genere un mayor n\u00famero de ventas. <strong>Podr\u00e1s aprender c\u00f3mo mejorar el SEO en Shopify con esta gu\u00eda\u00a0<\/strong>mediante la cual queremos que aprendas a trabajar el posicionamiento de tu tienda online.<\/p>\n<p>Lo primero que debes hacer es ir al apartado Search Engines de tu Shopify para modificar dos elementos muy importantes:<\/p>\n<ul>\n<li><strong>Page Title<\/strong>. Se aplica a tu web pero tambi\u00e9n se puede configurar para categor\u00edas, productos y entradas del blog. Es el t\u00edtulo que aparecer\u00e1 en los resultados de b\u00fasqueda de Google as\u00ed que debe ser atractivo para destacar entre el resto de enlaces.<\/li>\n<li><strong>Meta description<\/strong>. Es la segunda parte de la previsualizaci\u00f3n de tu enlace es la SERPs y es el apartado donde podr\u00e1s explicar en un par de l\u00edneas qu\u00e9 es lo que encontrar\u00e1 su hace click.<\/li>\n<\/ul>\n<p>En este mismo apartado tambi\u00e9n podr\u00e1s <strong>modificar los encabezados, es decir, los H1, H2, H3, etc\u00e9tera, para crear estructuras coherentes<\/strong> que ayuden tanto a Google como al usuario a comprender el contenido de tu ecommerce.<\/p>\n<p>Por supuesto, esto da por hecho que ya has hecho un<a href=\"https:\/\/dinorank.com\/blog\/como-hacer-keyword-research\/\"><strong> Keyword Research<\/strong><\/a> y que ya sabes por qu\u00e9 palabras claves quieres posicionar. No emprendas acciones SEO en tu ecommerce antes de tener esto claro ya que, de lo contrario, puede perjudicar tu posicionamiento. Recuerda que <a href=\"https:\/\/dinorank.com\/\" target=\"_blank\" rel=\"noopener\">puedes usar <strong>DinoRANK<\/strong> para trabajar con tus palabras clave<\/a>.<\/p>\n<p><a href=\"https:\/\/dinorank.com\/seccion-keyword-research\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter wp-image-30904 size-full\" title=\"Descubre el Keyword Research de DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/1.jpg\" alt=\"Descubre el Keyword Research de DinoRANK\" width=\"800\" height=\"800\" \/><\/a><\/p>\n<p>Por \u00faltimo aseg\u00farate de <strong>enviar el sitemap de tu Shopify a Google mediante Search Console<\/strong> para que tu contenido pueda ser rastreado e indexado y que, de esta manera, aparezca en los resultados de b\u00fasqueda de Google.<\/p>\n<h2>Problemas relacionados con el SEO en Shopify y c\u00f3mo solucionarlos<\/h2>\n<p>Ya\u00a0has visto que hacer SEO en Shopify es perfectamente\u00a0viable.<\/p>\n<p>Ahora\u00a0bien, <strong>Shopify tiene sus propias\u00a0reglas <\/strong>y, si no las conoces, puedes estar perdiendo tr\u00e1fico sin darte\u00a0cuenta.<\/p>\n<p>A\u00a0continuaci\u00f3n te cuento los problemas m\u00e1s habituales y c\u00f3mo puedes gestionarlos.<\/p>\n<h3>1. La\u00a0estructura de URLs: aqu\u00ed no decides\u00a0t\u00fa<\/h3>\n<p>Shopify es r\u00edgido con la denominaci\u00f3n de las subcarpetas\u00a0y <strong>no te deja cambiar ciertas partes de su estructura, como \/products\/, \/collections\/, \/pages\/ o\u00a0\/blogs\/<\/strong>.<\/p>\n<p>Eso\u00a0significa que si quieres una URL\u00a0tipo<\/p>\n<p><code>tienda.com\/hombre\/chaquetas<\/code>,<\/p>\n<p>no la vas a poder crear, ya que Shopify la convertir\u00e1 en algo\u00a0como<\/p>\n<p><code>tienda.com\/collections\/chaquetas-hombre<\/code>.<\/p>\n<p>Y\u00a0eso limita mucho la <a href=\"https:\/\/dinorank.com\/blog\/arquitectura-seo-transaccional\/\">arquitectura SEO<\/a>, ya que dificulta crear silos profundos y sem\u00e1nticos.<\/p>\n<p>\u00bfQu\u00e9 puedes\u00a0hacer?<\/p>\n<p>Primero, <strong>trabajar bien los nombres de colecciones y\u00a0productos<\/strong>, porque forman parte de la\u00a0URL.<\/p>\n<p>Y\u00a0segundo, <strong>cuidar el <a href=\"https:\/\/dinorank.com\/blog\/enlazado-interno-seo\/\">enlazado interno<\/a> para reforzar la\u00a0jerarqu\u00eda<\/strong> que Shopify no te deja construir con\u00a0carpetas.<\/p>\n<p>Recuerda que <a href=\"https:\/\/dinorank.com\/seccion-enlazado-interno\/\" target=\"_blank\" rel=\"noopener\">con DinoRANK puedes revisar el interlinking de tus p\u00e1ginas muy f\u00e1cilmente<\/a> y conocer tambi\u00e9n cu\u00e1l es la fuerza que est\u00e1n recibiendo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-534 size-full\" title=\"enlazado interno con dinorank\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/09\/enlazado-interno-con-dinorank.png\" alt=\"enlazado interno con dinorank\" width=\"500\" height=\"499\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/09\/enlazado-interno-con-dinorank.png 500w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/09\/enlazado-interno-con-dinorank-300x300.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/09\/enlazado-interno-con-dinorank-370x369.png 370w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/09\/enlazado-interno-con-dinorank-150x150.png 150w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Por\u00a0otro lado, tambi\u00e9n te puede venir bien analizar qu\u00e9 arquitectura est\u00e1n usando tus competidores y qu\u00e9 URLs les est\u00e1n dando m\u00e1s tr\u00e1fico. Con\u00a0el m\u00f3dulo\u00a0de <a href=\"https:\/\/dinorank.com\/seccion-visibilidad\/\" target=\"_blank\" rel=\"noopener\"><strong>Visibilidad y Competencia de\u00a0DinoRANK<\/strong><\/a> puedes ver qu\u00e9 categor\u00edas y p\u00e1ginas est\u00e1n empujando su crecimiento y detectar patrones que puedes replicar, respetando las limitaciones de Shopify.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-23519 size-full\" title=\"Gr\u00e1fica de visibilidad de DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/06\/propuesta-seo-auditoria-previa-dinorank-visibilidad.png\" alt=\"Gr\u00e1fica de visibilidad de DinoRANK\" width=\"1024\" height=\"717\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/06\/propuesta-seo-auditoria-previa-dinorank-visibilidad.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/06\/propuesta-seo-auditoria-previa-dinorank-visibilidad-300x210.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/06\/propuesta-seo-auditoria-previa-dinorank-visibilidad-768x538.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3>2. Contenido duplicado entre colecciones y\u00a0productos<\/h3>\n<p>Este\u00a0es uno de los puntos m\u00e1s comentados por la comunidad de\u00a0Shopify.<\/p>\n<p>Por\u00a0defecto, cuando enlazas un producto desde una colecci\u00f3n, Shopify puede generar URLs\u00a0como:<\/p>\n<p><code>\/collections\/ropa-deportiva\/products\/zapatilla-running<\/code><\/p>\n<p>Pero\u00a0la URL principal del producto\u00a0es:<\/p>\n<p><code>\/products\/zapatilla-running<\/code><\/p>\n<p><strong>Como supondr\u00e1s, el problema es que Google puede rastrear varias versiones del mismo\u00a0producto<\/strong> si aparece en distintas colecciones, lo que implica desperdiciar presupuesto de\u00a0rastreo.<\/p>\n<p>La\u00a0soluci\u00f3n pasa por tocar el c\u00f3digo fuente para que los enlaces internos apunten siempre a la URL can\u00f3nica del producto, es decir, la\u00a0versi\u00f3n <code>\/products\/<\/code>.<\/p>\n<p>Adem\u00e1s, conviene revisar si ya tienes <a href=\"https:\/\/dinorank.com\/blog\/canibalizacion-seo\/\">canibalizaciones SEO<\/a> activas. Si\u00a0no sabes si dos URLs est\u00e1n compitiendo por la misma keyword, el <a href=\"https:\/\/dinorank.com\/seccion-canibalizaciones\/\" target=\"_blank\" rel=\"noopener\"><strong>m\u00f3dulo\u00a0de Detecci\u00f3n de Canibalizaciones de\u00a0DinoRANK<\/strong><\/a> te lo muestra de forma clara. As\u00ed puedes decidir qu\u00e9 p\u00e1gina debe ser la principal y reforzarla.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-21276 size-large\" title=\"canibalizaciones SEO con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones-1024x465.png\" alt=\"canibalizaciones SEO con DinoRANK\" width=\"1024\" height=\"465\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones-1024x465.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones-300x136.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones-768x349.png 768w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones-1536x697.png 1536w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2019\/06\/canibalizaciones.png 1884w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3>3. P\u00e1ginas de etiquetas: cuidado con el thin\u00a0content<\/h3>\n<p>Las\u00a0etiquetas en Shopify generan p\u00e1ginas autom\u00e1ticas del\u00a0tipo:<\/p>\n<p><code>\/collections\/all\/color-rojo<\/code><\/p>\n<p>El\u00a0filtro es \u00fatil para el usuario. El\u00a0problema es que muchas de esas p\u00e1ginas no tienen contenido propio, ni metaetiquetas optimizadas, ni valor diferencial.<\/p>\n<p>Al final tienes <strong>cientos o miles de URLs con contenido\u00a0pobre<\/strong>, muy similar al de la colecci\u00f3n principal.<\/p>\n<p>Y eso puede derivar en canibalizaciones o en una percepci\u00f3n de baja calidad a nivel de dominio.<\/p>\n<p>Aqu\u00ed tienes varias\u00a0opciones:<\/p>\n<ul>\n<li>Desindexar las p\u00e1ginas de etiquetas que no aportan\u00a0valor.<\/li>\n<li>Optimizar solo aquellas que tengan una intenci\u00f3n de b\u00fasqueda real y\u00a0volumen.<\/li>\n<li>Evitar\u00a0que se generen combinaciones innecesarias.<\/li>\n<\/ul>\n<p>Para\u00a0decidir cu\u00e1les merecen la pena, un buen keyword research es fundamental. No\u00a0se trata de optimizar todas las etiquetas, sino solo las que responden a una b\u00fasqueda\u00a0real.<\/p>\n<p><a href=\"https:\/\/dinorank.com\/seccion-keyword-research\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-30945 size-large\" title=\"Descubre el Keyword Research de DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4-1024x576.jpg\" alt=\"Descubre el Keyword Research de DinoRANK\" width=\"1024\" height=\"576\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4-1024x576.jpg 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4-300x169.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4-768x432.jpg 768w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4-1536x864.jpg 1536w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2025\/11\/4.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h3>4. Sitemap y robots.txt\u00a0con margen de maniobra\u00a0limitado<\/h3>\n<p>Shopify <strong>genera el sitemap autom\u00e1ticamente<\/strong>\u00a0y no puedes editarlo a mano para quitar una URL concreta.<\/p>\n<p>Si\u00a0algo aparece en el sitemap, solo puedes eliminarlo borrando la p\u00e1gina o usando\u00a0noindex.<\/p>\n<p>Con\u00a0el archivo robots.txt\u00a0ocurre algo parecido. Ahora\u00a0se puede editar\u00a0mediante <code>robots.txt.liquid<\/code>, pero cualquier modificaci\u00f3n es una personalizaci\u00f3n no soportada oficialmente y, si rompes algo, el soporte no se hace responsable.<\/p>\n<p>Por\u00a0eso nuestra recomendaci\u00f3n es\u00a0que <strong>toques solo lo necesario y \u00fanicamente si sabes con seguridad lo que est\u00e1s haciendo<\/strong>.<\/p>\n<p>Antes\u00a0de bloquear secciones enteras, revisa qu\u00e9 tr\u00e1fico org\u00e1nico est\u00e1n generando esas p\u00e1ginas. A\u00a0veces eliminamos URLs pensando que no sirven y estamos perdiendo oportunidades.<\/p>\n<h3>5. Las\u00a0apps y el rendimiento<\/h3>\n<p>Shopify funciona bastante bien y r\u00e1pido, hasta que empiezas a instalar apps sin\u00a0control.<\/p>\n<p>Contadores, popups, rese\u00f1as, notificaciones, chatbots,&#8230; Cada\u00a0app suele a\u00f1adir scripts que se cargan en todo el sitio, aunque solo se usen en una secci\u00f3n\u00a0concreta.<\/p>\n<p><strong>Y eso implica una p\u00e9rdida notable de rendimiento.<\/strong><\/p>\n<blockquote><p>Una tienda lenta es un freno directo al SEO y a la conversi\u00f3n.<\/p><\/blockquote>\n<p>Por\u00a0eso, te recomendamos\u00a0que:<\/p>\n<ul>\n<li>Revises qu\u00e9 apps usas realmente.<\/li>\n<li>Elimines las que no aportan ventas\u00a0claras.<\/li>\n<li>Sustituyas varias apps por una soluci\u00f3n m\u00e1s ligera si es\u00a0posible.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3090\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plugins-shopify.jpg\" alt=\"plugins-shopify\" width=\"1000\" height=\"388\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plugins-shopify.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plugins-shopify-300x116.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plugins-shopify-768x298.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h3>6. SEO\u00a0para agentes de IA en\u00a0Shopify<\/h3>\n<p>En\u00a0el momento actual ya no solo optimizamos para Google. Tambi\u00e9n optimizamos para los asistentes basados en\u00a0IA.<\/p>\n<blockquote><p>Shopify est\u00e1 apostando fuerte por los Agentic Storefronts y su asistente de IA, llamado\u00a0Sidekick.<\/p><\/blockquote>\n<p>Ambas son herramientas de inteligencia artificial. La diferencia es que <strong>Sidekick es una herramienta interna<\/strong>, para ayudar al due\u00f1o de la tienda a crear y optimizar su eCommerce, mientras que <strong>los Agentic Storefronts est\u00e1n pensados para el comprador<\/strong>, para ayudarle a encontrar el producto que\u00a0necesita.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-32881 size-full\" title=\"Shopify y Sidekick\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/shopify-sidekick.png\" alt=\"Shopify y Sidekick\" width=\"1024\" height=\"468\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/shopify-sidekick.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/shopify-sidekick-300x137.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/shopify-sidekick-768x351.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>De\u00a0cara al SEO, debes tener en cuenta esta tecnolog\u00eda novedosa y considerar tambi\u00e9n sus\u00a0matices.<\/p>\n<p><strong>Sidekick es un asistente muy \u00fatil para ayudarte con tareas tediosas<\/strong>, como las descripciones de productos o las etiquetas meta. Pero no debes abusar de \u00e9l si no quieres que tu tienda suene demasiado a IA y que todos tus contenidos parezcan iguales.<\/p>\n<blockquote><p>Aprovecha Sidekick para generar primeras versiones de tus textos y luego aporta tus elementos diferenciales.<\/p><\/blockquote>\n<p>En\u00a0cuanto a los Agentic Storefronts, para que puedan ofrecer recomendaciones personalizadas,<strong> preoc\u00fapate por dar descripciones detalladas en tus fichas de producto, resolver las dudas m\u00e1s habituales de los usuarios o relacionar cada producto con otros productos complementarios<\/strong>.<\/p>\n<p>Y\u00a0<strong>no te olvides del marcado Schema<\/strong>, un elemento fundamental para que los Agentes sepan interpretar tus contenidos sin lugar a\u00a0dudas.<\/p>\n<h2>Los mejores plugins SEO de Shopify<\/h2>\n<p>Adem\u00e1s de estas funciones existen una serie de plugins externos (o Apps) que puedes instalar en tu Shopify para que te resulte m\u00e1s sencillo<strong> gestionar determinados aspectos relacionados con el posicionamiento de tu tienda online<\/strong>.<\/p>\n<p>Recuerda que debes instalar solo aquellos que realmente necesitas y borrar los que hayas probado y no te hayan convencido ya que no es recomendable tener demasiados plugins en tu CMS.<\/p>\n<p>Entre otras cosas, <strong>un exceso de plugins afecta a la velocidad de carga<\/strong> y ello, a la experiencia del usuario lo que tiene una implicaci\u00f3n directa en el posicionamiento de tu tienda online \ud83d\ude09<\/p>\n<h3>Schema Plus for SEO<\/h3>\n<p>Gracias a este plugin podr\u00e1s aplicar <strong>datos enriquecidos<\/strong> en el contenido de tu web\u00a0 que ayuden a Google a comprender qu\u00e9 es lo que hay en un ecommerce. Al introducir estos datos sem\u00e1nticos en forma de esquema, los robos entienden mejor tu web y, por tanto, har\u00e1n que mejore tu posicionamiento.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3091\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plug-in-seo-shopify.png\" alt=\"plug-in-seo-shopify\" width=\"1000\" height=\"244\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plug-in-seo-shopify.png 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plug-in-seo-shopify-300x73.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/plug-in-seo-shopify-768x187.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h3>Plug in SEO<\/h3>\n<p>Este plugin realiza una<strong> auditor\u00eda SEO de tu Shopify<\/strong> de forma que sabr\u00e1s de forma r\u00e1pida cu\u00e1les son los errores que est\u00e1s cometiendo y que tienes que solucionar cuanto antes. Si no tienes demasiada experiencia te ser\u00e1 muy \u00fatil para que detectar\u00e1 por ti todo aquello que hay que mejorar y arreglar.<\/p>\n<h3>SEO Image Optimizer<\/h3>\n<p>Es una herramienta mediante la que <strong>gestionar todo el SEO de tu ecommerce de forma autom\u00e1tica<\/strong>, ahorr\u00e1ndote as\u00ed el m\u00e1ximo de tiempo posible. Es uno de los plugins de Shopify m\u00e1s populares ya que, una vez que lo configuras, puedes dejarlo funcionando sin tener que preocuparte de nada m\u00e1s.<\/p>\n<h3>Bulk Image Edit<\/h3>\n<p>Este plugin para im\u00e1genes permite<strong> tratar por completo cada una de las fotos que tienes en tu ecommerce<\/strong>. Te permitir\u00e1 ajustar el formato de forma autom\u00e1tica conforme a los est\u00e1ndares de Shopify y adem\u00e1s, cambiar los nombres para que se ajusten m\u00e1s al SEO y comprimir las im\u00e1genes para que ocupen menos espacio en tu servidor.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3092\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-booster-shopify.png\" alt=\"seo-booster-shopify\" width=\"600\" height=\"475\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-booster-shopify.png 600w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-booster-shopify-300x238.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3>SEO Booster<\/h3>\n<p>Gracias a este plugin podr\u00e1s <strong>mejorar el rendimiento general de tu sitio<\/strong>. Tiene varias funciones que te ayudar\u00e1n a incrementar las ventas de tu tienda online mediante algunas acciones de SEO. Es muy apropiado para principiantes ya que va guiando al usuario acerca de lo que tiene que hacer.<\/p>\n<h3>Yoast SEO para Shopify<\/h3>\n<p>Se trata de uno de los plugins m\u00e1s populares a la hora de posicionar contenidos.<\/p>\n<p>Lo hemos incluido en esta lista precisamente porque, al ser <a href=\"https:\/\/dinorank.com\/blog\/configurar-yoast-seo\/\">Yoast SEO<\/a> tan popular, muchos webmasters piensan en \u00e9l para <strong>gestionar el SEO de sus ecommerce<\/strong> para despu\u00e9s descubrir que no es tan \u00fatil, o cuanto menos no como lo es para webs construidas en otros CMS.<\/p>\n<p>Con Yoast para Shopify tienes algunas utilidades, como:<\/p>\n<ul>\n<li>Gesti\u00f3n de Schema.org.<\/li>\n<li>El sem\u00e1foro de legibilidad y SEO.<\/li>\n<li>Previsualizaci\u00f3n en redes sociales.<\/li>\n<li>Redirecciones autom\u00e1ticas.<\/li>\n<\/ul>\n<p>Sin embargo, no puedes por ejemplo arreglar la estructura de URLs (el \/products\/), porque eso es una limitaci\u00f3n de la plataforma, no de la app.<\/p>\n<p>Como te coment\u00e1bamos antes, Shopify cuenta con sus propias opciones para mejorar el posicionamiento en buscadores en la pesta\u00f1a llamada<strong> Search Engine<\/strong> y adem\u00e1s lo puedes complementar con el plugin Plug in SEO.<\/p>\n<p>Tambi\u00e9n tienes otras opciones parecidas como Smart SEO, SEO Expert Pro o Auto &amp; All in One SEO.<\/p>\n<p>Todos ellos cuentan con <strong>facilidades y aplicaciones que te ayudar\u00e1n a gestionar el posicionamiento de tu ecommerce<\/strong> as\u00ed que te recomendamos que los pruebes para elegir el que mejor se adapte a lo que necesitas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3093\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-shopify.jpg\" alt=\"seo-shopify\" width=\"1000\" height=\"347\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-shopify.jpg 1000w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-shopify-300x104.jpg 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2020\/12\/seo-shopify-768x266.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<h2>\u00bfEs posible aplicar las mismas t\u00e9cnicas de SEO para Shopify que para un ecommerce WordPress?<\/h2>\n<p>L<strong>as t\u00e9cnicas SEO m\u00e1s b\u00e1sicas son aplicables a cualquier p\u00e1gina web<\/strong> sea cual sea el CMS en el que haya sido construida. Por eso, muchas de las acciones que aqu\u00ed recomendamos para mejorar el posicionamiento en Shopify tambi\u00e9n se pueden aplicar a un ecommerce WordPress y viceversa.<\/p>\n<p>De hecho, todo lo relativo a los title y las metadescriptions, por ejemplo, no solo es aplicable a los productos y categor\u00edas de un ecommerce, ya sea Shopify, Prestashop, Woocommerce o cualquier otro CMS, plugin o complemento, sino pr\u00e1cticamente a cualquier contenido de una p\u00e1gina web.<\/p>\n<p>Por ello, si hasta ahora has trabajado el SEO en otros sistemas de ecommerce que no sean Shopify no debes pensar que ahora te toca empezar de cero.<\/p>\n<p>Adem\u00e1s, tienes varias <a href=\"https:\/\/dinorank.com\/blog\/software-seo\/\">herramientas SEO profesionales<\/a> todo en 1, como DinoRANK, que te ayudar\u00e1n mucho a llevar a cabo todo el proceso.<\/p>\n<p><a href=\"https:\/\/dinorank.com\/blog\/descubre-dinorank\/\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-24924 size-large\" title=\"Aumenta tus visitas desde Google con DinoRANK\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-1024x427.png\" alt=\"Aumenta tus visitas desde Google con DinoRANK\" width=\"1024\" height=\"427\" srcset=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-1024x427.png 1024w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-300x125.png 300w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank-768x321.png 768w, https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2024\/08\/banner-dinorank.png 1071w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Eso s\u00ed, te recomendamos <strong>explorar las caracter\u00edsticas propias de Shopify para gestionar el posicionamiento<\/strong> as\u00ed como los plugins y la aplicaci\u00f3n SEO Manager que ya hemos comentado mas arriba.<\/p>\n<p>Por ello,<strong> aunque tengas un ecommerce con Shopify no olvides trabajar el SEO\u00a0<\/strong>si quieres que tu tienda online posiciona y aumente su tr\u00e1fico org\u00e1nico, lo que se traducir\u00e1 en un aumento tambi\u00e9n en las ventas de tus productos.<\/p>\n<p>Y si quieres contarnos tu experiencia trabajando el SEO en Shopify o tienes alguna duda, d\u00e9janos un comentario justo aqu\u00ed debajo, \u00a1queremos leerte!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El SEO se puede aplicar a cualquier tipo de web y eso incluye los ecommerce, sea cual sea la plataforma en la que est\u00e1 funcionando. Hasta hace no mucho se ten\u00eda la idea de que una tienda online no necesitaba SEO pero, \u00bfacaso no quieres que tu ecommerce posicione y tenga visitas que conviertan? Es [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":32879,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-20520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecommerce-seo"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/20520","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=20520"}],"version-history":[{"count":12,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/20520\/revisions"}],"predecessor-version":[{"id":33076,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/posts\/20520\/revisions\/33076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media\/32879"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/media?parent=20520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/categories?post=20520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/blog\/wp-json\/wp\/v2\/tags?post=20520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}