{"id":21623,"date":"2024-09-05T07:29:13","date_gmt":"2024-09-05T11:29:13","guid":{"rendered":"https:\/\/dinorank.com\/en-us\/blog-seo\/?p=21623"},"modified":"2025-06-05T05:22:02","modified_gmt":"2025-06-05T09:22:02","slug":"seo-internal-linking","status":"publish","type":"post","link":"https:\/\/dinorank.com\/en-us\/blog-seo\/seo-internal-linking\/","title":{"rendered":"Practical Guide to SEO Internal Linking: Learn How to Create an Interlinking Strategy with 3 Common Scenarios"},"content":{"rendered":"\n<p>In SEO, there are many elements we can&#8217;t control: changes that Google makes to its algorithm, the appearance of new competitors in the SERPs, the impact of a new backlink on our ranking,\u2026<\/p>\n\n\n\n<p>Luckily, there are other things that <strong>depend more or less directly on us<\/strong>.<\/p>\n\n\n\n<p>And one of those is the <strong>management of our internal links<\/strong>.<\/p>\n\n\n\n<p>I have to admit that I am a staunch advocate of interlinking. I think it&#8217;s one of the SEO techniques with which <strong>you can get results more quickly<\/strong>.<\/p>\n\n\n\n<p>The problem is that it usually doesn&#8217;t get the attention it deserves.<\/p>\n\n\n\n<p>When internal linking is explained, it is often done in a rather superficial or overly theoretical way and, almost always, just as another part of On-Page SEO.<\/p>\n\n\n\n<p>I sincerely believe that internal linking should have its own section within any SEO training.<\/p>\n\n\n\n<p>That&#8217;s why today we will talk about interlinking, but we&#8217;ll leave the more theoretical part, which you probably already know, in the background and dive right into <strong>practical actions<\/strong>, so you can apply them to your web projects.<\/p>\n\n\n\n<p>I&#8217;ll show you <strong>3 internal linking strategies that we SEOs<\/strong> use at a professional level, each aimed at a different type of site:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A service or product website with a blog.<\/li>\n\n\n\n<li>An ecommerce site.<\/li>\n\n\n\n<li>A sales landing page.<\/li>\n<\/ul>\n\n\n\n<p><strong>Does your project fit into any of these categories?<\/strong> Then keep reading, because what I&#8217;m going to tell you will be very useful for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Importance of Internal Links for Web Positioning<\/h2>\n\n\n\n<p>It won&#8217;t surprise you if I tell you that links are essential for search engines to exist and perform their function. Their crawlers go through the Web, hopping from one link to another to discover new domains.<\/p>\n\n\n\n<p>And when they arrive at a website, they continue inspecting the hyperlinks they find within it, until they can no longer continue or decide that they have stayed long enough inside (does the concept of Crawl Budget ring a bell?).<\/p>\n\n\n\n<p>A good interlinking strategy allows us to <strong>take advantage of the visits that search engine crawlers make to our website<\/strong>. Thanks to our internal links, we can guide them on the path to follow and help them understand what they will find.<\/p>\n\n\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">Benefits of Proper Internal Linking for Google<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\"><\/span><\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We improve the crawling and indexing of the website.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We make the most of the crawl budget or the time search engine robots spend on our site.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We indicate which are the main pages of our site.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We transfer authority from one URL to another.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We provide information about the content of the linked pages through the anchor text and the content surrounding the link.<\/li>\n<\/ul>\n<\/div>\n<p><span style=\"font-weight: 400;\"><\/div><\/div>\n\n\n\n<p>However, if you only have Google in mind when designing your internal links, you run the risk of visitors not finding what they want and leaving your site.<\/p>\n\n\n\n<p>That&#8217;s why proper interlinking is not only useful for search engines to navigate our website, but it also allows us to <strong>offer our visitors a good user experience<\/strong> and help them find the information they need.<\/p>\n\n\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#00604a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#00937D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">Benefits of Proper Internal Linking for Users<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We improve navigation throughout the website.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We provide access to other related content they might be interested in.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We guide the user to the most relevant parts of the site.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> We reduce the bounce rate.<\/li>\n<\/ul>\n<\/div>\n<p><span style=\"font-weight: 400;\"><\/div><\/div>\n\n\n\n<p>As you can see, internal links provide significant advantages to your web project from an SEO perspective.<\/p>\n\n\n\n<p>But it&#8217;s not enough to just create links within your website. If you want your interlinking to work, <strong>every internal link should meet specific criteria and objectives<\/strong>. In other words, it needs to follow a strategy.<\/p>\n\n\n\n<p>And that&#8217;s precisely what I want to show you in the following sections. Three internal linking strategies for three very common types of websites that, if you want, you can start applying today and see how your SEO positioning improves.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Internal Linking Strategy for a Product or Service Website with a Blog<\/h2>\n\n\n\n<p>If you have a website to offer your services or to sell a specific product, it\u2019s very likely that you\u2019ve decided to add a blog section.<\/p>\n\n\n\n<p><strong>A blog is a very powerful tool to help your website rank on Google<\/strong> and thus gain new visits. But you need to know how to leverage this traffic and the visibility of the articles to give a general boost to your entire website.<\/p>\n\n\n\n<p>Here are some recommendations to do it through internal linking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Group Content into Clusters<\/h3>\n\n\n\n<p>Today, Google wants the top experts in a field to occupy the first positions in the SERPs. That&#8217;s why topical authority (or <a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/topical-authority\/\" target=\"_blank\" rel=\"noreferrer noopener\">Topical Authority<\/a>) has become a crucial factor when it comes to ranking.<\/p>\n\n\n\n<p>With this in mind, if you have a blog, my recommendation is that you <strong>define which topics are most relevant to your business<\/strong> and create several articles for each one.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"788\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/content-clusters-1024x788.png\" alt=\"Clusters examples in a blog\" class=\"wp-image-21661\" title=\"Clusters examples in a blog\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/content-clusters-1024x788.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/content-clusters-300x231.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/content-clusters-768x591.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/content-clusters.png 1039w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Then, <strong>link all the posts related to the same topic<\/strong>, usually from the more specific content (or long tail) to the more general, <strong>forming a cluster<\/strong> that will signal to Google that you have in-depth knowledge of each topic.<\/p>\n\n\n\n<div id=\"brxe-dac047\" class=\"brxe-block p-2 gap-15\"><div id=\"brxe-481bc6\" class=\"brxe-text-basic h3\">Another SEO newsletter?\n\nYes.\n<\/div><div id=\"brxe-b11ebb\" class=\"brxe-text-basic\">This is what we can offer you:<\/div><div id=\"brxe-97bf62\" class=\"brxe-text-basic\"><strong>No fluff, no hype. 100% honesty. 100% straight to the point<\/strong>. All we need is your email and a bit of your attention\u2014we\u2019ll handle the rest.\n\nIt\u2019s your call.\n<\/div><div id=\"brxe-omkwmy\" data-script-id=\"omkwmy\" class=\"brxe-code\"><style>@import url(https:\/\/fonts.bunny.net\/css?family=source-sans-pro:400,700);<\/style>\n<style>\n#_form_311_{font-size:14px;line-height:1.6;font-family:arial, helvetica, sans-serif;margin:0}#_form_311_ *{outline:0}._form_hide{display:none;visibility:hidden}._form_show{display:block;visibility:visible}#_form_311_._form-top{top:0}#_form_311_._form-bottom{bottom:0}#_form_311_._form-left{left:0}#_form_311_._form-right{right:0}#_form_311_ input[type=\"text\"],#_form_311_ input[type=\"tel\"],#_form_311_ input[type=\"date\"],#_form_311_ 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_311_ textarea{resize:none}#_form_311_ ._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_311_ ._submit:disabled{cursor:not-allowed;opacity:0.4}#_form_311_ ._submit.processing{position:relative}#_form_311_ ._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_311_ ._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_311_ ._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_311_ ._close-icon:before{position:relative}#_form_311_ ._form-body{margin-bottom:30px}#_form_311_ ._form-image-left{width:150px;float:left}#_form_311_ ._form-content-right{margin-left:164px}#_form_311_ ._form-branding{color:#fff;font-size:10px;clear:both;text-align:left;margin-top:30px;font-weight:100}#_form_311_ ._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_311_ .form-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#_form_311_ ._form-label,#_form_311_ ._form_element ._form-label{font-weight:bold;margin-bottom:5px;display:block}#_form_311_._dark ._form-branding{color:#333}#_form_311_._dark ._form-branding ._logo{background-image:url(\"https:\/\/d226aj4ao1t61q.cloudfront.net\/jftq2c8s_aclogo_dk.png\")}#_form_311_ ._form_element{position:relative;margin-bottom:10px;font-size:0;max-width:100%}#_form_311_ ._form_element *{font-size:14px}#_form_311_ ._form_element._clear{clear:both;width:100%;float:none}#_form_311_ ._form_element._clear:after{clear:left}#_form_311_ ._form_element input[type=\"text\"],#_form_311_ ._form_element input[type=\"date\"],#_form_311_ ._form_element select,#_form_311_ ._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_311_ ._field-wrapper{position:relative}#_form_311_ ._inline-style{float:left}#_form_311_ ._inline-style input[type=\"text\"]{width:150px}#_form_311_ ._inline-style:not(._clear){margin-right:20px}#_form_311_ ._form_element img._form-image{max-width:100%}#_form_311_ ._form_element ._form-fieldset{border:0;padding:0.01em 0 0 0;margin:0;min-width:0}#_form_311_ ._clear-element{clear:left}#_form_311_ ._full_width{width:100%}#_form_311_ ._form_full_field{display:block;width:100%;margin-bottom:10px}#_form_311_ input[type=\"text\"]._has_error,#_form_311_ textarea._has_error{border:#F37C7B 1px solid}#_form_311_ input[type=\"checkbox\"]._has_error{outline:#F37C7B 1px solid}#_form_311_ ._show_be_error{float:left}#_form_311_ ._error{display:block;position:absolute;font-size:14px;z-index:10000001}#_form_311_ ._error._above{padding-bottom:4px;bottom:39px;right:0}#_form_311_ ._error._below{padding-top:8px;top:100%;right:0}#_form_311_ ._error._above ._error-arrow{bottom:-4px;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #FFDDDD}#_form_311_ ._error._below ._error-arrow{top:0;right:15px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #FFDDDD}#_form_311_ ._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_311_ ._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_311_ ._error-inner._form_error{margin-bottom:5px;text-align:left}#_form_311_ ._button-wrapper ._error-inner._form_error{position:static}#_form_311_ ._error-inner._no_arrow{margin-bottom:10px}#_form_311_ ._error-arrow{position:absolute;width:0;height:0}#_form_311_ ._error-html{margin-bottom:10px}.pika-single{z-index:10000001 !important}#_form_311_ input[type=\"text\"].datetime_date{width:69%;display:inline}#_form_311_ select.datetime_time{width:29%;display:inline;height:32px}#_form_311_ input[type=\"date\"].datetime_date{width:69%;display:inline-flex}#_form_311_ input[type=\"time\"].datetime_time{width:29%;display:inline-flex}@media (min-width:320px) and (max-width:667px){::-webkit-scrollbar{display:none}#_form_311_{margin:0;width:100%;min-width:100%;max-width:100%;box-sizing:border-box}#_form_311_ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:1em}#_form_311_ ._form-content{margin:0;width:100%}#_form_311_ ._form-inner{display:block;min-width:100%}#_form_311_ ._form-title,#_form_311_ ._inline-style{margin-top:0;margin-right:0;margin-left:0}#_form_311_ ._form-title{font-size:1.2em}#_form_311_ ._form_element{margin:0 0 20px;padding:0;width:100%}#_form_311_ ._form-element,#_form_311_ ._inline-style,#_form_311_ input[type=\"text\"],#_form_311_ label,#_form_311_ p,#_form_311_ textarea:not(.g-recaptcha-response){float:none;display:block;width:100%}#_form_311_ ._row._checkbox-radio label{display:inline}#_form_311_ ._row,#_form_311_ p,#_form_311_ label{margin-bottom:0.7em;width:100%}#_form_311_ ._row input[type=\"checkbox\"],#_form_311_ ._row input[type=\"radio\"]{margin:0 !important;vertical-align:middle !important}#_form_311_ ._row input[type=\"checkbox\"]+span label{display:inline}#_form_311_ ._row span label{margin:0 !important;width:initial !important;vertical-align:middle !important}#_form_311_ ._form-image{max-width:100%;height:auto !important}#_form_311_ input[type=\"text\"]{padding-left:10px;padding-right:10px;font-size:16px;line-height:1.3em;-webkit-appearance:none}#_form_311_ input[type=\"radio\"],#_form_311_ 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_311_ button[type=\"submit\"]{padding:20px;font-size:1.5em}#_form_311_ ._inline-style{margin:20px 0 0 !important}#_form_311_ ._inline-style input[type=\"text\"]{width:100%}}#_form_311_ .sms_consent_checkbox{position:relative;width:100%;display:flex;align-items:flex-start;padding:20px 0}#_form_311_ .sms_consent_checkbox input[type=\"checkbox\"]{float:left;margin:5px 10px 10px 0}#_form_311_ .sms_consent_checkbox .sms_consent_message{display:inline;float:left;text-align:left;margin-bottom:10px;font-size:14px;color:#7D8799}#_form_311_ .sms_consent_checkbox .sms_consent_message.sms_consent_mini{width:90%}#_form_311_ .sms_consent_checkbox ._error._above{right:auto;bottom:0}#_form_311_ .sms_consent_checkbox ._error._above ._error-arrow{right:auto;left:5px}@media (min-width:320px) and (max-width:667px){#_form_311_ .sms_consent_checkbox ._error._above{top:-30px;left:0;bottom:auto}}#_form_311_ .field-required{color:#FF0000}#_form_311_{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_311_ ._show_be_error{min-width:100%}#_form_311_._inline-form,#_form_311_._inline-form ._form-content{font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_311_._inline-form ._row span,#_form_311_._inline-form ._row label{font-family:Source Sans Pro;font-size:14px;font-weight:400;line-height:1.6em;color:#888 !important}#_form_311__inlineform input[type=\"text\"],#_form_311__inlineform input[type=\"date\"],#_form_311__inlineform input[type=\"tel\"],#_form_311__inlineform select,#_form_311__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_311_._inline-form ._html-code *:not(h1, h2, h3, h4, h5, h6),#_form_311_._inline-form .sms_consent_message,#_form_311_._inline-form ._form-thank-you{font-family:Source Sans Pro;font-size:14px;font-weight:400;color:#888 !important}#_form_311_._inline-form ._form-label,#_form_311_._inline-form ._form-emailidentifier,#_form_311_._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_311_._inline-form ._submit{margin-top:12px;font-family:Source Sans Pro;font-size:14px;font-weight:400}#_form_311_._inline-form ._html-code h1,#_form_311_._inline-form ._html-code h2,#_form_311_._inline-form ._html-code h3,#_form_311_._inline-form ._html-code h4,#_form_311_._inline-form ._html-code h5,#_form_311_._inline-form ._html-code h6,#_form_311_._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_311_._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_311_:before,#_form_311_:after{content:\" \";display:table}#_form_311_:after{clear:both}#_form_311_._inline-style{width:auto;display:inline-block}#_form_311_._inline-style input[type=\"text\"],#_form_311_._inline-style input[type=\"date\"]{padding:10px 12px}#_form_311_._inline-style button._inline-style{position:relative;top:27px}#_form_311_._inline-style p{margin:0}#_form_311_._inline-style ._button-wrapper{position:relative;margin:16px 12.5px 0 20px}#_form_311_ ._form-thank-you{position:relative;left:0;right:0;text-align:center;font-size:18px}#_form_311_ ._form-pc-confirmation ._submit{margin-top:16px}@media (min-width:320px) and (max-width:667px){#_form_311_._inline-form._inline-style ._inline-style._button-wrapper{margin-top:20px !important;margin-left:0 !important}}#_form_311_ .iti{width:100%}#_form_311_ .iti.iti--allow-dropdown.iti--separate-dial-code{width:100%}#_form_311_ .iti input{width:100%;border:#979797 1px solid;border-radius:4px}#_form_311_ .iti--separate-dial-code .iti__selected-flag{background-color:#FFFFFF;border-radius:4px}#_form_311_ .iti--separate-dial-code .iti__selected-flag:hover{background-color:rgba(0, 0, 0, 0.05)}#_form_311_ .iti__country-list{border-radius:4px;margin-top:4px;min-width:460px}#_form_311_ .iti__country-list--dropup{margin-bottom:4px}#_form_311_ .phone-error-hidden{display:none}#_form_311_ .phone-error{color:#E40E49}#_form_311_ .phone-input-error{border:1px solid #E40E49 !important}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field fieldset{margin:0;margin-bottom:1.1428571429em;border:none;padding:0}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field fieldset:last-child{margin-bottom:0}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field legend{margin-bottom:1.1428571429em}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field label{display:flex;align-items:flex-start;justify-content:flex-start;margin-bottom:0.8571428571em}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field label:last-child{margin-bottom:0}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field input{margin:0;margin-right:8px}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label{display:block;font-weight:400;margin-top:-4px}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-label-with-description{display:block;font-weight:700;margin-top:-4px}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field ._form-checkbox-option-description{margin:0;font-size:0.8571428571em}#_form_311_._inline-form ._form-content ._form-list-subscriptions-field ._form-subscriptions-unsubscribe-all-description{line-height:normal;margin-top:-2px}\n#_form_311_ ._submit{width:100%;font-family:\"Source Sans Pro\", Sans-serif !important;font-size:18px !important;font-weight:500 !important}#_form_311_ ._submit:hover{background-color:#04937E !important}#_form_311_ input#email{padding:3px 12px;background-color:#ffffff;border-radius:2px}#_form_311_._form{margin-top:-5px}#_form_311_ ._error._below{position:relative !important}#_form_311_ ._error._above{position:absolute !important}@media (min-width:320px) and (max-width:667px){#_form_311_ ._form_element{margin:0 0 0px}}<\/style>\n<form method=\"POST\" action=\"https:\/\/deandelafuenteromero.activehosted.com\/proc.php\" id=\"_form_311_\" class=\"_form _form_311 _inline-form  _dark\" novalidate data-styles-version=\"5\">\n  <input type=\"hidden\" name=\"u\" value=\"311\" \/>\n  <input type=\"hidden\" name=\"f\" value=\"311\" \/>\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=\"1d0d99d99ed2973ea9179629b793b9aa\" \/>\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=\"Enter your email\" required\/>\n      <\/div>\n    <\/div>\n    <div class=\"_form_element _x06467309 _full_width \" >\n      <fieldset class=\"_form-fieldset\">\n        <div class=\"_row\">\n          <legend for=\"field[136][]\" class=\"_form-label\">\n          <\/legend>\n        <\/div>\n        <input data-autofill=\"false\" type=\"hidden\" id=\"field[136][]\" name=\"field[136][]\" value=\"~|\">\n        <div class=\"_row _checkbox-radio\">\n          <input id=\"field_136I have read and accept the privacy policy\" type=\"checkbox\" name=\"field[136][]\"\n          value=\"I have read and accept the privacy policy\"                                                                                 required                                >\n          <span>\n            <label for=\"field_136I have read and accept the privacy policy\">\n              I have read and accept the privacy policy<span class=\"field-required\">\n              *\n            <\/span>\n          <\/label>\n        <\/span>\n      <\/div>\n    <\/fieldset>\n  <\/div>\n  <div class=\"_form_element _x77210210 _full_width \" >\n    <label for=\"ls\" class=\"_form-label\">\n      Verify that you are human<span class=\"field-required\">\n      *\n    <\/span>\n  <\/label>\n  <div class=\"g-recaptcha\" data-sitekey=\"6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go\">\n  <\/div>\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_311_submit\" class=\"_submit\" type=\"submit\">\n    Subscribe here\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 = {\"136\":\"i_have_read_and_accept_the_privacy_policy\",\"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_311_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_311_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(\"311\", \"Lo sentimos, ocurri\u00f3 un error con el env\u00edo. Acorta tus respuestas y vuelve a intentarlo.\");\n            } else {\n                _show_error(\"311\", \"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_311_');\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    window['recaptcha_callback'] = function() {\n  \/\/ Get all recaptchas in the DOM (there may be more than one form on the page).\n  var recaptchas = document.getElementsByClassName(\"g-recaptcha\");\n  for (var i in recaptchas) {\n    \/\/ Set the recaptcha element ID, so the recaptcha can be applied to each element.\n    var recaptcha_id = \"recaptcha_\" + i;\n    recaptchas[i].id = recaptcha_id;\n    var el = document.getElementById(recaptcha_id);\n    if (el != null) {\n      var sitekey = el.getAttribute(\"data-sitekey\");\n      var stoken = el.getAttribute(\"data-stoken\");\n      grecaptcha.render(recaptcha_id, {\"sitekey\":sitekey,\"stoken\":stoken});\n    }\n  }\n};    _load_script(\"https:\/\/www.google.com\/recaptcha\/api.js?onload=recaptcha_callback&render=explicit\");\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_311_submit');\n            submitButton.disabled = true;\n            submitButton.classList.add('processing');\n                    var serialized = _form_serialize(document.getElementById('_form_311_')).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(\"311\", \"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><\/div><\/div>\n\n\n\n<p>Finally, to analyze the clusters you&#8217;ve created, you can <strong>use a tool like DinoRANK, which visually shows you all the internal links<\/strong> on your site and lets you check if they follow a proper structure or if you have any URLs left to link.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"483\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-internal-linking-chart.png\" alt=\"DinoRANK internal linking chart\" class=\"wp-image-21663\" title=\"DinoRANK internal linking chart\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-internal-linking-chart.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-internal-linking-chart-300x142.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-internal-linking-chart-768x362.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Link Transactional URLs from More Informative Content<\/h3>\n\n\n\n<p>Whenever it makes sense, try to link to your more transactional pages from the blog content. The goal is twofold: to give more authority to the relevant pages and <strong>to guide the user to the URLs that have a higher conversion potential<\/strong>.<\/p>\n\n\n\n<p>Take a look at the following example from the DonDominio blog:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" id=\"Example-of-internal-linking-to-a-transactional-page-on-the-DonDominio-blog\"><img decoding=\"async\" width=\"903\" height=\"532\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-internal-linking-to-a-transactional-page-on-the-DonDominio-blog.png\" alt=\"Example of internal linking to a transactional page on the DonDominio blog\" class=\"wp-image-21666\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-internal-linking-to-a-transactional-page-on-the-DonDominio-blog.png 903w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-internal-linking-to-a-transactional-page-on-the-DonDominio-blog-300x177.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-internal-linking-to-a-transactional-page-on-the-DonDominio-blog-768x452.png 768w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure><\/div>\n\n\n<p>You might be surprised that it doesn&#8217;t use an exact anchor. It doesn&#8217;t matter; the text surrounding the link already provides Google with enough information about its content, and this way, it catches the reader&#8217;s attention much more effectively.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Taking Advantage of URLs with More Traffic or Greater Authority<\/h3>\n\n\n\n<p>It often happens that the pages with the most organic traffic are not the most important to us from a business perspective.<\/p>\n\n\n\n<p>But if we identify which URLs receive the most visits, we can try to <strong>redirect the user to other pages that are more relevant<\/strong> to our sales strategy.<\/p>\n\n\n\n<p>Similarly, we can also analyze which pages on our site receive the most external links. In Google&#8217;s eyes, these will be the URLs with the highest authority on the web.<\/p>\n\n\n\n<p><strong>Internal linking will allow us to distribute this authority<\/strong> among other URLs on our site that we want to rank, thereby spreading what is known as link juice (or the allocation of PageRank).<\/p>\n\n\n\n<p>And to <strong>see which pages on your site receive the most PageRank<\/strong> through internal links, there&#8217;s nothing better than a graphical tool like DinoRANK that provides you with an overview of your site&#8217;s status.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" id=\"DinoRANK-PageRank-graph\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"526\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph-1024x526.png\" alt=\"DinoRANK PageRank graph\" class=\"wp-image-21669\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph-1024x526.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph-300x154.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph-768x395.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph-1536x789.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/DinoRANK-PageRank-graph.png 1839w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Linking to Related Articles<\/h3>\n\n\n\n<p>The related articles section within each post is a commonly used mechanism to internally link pages within your website.<\/p>\n\n\n\n<p>And it works, but only if you do it right.<\/p>\n\n\n\n<p>It\u2019s not very useful to offer the user two or three random articles via an internal linking plugin in WordPress. Or just showing them the latest entries on your blog.<\/p>\n\n\n\n<p>Most likely, the user will not show any interest in these posts and will end up closing your page.<\/p>\n\n\n\n<p>If you want the user to keep browsing your website, you must offer them <strong>content related to what they just read<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" id=\"Example-of-related-posts-\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"653\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-related-posts--1024x653.png\" alt=\"Example of related posts \" class=\"wp-image-21671\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-related-posts--1024x653.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-related-posts--300x191.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-related-posts--768x489.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Example-of-related-posts-.png 1282w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Notice that these articles likely belong to the same thematic cluster. By linking them together, we are not only providing the user with useful content but also strengthening the authority of the cluster itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Internal Linking Strategy for an Ecommerce<\/h2>\n\n\n\n<p>When we have an online store, we must be especially careful with internal linking.<\/p>\n\n\n\n<p>In this type of websites, <strong>the number of URLs can be enormous<\/strong>, and if we don&#8217;t do things right, we risk the site becoming a real mess, both for the user and for Google.<\/p>\n\n\n\n<p>Next, we will look at the main points to consider in the SEO interlinking of an ecommerce.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Define an Appropriate Architecture<\/h3>\n\n\n\n<p>In ecommerce websites, <strong>it&#8217;s very important that products are perfectly categorized<\/strong>, so that the user can easily navigate through the site and search engines have no trouble indexing it.<\/p>\n\n\n\n<p>Thus, <strong>a <\/strong><a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/web-architecture-for-seo\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>SILO-type web architecture<\/strong><\/a><strong> is ideal<\/strong> for this type of websites, organizing the content into 3 or 4 levels of depth at most, so that all URLs are within 2 or 3 clicks from the Home.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\" id=\"Web-architecture-model-in-SILO\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"476\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Web-architecture-model-in-SILO.jpg\" alt=\"Web-architecture-model-in-SILO\" class=\"wp-image-21673\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Web-architecture-model-in-SILO.jpg 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Web-architecture-model-in-SILO-300x139.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/08\/Web-architecture-model-in-SILO-768x357.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p><strong>Internal links will be responsible for establishing this hierarchy <\/strong>of products, subcategories, and main categories, where only pages that are part of the same SILO will be linked to each other.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Menu and Footer Design<\/h3>\n\n\n\n<p>Two elements that are part of the navigation within any website are the menu and the footer. It&#8217;s always important to take care of them, but in the case of an ecommerce, it&#8217;s even more critical.<\/p>\n\n\n\n<p>A disorganized and chaotic menu can cause user rejection and mistrust. If they can&#8217;t easily find what they&#8217;re looking for, they might leave for another site.<\/p>\n\n\n\n<p>That\u2019s why we must<strong> study which categories and subcategories are worth including in the menu<\/strong>, prioritizing the most important ones for the business and keeping in mind that we might not be able to link to everything, as an excessive number of items could harm the user experience.<\/p>\n\n\n\n<p>Here is an example of what they do on the Decathlon website.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"528\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-navigation-menu.png\" alt=\"\" class=\"wp-image-21677\" title=\"Example of Decathlon website navigation menu\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-navigation-menu.png 797w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-navigation-menu-300x199.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-navigation-menu-768x509.png 768w\" sizes=\"(max-width: 797px) 100vw, 797px\" \/><\/figure><\/div>\n\n\n<p>However, <strong>in the footer, we can be a bit more flexible<\/strong> and use it to link to the most important sections we want to rank, add other categories that couldn&#8217;t be linked in the menu, or include a link to a sitemap that helps with site indexing.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"427\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-footer-including-links-to-relevant-categories-1024x427.png\" alt=\"Example of Decathlon website footer including links to relevant categories\" class=\"wp-image-21679\" title=\"Example of Decathlon website footer including links to relevant categories\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-footer-including-links-to-relevant-categories-1024x427.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-footer-including-links-to-relevant-categories-300x125.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-footer-including-links-to-relevant-categories-768x320.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-Decathlon-website-footer-including-links-to-relevant-categories.png 1215w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Internal links on the Home page<\/h3>\n\n\n\n<p><strong>The Home page is usually the URL with the most authority<\/strong> on most websites, as it typically receives the most external links.<\/p>\n\n\n\n<p>We should <strong>take advantage of this authority and redirect it<\/strong> to the parts that are most important to us.<\/p>\n\n\n\n<p>Therefore, it is often a good strategy to link from the Home to the main categories and those products that, for one reason or another, we want to highlight, such as best-selling items, items on sale, or the latest arrivals.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" id=\"Example-of-a-Home-page-for-an-ecommerce-site---Decathlon-website\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"333\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website-1024x333.png\" alt=\"Example of a Home page for an ecommerce site - Decathlon website\" class=\"wp-image-21681\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website-1024x333.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website-300x98.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website-768x250.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website-1536x499.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Home-page-for-an-ecommerce-site-Decathlon-website.png 1716w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">Internal linking in categories<\/h3>\n\n\n\n<p>The goal of a category page in an ecommerce site is <strong>to display all the products associated with that category<\/strong>, as well as the subcategories under it.<\/p>\n\n\n\n<p>To reinforce the SILO structure, it is also advisable to <strong>link to the higher-level elements in the hierarchy<\/strong> in addition to the internal links to these elements.<\/p>\n\n\n\n<p>This can be easily achieved with breadcrumbs, which also help users know where they are within the site.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" id=\"Example-of-a-Category-page-for-an-ecommerce-site---Decathlon-website\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"699\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Category-page-for-an-ecommerce-site-Decathlon-website-2-1024x699.png\" alt=\"Example of a Category page for an ecommerce site - Decathlon website\" class=\"wp-image-21692\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Category-page-for-an-ecommerce-site-Decathlon-website-2-1024x699.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Category-page-for-an-ecommerce-site-Decathlon-website-2-300x205.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Category-page-for-an-ecommerce-site-Decathlon-website-2-768x524.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Category-page-for-an-ecommerce-site-Decathlon-website-2.png 1147w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Additionally, it can be helpful to <strong>include links to other related categories<\/strong>, always within the same SILO or cluster.<\/p>\n\n\n\n<p>Finally, a word of caution. Most eCommerce sites have a series of filters on pages that display product listings.<\/p>\n\n\n\n<p>Depending on the technology you use, <strong>these filters may contain internal links to other pages<\/strong> that are more specific subcategories, which you might not want to index. Take a look at the following image.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"848\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-filters-for-an-ecommerce-Decathlon-website-1-1024x848.png\" alt=\"Example of filters for an ecommerce - Decathlon website\" class=\"wp-image-21690\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-filters-for-an-ecommerce-Decathlon-website-1-1024x848.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-filters-for-an-ecommerce-Decathlon-website-1-300x248.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-filters-for-an-ecommerce-Decathlon-website-1-768x636.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-filters-for-an-ecommerce-Decathlon-website-1.png 1141w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>In these cases, it&#8217;s important to carefully study which filters you want to include on each page and which ones you don&#8217;t, so that the internal links always maintain a coherent website structure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Interlinking on Product Pages<\/h3>\n\n\n\n<p>Just as with categories, on product pages we should <strong>link back to the higher-level categories<\/strong> to reinforce the website&#8217;s hierarchy. Again, we can use breadcrumb navigation for this purpose.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"693\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Product-Page-for-an-ecommerce-Decathlon-website-1024x693.png\" alt=\"Example of a Product Page for an ecommerce - Decathlon website\" class=\"wp-image-21694\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Product-Page-for-an-ecommerce-Decathlon-website-1024x693.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Product-Page-for-an-ecommerce-Decathlon-website-300x203.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Product-Page-for-an-ecommerce-Decathlon-website-768x520.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Example-of-a-Product-Page-for-an-ecommerce-Decathlon-website.png 1150w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Additionally, to improve user retention, we can include <strong>links to other related products<\/strong> that the user might be interested in. This way, we offer other options that might catch their interest and invite them to keep exploring our website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Boost a Sales Landing Page with Internal Links<\/h2>\n\n\n\n<p>The last case I want to show you is that of a sales landing page created to <strong>offer a product or service for a limited time<\/strong>. This is the typical case of a launch that only lasts a few weeks.<\/p>\n\n\n\n<p>The landing page would be the final step in the sales funnel and would serve to <strong>convince the user to make the purchase<\/strong>.<\/p>\n\n\n\n<p>In this situation, some of the techniques to apply are similar to those we saw in the example of a website with a blog, but with one particularity: we need <strong>results in a very short term<\/strong>.<\/p>\n\n\n\n<p>We can&#8217;t wait weeks or months for Google to rank us. It&#8217;s essential to drive as much traffic as possible to our landing page as soon as possible.<\/p>\n\n\n\n<p>Sure, here&#8217;s the translation with the necessary adaptations for a U.S. audience:<\/p>\n\n\n\n<p>That&#8217;s why, even though we can try to create very long-tail blog articles that can quickly rank on Google, it&#8217;s more common to capture the user&#8217;s attention through social media posts or a newsletter where we promote the high-quality content we&#8217;ve published on the blog.<\/p>\n\n\n\n<p>Once <strong>the user arrives at our blog<\/strong>, we guide them towards the sales landing page through internal linking.<\/p>\n\n\n\n<p>Look, for example, at how we do it on this very site with the DinoRANK master program.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"663\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Internal-linking-to-a-sales-landing-page-1024x663.png\" alt=\"Internal linking to a sales landing page\" class=\"wp-image-21696\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Internal-linking-to-a-sales-landing-page-1024x663.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Internal-linking-to-a-sales-landing-page-300x194.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Internal-linking-to-a-sales-landing-page-768x497.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Internal-linking-to-a-sales-landing-page.png 1269w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>As you can see, it\u2019s an <strong>internal linking strategy much more focused on the user<\/strong> than on Google. We&#8217;re not so much trying to boost the authority of the destination page as we are trying to capture the user&#8217;s interest so they navigate to it.<\/p>\n\n\n\n<p>Then, if what we offer on our landing page is interesting to them and we&#8217;ve presented it well with good copy, we might end up gaining a new customer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Thoughts on SEO Interlinking Strategies<\/h2>\n\n\n\n<p>In this article, we&#8217;ve seen <strong>three professional internal linking strategies<\/strong> that you can easily implement in your web projects.<\/p>\n\n\n\n<p>You really don&#8217;t need to be an SEO expert to execute them. They just require some analysis and a lot of common sense.<\/p>\n\n\n\n<p>On the other hand, <strong>the benefits are huge<\/strong>: not only will you make navigation through your site much more useful for the user, but you&#8217;ll also notice a significant improvement in your web positioning. I&#8217;m convinced of it.<\/p>\n\n\n\n<p>So from here on out, it&#8217;s in your hands. Choose the strategy that best fits your project, put it into practice, and if you feel like it, let us know how it went in the comments. We&#8217;d love to hear about your experience!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In SEO, there are many elements we can&#8217;t control: changes that Google makes to its algorithm, the appearance of new competitors in the SERPs, the impact of a new backlink on our ranking,\u2026 Luckily, there are other things that depend more or less directly on us. And one of those is the management of our [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":21675,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[52],"tags":[],"class_list":["post-21623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-for"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/21623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/comments?post=21623"}],"version-history":[{"count":20,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/21623\/revisions"}],"predecessor-version":[{"id":22695,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/21623\/revisions\/22695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media\/21675"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media?parent=21623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/categories?post=21623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/tags?post=21623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}