{"id":20743,"date":"2024-03-25T12:29:51","date_gmt":"2024-03-25T11:29:51","guid":{"rendered":"https:\/\/dinorank.com\/en-us\/blog-seo\/?p=503"},"modified":"2025-09-08T03:35:55","modified_gmt":"2025-09-08T07:35:55","slug":"keyword-position-tracking","status":"publish","type":"post","link":"https:\/\/dinorank.com\/en-us\/blog-seo\/keyword-position-tracking\/","title":{"rendered":"The Best Keyword Position Tracking Tools"},"content":{"rendered":"\n<p>One of the first investments I&#8217;d advise anyone looking to truly gauge the effectiveness of their SEO efforts to make is in acquiring a <strong>position tracking tool<\/strong>.<\/p>\n\n\n\n<p>But, isn&#8217;t Google Search Console sufficient?<\/p>\n\n\n\n<p>While GSC data is undeniably valuable, it mainly shows keywords that are gaining traction, i.e., those getting impressions.<\/p>\n\n\n\n<p>If you&#8217;re keen to <strong>track the progress of all the keywords you&#8217;re working on<\/strong> and aiming to rank, you&#8217;ll need a dedicated software to keep tabs on them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Top 10 Position Tracking Tools for Monitoring Your Keywords: Content Optimization Software<\/h2>\n\n\n\n<p>Here, I present to you 10 keyword tracking tools worth considering if you&#8217;re thinking about acquiring such software.<\/p>\n\n\n\n<p>I&#8217;ll discuss their key features, pricing, and why I find them interesting, so you can evaluate which one best fits your workflow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DinoRANK<\/h3>\n\n\n\n<p>We kick off this compilation of the best keyword trackers with the SEO tool I know best.<\/p>\n\n\n\n<p>I&#8217;m talking about none other than DinoRANK, a content optimization tool.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/position-tracker-1-1024x511.png\" alt=\"position tracker\" class=\"wp-image-597\"\/><\/figure>\n\n\n\n<p>If I had to highlight something about this tool, it&#8217;s that it&#8217;s a very dynamic software that constantly evolves thanks to user feedback, including myself.<\/p>\n\n\n\n<p>In all my web projects, <strong>DinoRANK plays a crucial role in monitoring the progress of the keywords that matter most to me.<\/strong><\/p>\n\n\n\n<p>I can assure you that more than once, I&#8217;ve identified a need in my SEO work, communicated it to the DinoRANK team, and shortly after, they&#8217;ve implemented it on the platform.<\/p>\n\n\n\n<p>This dedication to growing the tool with genuinely useful features is something I greatly appreciate.<\/p>\n\n\n\n<p>And the position tracker is a clear reflection of this philosophy.<\/p>\n\n\n\n<p>But you don&#8217;t have to take my word for it. You can check out the reviews from other users, and you&#8217;ll see how keyword <strong>monitoring is one of the most highly valued aspects<\/strong>.<\/p>\n\n\n\n<p><a href=\"https:\/\/dinorank.com\/en-us\/blog-seo\/rank-tracker-seo-software\/\">Highlights of DinoRANK&#8217;s Position Tracking<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unlimited projects in all their plans.<\/li>\n\n\n\n<li>Geo-localized tracking.<\/li>\n\n\n\n<li>Tracking graphs.<\/li>\n\n\n\n<li>Sorting into folders or by URL.<\/li>\n\n\n\n<li>Cannibalization detection.<\/li>\n\n\n\n<li>Competitive analysis.<\/li>\n\n\n\n<li>Custom reports and alerts.<\/li>\n<\/ul>\n\n\n\n<p>Regarding DinoRANK&#8217;s pricing, in my opinion, it&#8217;s quite affordable.<\/p>\n\n\n\n<p><strong>The most basic plan costs \u20ac33 per month<\/strong>. It allows you to set up unlimited projects and monitor up to a maximum of 400 keywords.<\/p>\n\n\n\n<p>These are more than acceptable conditions for someone starting out, demonstrating that you don&#8217;t need a significant investment to do professional-level SEO.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Semrush <\/h3>\n\n\n\n<p>Semrush is <strong>one of the go-to SEO tools for digital marketing professionals.<\/strong><\/p>\n\n\n\n<p>The range of features it offers for analyzing and monitoring your websites is impressive. If you want to dive deeper into them, I recommend taking a look at our detailed Semrush analysis.<\/p>\n\n\n\n<p>Among all these features, there couldn&#8217;t be a missing dedicated module for position tracking in this content optimization tool.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/08\/semrush-seo-position-tracking-1.png\" alt=\"semrush-seo-position-tracking\" class=\"wp-image-457\"\/><\/figure>\n\n\n\n<p>In this way, <strong>Semrush&#8217;s keyword tracker harnesses the full potential of the tool to provide you with various analyses of the keywords<\/strong> you want to monitor.<\/p>\n\n\n\n<p>Highlights of Semrush&#8217;s Position Tracking:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Highly illustrative graphs.<\/li>\n\n\n\n<li>Tracking and comparison with your competitors.<\/li>\n\n\n\n<li>Cannibalization detection.<\/li>\n\n\n\n<li>Featured snippet analysis.<\/li>\n\n\n\n<li>Traffic and visibility estimation.<\/li>\n\n\n\n<li>Classification by search intent.<\/li>\n<\/ul>\n\n\n\n<p>Among all the information you can obtain, <strong>I particularly like the competitive tracking it offers<\/strong>. You can quickly identify your main competitors for the set of keywords you&#8217;ve defined and keep an eye on their rankings.<\/p>\n\n\n\n<p>As for pricing plans, it&#8217;s worth noting that Semrush is not a budget-friendly tool.<\/p>\n\n\n\n<p><strong>The most economical plan costs $129.95 per month<\/strong>, but in my opinion, it has a significant limitation if you&#8217;re interested in its position tracking function.<\/p>\n\n\n\n<p>Although it allows you to set up to 5 projects, you&#8217;ll only be able to define one target, which means one combination of search engine and device, to monitor the keywords.<\/p>\n\n\n\n<p>Therefore, if you want to track the progress of your keywords on both desktop and mobile with Semrush, you&#8217;ll have no choice but to opt for their more advanced plans.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ahrefs <\/h3>\n\n\n\n<p>Ahrefs, alongside Semrush, is <strong>the other SEO tool that could be considered a reference<\/strong> in the industry.<\/p>\n\n\n\n<p>And, just like Semrush, <strong>its position tracking utility is genuinely powerful <\/strong>because it includes a significant number of features that allow us to analyze our keywords from various perspectives.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/rank-tracker-1-1024x534.png\" alt=\"rank tracker\" class=\"wp-image-598\"\/><\/figure>\n\n\n\n<p>In fact, the information provided by both solutions regarding their position tracking is very similar, so the choice between the two may depend more on other factors, such as specific features or ease of use.<\/p>\n\n\n\n<p>In this regard, I find Ahrefs&#8217; user interface to be cleaner and more intuitive than Semrush&#8217;s, although this is a matter of personal preference about content optimization tools.<\/p>\n\n\n\n<p>Highlights of Ahrefs&#8217; Rank Tracker:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>User-verified unlimited domains.<\/li>\n\n\n\n<li>Interactive graphs.<\/li>\n\n\n\n<li>Traffic and visibility estimation.<\/li>\n\n\n\n<li>Competitive analysis.<\/li>\n\n\n\n<li>Grouping through tags.<\/li>\n\n\n\n<li>Featured snippet analysis.<\/li>\n\n\n\n<li>Regular email report delivery.<\/li>\n<\/ul>\n\n\n\n<p>Regarding pricing, <strong>Ahrefs&#8217; Lite plan costs \u20ac89 per month<\/strong> and allows tracking a maximum of 750 keywords.<\/p>\n\n\n\n<p>If you need more, you can increase this number with an additional 500 keywords for an extra \u20ac45 per month.<\/p>\n\n\n\n<p>The main downside of Ahrefs&#8217; Rank Tracker is that position updates are done weekly. If you require daily tracking, you&#8217;ll need to pay an additional \u20ac90 per month.<\/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\">SE Ranking <\/h3>\n\n\n\n<p>SE Ranking is an all-in-one SEO tool that presents itself as an<strong> economical alternative to Semrush or Ahrefs.<\/strong><\/p>\n\n\n\n<p>Among all the modules it offers, its position tracker, called Rankings, is one of the most highly regarded. And there are indeed good reasons for that.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2022\/02\/se-ranking-ok-1024x627.webp\" alt=\"se-ranking-ok\" class=\"wp-image-37\"\/><\/figure>\n\n\n\n<p><br>If I have to highlight something about SE Ranking&#8217;s functionality, it&#8217;s their <strong>user-friendly interface<\/strong>.<\/p>\n\n\n\n<p>With visually appealing graphics and intuitive information grouping, you won&#8217;t have much trouble getting the hang of this content optimization tool.<\/p>\n\n\n\n<p>Highlights of SE Ranking&#8217;s Keyword Tracker:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Highly visual interactive graphs.<\/li>\n\n\n\n<li>Clean and organized user interface.<\/li>\n\n\n\n<li>Competitor discovery.<\/li>\n\n\n\n<li>Keyword classification into groups and tags.<\/li>\n\n\n\n<li>Advanced filtering options.<\/li>\n\n\n\n<li>Functionality for sharing your keyword tracking.<\/li>\n<\/ul>\n\n\n\n<p>Regarding pricing, <strong>the cheapest plan starts at \u20ac39 per month<\/strong> and allows you to monitor up to 250 keywords.<\/p>\n\n\n\n<p>Perhaps the limit is somewhat low if you have many projects or a high volume. However, for beginners, this is a highly worthwhile option.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mangools&#8217; SERP Watcher <\/h3>\n\n\n\n<p>Mangools is another SEO tool that offers various utilities to control and improve the ranking of your websites.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/mangools-rank-tracker-1.png\" alt=\"mangools rank tracker\" class=\"wp-image-605\"\/><\/figure>\n\n\n\n<p>Specifically, <strong>Mangools provides 5 modules<\/strong> with clearly defined functions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>KWFinder, for keyword research.<\/li>\n\n\n\n<li>SERPChecker, for SERP analysis.<\/li>\n\n\n\n<li>SERPWatcher, for keyword tracking.<\/li>\n\n\n\n<li>LinkMiner, for backlink research.<\/li>\n\n\n\n<li>SiteProfiler, for domain analysis.<\/li>\n<\/ol>\n\n\n\n<p>If we focus on their<strong> position tracker<\/strong>, I have to admit it feels somewhat simpler compared to other tools.<\/p>\n\n\n\n<p>xxx<\/p>\n\n\n\n<p>There&#8217;s only one panel in Mangools&#8217; SERP Watcher, which is divided into two sections.<\/p>\n\n\n\n<p>In the second section, you&#8217;ll find various graphs depicting the project&#8217;s performance. This information changes when you select a keyword from the first section to show specific data for that keyword.<\/p>\n\n\n\n<p>It&#8217;s a simple interface but can be <strong>sufficient for many users.<\/strong><\/p>\n\n\n\n<p>Highlights of the content optimization tool Mangools&#8217; SERP Watcher:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Simple panel with useful information.<\/li>\n\n\n\n<li>Keyword performance and visibility estimation.<\/li>\n\n\n\n<li>Estimated visit graph.<\/li>\n\n\n\n<li>Organization of keywords into categories.<\/li>\n\n\n\n<li>Email report and alert delivery.<\/li>\n\n\n\n<li>Option to share your keyword tracking.<\/li>\n<\/ul>\n\n\n\n<p>Regarding pricing, although there&#8217;s a <strong>starting plan at $29 per month<\/strong>, I don&#8217;t find it very useful as it&#8217;s limited to 50 keywords.<\/p>\n\n\n\n<p>For professional use, it makes more sense to at least go for the basic plan, which costs $49 per month and allows you to monitor up to 200 keywords.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SEO PowerSuite&#8217;s Rank Tracker <\/h3>\n\n\n\n<p>Unlike the rest of the tools in this article, SEO PowerSuite is not a web application but rather software that you need to install on your computer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/powersuite-rank-tracker-1-1024x494.png\" alt=\"powersuite rank tracker\" class=\"wp-image-599\"\/><\/figure>\n\n\n\n<p>This particularity does come with some disadvantages. For example, it consumes more of your system resources, and you&#8217;ll need to keep your computer running if you want to update the data regularly.<\/p>\n\n\n\n<p>However, not relying on external servers allows for much more advantageous conditions compared to online platforms.<\/p>\n\n\n\n<p>In the case of the position tracker of this content optimization tool, this translates into the <strong>ability to configure as many projects as you need with no keyword limits.<\/strong><\/p>\n\n\n\n<p>Highlights of SEO PowerSuite&#8217;s Rank Tracker:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unlimited projects.<\/li>\n\n\n\n<li>Unlimited keywords.<\/li>\n\n\n\n<li>Local installation on your own computer.<\/li>\n\n\n\n<li>Choice of over 500 search engines.<\/li>\n\n\n\n<li>Various strategies for conducting searches (human-like behavior emulation, proxy server rotation, etc.).<\/li>\n\n\n\n<li>Custom reports.<\/li>\n<\/ul>\n\n\n\n<p>SEO PowerSuite is software aimed at industry professionals, with various tools.<\/p>\n\n\n\n<p>The good news is that<strong> if you&#8217;re only interested in its keyword tracker, you can purchase it individually<\/strong> without having to buy the full package.<\/p>\n\n\n\n<p>In that case, <strong>the basic plan for the Rank Tracker tool costs \u20ac149 per year <\/strong>(equivalent to just over \u20ac12 per month).<\/p>\n\n\n\n<p>As you can see, it&#8217;s a fairly affordable option, albeit with certain peculiarities that you&#8217;ll need to consider whether you like them or not.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Serpstat <\/h3>\n\n\n\n<p>Serpstat is another all-in-one SEO platform that combines various utilities under one roof.<\/p>\n\n\n\n<p>Its Rank Tracker <strong>offers all the essential functionalities that a tool of this kind should have<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2022\/02\/serpstat-1-1024x365.webp\" alt=\"serpstat\" class=\"wp-image-39\"\/><\/figure>\n\n\n\n<p>Serpstat&#8217;s Rank Tracker Highlights:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Simple and user-friendly interface.<\/li>\n\n\n\n<li>Keyword organization using tags.<\/li>\n\n\n\n<li>Competitor analysis.<\/li>\n\n\n\n<li>Study of organic and paid searches.<\/li>\n\n\n\n<li>SERPs history for each keyword.<\/li>\n\n\n\n<li>Custom reports.<\/li>\n<\/ul>\n\n\n\n<p><strong>The price of Serpstat&#8217;s most basic plan is $59 per month<\/strong>, called &#8220;Individual,&#8221; as it&#8217;s designed for freelance professionals.<\/p>\n\n\n\n<p>In this case, the limit for monitoring keywords is not measured in the number of keywords but in the number of checks requested during the month.<\/p>\n\n\n\n<p>So, each time the information for a keyword on a specific search engine is updated, it consumes a credit of the content optimization tool.<\/p>\n\n\n\n<p>Serpstat&#8217;s Individual plan offers 10,000 credits, which equates to a little over 300 keywords monitored on a daily basis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nightwatch.io <\/h3>\n\n\n\n<p>Nightwatch.io is an <strong>SEO tool specialized in keyword monitoring<\/strong>.<\/p>\n\n\n\n<p>While it does include some other utilities, such as website audits or backlink analysis, its Rank Tracker is, in reality, its strong point.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/nightwatch-rank-tracker-1-1024x478.png\" alt=\"nightwatch rank tracker\" class=\"wp-image-600\"\/><\/figure>\n\n\n\n<p>Nightwatch.io, Position Tracking Tool This is evident in its dashboard interface, which visually presents a wealth of information related to the keywords we are monitoring.<\/p>\n\n\n\n<p>A couple of aspects worth highlighting are its graphs and keyword segmentation.<\/p>\n\n\n\n<p>Nightwatch.io allows us to <strong>build customized graphs<\/strong> by cross-referencing different available data.<\/p>\n\n\n\n<p>Furthermore, we can apply various filters to <strong>select a set of keywords and group them i<\/strong>nto what the tool calls segments. This way, both with specific graphs and segment grouping, the analysis tasks become much simpler in this content optimization tool.<\/p>\n\n\n\n<p>Highlights of Nightwatch.io:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comprehensive and informative dashboard.<\/li>\n\n\n\n<li>Pleasant dark mode.<\/li>\n\n\n\n<li>Great accuracy in geolocated searches.<\/li>\n\n\n\n<li>Functions for segmenting keywords and analyzing them together.<\/li>\n\n\n\n<li>Keyword opportunity suggestions.<\/li>\n\n\n\n<li>Option to create custom graphs.<\/li>\n\n\n\n<li>Automated and customized reports.<\/li>\n<\/ul>\n\n\n\n<p>As for pricing, <strong>the basic plan costs $39 per month<\/strong> and allows you to monitor up to 250 keywords.<\/p>\n\n\n\n<p>It&#8217;s a fairly affordable cost, although if you need other SEO utilities beyond position tracking, you might prefer to explore other alternatives.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Keyword.com <\/h3>\n\n\n\n<p>Keyword.com is an <strong>SEO tool with the sole purpose of tracking your keywords.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/keyword-com-1-1024x479.png\" alt=\"keyword com\" class=\"wp-image-601\"\/><\/figure>\n\n\n\n<p>Keyword.com, Rank Tracking Tool At first glance, its interface may seem a bit simple, but don&#8217;t be fooled because <strong>it hides more functionalities than it appears<\/strong>.<\/p>\n\n\n\n<p>Among these utilities, we have the ability to group keywords, track our competitors, and various configuration options.<\/p>\n\n\n\n<p>But there&#8217;s one option in this content optimization tool that, despite its simplicity, catches my attention. It involves observing the SERP results.<\/p>\n\n\n\n<p>By clicking on an icon next to each keyword, the tool opens a new browser tab where it performs the search on the actual search engine and highlights your website among the results.<\/p>\n\n\n\n<p>Highlights of Keyword.com:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unlimited websites in all their plans.<\/li>\n\n\n\n<li>A simple interface with access to a lot of information.<\/li>\n\n\n\n<li>Keyword grouping through tags, groups, and favorites.<\/li>\n\n\n\n<li>Configurable keyword table.<\/li>\n\n\n\n<li>Competitor analysis.<\/li>\n\n\n\n<li>Evolution graphs.<\/li>\n\n\n\n<li>SERP visualization.<\/li>\n\n\n\n<li>Report generation.<\/li>\n\n\n\n<li>Option to share the keyword table.<\/li>\n<\/ul>\n\n\n\n<p>As for its pricing, Keyword.com stands out as a relatively budget-friendly solution.<\/p>\n\n\n\n<p><strong>Their plans start at $26 per month<\/strong> with a maximum of 100 keywords to monitor.<\/p>\n\n\n\n<p>Thus, it&#8217;s a practical and affordable alternative for those who only need a position tracker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SEOcrawl <\/h3>\n\n\n\n<p>To wrap up this comparison, I want to tell you about a somewhat different tool so you can have a broader view of different ways to track your keywords.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2024\/01\/keyword-tracker-software-seocrawl-1.png\" alt=\"keyword-tracker-software-seocrawl\" class=\"wp-image-602\"\/><\/figure>\n\n\n\n<p>While I always recommend having a position tracker to monitor the keywords that interest us the most, some may be content with <strong>analyzing information from Google Search Console<\/strong>.<\/p>\n\n\n\n<p>It&#8217;s fair to acknowledge that GSC is a tremendously useful tool that provides a lot of information for free.<\/p>\n\n\n\n<p>But you&#8217;ll agree with me that it can be somewhat cumbersome to handle at times, especially when you want to conduct more in-depth studies of the data.<\/p>\n\n\n\n<p>And that&#8217;s where the content optimization tool SEOcrawl makes your life a lot easier.<\/p>\n\n\n\n<p>SEOcrawl, keyword tracking through GSC By syncing SEOcrawl with your Google account, the tool extracts all the information, thoroughly analyzes it, and presents it to you in a <strong>much more user-friendly way than GSC.<\/strong><\/p>\n\n\n\n<p>This way, you can perform very detailed analyses and, of course, keep track of the<strong> evolution of all your keywords that have ever received impressions or clicks in the search engine.<\/strong><\/p>\n\n\n\n<p>Highlights of SEOcrawl:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitoring of keywords recorded in GSC.<\/li>\n\n\n\n<li>Keyword classification by tags or clusters.<\/li>\n\n\n\n<li>Brand traffic analysis.<\/li>\n\n\n\n<li>Growth trend calculation.<\/li>\n\n\n\n<li>Performance representation through heatmaps.<\/li>\n\n\n\n<li>Detection of cannibalizations and opportunities.<\/li>\n\n\n\n<li>Automated reports.<\/li>\n<\/ul>\n\n\n\n<p>How much does SEOcrawl cost?<\/p>\n\n\n\n<p><strong>Pricing plans start at \u20ac9 per month<\/strong>, although this option is limited to only 1 project.<\/p>\n\n\n\n<p>The next plan is \u20ac29 per month and allows for up to 5 projects.<\/p>\n\n\n\n<p>If you want to manage more websites, you would need to subscribe to the Elite version, which costs \u20ac49 per month and supports up to 25 projects, or inquire about their enterprise plans.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusions <\/h2>\n\n\n\n<p>In this article, we have explored the 10 best keyword tracking tools available today.<\/p>\n\n\n\n<p>Or, at least, the ten that I consider most important, as there are other interesting options in the market that you could consider.<\/p>\n\n\n\n<p>In any case, it&#8217;s clear that these tools play a fundamental role in the strategy of any SEO professional, as they allow you to have greater control over the results of your efforts to improve the ranking of your websites.<\/p>\n\n\n\n<p>That&#8217;s why I encourage you to take a look at them and even try them out on your own, as many of these solutions offer free trial periods.<\/p>\n\n\n\n<p>It&#8217;s the best way for you to draw your own conclusions and choose the tool that best suits your way of working.<\/p>\n\n\n\n<p>Will your next rank tracker be among the ones I&#8217;ve presented in this list? If you&#8217;d like, share your thoughts in the comments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the first investments I&#8217;d advise anyone looking to truly gauge the effectiveness of their SEO efforts to make is in acquiring a position tracking tool. But, isn&#8217;t Google Search Console sufficient? While GSC data is undeniably valuable, it mainly shows keywords that are gaining traction, i.e., those getting impressions. If you&#8217;re keen to [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":20712,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-20743","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seo-tools-reviews"],"acf":[],"_links":{"self":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20743","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=20743"}],"version-history":[{"count":5,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20743\/revisions"}],"predecessor-version":[{"id":23071,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20743\/revisions\/23071"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media\/20712"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media?parent=20743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/categories?post=20743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/tags?post=20743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}