{"id":22842,"date":"2025-06-23T10:40:26","date_gmt":"2025-06-23T14:40:26","guid":{"rendered":"https:\/\/dinorank.com\/en-us\/blog-seo\/?p=22842"},"modified":"2025-07-03T07:49:52","modified_gmt":"2025-07-03T11:49:52","slug":"best-free-seo-tools","status":"publish","type":"post","link":"https:\/\/dinorank.com\/en-us\/blog-seo\/best-free-seo-tools\/","title":{"rendered":"18 Best SEO tools to do SEO for free in 2025"},"content":{"rendered":"\n<p>Getting started in the world of SEO isn\u2019t easy for several reasons.<\/p>\n\n\n\n<p>One of them is money: you&#8217;re probably not earning much yet\u2014whether you&#8217;re a freelance SEO consultant or working on monetized niche sites through Amazon or AdSense, for example.<\/p>\n\n\n\n<p>When you first start and see the price tags on some SEO tools to improve rankings&#8230; <strong>it just doesn\u2019t add up<\/strong>.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#eef9f4\">Fortunately, <strong>there are plenty of free SEO tools out there that can help you<\/strong>, especially in these early stages of your business.<\/p>\n\n\n\n<p>Just keep in mind that <strong>over time, you\u2019ll need more powerful tools<\/strong>, and those come at a cost.<\/p>\n\n\n\n<p>Until then, we want to help you with this list of the best free SEO tools to get started in this field.<\/p>\n\n\n\n<p>And yes, we mean <strong>TRULY FREE SEO tools<\/strong>.<\/p>\n\n\n\n<p>We\u2019re not talking about free trials that expire after a few days.<\/p>\n\n\n\n<p>We\u2019re talking about <strong>premium tools that offer limited free versions<\/strong>\u2014enough to help you work on your organic SEO in the beginning.<\/p>\n\n\n\n<p>Let\u2019s take a look.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/discover-dinorank\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"450\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords.png\" alt=\"Find the best keywords\" class=\"wp-image-22028\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords.png 1000w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords-300x135.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords-768x346.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3 Free All-in-One SEO Tools<\/h2>\n\n\n\n<p>All-in-one SEO tools are platforms that combine several functions related to website optimization.<\/p>\n\n\n\n<p>They&#8217;re incredibly useful because they help you <strong>approach SEO from multiple angles<\/strong>. The ones listed below give you general insights about any website you\u2019re browsing, showing where action might be needed.<\/p>\n\n\n\n<p>These free versions can eventually fall short, so when that happens, you\u2019ll want to either upgrade to a paid plan or switch to another tool\u2014free or not.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DinoRANK (the &#8216;almost free&#8217; all-in-one tool)<\/h3>\n\n\n\n<p>While DinoRANK isn\u2019t entirely free, <a href=\"https:\/\/dinorank.com\/en\/seccion-precios\/\" target=\"_blank\" rel=\"noreferrer noopener\">its pricing is so affordable compared to premium tools<\/a> like Ahrefs or Semrush that it might as well be. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"900\" height=\"432\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/DinoRANK-SEO-reports.jpg\" alt=\"DinoRANK SEO reports\" class=\"wp-image-22860\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/DinoRANK-SEO-reports.jpg 900w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/DinoRANK-SEO-reports-300x144.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/DinoRANK-SEO-reports-768x369.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure><\/div>\n\n\n<p>For solo consultants, small agencies, or anyone getting serious about SEO without breaking the bank, DinoRANK is a game-changer.<\/p>\n\n\n\n<p><strong>It offers core SEO functionalities at a fraction of the cost, including:<\/strong><\/p>\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n\n\n\n<ul class=\"wp-block-list\">\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Keyword tracking to monitor your rankings and detect opportunities or drops in visibility.<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Keyword research + AI, to discover profitable search terms with real user intent behind them.<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> SEO reporting modules to generate professional reports for your clients or projects with just a few clicks.<\/li>\n<\/ul>\n\n\n\n<\/div>\n\n\n<p class=\"has-text-align-center\">\n\n<a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/discover-dinorank\/\" class=\"su-button su-button-style-default\" style=\"color:#FFFFFF;background-color:#00947D;border-color:#007764;border-radius:10px\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color:#FFFFFF;padding:0px 26px;font-size:20px;line-height:40px;border-color:#4db5a4;border-radius:10px;text-shadow:none\"> I want to try DinoRANK now<\/span><\/a>\n\n\n<\/p>\n\n\n<p>If you\u2019re tired of overpriced tools and just want something that works \u2014 DinoRANK delivers solid features without the inflated monthly fees.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MozBar<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"264\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1-1024x264.png\" alt=\"20+1 herramientas_moz\" class=\"wp-image-20601\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1-1024x264.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1-300x77.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1-768x198.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1-1536x396.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_moz-1.png 1875w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>MozBar is a Google Chrome extension that lets you analyze and optimize any site instantly. You\u2019ll need to register with Moz to use it, but it\u2019s free.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>PA and DA MozBar shows you PA (Page Authority) and DA (Domain Authority) scores\u2014two popular SEO metrics used to evaluate a site&#8217;s credibility.<\/p>\n<\/blockquote>\n\n\n\n<p>It also lets you see <strong>follow, nofollow, internal and external links<\/strong>, spam score, meta description, title, H1s, and H2s of any given page.<\/p>\n\n\n\n<p>You can also check things like meta robots and schema markup (if present), so you get a quick look at how well a site is optimized for basic SEO.<\/p>\n\n\n\n<p>If you want data on backlinks or content optimization scores, you\u2019ll need to upgrade to the Premium plan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SEOQuake<\/h3>\n\n\n\n<p>SEOQuake is another Chrome extension packed with various free SEO functions and tools to help analyze different aspects of a website.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"400\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/SEOquake.png\" alt=\"SEOquake\" class=\"wp-image-22846\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/SEOquake.png 640w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/SEOquake-300x188.png 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure><\/div>\n\n\n<p>It&#8217;s simple and lightweight, which is why many SEOs keep it installed\u2014even if it&#8217;s just for <strong>quick data checks before jumping into premium tools<\/strong>.<\/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\">SEOQuake appears as a subtle bar offering data like::<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n\n\n\n<ul class=\"wp-block-list\">\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> How many URLs Google has indexed<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> How many URLs Bing has indexed<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Backlinks detected by Semrush<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Semrush ranking<\/li>\n\n\n\n<li><i class=\"sui sui-check\" style=\"color:#00937D\"><\/i> Facebook and Pinterest interactions<\/li>\n<\/ul>\n\n\n\n<\/div> <\/div><\/div>\n\n\n\n<p>It also includes a Diagnosis button that runs an instant SEO audit, pointing out errors and giving you warnings about potential issues on your site.<\/p>\n\n\n\n<p>There&#8217;s also a Density tab showing keyword prominence, and features for analyzing internal and external links.<\/p>\n\n\n\n<p><strong>All this data appears under each Google search result<\/strong> every time you run a query, giving you insights into the health of each URL.<\/p>\n\n\n\n<p>To unlock some advanced metrics, you\u2019ll need a Semrush account.<\/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<h2 class=\"wp-block-heading\">5 Free SEO Tools for Keyword Research<\/h2>\n\n\n\n<p><strong>SEO should always start with <a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/how-to-do-keyword-research\/\" target=\"_blank\" rel=\"noreferrer noopener\">a solid keyword research <\/a><a href=\"https:\/\/dinorank.com\/blog\/keyword-research-palabras-clave\/\">process<\/a><\/strong>, so you\u2019ll definitely need either a free or paid tool for this task.<\/p>\n\n\n\n<p>There are many free keyword research tools out there, but they often come with limitations in the data they provide.<\/p>\n\n\n\n<p>It makes sense\u2014they reserve full database access for paid plans. Still, these tools can help you start building an initial SEO strategy. Here are some worth checking out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ubersuggest<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full\">\n<figure class=\"size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"436\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1-1024x436.png\" alt=\"Ubersuggest\" class=\"wp-image-21458\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1-1024x436.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1-300x128.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1-768x327.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1-1536x655.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/07\/Alternatives-to-SE-Ranking-Ubersuggest-1.png 1797w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Neil Patel\u2019s SEO tool is among the most well-known free keyword research platforms.<\/p>\n\n\n\n<p>As shown in the image, you can <strong>find keyword suggestions along with data like search volume and CPC<\/strong>. You\u2019ll also see content ideas that are already ranking in the SERPs for that keyword.<\/p>\n\n\n\n<p>That said, the free version of Ubersuggest has some limitations. For instance, it may detect 163 related keywords but <strong>only show you 30 of them<\/strong>.<\/p>\n\n\n\n<p>You\u2019re also limited to just 3 searches per day in the Keyword Research module.<\/p>\n\n\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#004730;border-radius:7px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#017A63;color:#ffffff;border-top-left-radius:5px;border-top-right-radius:5px\">With this limited free account you can:<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:5px;border-bottom-right-radius:5px\">\n\n\n\n<ul class=\"wp-block-list\">\n<li>Discover valuable keywords<\/li>\n\n\n\n<li>Perform in-depth SEO audits<\/li>\n\n\n\n<li>Monitor keyword rankings<\/li>\n\n\n\n<li>Receive personalized SEO tips<\/li>\n\n\n\n<li>Steal your competitors&#8217; strategies<\/li>\n\n\n\n<li>Find thousands of backlink opportunities<\/li>\n<\/ul>\n\n\n\n<\/div><\/div>\n\n\n\n<p>Content ideas also show what\u2019s being shared on Facebook and Pinterest\u2014useful insights to expand your overall marketing plan.<\/p>\n\n\n\n<p>Beyond keyword research, the free version of Ubersuggest offers features for competitor analysis and site audits. But let\u2019s be honest\u2014<strong>its main strength is keyword research<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Answer the Public<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full\">\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"483\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Answer-the-public-is-not-free-now.jpg\" alt=\"Answer the public is not free now\" class=\"wp-image-22749\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Answer-the-public-is-not-free-now.jpg 900w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Answer-the-public-is-not-free-now-300x161.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Answer-the-public-is-not-free-now-768x412.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure><\/div>\n\n\n<p><a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/answer-the-public-alternatives\/\" data-type=\"post\" data-id=\"22744\">Answer The Public<\/a> is another classic among free keyword tools. But instead of keyword research per se, it\u2019s a <strong>content idea generator<\/strong>.<\/p>\n\n\n\n<p>As shown in the example, searching for \u201cmarketing\u201d generates dozens of topic ideas pulled from user queries in Google.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#eef9f4\">The problem with this tool is that it <strong>is free for only 3 searches<\/strong> per day.<\/p>\n\n\n\n<p>Of course, not every suggestion will suit your site\u2014you\u2019ll need to <strong>filter for relevance to your usual content and target audience<\/strong>.<\/p>\n\n\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#004730;border-radius:7px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#017A63;color:#ffffff;border-top-left-radius:5px;border-top-right-radius:5px\">Quick Ideas:<\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:5px;border-bottom-right-radius:5px\">\n\n\n\n<p>Besides questions, it suggests preposition-based phrases, comparisons, and an alphabetical keyword list. However, no extra data like search volume or traffic estimates is included.<\/p>\n\n\n\n<\/div><\/div>\n\n\n\n<p>This is why many users turn to this tool <strong>just to find something worth writing about<\/strong>.<\/p>\n\n\n\n<p>You can download all results as an image or Excel file in list format.<\/p>\n\n\n\n<p>Currently, it allows just two searches per day (or three if you register). Info is limited, but for quick inspiration, it\u2019s easy to use and highly helpful.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AlsoAsked.com<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full\">\n<figure class=\"size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1-1024x487.png\" alt=\"alsoasked\" class=\"wp-image-20604\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1-1024x487.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1-300x143.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1-768x365.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1-1536x730.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_alsoasked-1.png 1870w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>If you like Answer The Public, you\u2019ll probably love AlsoAsked too. Based on a keyword, it shows <strong>related questions users ask<\/strong>\u2014ideal for content inspiration.<\/p>\n\n\n\n<p>However, the free version is quite limited: <strong>just 3 searches per month<\/strong>. For more, you\u2019ll need a paid plan.<\/p>\n\n\n\n<p>Use it for highly strategic keywords or when you&#8217;re stuck for content ideas and need a creativity boost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Keyword Surfer<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full\">\n<figure class=\"size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Keyword-Surfer-as-an-alternative-to-Ahrefs-1024x527.png\" alt=\"Keyword Surfer\" class=\"wp-image-21805\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Keyword-Surfer-as-an-alternative-to-Ahrefs-1024x527.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Keyword-Surfer-as-an-alternative-to-Ahrefs-300x154.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Keyword-Surfer-as-an-alternative-to-Ahrefs-768x395.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Keyword-Surfer-as-an-alternative-to-Ahrefs.png 1498w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Next up is another SEO favorite\u2014not just because it\u2019s free but also because it\u2019s incredibly easy to use and provides valuable data.<\/p>\n\n\n\n<p>Keyword Surfer is a Chrome extension that displays <strong>search volume data<\/strong> for your query right in Google\u2019s search bar.<\/p>\n\n\n\n<p>It also shows <strong>estimated monthly traffic<\/strong>, word count, and keyword usage under each URL in the SERPs\u2014based on your location.<\/p>\n\n\n\n<p>This helps you assess keyword potential in real time while checking out the SERPs.<\/p>\n\n\n\n<p>Still, it won\u2019t give you as many related keywords as a full-featured paid tool.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Keyword Sheeter<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full\">\n<figure class=\"size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"423\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1-1024x423.png\" alt=\"Keyword Sheeter\" class=\"wp-image-20606\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1-1024x423.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1-300x124.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1-768x317.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1-1536x634.png 1536w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/03\/201-herramientas_keyword_sheeter-1.png 1835w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Keyword Sheeter is the <strong>rebranded version of the well-known Keyword Shitter<\/strong>, a free tool perfect for generating tons of related keywords in seconds.<\/p>\n\n\n\n<p>The updated version allows you to choose between \u201cclassic\u201d search for Google, or results for YouTube, products, news, images, or books.<\/p>\n\n\n\n<p>As shown in the image, this tool doesn\u2019t give you much additional data for free, but it\u2019s useful for discovering keywords you can work on or to <strong>quickly spark new ideas<\/strong>.<\/p>\n\n\n\n<p>If you want data like CPC, exact match results, SERP insights, or backlink reports, you&#8217;ll need to pay extra.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2 Free tools for SEO audits<\/h2>\n\n\n\n<p>An SEO audit helps you <strong>identify potential issues on your website<\/strong> that may be hindering your organic rankings. That\u2019s why most SEO consultants start with an audit before doing any optimization work.<\/p>\n\n\n\n<p>If you&#8217;re starting out as an SEO consultant, here are a few free tools that can be very helpful in the early stages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Screaming Frog<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"587\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Screaming-Frog-1024x587.png\" alt=\"Screaming Frog\" class=\"wp-image-21813\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Screaming-Frog-1024x587.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Screaming-Frog-300x172.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Screaming-Frog-768x440.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/09\/Screaming-Frog.png 1501w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p><strong>Screaming Frog is one of the most popular free SEO audit tools among consultants<\/strong>. Many who start with the free version end up upgrading as their needs grow.<\/p>\n\n\n\n<p>It\u2019s not the most user-friendly tool out there, and its interface isn\u2019t exactly modern. So, it may take some time to get used to how it works.<\/p>\n\n\n\n<p>But once you learn how to use it, <strong>you\u2019ll be amazed at the depth of information it gives you about a website<\/strong>. Just take a look at the screenshot\u2014there are tabs and data points everywhere&#8230;<\/p>\n\n\n\n<p>Broken links, headers, image optimization, response times, security, and more.<\/p>\n\n\n\n<p><strong>Perfect for small websites:<\/strong> the free version allows you to crawl up to 500 URLs, which is enough for small and medium sites.<\/p>\n\n\n\n<p>It\u2019s a standalone desktop software, so you\u2019ll need to install it on your computer\u2014it\u2019s not an online tool like others.<\/p>\n\n\n\n<p>Of course, like most SEO tools, Screaming Frog lets you export everything to CSV files for easier data analysis and control.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Seorch<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2023\/03\/seorch.png\" alt=\"seorch\"\/><\/figure><\/div>\n\n\n<p>This tool offers a <strong>free SEO analysis<\/strong> for any website you enter. As seen in the screenshot, it covers everything from title tags and meta descriptions to header tags, keyword density, technical aspects, mobile friendliness, links, and more.<\/p>\n\n\n\n<p>Its color-coded system\u2014green for correct elements and red for errors\u2014lets you <strong>quickly scan and assess a website&#8217;s health<\/strong>.<\/p>\n\n\n\n<p>You can also export all data to a PDF and save a permalink to share the audit results with clients or collaborators.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2 Free SEO tools for rank tracking<\/h2>\n\n\n\n<p>The ultimate goal of SEO is to climb the ranks on Google SERPs. Ideally, you want to reach the top position.<\/p>\n\n\n\n<p>That\u2019s why all SEO efforts should be tracked. A <a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/keyword-position-tracking\/\" target=\"_blank\" data-type=\"post\" data-id=\"20743\" rel=\"noreferrer noopener\">rank tracking tool<\/a> is essential to monitor results.<\/p>\n\n\n\n<p>Here are some <strong>free trackers you can use to measure how your SEO efforts are performing<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Serprobot<\/h3>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2023\/03\/serprobot.png\" alt=\"serprobot\"\/><\/figure>\n\n\n\n<p>Serprobot is a rank tracking tool that helps you check how your (or your competitors\u2019) keywords are ranking on Google search results.<\/p>\n\n\n\n<p>It includes a <strong>Free SERP Checker<\/strong> feature that shows you your ranking positions for up to 5 keywords per query\u2014fast and easy.<\/p>\n\n\n\n<p>However, because it\u2019s free, <strong>it doesn\u2019t store your history<\/strong>. If you want to track rankings over time, you\u2019ll need to log them manually using a spreadsheet or similar method.<\/p>\n\n\n\n<p>But if you\u2019re just looking for a quick check on a few keywords for any domain\u2014yours or a competitor\u2019s\u2014Serprobot works great.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">FatRank Keyword Checker<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2023\/03\/fatrank-ok.png\" alt=\"fatrank\"\/><\/figure><\/div>\n\n\n<p><strong>FatRank Keyword Checker<\/strong> is a free Chrome extension that makes it incredibly easy to check keyword rankings in real time. Just enter a keyword and a domain, and the tool instantly tells you whether the site is ranking in Google&#8217;s top 100 results\u2014along with the exact position.<\/p>\n\n\n\n<p>It&#8217;s perfect for quick spot checks, especially when you don\u2019t want to open your full SEO suite. <\/p>\n\n\n\n<p>While it doesn\u2019t offer historical tracking or competitor analysis, its speed and simplicity make it a must-have for SEOs, content creators, and marketers who want instant answers without the noise.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3 Free SEO tools to analyze your website\u2019s content<\/h2>\n\n\n\n<p>Great content is the foundation of strong SEO. These free tools will help you optimize your site\u2019s content to match search intent and boost your rankings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Siteliner<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full wp-image-14252\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2023\/03\/siteliner.png\" alt=\"siteliner\"\/><\/figure><\/div>\n\n\n<p>Siteliner helps you detect duplicate content across your website, a common issue especially in large sites or eCommerce stores. <\/p>\n\n\n\n<p>It scans <strong>up to 250 URLs for free<\/strong> and highlights repeated blocks of text so you can take action. It also provides insights on internal linking and page load speed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SERPSim or Google SERP Snippet Optimization Tool (now &#8216;Highervisibility&#8217;)<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full wp-image-14253\">\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"592\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Highervisibility.jpg\" alt=\"Highervisibility\" class=\"wp-image-22854\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Highervisibility.jpg 900w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Highervisibility-300x197.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/Highervisibility-768x505.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure><\/div>\n\n\n<p>The content is not only the body of the text that the user reads but also the title and description that you put to that content and that is <strong>what will appear in Google<\/strong>. Therefore, it is very important not only that it is not half-baked but that it encourages the user to click.<\/p>\n\n\n\n<p>One way to check how it looks is to use free SEO plugins like All in One, <a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/how-to-use-yoast-seo-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Yoast SEO<\/a> or <a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/rank-math-seo\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rank Math<\/a>. You can also search directly on Google to see how it looks.<\/p>\n\n\n\n<p>And there is another one and that is using Google&#8217;s SERP simulator, SERPSim or SERP Snippet Optimization Tool.<\/p>\n\n\n\n<p>It is very easy to use: enter the title, description and URL and see in real time how it looks in the SERPs. This way you can publish it directly without having to make changes afterwards.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Google\u2019s Rich Results Test<\/h3>\n\n\n<div class=\"wp-block-image aligncenter size-full wp-image-14254\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/blog\/wp-content\/uploads\/2023\/03\/rich-results-test-google.png\" alt=\"rich results test google\"\/><\/figure><\/div>\n\n\n<p>This free tool from Google shows whether your web pages are eligible for rich results, like star ratings, product info, or FAQs, in the SERPs. <\/p>\n\n\n\n<p>Just enter your URL and get a breakdown of which structured data elements are recognized and whether they\u2019re properly implemented.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3 Free Technical SEO Tools<\/h2>\n\n\n\n<p>Some SEOs overlook the more technical aspects of SEO mainly because they require <strong>more specialized knowledge<\/strong>, which not everyone has and isn\u2019t easy to acquire.<\/p>\n\n\n\n<p>If you&#8217;re one of those passionate about technical SEO or planning to specialize in it, here are some tools that will help you better understand how search engines work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scraper<\/h3>\n\n\n\n<p>To use Scraper, you\u2019ll need some <strong>knowledge of XPath<\/strong>, the system used to handle information in XML documents. If that\u2019s not an issue for you, you can go ahead and download this Chrome extension.<\/p>\n\n\n\n<p>What does this tool do? It <strong>extracts all the data from the URLs listed in the SERPs<\/strong> and transfers it to an XML file where you can work directly or even import it into other tools like Screaming Frog.<\/p>\n\n\n\n<p>In just two clicks, you&#8217;ll have your competitors&#8217; URLs from the SERPs to analyze and figure out how to outperform them with your SEO strategy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GTMetrix<\/h3>\n\n\n\n<p>GTMetrix isn\u2019t just a free tool to <strong>measure your website\u2019s loading speed<\/strong>, it&#8217;s much more. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"325\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/GTMetrix.jpg\" alt=\"GT Metrix\" class=\"wp-image-22855\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/GTMetrix.jpg 900w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/GTMetrix-300x108.jpg 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/GTMetrix-768x277.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure><\/div>\n\n\n<p>Besides giving your site a performance grade, it also offers detailed data and tips to improve load time and user experience.<\/p>\n\n\n\n<p>Keep in mind that loading speed greatly impacts user experience. It doesn&#8217;t matter how great your site is, if it takes too long to load, users will leave.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>GTMetrix shows in detail how your site loads so you can detect exactly which elements are speeding it up or slowing it down.<\/p>\n<\/blockquote>\n\n\n\n<p>It also displays your <strong>Core Web Vitals<\/strong> scores, technical data from <strong>Lighthouse Performance<\/strong>, and even a historical performance graph of your site speed.<\/p>\n\n\n\n<p>You just need to register for a free account on their website to access all this.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">HEADMasterSEO<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/headmasterseo-1536x425-1-1024x283.png\" alt=\"Headmasterseo\" class=\"wp-image-22856\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/headmasterseo-1536x425-1-1024x283.png 1024w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/headmasterseo-1536x425-1-300x83.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/headmasterseo-1536x425-1-768x212.png 768w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/06\/headmasterseo-1536x425-1.png 1500w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>If you need to <strong>work with a large number of URLs<\/strong> (for example, if you manage niche sites or work as a consultant with many client websites), this tool can save you a lot of time.<\/p>\n\n\n\n<p>HEADMasterSEO is a desktop software that allows you to <strong>bulk-check data from multiple URLs<\/strong>, including robots.txt status, response codes, load times&#8230; You can copy-paste, import from a CSV file, or an XML document.<\/p>\n\n\n\n<p>The free version lets you analyze up to 500 URLs in bulk. If you need more, you&#8217;ll have to upgrade to a paid plan.<\/p>\n\n\n\n<p>Once you have the results, you can export them into a CSV file to manage them however you like and speed up your SEO tasks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final thoughts: Choosing the best free SEO tools for your workflow<\/h2>\n\n\n\n<p>When you&#8217;re just starting out, or even when you&#8217;re running lean, <strong>the best free SEO tools can give you a serious edge<\/strong>. From keyword research to content optimization, technical audits, and rank tracking, there\u2019s no shortage of free options that actually deliver real value.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#eef9f4\">No, they won\u2019t do everything a <strong>$99\/month platform<\/strong> can do\u2014but they\u2019re not supposed to. <\/p>\n\n\n\n<p>They\u2019re here to get you moving, help you learn the ropes, and let you take action without making your wallet cry.<\/p>\n\n\n\n<p>As you grow and your needs become more complex, you\u2019ll eventually need to invest in premium tools. But until then, these free SEO tools are more than enough to start improving your visibility and making smarter SEO decisions\u2014today.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/discover-dinorank\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"450\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords.png\" alt=\"Find the best keywords\" class=\"wp-image-22028\" srcset=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords.png 1000w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords-300x135.png 300w, https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2025\/01\/Find-the-best-keywords-768x346.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Getting started in the world of SEO isn\u2019t easy for several reasons. One of them is money: you&#8217;re probably not earning much yet\u2014whether you&#8217;re a freelance SEO consultant or working on monetized niche sites through Amazon or AdSense, for example. When you first start and see the price tags on some SEO tools to improve [&hellip;]<\/p>\n","protected":false},"author":32,"featured_media":22843,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50],"tags":[],"class_list":["post-22842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-tools-listings"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/22842","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\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/comments?post=22842"}],"version-history":[{"count":19,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/22842\/revisions"}],"predecessor-version":[{"id":22872,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/22842\/revisions\/22872"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media\/22843"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media?parent=22842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/categories?post=22842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/tags?post=22842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}