SEO Audit

Audit your website &
Get an Instant Report

Quickly run a one-time report on any website or page. It's a great way to explore a competitor's strengths or take a closer look at specific parts of your own site.

Lean Search Free Audit Tool

Enter the URL of your homepage, or any page on your site to get a report of how it performs in about 30 seconds. If you need further help, fill a form or chat with us, our team will get in touch with you.

Getting back to you shortly

Let’s visit a high-performing page instead.

Oops! Something went wrong while submitting the form.
<style type="text/css">
    /* Please move these styles to your css file or just keep them here */
    #so-form {
        margin: 10px!important;
    }
    #so-fieldswrapso1756816067 {
        width: 100%!important;
    }
    .so-fieldso1756816067 {
        background-color: #FFFFFF!important;
        border: 1px solid #78829d!important;
        border-radius: 4px !important;
        color: #4b5675!important;
        padding: 7px 12px!important;
        font-size: 18px!important;
        box-sizing: border-box !important;
        height: 38px!important;
         display: inline!important;
        margin-top: 5px!important;
    }
    .so-fieldso1756816067::placeholder {
        color: #78829d!important;
    }

    @media screen and (max-width: 345px){
        .so-fieldso1756816067 {
            min-width: 100px!important;
        }
    }

    @media screen and (max-width: 500px){
        .so-fieldso1756816067 {
            font-size: 12px !important;
            height: 30px !important;
        }

        #so-submitso1756816067 {
            font-size: 12px !important;
            height: 30px;
            padding: 1px 20px !important;
        }

        #so-fieldswrapso1756816067 {
            width: 100%;
        }

    }

    #so-submitso1756816067 {
        background-color: #0238f5!important;
        border: 1px solid #0238f5!important;
        color: #ffffff!important;
        border-radius: 4px !important;
        text-decoration: none!important;
        cursor: pointer!important;
        box-sizing: border-box !important;
        height: 38px!important;
        font-size: 18px!important;
 line-height: 18px!important;
       min-width: 150px!important;
        padding: 8px 20px!important;
        margin-top: 5px!important;
    }


    @media screen and (max-width: 500px){
        #so-submitso1756816067 {
            font-size: 12px!important;
            height: 30px!important;
            padding: 1px 20px !important;
        }
    }

    .so-container {
        width: 100%;
        text-align: center;
    }
    .so-widget-form {
        display: inline-block !important;
    }
    #so-boxso1756816067 {
        display: inline-block;
    }
    #so-titleso1756816067 {
        margin-bottom: 5px;
        font-size: 26px !important;
        color: #0238f5 !important;
    }

    @media screen and (max-width: 500px){
        #so-titleso1756816067 {
            font-size: 13px !important;
        }

        #so-paragraphso1756816067 {
            font-size: 10px !important;
        }

        #so-consentso1756816067 span {
            font-size: 10px !important;
        }
    }

    #so-paragraphso1756816067 {
        margin-bottom: 10px;
        font-size: 14px !important;
        color: #78829d !important;
    }
    #so-consent-blockso1756816067 {
        margin-top: 10px;
    }
    #so-consentso1756816067 input {
        -webkit-appearance: none!important;
        background-color: #fafafa!important;
        border: 1px solid #78829d!important;
        box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px -15px 10px -12px rgba(0,0,0,0.05)!important;
        padding: 9px!important;
        border-radius: 3px!important;
        display: inline-block!important;
        position: relative!important;
        top: 6px!important;
        vertical-align: baseline !important;
        margin: 0 5px 0 0 !important;
        width: auto !important;
        height: auto !important;
    }
    #so-consentso1756816067 input:active, #so-consentso1756816067 input:checked:active {
        box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px 1px 3px rgba(0,0,0,0.1)!important;
    }

    #so-consentso1756816067 input:checked {
        background-color: #e9ecee!important;
        border: 1px solid #adb8c0!important;
        box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px -15px 10px -12px rgba(0,0,0,0.05), inset 15px 10px -12px rgba(255,255,255,0.1)!important;
        color: #99a1a7!important;
    }
    #so-consentso1756816067 input:checked:after {
        content: '\2714'!important;
        font-size: 14px!important;
        position: absolute!important;
        top: 0px!important;
        left: 3px!important;
        color: #99a1a7!important;
    }
    #so-consentso1756816067 span {
        font-size: 18px!important;
        font-weight: normal;
        position: relative;
        top: 3px;
        color: #78829d!important;
    }

    @media screen and (max-width: 500px){

        #so-consentso1756816067 span {
            font-size: 10px !important;
        }
    }

