Skip to content
New FeaturePre-Launch ASO Studio 2.0: Design AI app icons, screenshot storyboards & store-compliant metadata before release.Try it free →
The audit engine

67 SEO checks, on every audit

Each audit reads your pages the way a search engine does and runs these checks. Every finding comes with the page, the evidence we saw, why it matters and step-by-step instructions to fix it, for WordPress, Shopify, Wix and hand-built sites.

Indexing & crawlability · 23

Can search engines reach your pages, and are they allowed to show them?

LowPage has no canonical tag

A self-referencing canonical tag helps search engines choose the right URL when the same page is reachable through several addresses (parameters, trailing slash, http/https).

Fix: Add <link rel="canonical" href="..."> pointing at the preferred URL of the page.

HighPage declares conflicting canonical URLs

More than one canonical tag with different targets was found. Search engines ignore conflicting canonical signals.

Fix: Keep a single canonical tag. Check whether a plugin or theme is adding a second one.

MediumCanonical URL is invalid

The canonical tag does not contain a usable absolute or relative URL.

Fix: Use a full, valid URL in the canonical tag.

HighCanonical points to a URL that is not indexable

The canonical target redirects, returns an error or is set to noindex, so the page is asking search engines to index something that cannot be indexed.

Fix: Point the canonical at a live, indexable URL (usually the page itself).

MediumCanonical points to a page with a different canonical

Canonical chains weaken the signal: the target page names yet another URL as canonical.

Fix: Point every page directly at the final canonical URL.

MediumCanonical points to an http:// URL on an https page

An https page that names an http URL as canonical sends search engines to the insecure version.

Fix: Use the https URL in the canonical tag.

LowCanonical points to another domain

Informational: the page asks search engines to index a different domain instead. That is correct for syndicated content, but a mistake if it is unintended.

Fix: Confirm that the other domain really should be the indexed version.

LowPage is set to noindex

A noindex directive (meta robots or X-Robots-Tag header) keeps the page out of search results. It is intentional for private pages, but a costly mistake on pages you want found.

Fix: Remove the noindex directive if the page should appear in search results.

LowPage tells crawlers not to follow its links

Informational: a nofollow robots directive stops link signals passing from this page.

Fix: Remove it unless you deliberately do not want to vouch for the links on this page.

Criticalrobots.txt blocks our crawler from the whole site

A Disallow: / rule applies to our crawler, so no page could be audited. If the rule also applies to Googlebot the site cannot be crawled for search.

Fix: Remove the blanket Disallow rule or add an Allow rule for the crawler. Remember to remove staging-time blocks after launch.

Highrobots.txt returns a server error

When robots.txt answers with a 5xx error, crawlers assume everything is disallowed.

Fix: Make /robots.txt return 200 (or 404 if you have no rules).

Mediumrobots.txt returns a web page

The /robots.txt URL serves an HTML page (often a soft 404 or single-page-app fallback) instead of rules.

Fix: Serve a plain-text robots.txt or return a real 404.

LowNo robots.txt file

A robots.txt is optional, but it is the standard place to point crawlers to your sitemap.

Fix: Add /robots.txt with a Sitemap: line.

Lowrobots.txt contains lines crawlers cannot parse

Malformed lines are ignored, so the rules may not do what you expect.

Fix: Fix the listed lines.

Lowrobots.txt does not mention the sitemap

A Sitemap: line in robots.txt helps every search engine find your sitemap.

Fix: Add a line such as: Sitemap: https://example.com/sitemap.xml

MediumNo XML sitemap found

We found no sitemap at the locations listed in robots.txt or at /sitemap.xml. Sitemaps help search engines discover and re-crawl pages.

Fix: Publish an XML sitemap and reference it in robots.txt and Search Console.

HighSitemap could not be parsed

The sitemap file is not valid sitemap XML, so search engines cannot use it.

Fix: Regenerate the sitemap and validate it against the sitemaps.org format.

MediumSitemap lists a URL that does not return 200

Sitemaps should contain only live, canonical, indexable URLs. Redirecting or erroring URLs waste crawl budget and reduce trust in the sitemap.

Fix: Remove the URL from the sitemap or fix the page.

MediumSitemap lists a noindex URL

The sitemap asks search engines to index a page that tells them not to.

Fix: Remove the URL from the sitemap, or remove the noindex.

MediumSitemap lists a URL whose canonical is a different page

Sitemaps should list the canonical version of each page.

