Zonal-acquire.com - SEO Checker

Overview of the SEO Check
Meta information
57% 
Page quality
48% 
Page structure
79% 
Link structure
0% 
Server
100% 
External factors
0% 
SEO Score
Response time
0.23 s
File size
10.40 kB
Words
100
Media files
1
Number of links
0 internal / 0 external

Task list of SEO Improvements

Meta specifications

Title
(Critically important)
Login - Acquire
The page title is too short. (136 pixels of 580 max pixel length) Optimize title
There are no duplicate words in the title
Meta description
(Critically important)
The meta description is missing.
Crawlability
(Critically important)
There are no problems in accessing the website.
Canonical URL
(Important)
No canonical link is specified.
Language
(Somewhat important)
Language detected in text: en
Language defined in HTML: en
Server location: United States of America
The following language is defined by HTML: en
Alternate/Hreflang Links
(Somewhat important)
There are no alternate links specified on this page.
Other meta tags
(Somewhat important)
There is no rel next meta tag on this page.
There is no rel prev meta tag on this page.
Domain
(Somewhat important)
The domain is no subdomain.
The domain length is good.
The domain does not contain non-latin characters.
Page URL
(Somewhat important)
There should not be dynamic parameters in the URL.
No session ID was found in the URL.
The URL does not have too many subdirectories.
Charset encoding
(Somewhat important)
The character encoding is not specified.
The character encoding is not specified in the HTTP header.
Doctype
(Nice to have)
The doctype HTML 5 is set correctly.
The doctype is placed at first in the HTML code.
Favicon
(Nice to have)
No favicon is linked in the HTML code.

Meta tags

NameValue
viewportwidth=device-width, initial-scale=1, user-scalable=no
format-detectionaddress=no
langen
charsetutf-8

Test up to 1.000 webpages of zonal-acquire.com with our free plan!

Try For Free
No trial. It's just free!

Page quality

Content
(Critically important)
There are only 100 words on this page. Use at least 250 words to provide useful information.
Only 2 paragraph/s was/were found on this page.
The average number of words per sentence of 64 words is high.
40% of the text are stop words.
Keywords used in the page title are also used in the page content. That's good!
No placeholders texts or images were found.
There are no duplicates on the site.
Frames
(Critically important)
This page does not use a frameset.
Mobile optimization
(Somewhat important)
No Apple touch icon is specified.
A viewport "width=device-width, initial-scale=1, user-scalable=no" is provided.
Bold and strong tags
(Somewhat important)
The usage of strong and bold tags is perfect. We recommend the use of up to 6 tags for this page.
Image SEO
(Somewhat important)
Alt text (alternative text) is correctly used on all found images.
Social Networks
(Nice to have)
There are only a few social sharing widgets on the page. Make your website popular in social networks with social sharing widgets.
Additional markup
(Nice to have)
No additional page markup was found.
HTTPS
(Somewhat important)
This website uses HTTPS to protect privacy and integrity of the exchanged data.
All included files are also transferred via HTTPS.

Media list

URLAlt attributeTitle
/img/AcquireLogo.pngAcquire Logo

Page structure

H1 heading
(Critically important)
There is no H1 heading specified.
Headings
(Important)
The structure of headings is missing one or more levels. Do not skip heading levels.

Heading structure

Heading levelContent
H2 Login to Acquire Acquire Logo
H4 Reset Password
This page is a dead end, because there are no internal links.
There are no external links on this page.
No internal links were found.

Server configuration

HTTP redirects
(Critically important)
This page redirects to "https://zonal-acquire.com/login/?returnUrl=%2F"
HTTP header
(Important)
No X-Powered HTTP header is sent.
This page uses GZip for compressed data transmission.
Performance
(Somewhat important)
The page response time is excellent with 0.23 seconds.
The file size of the HTML document is fine (10 kB).

HTTP Response Header

NameValue
varyAccept-Encoding
cache-controlno-store
content-typetext/html
content-encodinggzip
content-security-policydefault-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://jqueryui.com https://www.google-analytics.com/analytics.js; frame-ancestors 'none';
strict-transport-securitymax-age=31536000; includeSubDomains
dateFri, 08 Nov 2024 03:42:34 GMT
accept-rangesbytes
etag"1db1319df5b98af"
x-content-type-optionsnosniff
last-modifiedMon, 30 Sep 2024 09:19:38 GMT
x-frame-optionsDENY
statuscode200
http_versionHTTP/2