</style>
<div class="so-container">
    <div id="so-boxso1756816067">
                    <div id="so-titleso1756816067">Lean Search Free Audit Tool</div>
                            <div id="so-paragraphso1756816067">Enter the URL of your homepage, or any page on your site to get a report of how it performs in about 30 seconds. If you need further help, fill a form or chat with us, our team will get in touch with you.</div>
                <form class="so-widget-form" id="so1756816067" action="https://audit.leansearch.com/process-embedded.inc" target="so-iframe" data-behaviour="new_tab" data-title="Website Report for " data-touch="Thank you for requesting a report. We&#039;ll be in touch shortly!" onsubmit="return soSubmit(this)">
            <input id="so-typeso1756816067" type="hidden" name="type" value="web">
            <input type="hidden" name="uid" value="80404">
            <input type="hidden" name="csrf_token" value="c7f89537f50a74490963683501088a0251b9bc04">
            <input type="hidden" name="behaviour" value="new_tab">
            <input type="hidden" name="template" value="0">


            <div id="so-fieldswrapso1756816067">
                <input type="text" name="domain" id="so-domainso1756816067" class="so-fieldso1756816067" placeholder="Website URL" data-validation="Please enter a correct Website URL.">
                                    <input type="text" name="first_name" id="so-first-nameso1756816067" class="so-fieldso1756816067" placeholder="First Name" data-validation="Please enter your First Name">
                                                    <input type="text" name="last_name" id="so-last-nameso1756816067" class="so-fieldso1756816067" placeholder="Last Name" data-validation="Please enter your Last Name">
                                                    <input type="text" name="email" id="so-emailso1756816067" class="so-fieldso1756816067" placeholder="Email" data-validation="Please enter a valid email address.">
                                                    <input type="text" name="phone" id="so-phoneso1756816067" class="so-fieldso1756816067" placeholder="Phone Number" data-validation="Please enter a valid phone number">
                                                <input type="submit" id="so-submitso1756816067" value="Run Audit Now">
                                    <div id="so-consent-blockso1756816067"><label id="so-consentso1756816067">
                            <input id="so-consent-valueso1756816067" name="consent" value="1" type="checkbox" data-validation="Please give your consent" />
                            <span>Contact Me for Search Engine Marketing</span>
                        </label>
                    </div>
                            </div>
        </form>
    </div>