Fix: List the canonical URL instead.

LowSitemap lists URLs from other hosts

URLs on other hosts in your sitemap are ignored by search engines (and by our crawler).

Fix: List only URLs of this site.

LowSitemap contains malformed URLs

Some <loc> entries are not absolute http(s) URLs.

Fix: Fix the entries.

MediumPaginated page canonicalises to the first page

Pointing page 2, 3... at page 1 can stop the items on later pages from being discovered.

Fix: Give each paginated page a self-referencing canonical.

Titles, descriptions & headings · 11

The titles, descriptions and text people see in search results.

HighPage has no title tag

The page has no <title> or an empty one. The title is the main text search engines and browsers show for the page.

Fix: Add a unique, descriptive <title> that names the page's topic (roughly 30-60 characters).

AI can draft the fix (Pro and Agency)

MediumTitle is used by several pages

Several indexable pages share the same title, which makes it harder for people and search engines to tell them apart.

Fix: Give each page a title that reflects its own content, or consolidate truly duplicate pages with redirects or canonical tags.

AI can draft the fix (Pro and Agency)

LowTitle is long and may be cut off

Long titles are often truncated in search results (the limit is based on pixel width, roughly 60 characters). Truncation is not a penalty, but the end of the title may not be seen.

Fix: Put the most important words first and keep the title concise.

AI can draft the fix (Pro and Agency)

LowTitle is very short

A very short title says little about the page.

Fix: Expand the title to describe the page's topic.

AI can draft the fix (Pro and Agency)

MediumPage has no meta description

Without a meta description, search engines build the snippet themselves from page text. A good description can make the result more informative and more likely to be clicked; it is not a direct ranking factor.

Fix: Write a unique description of 70-160 characters that summarises the page and gives a reason to click.

AI can draft the fix (Pro and Agency)

LowMeta description is used by several pages

Identical descriptions on different pages give searchers no way to tell the results apart.

Fix: Write a description specific to each page.

AI can draft the fix (Pro and Agency)

LowMeta description is very long

Descriptions beyond about 160 characters are usually shortened in results.

Fix: Move the key message into the first 150 characters.

AI can draft the fix (Pro and Agency)

MediumPage has no H1 heading

The page has no (or only an empty) <h1>. A clear top-level heading helps users and search engines understand the page's main topic.

Fix: Add one descriptive <h1> that matches the page's main topic.

AI can draft the fix (Pro and Agency)

LowPage has more than one H1 heading

Informational: HTML allows several H1s and search engines cope with them, but a single clear H1 usually makes the structure easier to follow.

Fix: Consider using one H1 for the main topic and H2/H3 for sections.

LowImages without alt text

Images with no alt attribute are not described to screen-reader users and give search engines less context. (Purely decorative images should have an empty alt="".)

Fix: Add short, accurate alt text to informative images; use alt="" for decorative ones.

AI can draft the fix (Pro and Agency)

MediumPage text duplicates another page

The main text of this page is identical to another indexable page. Search engines pick one version and may ignore the other.

Fix: Merge the pages, redirect one to the other, or add a canonical tag pointing to the preferred version.

Redirects & server behaviour · 8

Server errors, redirects, and several addresses for the same page.

LowPage redirects with a meta refresh tag

Meta-refresh redirects are slower and less reliable than server-side redirects.

Fix: Replace the meta refresh with a 301 redirect on the server.

CriticalURL returns a server error (5xx)

The server failed to answer. Persistent 5xx errors cause pages to be dropped from search results.

Fix: Check the server and application logs for this URL.

HighURL could not be fetched

The crawler could not get a response (timeout, connection reset or certificate problem).

Fix: Check that the URL is reachable and the TLS certificate is valid.

MediumRedirect chain

The URL passes through two or more redirects before reaching the final page. Each hop adds delay and may lose link signals.

Fix: Redirect straight to the final URL in a single step.

HighRedirect loop

The URL redirects in a circle, so the page can never load.

Fix: Fix the redirect rules so the chain ends at a real page.

Mediumwww and non-www both serve content

Both hostnames answer without redirecting to one preferred version, which splits links and creates duplicate content.

Fix: Pick one hostname and 301-redirect the other to it.

MediumSeveral URL variants serve the same page

Variants such as trailing-slash, upper/lower case, index.html or tracking parameters are reachable as separate URLs without being consolidated.

Fix: Redirect variants to one preferred URL or add canonical tags.

