{"id":20739,"date":"2023-04-26T09:17:21","date_gmt":"2023-04-26T09:17:21","guid":{"rendered":"https:\/\/dinorank.com\/en-us\/blog-seo\/?p=176"},"modified":"2025-06-05T04:42:17","modified_gmt":"2025-06-05T08:42:17","slug":"sitebulb-tool-tutorial","status":"publish","type":"post","link":"https:\/\/dinorank.com\/en-us\/blog-seo\/sitebulb-tool-tutorial\/","title":{"rendered":"Sitebulb Tool Tutorial"},"content":{"rendered":"\n<p>If you want to improve a website&#8217;s ranking in search engines, sooner or later you&#8217;ll need to carry out an <strong>SEO audit. <\/strong><\/p>\n\n\n\n<p>This task, which may seem quite complex, fortunately can be <strong>simplified by using tools like Sitebulb<\/strong>, a website crawler that is gaining popularity among users.<\/p>\n\n\n\n<p>Have you heard of Screaming Frog?<\/p>\n\n\n\n<p>Well, Sitebulb is a similar application, but with a set of features designed to <strong>make it easier for us to interpret the results<\/strong> and make informed decisions.<\/p>\n\n\n\n<p>If you want to learn all that Sitebulb has to offer, I invite you to join me on a comprehensive guide of its functionalities.<\/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\/2023\/05\/Sitebulb-Tool-Tutorial-1024x576.jpg\" alt=\"\" class=\"wp-image-312\"\/><\/figure>\n\n\n\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h2>Sitebulb: What it is and How This SEO Crawler Works.<\/h2>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex justify-between lg:block\">\n<div class=\"text-gray-400 flex self-end lg:self-center justify-center mt-2 gap-2 md:gap-3 lg:gap-1 lg:absolute lg:top-0 lg:translate-x-full lg:right-0 lg:mt-0 lg:pl-2 visible\">\n<p>Sitebulb is an SEO tool that falls under the category of crawl maps, a type of software that <strong>performs a website crawl<\/strong> to verify its response.<\/p>\n<p>Its functionality involves <strong>emulating the behavior of search engines<\/strong> to conduct a deep analysis of your website&#8217;s architecture and generate a series of reports that help you improve your page&#8217;s rankings in search results.<\/p>\n<p>With Sitebulb, you can easily carry out a comprehensive SEO audit of a website, whether it&#8217;s for<strong> improving your own pages or for those of your clients.<\/strong><\/p>\n<p><\/p><\/div><\/div><\/div><\/div><\/div>\n\n\n<div class=\"su-box su-box-style-default\" id=\"\" style=\"border-color:#2a826a;border-radius:3px;max-width:none\"><div class=\"su-box-title\" style=\"background-color:#5DB59D;color:#FFFFFF;border-top-left-radius:1px;border-top-right-radius:1px\">What is an SEO audit? <\/div><div class=\"su-box-content su-u-clearfix su-u-trim\" style=\"border-bottom-left-radius:1px;border-bottom-right-radius:1px\">An SEO audit involves conducting a comprehensive analysis of a website to determine which aspects need to be corrected or improved in order to enhance its visibility in search engines.<\/div><\/div>\n\n\n\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h2>Who uses Sitebulb?<\/h2>\n<p>Sitebulb is a crawling tool <strong>designed specifically for the SEO community.<\/strong><\/p>\n<p>It caters to a range of users, from small freelancers who are just starting out and want to improve the rankings of their niche websites, to agencies that manage websites for multiple clients.<\/p>\n<p>What&#8217;s great about Sitebulb is that it considers all types of users, which is reflected in how it presents its results and <strong>how its developers take care to document all sections of the application<\/strong>.<\/p>\n<p>It&#8217;s a tool created by SEOs for other SEOs to audit their websites.<\/p>\n<p>Now, the question is, <strong>is Sitebulb a useful tool for you?<\/strong><\/p>\n<p>That&#8217;s what I want you to discover through this tutorial.<\/p>\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h2>Features of Sitebulb Website Crawler<\/h2>\n<p>Do you want to get straight to the point and get a quick idea of everything Sitebulb has to offer?<\/p>\n<p>Don&#8217;t worry, below I&#8217;ll mention what I believe are the features that make it <strong>a software worth considering for your SEO strategy<\/strong>:<\/p>\n<p><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> Unlimited project creation.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> JavaScript interpretation of pages during crawling.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> Visual representation of your website structure.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> User-friendly and easy-to-understand reports.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> Clear and organized improvement actions categorized by type.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> Generation of comprehensive and easy-to-understand PDF reports.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h2>Getting Started with Sitebulb.<\/h2>\n<p>Now that you know the most important aspects that Sitebulb offers, it&#8217;s time to take a closer look at all of its features.<\/p>\n<p>To do so, there&#8217;s nothing better than getting down to business and putting it into practice.<\/p>\n<p>Next, I&#8217;ll explain <strong>how to get started with the tool and create your first project<\/strong>, using the DinoRANK website as an example once again.<\/p>\n<p>Let&#8217;s dive in.<\/p>\n<h3>Downloading and installing the desktop tool<\/h3>\n<p>To use Sitebulb, the first thing you need to do is <strong>download the installer from their website<\/strong>.<\/p>\n<p>Yes, you read that right. <strong>Sitebulb is a desktop application<\/strong> that you need to install on your computer.<\/p>\n<p>This point may seem strange to newcomers to SEO, as nowadays web applications that run in the cloud through the browser are more common than traditional installers.<\/p>\n<p>But if you&#8217;ve been in this field for a while, you&#8217;ve probably used other similar tools like Screaming Frog, which you also need to download and install on your PC to run them.<\/p>\n<figure><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-188\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-setup-wizard.png\" alt=\"sitebulb-setup-wizard\" width=\"503\" height=\"399\"><\/figure><p><\/p>\n<p>The fact that it is desktop software means that <strong>its performance will depend on the features of your computer<\/strong>.<\/p>\n<p>It&#8217;s neither good nor bad, but something you should keep in mind when using it.<\/p>\n<p>Also, it&#8217;s important to note that currently, there are only versions available for Windows and Mac. In this aspect, web applications have an advantage.<\/p>\n<p>However, since Sitebulb requires minimal processing and storage resources on external servers, <strong>its license prices are quite affordable.<\/strong><\/p>\n<p>And that is definitely a very positive point.<\/p>\n<h2>Sitebulb and its Free Trial<\/h2>\n<p>When evaluating any paid software, it&#8217;s a good idea to use a trial version to decide if it&#8217;s right for us. Sitebulb makes it easy by offering a <strong>free 14-day license<\/strong> to evaluate all of its features.<\/p>\n<figure><img decoding=\"async\" class=\"alignnone size-full wp-image-189\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-free-trial.png\" alt=\"sitebulb-free-trial\" width=\"1024\" height=\"540\"><\/figure><p><\/p>\n<p>To get the license, you simply need to provide them with an email address. In exchange, they will plant a tree for you, helping to offset the carbon footprint that using their software may generate.<\/p>\n<p>It seems like a good deal \ud83d\ude03.<\/p>\n<h2>Setting up our first project<\/h2>\n<p>The first time we run the tool, after downloading and installing it on our computer, it displays a screen to <strong>log in to the Sitebulb website.<\/strong><\/p>\n<figure><img decoding=\"async\" class=\"alignnone size-full wp-image-190\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-start.png\" alt=\"sitebulb-start\" width=\"1024\" height=\"758\"><\/figure><p><\/p>\n<p>We can either use an existing account or create a new one. In this case, I&#8217;m going to choose the latter option, which will give me access to the 14-day free trial.<\/p>\n<p>Once I&#8217;ve registered my account and logged in, <strong>I can see a list of all my projects<\/strong>.<\/p>\n<p>Of course, since it&#8217;s a new account, it&#8217;s empty. So let&#8217;s create a new project.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-191\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-new-project-creation.png\" alt=\"sitebulb-new-project-creation\" width=\"1024\" height=\"900\"><\/figure><p><\/p>\n<div class=\"flex-1 overflow-hidden\">\n<div class=\"react-scroll-to-bottom--css-xpzqm-79elbk h-full dark:bg-gray-800\">\n<div class=\"react-scroll-to-bottom--css-xpzqm-1n7m0yu\">\n<div class=\"flex flex-col items-center text-sm dark:bg-gray-800\">\n<div class=\"group w-full text-gray-800 dark:text-gray-100 border-b border-black\/10 dark:border-gray-900\/50 bg-gray-50 dark:bg-[#444654]\">\n<div class=\"text-base gap-4 md:gap-6 md:max-w-2xl lg:max-w-xl xl:max-w-3xl p-4 md:py-6 flex lg:px-0 m-auto\">\n<div class=\"relative flex w-[calc(100%-50px)] flex-col gap-1 md:gap-3 lg:w-[calc(100%-115px)]\">\n<div class=\"flex flex-grow flex-col gap-3\">\n<div class=\"min-h-[20px] flex flex-col items-start gap-4 whitespace-pre-wrap\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<p>On the project creation screen, we must complete the following fields:<\/p>\n<p><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Project name<\/strong>: we put a representative name so that we can identify it later.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Starting URL<\/strong>: this is the URL from which the crawler will begin its tracking process. For this tutorial, I&#8217;m going to use the DinoRANK blog URL, as I&#8217;m only interested in analyzing that section of the website.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Audit type<\/strong>: we can choose between Standard (crawls the entire website) or Sample (only crawls a representative part of the website to get a general idea of its state).<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Crawler type<\/strong>: depending on the crawler type we choose, we&#8217;ll be indicating whether we want to process the pages&#8217; JavaScript (HTML Crawler) or not (Chrome Crawler). We choose yes, as we want to analyze whether search engines can correctly interpret the information.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Device<\/strong>: we decide whether the response that our website offers for each URL is the desktop or mobile version.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Crawl outside the directory<\/strong>: this option appears when you configure a directory in the starting URL. As we have indicated a second level of URL (\/blog\/), we must specify whether the crawler should crawl pages that are outside that directory or not.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p>In addition, we can configure some advanced options:<\/p>\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>User-Agent<\/strong>: with this parameter, we configure how the crawler identifies itself to our server, through the HTTP request headers.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Language<\/strong>: the default language with which the crawler will make requests. It is important to indicate this if our website is multilingual.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Cookies<\/strong>: whether we want the crawler to store cookies. It is not usual, but you will need to mark it if your website requires certain cookies to provide a correct response.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Authentication<\/strong>: for websites that require a username and password to access.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p>When we press the button to continue, Sitebulb will perform some checks to see if it can access and crawl the website and, when finished, it will show us a screen to select the options for our website audit.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-new-project-settings.png\" alt=\"sitebulb-new-project-settings\" class=\"wp-image-192\"\/><\/figure>\n\n\n\n<p>Here we have several sections with a multitude of aspects that we can configure, but to not make this part too extensive, I will only comment on the most relevant ones:<\/p>\n\n\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Audit Data<\/strong>: we can choose which reports we want to be generated from the analysis of crawler data.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Google Analytics and Google Search Console<\/strong>: Here we can connect our Google accounts to obtain more information regarding organic search traffic and visits received.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Crawler settings<\/strong>: among other things, we can control the crawler speed by setting limits that will allow us to not overload our computer or the server where our website is hosted.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Ignore Hints<\/strong>: if we are not interested in receiving warnings about some of the aspects analyzed in the different reports, we can individually deactivate them in this section.<\/li>\n<li><i class=\"sui sui-hand-o-right\" style=\"color:#5DB59D\"><\/i> <strong>Scheduling<\/strong>: if we want, we can schedule the crawler to not run immediately after configuring the project, but on a specific date or periodically.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<p>Finally, once we have reviewed all the configuration, our project will be created.<\/p>\n\n\n\n<p>If we have not specified a specific schedule, when we confirm our options, the crawler will start crawling at that moment.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-crawler-progress.png\" alt=\"sitebulb-crawler-progress\" class=\"wp-image-195\"\/><\/figure>\n\n\n\n<p>Depending on your computer&#8217;s configuration, the size of your website, and other tasks you may be performing on your PC, this process will take more or less time.<\/p>\n\n\n\n<p>In our example, for the DinoRANK blog, it took about 15 minutes to complete the entire operation.<\/p>\n\n\n\n<p>You can either watch the screen and see the progress of the crawl in real-time or minimize the window and wait for it to finish.<\/p>\n\n\n\n<p>In any case, once it&#8217;s finished, it will display the results on the screen, and you can access all the audit reports.<\/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\">A look at the Sitebulb interface<\/h2>\n\n\n\n<p>We now have our first audit and can start analyzing all the results one by one.<\/p>\n\n\n\n<p>But first, it&#8217;s important that you understand how the tool is organized, as almost all screens have a similar structure.<\/p>\n\n\n\n<p>This will make it easier for you to navigate through the large amount of data and tools available to you.<\/p>\n\n\n\n<p>Therefore, in the following screenshot, you can see the main sections identified with boxes that you can find in most screens of the application.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-ui.png\" alt=\"sitebulb-ui\" class=\"wp-image-197\"\/><\/figure>\n\n\n\n<p>The top section (section 1) contains the <strong>main Sitebulb menu<\/strong>. From here, you can go to the project list, create a new project, compare audits, perform individual page analysis, use certain additional tools, or configure your settings.<\/p>\n\n\n\n<p>The sidebar (section 2) contains a <strong>list of all the reports from the audit<\/strong> of your website.<\/p>\n\n\n\n<p>Section 3 gives you direct access to <strong>data in table format<\/strong>, both for the URLs collected and for the links.<\/p>\n\n\n\n<p>Additionally, from here, you can also access the <strong>graphical visualization of the website&#8217;s structure<\/strong>, generate a PDF with the audit reports you want, or export the data to a CSV file or directly to your Google Sheets account.<\/p>\n\n\n\n<p>Sections 4, 5, and 6 are specific to each report. Their content may vary from one report to another, but they generally contain the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Section 4<\/strong>: Export options and specific search for each report.<\/li>\n\n\n\n<li><strong>Section 5<\/strong>: Tabs to access report views. The most common are Overview (view with data graphics), URLs (table with URLs referenced in the report), and Hints (warnings and improvement recommendations).<\/li>\n\n\n\n<li><strong>Section 6<\/strong>: Representation of the actual information (graphics, tables, etc.).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Overview of the crawling results of your website<\/h2>\n\n\n\n<p>Now let&#8217;s move on to the first two reports of the crawler.<\/p>\n\n\n\n<p>These are the <em>Audit Overview<\/em> and <em>All Hints<\/em> reports.<\/p>\n\n\n\n<p>I wanted to group them together in the same section since, between the two of them, you get a pretty complete picture of your website.<\/p>\n\n\n\n<p>The <em>Audit Overview<\/em> screen, as the name suggests, provides a <strong>general summary of everything collected by the crawler.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-audit-overview.png\" alt=\"sitebulb-audit-overview\" class=\"wp-image-205\"\/><\/figure>\n\n\n\n<p>At the top, we see a series of scores. These are ratings that Sitebulb assigns based on its own metrics to give us an idea of <strong>how optimized our website is<\/strong> in different aspects.<\/p>\n\n\n\n<p>Next, we have a summary with the total number of URLs collected, internal and external links, non-HTML resources (images, CSS, etc.), and addresses that could not be crawled.<\/p>\n\n\n\n<p>Finally, after a section with details about the crawler&#8217;s configuration and the technologies identified on our website, we have a series of very interesting graphs that show:<\/p>\n\n\n\n<div class=\"flex justify-between lg:block\">\n<ul>\n<li>The URLs collected according to their depth (distance from the URL configured as the crawler root).<\/li>\n<li>The percentage distribution of response codes.<\/li>\n<li>The distribution of pages according to their typology.<\/li>\n<li>How the crawler located the URLs: through the crawling process from the root page, because they appear in the site map (sitemap), through Google Search Console or Analytics, etc.<\/li>\n<li>The distribution of page content types.<\/li>\n<\/ul>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-208\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-audit-overview-URLs-by-depth.png\" alt=\"sitebulb-audit-overview-URLs-by-depth\" width=\"1024\" height=\"371\"><\/figure><p><\/p>\n<p>On the other hand, the All Hints report is a compilation of all the <strong>identified improvement recommendations for our website.<\/strong><\/p>\n<p>We can group these recommendations by their importance or by the report they refer to, as well as filter them and show only those of a specific category.<\/p>\n<p>Of course, we can consult or export the list of all the URLs to which each issue refers, in order to take the appropriate corrective measures.<\/p>\n<p>And, in that case, we can mark as resolved those items that we have fixed.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-213\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-hints.png\" alt=\"sitebulb-hints\" width=\"1024\" height=\"750\"><\/figure><p><\/p>\n<p>This screen is an example of Sitebulb&#8217;s team concern to <strong>facilitate the understanding of the results<\/strong>, even if you are new to the world of SEO.<\/p>\n<p>There are many tools in the market that identify errors, warnings, and improvement suggestions. But most of them simply label the problem in a few words.<\/p>\n<p>Sitebulb shows the user a <strong>very comprehensive description of each recommendation<\/strong> and, in case there are still doubts, offers a link to a section of their website where they have compiled all these recommendations and explained them in depth.<\/p>\n<h2>SEO analysis<\/h2>\n<p>Once we know the general state of our website, it&#8217;s time to dive into the details.<\/p>\n<p>Although all the reports are important, the section specifically dedicated to SEO is the one we will probably pay the most attention to.<\/p>\n<p>If you click on the section labeled SEO, you can see again the score that Sitebulb assigns to your website from this perspective, the redirects for the www and http(s) versions of the root page, and your website&#8217;s behavior when encountering 404 errors.<\/p>\n<p>In addition, you will have direct access to all the <strong>recommendations to improve the SEO of your website<\/strong>.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-219\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-seo.png\" alt=\"sitebulb-seo\" width=\"1024\" height=\"846\"><\/figure><p><\/p>\n<p>But this summary screen is not the most interesting one, as all the reports that are grouped within this category are of greater interest.<\/p>\n<p>Let&#8217;s take a look at them.<\/p>\n<h2>Internal URLs<\/h2>\n<p>Review The Internal panel provides us with information about all the URLs that the crawler has been able to collect within our website.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-222\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-internal.png\" alt=\"sitebulb-internal\" width=\"1024\" height=\"726\"><\/figure><p><\/p>\n<p>Once again, we have a score calculated by the tool that allows us to quickly assess <strong>the health of our internal URLs.<\/strong><\/p>\n<p>We also have a brief summary of the total number of URLs collected, how many of them are HTML pages or other types of resources, and the broken links that we need to fix.<\/p>\n<p>If we want to see the list of URLs that these numbers refer to, we just need to click on the View option next to each of them.<\/p>\n<p>Finally, there are a number of charts that show us:<\/p>\n<ul>\n<li>The type of response of the URLs based on their depth levels.<\/li>\n<li>The distribution of response codes.<\/li>\n<li>The sources through which the crawler has found the URLs. HTTP vs HTTPS protocols.<\/li>\n<li>Proportion of paginated URLs versus non-paginated ones.<\/li>\n<li>Distribution of content types.<\/li>\n<\/ul>\n<h2>Website linking<\/h2>\n<p>As SEOs, we know that linking is one of the parts we must take care of the most so that search engine robots can crawl our website and understand the relevance they should give to each of our pages.<\/p>\n<p>Thanks to the Links panel, we can achieve excellent control over the <strong>incoming and outgoing links of the website.<\/strong><\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-226\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-links.png\" alt=\"sitebulb-links\" width=\"1024\" height=\"568\"><\/figure><p><\/p>\n<p>Just below the rating, we have a graph that offers us a lot of useful information.<\/p>\n<p>It represents the URLs of the website grouped by the number of links they receive and the number of pages that link to them.<\/p>\n<p>Usually, <strong>the most important pages should receive a greater number of links<\/strong>, so this graph allows us to know if there is any URL that we should enhance through our linking strategy.<\/p>\n<p>The link report provides us with much more interesting information, but due to its usefulness, I want to focus on the URL Rank (UR) table.<\/p>\n<p>The table at hand shows URLs grouped by UR and classified according to their response codes, depth level, and indexability.<\/p>\n<p>In this way, we can locate and correct pages that receive many internal links but have incorrect response codes, are far from the root page, or are marked as noIndex.<\/p>\n<h2>External links<\/h2>\n<p>Although this report is not grouped within the SEO category, I think it&#8217;s no surprise that I mention it in this section.<\/p>\n<p>In the External panel, we have a global view of all the outbound links from our website with graphs that show us the response statuses and content types, as well as a tab with all the <strong>external domains we are linking to<\/strong>.<\/p>\n<p>This way, we can easily identify problematic links and remove or replace them with others.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-238\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-external.png\" alt=\"sitebulb-external\" width=\"1024\" height=\"566\"><\/figure><p><\/p>\n<h2>Indexing<\/h2>\n<p>Another key factor in appearing in search results is <strong>controlling the indexing of each page<\/strong> on our website.<\/p>\n<p>The Indexability report provides a comprehensive view of this issue.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-239\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-indexability.png\" alt=\"sitebulb-indexability\" width=\"1024\" height=\"734\"><\/figure><p><\/p>\n<p>In a very visual and intuitive way, we can learn about pages marked as index, noIndex, or noFollow through the Indexability report. It also provides information about canonicals or blockages caused by the robots.txt file.<\/p>\n<p>An aspect to highlight is the location of orphan pages, that is, those <strong>URLs that are not directly linked by others<\/strong>, but that the crawler has found through other means (for example, a redirect).<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-243\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-indexability-isolated-pages-1.png\" alt=\"sitebulb-indexability-isolated-pages\" width=\"1024\" height=\"393\"><\/figure><p><\/p>\n<p>As always, all suggestions for indexing improvements are grouped together in the Hints tab.<\/p>\n<p>In any case, remember: the tool provides you with the information. Then you have to be the one to decide what actions to take.<\/p>\n<h2>Redirects<\/h2>\n<p>In this report, we can see all the redirects, both internal and external, of the links contained on our website.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-249\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-redirects.png\" alt=\"sitebulb-redirects\" width=\"1024\" height=\"731\"><\/figure><p><\/p>\n<p>I find the topic of external redirects particularly relevant.<\/p>\n<p>Typically, an internal redirect is something we&#8217;ve intentionally done to improve our website&#8217;s SEO.<\/p>\n<p>However, we don&#8217;t have that level of control over external URLs, and it&#8217;s possible that <strong>they no longer point to the content we intended to link to<\/strong>.<\/p>\n<p>That&#8217;s why it&#8217;s good to be aware of it and take action accordingly.<\/p>\n<h2>SEO On Page<\/h2>\n<p>This report focuses on website content and, specifically, on the elements that are most important to Google in interpreting the topic of each page.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-251\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-seo-on-page.png\" alt=\"sitebulb-seo-on-page\" width=\"1024\" height=\"785\"><\/figure><p><\/p>\n<p>In particular, the information that you can extract from this report is as follows:<\/p>\n<ul>\n<li>A classification of pages based on the number of words in their content.<\/li>\n<li>The use of the Alt attribute of images.<\/li>\n<li>Analysis of titles, meta descriptions, and H1 headers.<\/li>\n<\/ul>\n<p>Among the results obtained for the DinoRANK website, I was struck by the fact that there are some URLs with more than one H1 header. This is something that undoubtedly needs to be corrected.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-252\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-seo-on-page-h1.png\" alt=\"sitebulb-seo-on-page-h1\" width=\"1024\" height=\"257\"><\/figure><p><\/p>\n<h2>Duplicate Content<\/h2>\n<p>Continuing with website content, this time it&#8217;s the turn of duplicate content.<\/p>\n<p>Through this report, we can analyze the duplication of text in titles, meta descriptions, H1 elements, as well as in the actual content of the pages.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-253\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-duplicate-content.png\" alt=\"sitebulb-duplicate-content\" width=\"1024\" height=\"671\"><\/figure><p><\/p>\n<h2>Differences in Page Rendering.<\/h2>\n<p>The Response vs Render report informs us about the changes that occur when the JavaScript of the pages is interpreted.<\/p>\n<p>To enable it, we had to select the corresponding option during the initial configuration of the crawler.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-254\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-response-vs-renderer.png\" alt=\"sitebulb-response-vs-renderer\" width=\"1024\" height=\"584\"><\/figure><p><\/p>\n<p>It should be noted that Google may interpret these discrepancies as an attempt to deceive the search engine or the user, so ideally they should not occur, and if they do, we must carefully analyze them to see if they make sense.<\/p>\n<h2>Performance<\/h2>\n<p>As with the External section, the last of the reports that I consider to be most closely related to SEO is also located outside of the SEO section of the tool.<\/p>\n<p>This is the Performance panel, which offers us a view of the <strong>website&#8217;s loading speed from the perspective of Google&#8217;s Core Web Vitals.<\/strong><\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-255\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-performance.png\" alt=\"sitebulb-performance\" width=\"1024\" height=\"784\"><\/figure><p><\/p>\n<\/div>\n\n\n\n<div class=\"absolute bottom-0 left-0 w-full border-t md:border-t-0 dark:border-white\/20 md:border-transparent md:dark:border-transparent md:bg-vert-light-gradient bg-white dark:bg-gray-800 md:!bg-transparent dark:md:bg-vert-dark-gradient pt-2\"><form class=\"stretch mx-2 flex flex-row gap-3 last:mb-2 md:mx-4 md:last:mb-6 lg:mx-auto lg:max-w-2xl xl:max-w-3xl\">\n<div class=\"relative flex h-full flex-1 items-stretch md:flex-col\">\n<div class=\"\">\n<div class=\"h-full flex ml-1 md:w-full md:m-auto md:mb-2 gap-0 md:gap-2 justify-center\">\n<div class=\"flex w-full items-center justify-center gap-2\">\n<p>Thanks to this report, we have a single place to analyze all the URLs of our website, without having to do it manually, one by one, as would happen if we used Google&#8217;s PageSpeed Insights tool.<\/p>\n<p>We know that performance is an important factor in ranking, as it directly affects the user experience, so this analysis should not be missing in an in-depth SEO audit.<\/p>\n<h2>Analysis of Google Analytics and Search Console data.<\/h2>\n<p>If you have linked your GA or GSC account during the crawler setup, you can access the data through three new reports.<\/p>\n<h3>Organic traffic<\/h3>\n<p>The Search Traffic report shows us the distribution of our URLs based on the organic visits they receive.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-256\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-search-traffic.png\" alt=\"sitebulb-search-traffic\" width=\"1024\" height=\"630\"><\/figure><p><\/p>\n<p>We can also find out which pages generate the most interest from users based on the time they spend on them (Dwell Time).<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-257\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-search-traffic-dwell-times.png\" alt=\"sitebulb-search-traffic-dwell-times\" width=\"1024\" height=\"326\"><\/figure><p><\/p>\n<h3>URL Inspection<\/h3>\n<p>This panel reflects the <strong>information that Google Search Console has about all of our pages<\/strong> (indexed URLs, discovered but not yet indexed, blocked by noIndex tags, etc).<\/p>\n<p>Special mention deserves the Summary graph, which quickly shows us the percentage of our website that Google has indexed and the percentage that it hasn&#8217;t.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-258\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-search-console-url-inspection.png\" alt=\"sitebulb-search-console-url-inspection\" width=\"1024\" height=\"825\"><\/figure><p><\/p>\n<h3>Keywords<\/h3>\n<p>The Keywords tab gives us information about our performance in the SERPs.<\/p>\n<p>We can find out the keywords for which we receive impressions and clicks, which pages are ranking, and on which devices.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-259\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-keywords.png\" alt=\"sitebulb-keywords\" width=\"1024\" height=\"686\"><\/figure><p><\/p>\n<h2>More reports to audit your website<\/h2>\n<p>In addition to the SEO analysis and Google Analytics or Search Console data, Sitebulb generates a series of other reports that may be useful to you.<\/p>\n<p>Most of them will have to be enabled during the crawler setup, so I recommend that you review the tool&#8217;s options carefully and not just stick to the default ones.<\/p>\n<p>These are the reports available to you:<\/p>\n<ul>\n<li>Security of protocols and certificates used.<\/li>\n<li>Compatibility with mobile devices.<\/li>\n<li>Analysis of the source code to detect unused parts.<\/li>\n<li>Identification of different types of resources used.<\/li>\n<li>Analysis of structured data.<\/li>\n<li>Review of internationalization.<\/li>\n<li>Spelling review of content.<\/li>\n<li>Level of accessibility.<\/li>\n<li>Compatibility with AMP.<\/li>\n<li>Custom extraction of elements from pages.<\/li>\n<li>Specific search for keywords in content.<\/li>\n<\/ul>\n<h2>URL Explorer<\/h2>\n<p>Through all the previous reports, we have a broad view of our website, presented in a very intuitive and easy-to-interpret way.<\/p>\n<p>But those who perform more specialized tasks, typical of technical SEO, will likely want to go further and <strong>review in detail each of the site&#8217;s URLs<\/strong>.<\/p>\n<p>For these advanced users, accustomed to dealing directly with data, Sitebulb&#8217;s URL explorer is designed.<\/p>\n<p>Thus, we have a list of all the URLs collected by the crawler presented in a table format with a good number of possibilities.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-260\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-link-explorer.png\" alt=\"sitebulb-link-explorer\" width=\"1024\" height=\"655\"><\/figure><p><\/p>\n<p>At the top, we have a series of established filters that allow us to view in the table only those URLs that meet a certain characteristic (whether it is an internal URL, if it is indexed, if it is an image, etc.).<\/p>\n<p>In addition, we have a search box to locate web addresses that contain a certain text string, along with the ability to <strong>display only the columns that are useful to us<\/strong>.<\/p>\n<p>And if these filtering options seem insufficient, <strong>you can also create more advanced filters<\/strong> by combining several fields at once.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-261\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-url-explorer-advanced-filter.png\" alt=\"sitebulb-url-explorer-advanced-filter\" width=\"1024\" height=\"635\"><\/figure><p><\/p>\n<p>But this explorer is not limited to a global view in a table. It also allows us to analyze each URL separately.<\/p>\n<p>By clicking on the rows, with the right button, we access a menu with options to:<\/p>\n<ul>\n<li>See a detailed analysis of the URL in question.<\/li>\n<li>Visualize the URL architecture in a graphical way.<\/li>\n<li>Export its links.<\/li>\n<li>Perform certain validations (indexing in search engines, compatibility with mobile devices, PageSpeed, etc.).<\/li>\n<li>Open the page in the browser.<\/li>\n<li>View the change history on web archive.org<\/li>\n<\/ul>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-262\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-url-details.png\" alt=\"sitebulb-url-details\" width=\"1024\" height=\"758\"><\/figure><p><\/p>\n<h2>Link Explorer<\/h2>\n<p>Continuing with the data analysis, we have Sitebulb&#8217;s link explorer.<\/p>\n<p>As the name suggests, this table focuses on showing us all the internal and external links that can be found on the pages of our website.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-263\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-url-explorer.png\" alt=\"sitebulb-url-explorer\" width=\"1024\" height=\"660\"><\/figure><p><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/form><\/div>\n\n\n\n<p>We have a column that indicates the page where each link is located, and another column that displays the destination page it is linked to. <\/p>\n\n\n\n<p>In addition, we have highly relevant information about each link, such as its anchor text, location on the page, whether it is a follow or nofollow link, and more.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Site Visualization<\/h2>\n\n\n\n<p>They say a picture is worth a thousand words.<\/p>\n\n\n\n<p>Sitebulb has integrated a <strong>graphical representation of your website&#8217;s architecture<\/strong> in various formats (map, tree, and radial) from two different viewpoints. They say that a picture is worth a thousand words, and that&#8217;s why this feature is so valuable.<\/p>\n\n\n\n<p>Firstly, we have the representation of URLs <strong>from the crawler&#8217;s viewpoint<\/strong>. The central point will be the page that we have configured as the root for the crawler, and the branches will indicate the distance to the rest of the pages through link navigation. <\/p>\n\n\n\n<p>This way, we can determine if there are URLs that we&#8217;re not giving enough relevance to, simply because they&#8217;re not close to the root.<\/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\/04\/sitebulb-visualisations-crawl-map.png\" alt=\"sitebulb-visualisations-crawl-map\" class=\"wp-image-266\"\/><\/figure>\n\n\n\n<p>On the other hand, we have the <strong>representation by directories.<\/strong><\/p>\n\n\n\n<p>In this display mode, the tool shows us the organization of the pages by URL levels.<\/p>\n\n\n\n<p>This depth level graph is very useful to check if any page is not in the place it should be according to the architecture we have defined for our website.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-content\/uploads\/2023\/04\/sitebulb-visualisations-directory-tree.png\" alt=\"sitebulb-visualisations-directory-tree\" class=\"wp-image-267\" style=\"width:750px;height:555px\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How much does Sitebulb cost?<\/h2>\n\n\n\n<p>If you ask me if Sitebulb is an expensive or cheap tool, I would say that, in my opinion, it is a <strong>fairly affordable application<\/strong> for everything it offers.<\/p>\n\n\n\n<p>The cheapest version costs $13.50 per month (slightly less if you opt for the annual plan) and allows you to create unlimited projects with a restriction of 10,000 URLs per audit.<\/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\/2023\/04\/sitebulb-pricing-966x1024.png\" alt=\"sitebulb-pricing\" class=\"wp-image-268\"\/><\/figure>\n\n\n\n<p>In addition, there is a Pro version that increases the previous limits and adds other more advanced functionalities.<\/p>\n\n\n\n<p>However, if you are a team and want to use your own Sitebulb account, you will have to add additional licenses at an extra cost.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sitebulb Server<\/h2>\n\n\n\n<p>We should not confuse Sitebulb with Sitebulb Server.<\/p>\n\n\n\n<p>Sitebulb is the desktop tool that I have described in this guide so far, designed for use by any SEO specialist, regardless of their experience.<\/p>\n\n\n\n<p>Sitebulb Server, on the other hand, is the new solution that Sitebulb developers have come up with to combine the best of desktop crawlers and cloud crawlers.<\/p>\n\n\n\n<p>It is a <strong>software that you install on a server<\/strong> to take care of executing all the crawling and information storage processes.<\/p>\n\n\n\n<p>Then, users will connect to this server through their Sitebulb installations and will be able to<strong> share information <\/strong>among them.<\/p>\n\n\n\n<p>Sitebulb Server is designed for teams of several SEO consultants or specialized agencies, as its deployment requirements are not within everyone&#8217;s reach.<\/p>\n\n\n\n<p>On the one hand, <strong>you need a dedicated machine<\/strong> with certain minimum specifications. It can be owned or contracted from an external provider.<\/p>\n\n\n\n<p>On the other hand, you will need to purchase a <strong>Sitebulb Server license<\/strong>, as well as a <strong>Sitebulb Pro license<\/strong> for each user who wants to use the service.<\/p>\n\n\n\n<p>However, given that the processing power is on your end by setting up the server, these licensing costs are generally cheaper than most web-based crawlers.<\/p>\n\n\n\n<p>Sitebulb Server provides the following advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A centralized repository of all Sitebulb audits. <\/li>\n\n\n\n<li>Access from anywhere. <\/li>\n\n\n\n<li>Site crawls with up to 5 million URLs. <\/li>\n\n\n\n<li>Ability to run multiple crawlers simultaneously. <\/li>\n\n\n\n<li>All the benefits that Sitebulb Pro already offers. <\/li>\n<\/ul>\n\n\n\n<p>As you can see, it&#8217;s not a solution for everyone, but it can be <strong>a very useful SEO tool for teams with multiple people.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sitebulb vs Screaming Frog<\/h2>\n\n\n\n<p>When talking about Sitebulb, it is almost impossible not to think about perhaps the most well-known SEO crawler.<\/p>\n\n\n\n<p>I&#8217;m referring to Screaming Frog.<\/p>\n\n\n\n<p>Doing a thorough comparison of both SEO tools would make for an article almost as long as this guide.<\/p>\n\n\n\n<p>That&#8217;s why I&#8217;m simply going to quickly summarize the advantages of one and the other, so you can get a general idea of which one is more appropriate for your needs.<\/p>\n\n\n\n<p>The <strong>reasons for choosing Screaming Frog<\/strong> would be the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It&#8217;s a well-known tool, for which you can find many tutorials on the internet.<\/li>\n\n\n\n<li>The amount of data it can collect and analyze is overwhelming.<\/li>\n\n\n\n<li>The crawler is a bit faster.<\/li>\n\n\n\n<li>It has a free version that allows you to crawl up to 500 URLs.<\/li>\n\n\n\n<li>The paid version has no limits on the number of pages to analyze<\/li>\n<\/ul>\n\n\n\n<p>On the other hand, the <strong>main advantages of Sitebulb over Screaming Frog<\/strong> are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It offers a better user experience, thanks to its interactive graphics, reports, and the way it presents all the information.<\/li>\n\n\n\n<li>The improvement recommendations it shows are very detailed and easy to understand.<\/li>\n\n\n\n<li>The basic license is slightly more affordable than the paid version of Screaming Frog.<\/li>\n\n\n\n<li>The cost per additional user is lower.<\/li>\n<\/ul>\n\n\n\n<p>As you can see, there is no clear winner. Each tool has its purpose, and both are excellent solutions for analyzing the internal structure of your website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sitebulb: Final thoughts<\/h2>\n\n\n\n<p>Sitebulb is one of those tools that could easily be part of any SEO specialist&#8217;s kit.<\/p>\n\n\n\n<p>Thanks to this desktop crawler, we&#8217;re able to audit websites with a high level of detail and obtain a set of concrete actions to take relatively easily.<\/p>\n\n\n\n<p>It&#8217;s an application that has its strong points in its complete and intuitive reports.<\/p>\n\n\n\n<p>Whether you specialize in creating niche pages or you&#8217;re an SEO consultant who works with client websites, Sitebulb makes it much easier to analyze those technical aspects to help you improve your search engine rankings.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you want to improve a website&#8217;s ranking in search engines, sooner or later you&#8217;ll need to carry out an SEO audit. This task, which may seem quite complex, fortunately can be simplified by using tools like Sitebulb, a website crawler that is gaining popularity among users. Have you heard of Screaming Frog? Well, Sitebulb [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":20867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-20739","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\/20739","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=20739"}],"version-history":[{"count":2,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20739\/revisions"}],"predecessor-version":[{"id":22654,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/posts\/20739\/revisions\/22654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media\/20867"}],"wp:attachment":[{"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/media?parent=20739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/categories?post=20739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dinorank.com\/en-us\/blog-seo\/wp-json\/wp\/v2\/tags?post=20739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}