External factors

We didn't find any backlinks to this page.

Links from Wikipedia

No links from Wikipedia were found.

Robots.txt

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Login - Acquire</title>
    <meta charset="utf-8" content="text/html" />
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="format-detection" content="date=no" />
    <meta name="format-detection" content="address=no" />
    <link href="/css/bootstrap.min.css" rel="stylesheet" />
    <link href="/css/font-awesome.min.css" rel="stylesheet" />
    <link href="/css/Site.css" rel="stylesheet" />
    <link href="/css/Login.css" rel="stylesheet" />

    <script src="/Content/js/libs/require.js"></script>
    <script src="/Content/js/require-config-login.js"></script>
</head>
<body role="document">
    <div class="container-fluid" role="main">
        <div id="loginBackground">
            <div class="login well">
                <h2 class="loginHeader">
                    <img alt="Acquire Logo" src="/img/AcquireLogo.png" width="44" height="44" class="acquireLogo" />
                    Login to Acquire
                </h2>

                <form id="loginForm" role="form" method="POST">
                    <div class="form-group clearfix">
                        <div class="input-group">
                            <div class="input-group-addon"><span class="fa fa-user fa-fw"></span></div>
                            <input class="form-control" type="text" id="User" name="User" required="required" placeholder="Username" data-bind="textInput: user" autocorrect="off" autocapitalize="off" spellcheck="false" />
                        </div>
                    </div>
                    <div class="form-group clearfix">
                        <div class="input-group">
                            <div class="input-group-addon"><span class="fa fa-key fa-fw"></span></div>
                            <input class="form-control" type="password" id="Password" name="Password" required="required" placeholder="Password" data-bind="textInput: pass" />
                        </div>
                    </div>
                    <div class="clearfix">
                        <a href="#" class="pull-left bold topMargin" id="forgottenPasswordLink" data-bind="click: forgottenPassword" title="Click if you have forgotten your password">I've forgotten my password!</a>
                        <button class="btn btn-success pull-right thirdWidth" type="submit" id="Login" data-bind="click: login, disable: !user() || !pass() || isBusy()">
                            Login
                        </button>
                    </div>
                </form>
            </div>

            <div class="login topMargin">
                <div class="alert alert-warning">
                    <p>
                        By using this website you agree to Zonal Retail Data Systems Limited’s standard terms and conditions of trade unless you have expressly agreed in writing alternative terms for the use of Acquire.
                    </p>
                    <p>
                        If you require further assistance, please contact the Zonal Help Centre <a id="helpCentreNumber" class="alert-link" href="tel:+443332341210">+44(0)333 234 1210</a>.
                    </p>
                </div>
            </div>
            <form>
                <modal-dialog id="forgottenPasswordModal" params="modalVisible: forgottenPasswordVisible, data: $data, closeCallback: cancelForgottenPassword">
                    <header-template>
                        <div>
                            <h4 class="modal-title">Reset Password</h4>
                        </div>
                    </header-template>
                    <content-template>
                        <p>Your password will be reset and a link will be emailed to your registered email address that you can use to login to Acquire (this link will expire after 3 days).</p>
                        <p>Please check your <strong>username</strong> below then click "OK" to reset your password.</p>
                        <div class="form-group topMargin">
                            <div class="input-group" aria-label="Username field">
                                <div class="input-group-addon"><span class="fa fa-user fa-fw"></span></div>
                                <input class="form-control" type="text" id="ResetUser" name="ResetUser" required="required" placeholder="Username" data-bind="textInput: user" autocorrect="off" autocapitalize="off" spellcheck="false" />
                            </div>
                        </div>
                    </content-template>
                    <footer-template>
                        <button type="submit" class="btn btn-success quarterWidth" id="forgottenPasswordModalOkButton" data-bind="click: requestPasswordReset, enable: user() && !isBusy()" title="Click to reset your password.">
                            OK
                        </button>
                        <button type="reset" class="btn btn-danger quarterWidth" id="forgottenPasswordModalCancelButton" data-bind="click: cancelForgottenPassword, enable: !isBusy()" title="Click to close this window without resetting your password.">
                            Cancel
                        </button>
                    </footer-template>
                </modal-dialog>
            </form>
        </div>
        <script>
            require([
                "knockout",
                "jquery",
                "report-error",
                "Components/modal-dialog/modal-dialog",
                "knockout.validation"
            ],
                function (ko, $, reportError) {
                    var forgottenPasswordVisible = ko.observable(false);

                    var viewModel = ko.validatedObservable({
                        user: ko.observable().extend({ required: { message: 'Please specify your username' } }),
                        pass: ko.observable().extend({ required: { message: 'Please specify your password' } }),

                        isBusy: ko.observable(),

                        forgottenPasswordVisible: forgottenPasswordVisible,

                        forgottenPassword: function () {
                            forgottenPasswordVisible(true);
                        },

                        cancelForgottenPassword: function () {
                            forgottenPasswordVisible(false);
                        },

                        requestPasswordReset: function () {
                            var self = this;
                            self.isBusy(true);

                            $.ajax({
                                url: "/reset-password",
                                method: "POST",
                                contentType: "application/json",
                                data: JSON.stringify({ user: self.user() })
                            }).done(function () {
                                alert('Your password has been reset, please check your inbox for an email from Acquire.');
                            }).fail(function (xhr) {
                                reportError(xhr, "Could not reset your password");
                            }).always(function () {
                                forgottenPasswordVisible(false);
                                self.isBusy(false);
                            });

                        },

                        login: function () {
                            var self = this;
                            self.isBusy(true);

                            // This is here because when a 401 is thrown from a Nancy module, the ASP pipeline takes us to the ErrorController due to UseStatusCodePagesWithReExecute.
                            // ErrorController has an [Authorize] attribute which then causes the user to be redirected to the login page with a returnUrl of /error?code.
                            // We don't want to follow this returnUrl as it will take the user to an error page on login. Once Nancy is removed, the conditional below can also be removed,
                            // as all authorization will be executed within the correct ASP handler.
                            var returnUrl = getParameterByName("returnUrl", location.search);
                            if (!returnUrl || returnUrl.indexOf("/error") > -1 || returnUrl.indexOf("/login") > -1 || 
                                !isLocalUrl(returnUrl))
                            {
                                returnUrl = "/";
                            }

                            $.ajax({
                                url: "/login",
                                method: "POST",
                                data: { user: self.user(), password: self.pass() }
                            }).done(function () {
                                    location.href = returnUrl;
                            }).fail(function () {
                                    self.pass("");
                                    alert("Could not log in, please check your username and password");
                             }).always(function () {
                                    self.isBusy(false);
                             });

                        }
                    });

                    ko.applyBindings(viewModel, document.body);

                    function getParameterByName(name, url) {
                        if (!url) url = window.location.href;
                        name = name.replace(/[\[\]]/g, '\\$&');
                        var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
                            results = regex.exec(url);
                        if (!results) return null;
                        if (!results[2]) return '';
                        return decodeURIComponent(results[2].replace(/\+/g, ' '));
                    }

                    function isLocalUrl(url) {
                        return (url[0] == '/' && (url.Length == 1 || (url[1] != '/' && url[1] != '\\'))) ||
                               (url.Length > 1 && url[0] == '~' && url[1] == '/')
                    }
                });
        </script>
    </div>
    <script>
        if (typeof (Storage) !== "undefined" && localStorage.getItem("testMode") === "true") {
            document.body.classList.add("no-transitions");
        }
    </script>
</body>
</html>

Search preview

zonal-acquire.com › login
Login - Acquire

Most important keywords

Following keywords were found. You can check the keyword optimization of this page for each keyword.

KeywordResultRecheck
Acquire60%Check
Login Acquire58%Check
Login56%Check
Zonal40%Check
username39%Check
password38%Check
Reset38%Check
terms34%Check
please34%Check
link34%Check

Test up to 1.000 webpages of zonal-acquire.com with our free plan!

Try For Free
No trial. It's just free!

Cookie Policy

We use cookies to make our site work and also for analytics and advertising purposes. You can enable or disable optional cookies as desired. See the following links for more information.

We need these so the site can function properly

So we can better understand how visitors use our website

So we can serve you tailored ads and promotions