</div>
<script type="text/javascript">
    function soSubmit(el) {
        if (!soFormValidate(el)) {
            //e.preventDefault();
            return false;
        }
        const behaviour = el.getAttribute('data-behaviour');
        soBody = document.getElementsByTagName("body")[0];
        soBodyOriginalStyleHeight = soBody.style.height;
        soBodyOriginalStyleOverflow = soBody.style.overflow;
        const element = document.createElement("input");
        element.setAttribute("type", "hidden");
        element.setAttribute("name", "referrer");
        element.setAttribute("value", window.location.href);
        el.appendChild(element);
        if (behaviour == 'new_tab') return true;
        if (behaviour == 'modal') return soSubmitModal(el);
        if (behaviour == 'be_in_touch') return soSubmitBeInTouch(el);
        if (behaviour == 'redirect') return soSubmitRedirect(el);
    }

    function soFormValidate(el) {
        const domain = el.querySelector('input[name="domain"]');
        const email = el.querySelector('input[name="email"]');
        const phone = el.querySelector('input[name="phone"]');
        const firstName = el.querySelector('input[name="first_name"]');
        const lastName = el.querySelector('input[name="last_name"]');
        const custom = el.querySelector('input[name="custom_field"]');
        const consent = el.querySelector('input[name="consent"]');

        if (0 == domain.value.length)
            return alert(domain.getAttribute("data-validation")), !1;
        if (domain.value = domain.value.trim().replace(/\/$/, ""), !domain.value.match(/^(https?:\/\/)?[a-z\d\-]{1,62}\..*/i))
            return alert(domain.getAttribute("data-validation")), !1;
        if (null != firstName && 0 == firstName.value.length)
            return alert(firstName.getAttribute("data-validation")), !1;
        if (null != lastName && 0 == lastName.value.length)
            return alert(lastName.getAttribute("data-validation")), !1;
        if (null != email) {
            if (0 == email.value.length)
                return alert(email.getAttribute("data-validation")), !1;
            //var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            const regex = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
            if (!regex.test(email.value))
                return alert(email.getAttribute("data-validation")), !1;
        }
        if (null != phone && 7 > phone.value.length)
            return alert(phone.getAttribute("data-validation")), !1;
        if (null != custom && 0 == custom.value.length)
            return alert(custom.getAttribute("data-validation")), !1;
        if (null != consent && false === consent.checked)
            return alert(consent.getAttribute("data-validation")), !1;

        setTimeout(function () {
            el.reset();
        }, 50);
        return true;
    }

    function soSubmitModal(el) {
        const modalWrapper = document.createElement("div");
        const button = el.querySelector('input[name="button"]');
        let html = "<style type=\"text/css\">\n" +
            "    @media (max-width:500px) { #so-widget-modal-content { width:100% !important; height:100% !important; margin-top:50px !important; } }\n" +
            "    @media (max-width:500px) and (max-height:550px) { #so-widget-modal-content { height:100% !important;} }\n" +
            "    @media (min-height:601px) and (max-height:750px) and (min-width:501px) { #so-widget-modal-content { margin-top:100px !important; } }\n" +
            "    @media (max-height:600px) and (min-width:501px) { #so-widget-modal-content { margin-top:80px !important; } }\n" +
            "    #iframe-wrapper {width: 100%;height: 100%;-webkit-overflow-scrolling: touch !important}\n" +
            "    #iframe-wrapper iframe {height: 100%;width: 100%;}\n" +
            "</style> \n" +
            "<div id=\"so-widget-modal-overlay\" style=\"position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.6); display:none; opacity:0; transition:opacity 0.3s ease;\">\n" +
            "\t\t\t<div id=\"so-widget-modal-content\" style=\"position:relative; width:80%; max-width: 1250px; height:80%; margin:120px auto 0; background:#fff;\">\n" +
            "\t\t\t\t<div style=\"width:100%; height:50px; position:absolute; top:-50px; background:white;\">\n" +
            "\t\t\t\t\t<span id=\"so-widget-modal-title\" style=\"position:absolute; left:15px; top:15px; font-size:16px; font-weight:bold;\"></span>\n";
        if (null != button) {
            const styles = window.getComputedStyle(el.querySelector('input[type="submit"]'));
            html += "\t\t\t\t\t<a href=\""+button.value+"\" id=\"so-widget-modal-button\" style=\"display: inline-block;position: absolute;top: 3px;right: 0;margin-right: 50px;text-decoration: none;background-color: "+styles.backgroundColor+";border: 1px solid "+styles.backgroundColor+";color: "+styles.color+" !important;border-radius: 3px;font-size: 19px;padding: 8px 50px;height: 27px;box-sizing: content-box;\">"+button.getAttribute("title")+"</a>\n";
        }
        html += "\t\t\t\t\t<span onclick=\"closeSoModal();\" style=\"display:inline-block; width:16px; height:16px; position:absolute; top:15px; right:15px; cursor:pointer; background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAowAAAKMB8MeazgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAB5SURBVDiNrZPRCcAwCEQfnUiySAZuF8kSWeH6Yz8KrQZMQAicJ+epAB0YwAmYJKIADLic0/GPPCbQAnLznCd/4NWUFfkgy1VjH8CryA95ApYltAiTRCZxpuoW+gz9WXE6NPeg+ra1UDIxGlWEObe4SGxY5fIxlc75Bkt9V4JS7KWJAAAAAElFTkSuQmCC59ef34356faa7edebc7ed5432ddb673d'); opacity:0.6;\"></span>\n" +
            "\t\t\t\t</div>\n" +
            "                <div id=\"iframe-wrapper\">\n" +
            "\t\t\t\t    <iframe name=\"so-iframe\" id=\"so-iframe\" scrolling=\"yes\" style=\"border:1px solid transparent; width:100%; height:100%; box-sizing:border-box;\"></iframe>\n" +
            "\t\t\t    </div>\n" +
            "\t\t\t</div>\n" +
            "\t\t</div>";
        modalWrapper.setAttribute('style', 'position:absolute; top:0; left:0; width:100%; z-index:9999999');
        modalWrapper.setAttribute('id', 'so-modal-wrapper');
        modalWrapper.innerHTML = html;
        document.body.appendChild(modalWrapper);

        let isMobile = false;
        if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)
            || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) isMobile = true;
        if (isMobile) {
            el.querySelector('input[name="type"]').value = 'web'
            if (null != button && 0 !== button.value.length) document.getElementById('so-widget-modal-title').style.display = "none";
        }

        const domain = el.querySelector('input[name="domain"]').value;
        const soOverlay = document.getElementById('so-widget-modal-overlay');
        soOverlay.style.display = "block";
        document.getElementById('so-widget-modal-title').innerText = el.getAttribute("data-title")+domain;
        soBody.style.height = '100%';
        soBody.style.overflow = 'hidden';
        setTimeout(function () {
            soOverlay.style.opacity = 1;
        }, 50);
        return true;
    }

    function soSubmitBeInTouch(el) {
        const iframe = document.createElement("iframe");
        const element = document.createElement("input");
        element.setAttribute("type", "hidden");
        element.setAttribute("name", "be_in_touch");
        element.setAttribute("value", "1");
        el.appendChild(element);
        iframe.setAttribute('id', 'so-iframe');
        iframe.setAttribute('name', 'so-iframe');
        iframe.setAttribute('style', 'position:absolute; bottom:0; left:0; width:1px; height:1px; border:none');
        document.body.appendChild(iframe);
        alert(el.getAttribute("data-touch"));
        return true;
    }

    function soSubmitRedirect(el) {
        el.removeAttribute('target');
        return true;
    }

    function closeSoModal() {
        const soOverlay = document.getElementById('so-widget-modal-overlay');
        soOverlay.style.opacity = 0;
        document.getElementById('so-modal-wrapper').remove();
        setTimeout(function () {
            soBody.style.height = soBodyOriginalStyleHeight;
            soBody.style.overflow = soBodyOriginalStyleOverflow;
            soOverlay.style.display = "none";
        }, 300);
    }
