{"id":20888,"date":"2024-03-25T08:33:13","date_gmt":"2024-03-25T12:33:13","guid":{"rendered":"https:\/\/dinorank.com\/en-us\/blog-seo\/?p=20888"},"modified":"2025-06-05T04:57:19","modified_gmt":"2025-06-05T08:57:19","slug":"how-to-seo-saas","status":"publish","type":"post","link":"https:\/\/dinorank.com\/en-us\/blog-seo\/how-to-seo-saas\/","title":{"rendered":"SEO for SaaS"},"content":{"rendered":"\n<p>If you&#8217;ve ever been involved in a software project, you know that developing a web application is a costly process filled with hurdles. That&#8217;s why it often seems like reaching the product completion stage is the finish line.<\/p>\n\n\n\n<p>But in reality, it&#8217;s just the starting point.<\/p>\n\n\n\n<p>The real challenge begins now. It&#8217;s time to <strong>get someone willing to pay for your product<\/strong>.<\/p>\n\n\n\n<p>In this article, I want to talk to you about<strong> SEO for SaaS, one of the most profitable strategies<\/strong> I know for getting the word out about your project and reaching your potential customers organically, without resorting to invasive promotions that might turn them off.<\/p>\n\n\n\n<p>With SEO for SaaS, you won&#8217;t be the one knocking on your future users&#8217; doors. Instead, they&#8217;ll be the ones finding you <strong>when they&#8217;re in need of help<\/strong>, and you&#8217;ll show them that you have the solutions they need to fix their problems.<\/p>\n\n\n\n<p>Want to know how to do it? Then you won&#8217;t want to miss what&#8217;s coming up next.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is SaaS? Examples of SaaS Companies We All Know<\/h2>\n\n\n\n<p>SaaS, short for Software as a Service, is <strong>an internet business model that revolves around providing an online software application<\/strong>, typically accessible through a subscription or recurring payment model.<\/p>\n\n\n\n<p>This term &#8220;SaaS&#8221; essentially means delivering software as a service, offering the key benefit of <strong>doing away with the need for prior installations<\/strong>, high-powered hardware infrastructure, or expensive maintenance.<\/p>\n\n\n\n<p>All a user needs is a solid internet connection and a web browser to use the software since <strong>it runs directly in the cloud.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"635\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-saas-concept.png\" alt=\"seo-saas-concept\" class=\"wp-image-20891\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-saas-concept.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-saas-concept-300x186.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-saas-concept-768x476.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How Crucial is SEO for a SaaS Business?<\/h2>\n\n\n\n<p>If you own a SaaS business, you should view SEO as <strong>a key component of your online marketing strategy.<\/strong><\/p>\n\n\n\n<p>Paid advertising, when executed well, is a highly efficient tactic for promoting your product and driving sales. However, it comes with a significant cost that needs to be carefully managed.<\/p>\n\n\n\n<p>Social media is another powerful channel for getting your brand out there, but it demands consistency and, generally, the range of profiles you can reach is somewhat limited. Plus, it&#8217;s easy to reach a point where your audience feels overwhelmed.<\/p>\n\n\n\n<p>SEO for SaaS also requires an upfront investment. The upside is that, once you&#8217;ve nailed down your positioning, <strong>the results can sustain over time<\/strong>, continuing to generate sales with minimal effort. This is why <strong>the return on investment over the long haul tends to be better.<\/strong><\/p>\n\n\n\n<p>Moreover, SEO taps into actual interest.<\/p>\n\n\n\n<p>That is, ads or social media posts can be somewhat intrusive. Users aren&#8217;t necessarily inclined to pay special attention to what you&#8217;re showing them at any given moment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"494\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-ads-1024x494.jpg\" alt=\"seo for saas ads\" class=\"wp-image-20892\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-ads-1024x494.jpg 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-ads-300x145.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-ads-768x370.jpg 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-ads.jpg 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>However, when someone turns to Google, it&#8217;s because they have a problem. And you&#8217;re going to offer them a solution.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"880\" height=\"647\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-serps-1.png\" alt=\"\" class=\"wp-image-20895\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-serps-1.png 880w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-serps-1-300x221.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-serps-1-768x565.png 768w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<p>Thus, if you manage to rank at the top for certain strategic searches, you&#8217;ll attract qualified users to your page, and many of them will end up subscribing to your service because it meets their needs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s One of the Core Concepts of an SEO Strategy for SaaS Companies?<\/h2>\n\n\n\n<p>I&#8217;d like you to revisit the sentence that concluded the previous section:<\/p>\n\n\n\n<p><em>&#8220;Users will end up subscribing to your service because it addresses their needs.&#8221;<\/em><\/p>\n\n\n\n<p><strong>When you&#8217;re doing SEO for SaaS<\/strong>, your goal isn&#8217;t just to drive any random person to your website, but to attract those <strong>users who have a problem you can solve<\/strong>.<\/p>\n\n\n\n<p>By providing content that&#8217;s both useful and valuable to your target audience, you&#8217;ll <strong>build a high level of trust in your brand<\/strong>. This trust encourages them to return to your site whenever they have other concerns or similar needs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"469\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-problems-solutions-1024x469.png\" alt=\"seo for saas problems solutions\" class=\"wp-image-20896\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-problems-solutions-1024x469.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-problems-solutions-300x137.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-problems-solutions-768x352.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-problems-solutions.png 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The beauty of SEO is that it always addresses the user&#8217;s primary concern, introducing them to your tool\u2014a software with practical utility that meets a need, whether practical or theoretical, subtly offering a quicker, automated, and more cost-effective solution to the user&#8217;s problem.<\/p>\n\n\n\n<p>This is how you spark interest in your SaaS, earn the user&#8217;s trust, and, with each new interaction, increase the chances of converting to a sale.<\/p>\n\n\n\n<p>You&#8217;ll turn them into <strong>a loyal, likely repeat customer<\/strong>, who trusts the software because you&#8217;ve demonstrated its usefulness and added value through SEO content. Over time, it&#8217;s easy for that customer to become an evangelist for your SaaS, assuming it continues to meet their expectations and needs month after month.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Create an SEO Strategy for SaaS Step by Step: A Real Case Study<\/h2>\n\n\n\n<p>Next, I want to share with you <strong>the most crucial steps in implementing an SEO strategy for SaaS<\/strong>. For this purpose, I&#8217;ll use our experience with SEO for DinoRANK as an example.<\/p>\n\n\n\n<p>While there are many tools out there for SEO, at DinoRANK\u2014a SaaS SEO\u2014<strong>we use our own tool to optimize our website.<\/strong><\/p>\n\n\n\n<p>In this guide, I&#8217;ll show you how we handle SEO so you can replicate the process for your SaaS project.<\/p>\n\n\n\n<p>Ready to dive in?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Identify Your Goals and Define the KPIs<\/h3>\n\n\n\n<p>When launching an SEO strategy, it&#8217;s critical to define what goals you aim to achieve.<\/p>\n\n\n\n<p><strong>Your goals should be as concise and realistic as possible<\/strong>. Otherwise, we risk never achieving them or, worse, not knowing for sure if we have.<\/p>\n\n\n\n<p>&#8220;Increasing sales&#8221; wouldn&#8217;t be a valid goal. &#8220;Increasing sales by 15% in the next two months&#8221; would be.<\/p>\n\n\n\n<p>To determine if our actions are bearing fruit, we&#8217;ll use KPIs.<\/p>\n\n\n\n<p><strong>A KPI <\/strong>(Key Performance Indicator) is a specific metric that provides <strong>objective information about the results<\/strong> of a set of actions.<\/p>\n\n\n\n<p>Metrics like the number of sales achieved, the volume of organic visits to our website, pages viewed per user, bounce rate, or the number of keywords ranked are measures that can give us insights into the effects of our SEO strategy for SaaS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Know Your Ideal Customer<\/h3>\n\n\n\n<p>If you want your SaaS, or really any product or service you create, to be successful, you&#8217;ll need to perfectly identify who you should target.<\/p>\n\n\n\n<p>This means defining your ideal customer, a concept known in marketing as the buyer persona.<\/p>\n\n\n\n<p>You need to know everything about this ideal customer: their knowledge, age, motivations, goals, and, most importantly, their pain points (what concerns them).<\/p>\n\n\n\n<p>Remember, your SaaS is a solution to their problems, which is why you must understand them inside and out.<\/p>\n\n\n\n<p>You&#8217;ll also need to map out the <strong>customer journey<\/strong>, which involves identifying the stages a user goes through from recognizing a need to fulfilling it.<\/p>\n\n\n\n<p>This journey is specific to each situation but typically includes the following phases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Awareness<\/strong>. The potential customer realizes they have a problem and discovers a brand that can solve it.<\/li>\n\n\n\n<li><strong>Evaluation<\/strong>. The customer researches the brand&#8217;s services and compares them to other market options.<\/li>\n\n\n\n<li><strong>Purchase<\/strong>. The customer decides that the brand&#8217;s solution best fits their needs and buys it.<\/li>\n\n\n\n<li><strong>Loyalty<\/strong>. The customer has used the service or product, likes it, and plans to continue using it. They might even purchase other services or products from the same brand.<\/li>\n<\/ul>\n\n\n\n<p>Understanding our ideal customer, their problems, and their decision-making or purchasing process is crucial when designing aspects of an <strong>SEO strategy for our SaaS<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Analyze What Your Competitors Are Doing<\/h3>\n\n\n\n<p>We can never afford to lose sight of what our competitors are doing. After all, we all want the same thing: to boost the sales of our SaaS.<\/p>\n\n\n\n<p>And we pour all our efforts into achieving this.<\/p>\n\n\n\n<p>Some strategies work better than others, and knowing them in advance can save us a lot of time and money.<\/p>\n\n\n\n<p>If you know who you&#8217;re competing against and analyze what they&#8217;ve done, <strong>you can gather some pretty interesting ideas to apply to your own advantage.<\/strong><\/p>\n\n\n\n<p>Thanks to DinoRANK, we can identify the <strong>keywords that are bringing the most traffic to our competitors<\/strong> and integrate them into our content strategy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/dinorank-visibility-chart-1024x451.png\" alt=\"dinorank visibility chart\" class=\"wp-image-20898\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/dinorank-visibility-chart-1024x451.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/dinorank-visibility-chart-300x132.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/dinorank-visibility-chart-768x338.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/dinorank-visibility-chart.png 1498w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If we want to get straight to the point, we also have a tool called Content Gap that directly shows us the <strong>content other websites are ranking for<\/strong> that we aren&#8217;t yet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"228\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-gap-1024x228.png\" alt=\"seo for saas content gap\" class=\"wp-image-20901\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-gap-1024x228.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-gap-300x67.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-gap-768x171.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-gap.png 1440w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And we can also find out which sources are linking to them, allowing us to emulate their <strong>link-building strategy.<\/strong><\/p>\n\n\n\n<p>In short, analyzing the competition gives us invaluable insights to plan our SEO strategy for SaaS.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"497\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-link-building-1024x497.png\" alt=\"seo for saas link building\" class=\"wp-image-20905\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-link-building-1024x497.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-link-building-300x146.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-link-building-768x372.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-link-building.png 1435w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4. Conduct Thorough Keyword Research<\/h3>\n\n\n\n<p>We&#8217;ve arrived at one of the most crucial tasks in SEO: keyword research.<\/p>\n\n\n\n<p>Identifying the <strong>strategic keywords you want to rank for<\/strong> is fundamental if you aim to achieve results.<\/p>\n\n\n\n<p>But, how do you identify those keywords?<\/p>\n\n\n\n<p>Well, let me tell you that if you&#8217;ve completed the previous steps, you&#8217;re already ahead of the game.<\/p>\n\n\n\n<p>Understanding <strong>your potential customers&#8217; pain points<\/strong> gives you a very interesting list of keywords to start with.<\/p>\n\n\n\n<p>Now, just run them through a keyword research tool, like DinoRANK, to find related keywords.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-keyword-1024x510.png\" alt=\"seo for saas keyword\" class=\"wp-image-20907\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-keyword-1024x510.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-keyword-300x149.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-keyword-768x382.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-keyword.png 1531w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>During this analysis, pay close attention to the keywords made up of several terms that have a low search volume. These are long-tail keywords, which are easier to rank for; they&#8217;re crucial for giving your website an initial boost.<\/p>\n\n\n\n<p>Additionally, <strong>analyzing your competition <\/strong>will have also allowed you to uncover a good set of keywords to add to your SEO strategy.<\/p>\n\n\n\n<p>Another group of keywords you can add during your Keyword Research are competitor brand keywords. These types of keywords are very interesting because they allow you to appear in search terms related to competitor brands and \u201csteal\u201d their traffic and sales. Here\u2019s an example:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"515\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-1024x515.png\" alt=\"seo for saas content\" class=\"wp-image-20908\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-1024x515.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-300x151.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-768x386.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content-1536x773.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-content.png 1636w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>As you can see, when a user searches for a competitor on Google, our website appears among the search results, which directs qualified clicks our way that we&#8217;ll quickly try to capture through content.<\/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<h3 class=\"wp-block-heading\">5. Organize Your Keywords by Search Intent and Segment or Associate with Business<\/h3>\n\n\n\n<p>Now that you have your list of keywords, it&#8217;s necessary to organize them based on the user&#8217;s search intent.<\/p>\n\n\n\n<p>To make this classification, it&#8217;s very helpful to have a deep understanding of your ideal customer&#8217;s journey, as it will allow you to <strong>determine whether a keyword is closer to or further from the sales phase.<\/strong><\/p>\n\n\n\n<p>The concept of a sales funnel is a marketing staple that perfectly represents this idea. At the wider top of the funnel, you find more informational searches, while at the narrower bottom are the searches from those intending to make a purchase.<\/p>\n\n\n\n<p>Identifying the intent behind each keyword is crucial if we want our content to stand a chance at ranking in search engines.<\/p>\n\n\n\n<p>Additionally, we must also group our keywords by theme, as this will enable us to <strong>work on topical authority.<\/strong><\/p>\n\n\n\n<p>In other words, the more thoroughly we cover a specific subject, the better Google will recognize us as experts in that field.<\/p>\n\n\n\n<p>To get ideas for content related to a specific topic and organized hierarchically, the web architecture module of DinoBRAIN saves us a lot of work. You can try it out too.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"424\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-architecture-1024x424.png\" alt=\"seo for saas dinobrain architecture\" class=\"wp-image-20909\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-architecture-1024x424.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-architecture-300x124.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-architecture-768x318.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-architecture.png 1083w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">6. Produce High-Quality Content<\/h3>\n\n\n\n<p>When creating content for our website, we must always ensure it&#8217;s high-quality and <strong>offers a definitive solution to the problem<\/strong> we&#8217;re addressing.<\/p>\n\n\n\n<p>So, can&#8217;t we create content with Artificial Intelligence?<\/p>\n\n\n\n<p>That&#8217;s not what I&#8217;m saying. AI is very useful for generating some types of texts, but it&#8217;s true that for others, it might not be the best approach.<\/p>\n\n\n\n<p>Specifically, if we need to create informative content, situated at the top of the sales funnel, AI can yield good results.<\/p>\n\n\n\n<p><strong>With DinoBRAIN, you can easily create texts<\/strong> that are already <strong>optimized for SEO<\/strong>, ensuring they&#8217;ll rank quite well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"732\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-content-1024x732.png\" alt=\"seo for saas dinobrain content\" class=\"wp-image-20910\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-content-1024x732.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-content-300x215.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-content-768x549.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-dinobrain-content.png 1099w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>However, for content that&#8217;s closer to the purchase decision, I wouldn&#8217;t recommend using AI to draft it.<\/p>\n\n\n\n<p><strong>A compelling copy on a sales landing page<\/strong> can make all the difference in persuading a potential customer.<\/p>\n\n\n\n<p>Similarly, a comparative analysis between tools conducted by an expert who has used them as part of their job, showcasing real usage examples, will be incredibly helpful for the user and greatly enhance their <strong>trust in the website&#8217;s content authenticity<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-blog-1024x525.png\" alt=\"seo for saas blog\" class=\"wp-image-20911\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-blog-1024x525.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-blog-300x154.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-blog-768x394.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-blog.png 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Finally, remember that content doesn&#8217;t have to be just text. Create videos, infographics, charts, or short ebooks that help retain your visitors or that can be used to spread your brand through social media or other channels.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.Optimize On-Page SEO and Internal Linking<\/h3>\n\n\n\n<p>On-Page SEO encompasses a wide range of actions that every SEO professional should know and apply to boost their pages&#8217; rankings.<\/p>\n\n\n\n<p>Explaining it in depth would take several articles. In fact, you can find a lot of information on this topic on the DinoRANK blog.<\/p>\n\n\n\n<p>Since I want this guide to be practical for you, here&#8217;s a list of <strong>actions you should take to take care of your website&#8217;s On-Page SEO:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conduct an SEO audit to fix errors.<\/li>\n\n\n\n<li>Optimize your content from an SEO standpoint.<\/li>\n\n\n\n<li>Avoid duplicate content.<\/li>\n\n\n\n<li>Monitor your pages&#8217; loading speed.<\/li>\n\n\n\n<li>Check your website&#8217;s indexing.<\/li>\n\n\n\n<li>Review the internal linking among your content.<\/li>\n<\/ul>\n\n\n\n<p>Regarding the last point, I&#8217;d like to highlight the<strong> importance of proper internal linking<\/strong>.<\/p>\n\n\n\n<p>When you link one piece of content to another, you&#8217;re not just directing the user to other useful information they can consult. You&#8217;re also signaling to Google other important pages on your website that it should crawl.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"499\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-internal-linking-1024x499.png\" alt=\"seo for saas internal linking\" class=\"wp-image-20912\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-internal-linking-1024x499.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-internal-linking-300x146.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-internal-linking-768x374.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-internal-linking.png 1487w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Therefore, to improve your SaaS sales, it&#8217;s wise to create good informative content and <strong>link from there to more transactional pages.<\/strong><\/p>\n\n\n\n<p>This way, on one hand, you distribute authority, and on the other, you <strong>naturally guide users towards making a purchase.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8. Work on Off-Page SEO<\/h3>\n\n\n\n<p>Once we&#8217;ve ensured that all elements within our website are optimized, it&#8217;s time to <strong>focus on external aspects.<\/strong><\/p>\n\n\n\n<p>Here&#8217;s a comprehensive guide to learning how to work on your website&#8217;s Off-Page SEO. In summary, the most important actions focus on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Designing a link-building strategy.<\/li>\n\n\n\n<li>Posting on social media.<\/li>\n\n\n\n<li>Creating a brand through spreading the word about your project.<\/li>\n<\/ul>\n\n\n\n<p>Regarding <a href=\"https:\/\/www.loopexdigital.com\/blog\/link-building-for-saas\" target=\"_blank\" rel=\"noreferrer noopener\">link building for SaaS<\/a>, we&#8217;ve seen how analyzing your competitors can give you ideas about what external links you might try to acquire.<\/p>\n\n\n\n<p>But at this point, I&#8217;d like you not to obsess over getting exactly the same backlinks as your competition. When planning a link-building strategy, what you should always prioritize is the <strong>creation of quality links<\/strong>. Links that are thematically related and can bring traffic.<\/p>\n\n\n\n<p>Think of your links as billboards placed in strategic locations, aiming to attract more customers.<\/p>\n\n\n\n<p>The same goes for social media. If we know how to leverage its potential, it can be a powerful medium for making ourselves known and showcasing the benefits of our solution.<\/p>\n\n\n\n<p>Therefore, one of my favorite ways to acquire quality links for a SaaS, as well as to spread the brand, is through <strong>a well-managed affiliate program.<\/strong><\/p>\n\n\n\n<p>In this way, in exchange for a commission, <strong>many industry specialists will be interested in spreading the word about your project<\/strong> through their own websites or social media, generating traffic to your website and even direct sales for your SaaS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">9. Pay Attention to E-E-A-T<\/h3>\n\n\n\n<p>At the beginning of this post, we talked about trust, a factor in SEO that is closely linked to E-E-A-T.<\/p>\n\n\n\n<p>E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness, and it&#8217;s <strong>an aspect that Google increasingly considers<\/strong>, especially for certain sectors.<\/p>\n\n\n\n<p>If your website aims to sell something, E-E-A-T is almost indispensable.<\/p>\n\n\n\n<p>But not just because Google says so, but because <strong>credibility and trust are essential for someone to be willing to buy <\/strong>what you&#8217;re offering.<\/p>\n\n\n\n<p>In the case of a SaaS, there are many actions you can take to work on E-E-A-T. Some of the most important include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Providing information about the team behind the project.<\/li>\n\n\n\n<li>Uploading real-time functioning videos of the SaaS.<\/li>\n\n\n\n<li>Offering clear information about specifications, pricing, or payment conditions.<\/li>\n\n\n\n<li>Delivering comprehensive, high-quality guides on various aspects related to the project&#8217;s theme.<\/li>\n\n\n\n<li>Comparing our SaaS honestly with other competitors&#8217; solutions, showing their advantages and disadvantages.<\/li>\n\n\n\n<li>Displaying real user reviews.<\/li>\n<\/ul>\n\n\n\n<p>All these actions contribute to enhancing our brand image and will make users see us as a serious and trustworthy project.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">10. Measure and Analyze Your Results<\/h3>\n\n\n\n<p>Once we&#8217;ve implemented all the actions in our SEO strategy for SaaS, it&#8217;s time to <strong>evaluate the results through the KPIs<\/strong> we defined in the first step.<\/p>\n\n\n\n<p>At this point, Google Search Console and Google Analytics are two key tools that can provide much of the information you need.<\/p>\n\n\n\n<p>But they&#8217;re not the only ones.<\/p>\n\n\n\n<p>Personally, one of the things I like to keep a close eye on is the <strong>evolution of the project&#8217;s most important keywords.<\/strong><\/p>\n\n\n\n<p>For this, DinoRANK&#8217;s position tracking has become an indispensable tool in my daily routine.<\/p>\n\n\n\n<p>Thanks to this utility, I always have a comprehensive view of the overall progress of the project and each keyword in particular.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1488\" height=\"588\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-position-tracking.png\" alt=\"\" class=\"wp-image-20913\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-position-tracking.png 1488w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-position-tracking-300x119.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-position-tracking-1024x405.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/03\/seo-for-saas-position-tracking-768x303.png 768w\" sizes=\"(max-width: 1488px) 100vw, 1488px\" \/><\/figure>\n\n\n\n<p>This way, I can decide with considerable accuracy <strong>which aspects to focus my efforts<\/strong> on to boost the overall SEO strategy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusions on SEO for SaaS<\/strong><\/h2>\n\n\n\n<p>Throughout my career, I&#8217;ve seen software companies with powerful products have to stop selling.<\/p>\n\n\n\n<p>The reason: they failed to <strong>capture the public&#8217;s attention<\/strong>.<\/p>\n\n\n\n<p>Digital marketing is essential today if you want to <strong>promote your product and generate interest<\/strong> in it. However, sometimes it doesn&#8217;t receive the attention and resources necessary to achieve this.<\/p>\n\n\n\n<p><strong>SEO for SaaS<\/strong> is part of these online marketing strategies. A strategy that, when executed well, can yield <strong>significant long-term benefits<\/strong>.<\/p>\n\n\n\n<p>In this article, I&#8217;ve shown you how you can build a SaaS project using SEO through 10 very specific steps that will help you attract more customers by leveraging the visibility provided by web search engines.<\/p>\n\n\n\n<p>So, if you have a SaaS, I encourage you to start working on SEO sooner rather than later, and you&#8217;ll see how your sales begin to improve substantially.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve ever been involved in a software project, you know that developing a web application is a costly process filled with hurdles. That&#8217;s why it often seems like reaching the product completion stage is the finish line. But in reality, it&#8217;s just the starting point. The real challenge begins now. It&#8217;s time to get [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":20890,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[52],"tags":[],"class_list":["post-20888","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\/20888","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=20888"}],"version-history":[{"count":4,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20888\/revisions"}],"predecessor-version":[{"id":22670,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20888\/revisions\/22670"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media\/20890"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media?parent=20888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/categories?post=20888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/tags?post=20888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}