Needs the whole site read

LowURL parameters create very many page variants

Some paths were reachable with a large number of query-string variants; the crawler stopped following them.

Fix: Avoid linking to parameterised duplicates, canonicalise them, or block them in robots.txt.

Needs the whole site read

HTTPS & security · 5

HTTPS everywhere, with no insecure leftovers.

HighSecure page loads scripts or frames over http://

Browsers block insecure scripts, stylesheets and frames on https pages, which can break the page.

Fix: Load every script, stylesheet and frame over https://.

MediumSecure page loads images or media over http://

Insecure images/media trigger browser warnings and can be tampered with.

Fix: Use https:// URLs for images and media.

MediumInternal links point to http:// URLs

Links to the insecure version of your own pages add a redirect hop and can expose visitors to downgrade attacks.

Fix: Update internal links to https://.

CriticalHTTPS is not available

The site could not be reached over https:// (connection refused or certificate invalid). Browsers warn visitors and search engines prefer secure pages.

Fix: Install a valid TLS certificate (for example a free Let's Encrypt certificate) and serve the site over https.

Highhttp:// version does not redirect to https://

Visitors who type the insecure address stay on http, and both versions can be indexed.

Fix: Add a site-wide 301 redirect from http:// to https://.

Speed signals · 3

How quickly your server answers and how heavy the pages are.

LowHTML document is very large

Very large HTML documents are slow to download and parse, and search engines only process the first part of oversized files.

Fix: Move inline data/scripts into external files, paginate long lists and remove unused markup.

MediumSlow server response

The server took long to start answering. This was measured from our crawler, not from your visitors' devices, so treat it as a signal to investigate rather than a Core Web Vitals result.

Fix: Check caching, database queries and hosting capacity for this URL.

LowHTML is served without compression

Gzip or Brotli typically shrinks HTML by 70% or more.

Fix: Enable gzip/Brotli compression on the web server or CDN.

Mobile usability · 2

Pages that work on phones.

HighPage has no viewport meta tag

Without <meta name="viewport"> mobile browsers render the page as a zoomed-out desktop page, which fails basic mobile usability.

Fix: Add <meta name="viewport" content="width=device-width, initial-scale=1">.

LowViewport prevents zooming

user-scalable=no or maximum-scale=1 stops people with low vision from zooming, which is an accessibility problem.

Fix: Remove user-scalable=no and maximum-scale from the viewport tag.

Language & hreflang · 6

Language tags and hreflang for sites in more than one language.

LowPage has no lang attribute

The <html> element declares no language, which affects accessibility tools and browser translation prompts.

Fix: Add lang="en" (or the right language code) to the <html> tag.

Mediumhreflang uses an invalid language/region code

hreflang values must be ISO 639-1 language codes, optionally with an ISO 3166-1 region (e.g. en-GB), or x-default.

Fix: Correct the code (for example en-GB, not en-UK).

Mediumhreflang set does not include the page itself

Each page in an hreflang cluster should list itself as well as its alternates.

Fix: Add a self-referencing hreflang entry.

Mediumhreflang alternate does not link back

hreflang annotations must be reciprocal. If page A names page B as an alternate, B must name A, otherwise search engines may ignore both.

Fix: Add the missing return annotation on this page.

Highhreflang points to a URL that does not return 200

An hreflang alternate redirects or returns an error.

Fix: Point hreflang at the final, live URL of each language version.

Mediumhreflang lists the same language twice with different URLs

A language/region code may only map to one URL.

Fix: Remove the duplicate entry.

Structured data & social · 3

Data that helps search engines and social networks describe your pages.

LowOpen Graph tags are missing

og:title, og:description and og:image control how the page looks when shared on social networks and chat apps. They do not affect Google rankings.

Fix: Add the missing Open Graph tags.

AI can draft the fix (Pro and Agency)

LowHomepage has no structured data

Informational: JSON-LD structured data (for example Organization or WebSite) can make a site eligible for richer search appearances. It is not required.

Fix: Consider adding Organization/WebSite JSON-LD; validate it with Google's Rich Results Test.

MediumStructured data contains invalid JSON

At least one JSON-LD block cannot be parsed, so search engines will ignore it.

Fix: Fix the JSON syntax (quotes, commas, brackets) and re-test it.

See which of these your site needs.

Create a free account, verify your site and get your first audit with real findings in minutes, or check one page now without signing up.