</script>
Our services

An SEO audit is like a health check-up for your website. It's a thorough review of your site's performance in search engines, identifying what's working well and what needs improvement.
The primary goal of an SEO audit is to evaluate your website's ability to attract and engage with your target audience. It helps you understand how search engines like Google view your site and identifies opportunities to improve your online visibility, drive more traffic and increase conversions.

Simple and Easily Understandable Reports

Once you've completed a quick audit, you can download the report in PDF format. Clearly presented, our report is simple, straightforward and easy to understand.

It highlights key issues, prioritises them by impact and includes practical recommendations you can act on right away. Even if you are sharing it with your colleagues or reviewing it yourself, the layout makes it easy to spot what matters most.

On-page SEO

Check best practice content, meta tags, headings and internal links

Rankings

Identify SEO issues affecting visibility, keywords, structure and ranking signals

Links

Scan internal and external links for structure, relevance and errors

User Experience

Analyse mobile rendering, Core Web Vitals and loading performance insights

Site Performance

Evaluate speed, responsiveness and technical factors that impact site performance

“SEO Agency helped us to increase our website SEO traffic by 250% in just 3 months”
Matt Cannon - SEO Webflow Template
John Carter
VP of Marketing at Company
Case Study

Read what our amazing past clients say

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Elementum, tortor semper amet, velit, at at tellus. Viverra sed quam mi massa vestibulum nam nulla ipsum amet. A, morbi vitae faucibus duis.

Start your SEO journey with us today.

We’re here to help you find the right solution, tailored to your needs. With a clear strategy, reaching your goals will feel easier?

Getting back to you shortly

Let’s visit a high-performing page instead.

Oops! Something went wrong.