SEO audit Crawler AI SEO Keywords All SEO tools Site vs Site SEO guides Pricing Search

Language

EnglishالعربيةEspañolFrançaisDeutschPortuguêsItalianoРусскийTürkçeRomânăBahasa Indonesia简体中文日本語हिन्दी
Sign in

On-page SEO

Meta Tags AnalyzerSERP Snippet PreviewHeading Structure CheckerImage Alt Text CheckerOpen Graph & Social Preview CheckerStructured Data ValidatorCanonical Tag CheckerLink AnalyzerHreflang Checker

Technical SEO

Full Site Audit (Crawler)Robots.txt TesterXML Sitemap CheckerRedirect CheckerBulk HTTP Status CheckerHTTP Headers CheckerBroken Link CheckerIndexability CheckerMobile-Friendly CheckerJavaScript SEO Checker

Speed & performance

Page Speed TestCore Web Vitals CheckerServer Response Time (TTFB) TestPage Size CheckerGzip & Brotli Compression TestHTTP/2 & HTTP/3 CheckerCSS MinifierJavaScript Minifier

Content & keywords

Keyword Density CheckerKeyword Suggestion ToolWord CounterReadability CheckerText to HTML Ratio CheckerURL Slug GeneratorCase Converter

Generators

Meta Tag GeneratorRobots.txt GeneratorSchema Markup GeneratorOpen Graph GeneratorXML Sitemap GeneratorRedirect Generator (.htaccess & Nginx)Hreflang Tag GeneratorUTM Campaign URL Builderllms.txt Generator

Domain & security

SSL Certificate CheckerSecurity Headers CheckerDNS LookupWHOIS / Domain LookupDomain Age CheckerMixed Content CheckerWebsite IP & Hosting LookupWebsite Technology Checker

AI search & AI writing

AI Search Readiness CheckerAI Title & Meta Description GeneratorAI FAQ & Schema GeneratorAI Content Brief GeneratorAI Content OptimizerAI SEO Page ReviewerAI Search Intent & Page MatchAI Competitor Content Gap

How the SEO score works

What we check, how findings are weighted and prioritised, and what the score can and cannot tell you.

What we check

Each audit runs 83 checks in 8 categories. Every check has a weight from 1 to 10 that reflects how much it matters for search visibility.

CategoryChecksShare of the score
On-page SEO
Titles, descriptions, headings, links and images
1324%
Content
Depth, keywords and readability
87%
Technical SEO
Crawling, indexing, redirects and site structure
1523%
Speed
Server response, page weight and loading
1414%
Security
HTTPS, certificates and security headers
910%
Social & rich results
Open Graph, X cards and structured data
54%
AI search readiness
Access and structure for AI search engines
67%
Accessibility
Labels, names, landmarks and other WCAG basics
1311%

How the score is calculated

  • A passed check earns its full weight, a warning earns half and an error earns nothing.
  • The score is the weighted percentage of all scored checks, from 0 to 100. Category scores use the same formula within each category.
  • Informational checks (for example an optional llms.txt file) never lower the score.
  • Grades: A from 90, B from 80, C from 65, D from 50, F below 50.

Critical blockers come first

Some problems stop a page from appearing in search at all: an error status code, a noindex directive, or robots.txt blocking the page. These are shown as critical blockers at the top of the report, whatever the overall score. A page can score 90 and still be invisible in search.

How priorities are set

The Decision Centre orders the work using four signals for every error and warning:

  • Impact – critical, high, medium or low, based on the check weight and whether it affects indexing.
  • Difficulty – easy, medium or hard, an estimate of the effort to fix.
  • Confidence – high for direct measurements (a missing title, a noindex tag), medium for heuristics (readability, content depth) and sampled network tests.
  • Priority score – combines severity, weight, impact and difficulty. Quick wins are easy fixes with medium or higher impact.

Missing data is not a failure

If we cannot measure something – Google has no real-user speed data yet, or a test times out – the check is reported as unavailable or informational instead of counting against you. Links that answer with 401, 403 or 429 are not reported as broken.

Retesting and history

Run the audit again after making changes. Reports show what was fixed, what is new and what is unchanged since the previous audit, and signed-in users can track every task in the Fix Centre.

Site-wide crawl checks

The site audit (crawler) follows internal links, canonical and hreflang targets and XML sitemaps, then checks 156 issue types in 19 groups. Each affected page loses points by severity: errors 30, warnings 10, notices 2. The site health score is the average page score.

Indexability & status codes (8)
IssueSeverity
Broken pages (4xx)
Internal links point to pages that do not exist.
Error
Server errors (5xx) and failures
These URLs failed to load or returned a server error. Search engines drop pages that keep failing.
Error
Soft 404 pages
These pages return 200 OK but look like error pages (their title, heading or text says “not found”). Google treats them as soft 404s and wastes crawl budget on them.
Warning
Noindex pages
These pages ask search engines not to index them. Make sure that is intentional.
Notice
Page-level nofollow
A robots meta tag or X-Robots-Tag header tells search engines not to follow any link on these pages, so they pass no internal authority.
Warning
Noindex pages with many internal links
Your own navigation sends visitors and crawlers to pages you have asked search engines not to index, wasting internal link equity.
Warning
Noindex combined with a canonical to another URL
These pages are noindex and also canonicalise to a different URL. Google may pass the noindex signal to the canonical target. The two directives conflict.
Warning
Blocked by robots.txt
Internal links point to URLs that robots.txt blocks, so search engines cannot crawl them.
Notice
Redirects (8)
IssueSeverity
Internal links to redirects
Internal links point to URLs that redirect, adding a delay for visitors and crawlers.
Warning
Redirect chains
These URLs go through two or more redirects before reaching a page. Each hop slows loading, and long chains can stop crawlers before the final URL.
Warning
Redirect loops
These URLs redirect in a circle and never reach a page. Visitors see an error and search engines give up.
Error
Redirects to broken pages
These redirects lead to a URL that returns an error, so the redirect sends visitors to a dead end.
Error
Temporary redirects (302/307)
Temporary redirects tell search engines the move is not permanent, so the old URL may stay indexed.
Notice
HTTPS URLs redirecting to HTTP
Secure URLs redirect to insecure http:// addresses. Browsers warn visitors and ranking signals are split.
Error
Internal URLs redirecting to other domains
These internal URLs send visitors to another website. Check that it is intentional (for example a moved section).
Notice
Meta refresh redirects
These pages use a meta refresh tag. It is slower than a server redirect and handled less reliably by search engines.
Warning
Canonical tags (11)
IssueSeverity
Canonicalised to another URL
These pages point their canonical at a different URL, so that URL will usually be indexed instead.
Notice
Missing canonical tag
Indexable pages without a canonical tag leave search engines to guess which URL variant (parameters, http/https, trailing slash) to index.
Warning
Multiple different canonical tags
These pages declare more than one canonical URL. Google may ignore all of them.
Error
Canonical points to an error page
The canonical target returns an error, so search engines cannot index the preferred version and may ignore the canonical.
Error
Canonical points to a redirect
The canonical target redirects somewhere else, which sends search engines mixed signals.
Warning
Canonical points to a noindex page
The preferred URL asks not to be indexed, so neither page may appear in search results.
Error
Canonical chains
The canonical target itself canonicalises to another URL. Search engines may not follow the chain.
Warning
Canonical loops
Two pages name each other as canonical. Search engines cannot tell which one to index.
Error
Canonical points to another domain
These pages canonicalise to a different website, which asks search engines to index that site instead.
Notice
Relative canonical URLs
The canonical uses a relative path. It works, but absolute URLs avoid mistakes across environments and protocol variants.
Notice
Canonical uses http:// on an HTTPS site
Secure pages name the insecure http:// version as canonical, asking search engines to index the insecure copy.
Error
Hreflang & international (8)
IssueSeverity
Invalid hreflang codes
These hreflang values are not valid ISO language (and optional region) codes, so search engines ignore them.
Error
Missing hreflang return links
Page A lists page B as an alternate, but page B does not list page A back. Google ignores hreflang pairs without return links.
Warning
Hreflang points to error or redirecting URLs
Alternate URLs must return 200. Targets that redirect or fail are ignored.
Error
Hreflang points to non-canonical or noindex pages
Alternates should be the canonical, indexable version of each page. Otherwise the annotations are ignored.
Warning
Hreflang without a self-reference
Pages using hreflang should include themselves in the list of alternates.
Notice
Hreflang without x-default
An x-default alternate tells search engines which page to show visitors whose language is not listed.
Notice
Conflicting hreflang entries
The same language code points to different URLs on one page, so search engines cannot tell which is correct.
Warning
HTML lang differs from the page’s own hreflang
The lang attribute on <html> does not match the language this page declares for itself in hreflang.
Notice
XML sitemaps (11)
IssueSeverity
No XML sitemap found
No sitemap was found in robots.txt or at /sitemap.xml. Sitemaps help search engines find new and deep pages.
Warning
Sitemap not listed in robots.txt
A Sitemap: line in robots.txt lets every search engine find your sitemap, not only the ones you submit it to.
Notice
Redirecting URLs in the sitemap
Sitemaps should list only final URLs. Redirects waste crawl budget and make the sitemap less trustworthy.
Warning
Broken URLs in the sitemap (4xx)
The sitemap lists pages that do not exist.
Error
Failing URLs in the sitemap (5xx)
Sitemap URLs returned server errors or did not respond.
Error
Noindex pages in the sitemap
The sitemap asks search engines to index pages that say noindex. The signals conflict.
Warning
Canonicalised pages in the sitemap
The sitemap lists URLs whose canonical points elsewhere. Sitemaps should contain only canonical URLs.
Warning
Sitemap URLs blocked by robots.txt
URLs in the sitemap are disallowed in robots.txt, so search engines are told to index pages they may not crawl.
Warning
Indexable pages missing from the sitemap
These indexable pages were found by following links but are not in the XML sitemap.
Notice
Orphan pages (in sitemap, no internal links)
These pages are listed in an XML sitemap, but no crawled internal page links to them, so they get little internal authority.
Warning
http:// URLs in the sitemap of an HTTPS site
The sitemap lists insecure URLs that redirect to HTTPS.
Warning
Internal & external links (13)
IssueSeverity
Internal links to canonicalised pages
Internal links point to URLs that canonicalise elsewhere, sending crawlers to non-preferred versions.
Warning
Nofollow internal links
Internal links marked nofollow stop internal authority flowing to your own pages.
Notice
Pages with only one internal link
These pages are linked from just one other page. Weakly linked pages are crawled less often and rank lower.
Notice
Pages without outgoing internal links
These pages do not link to any other page on your site. Visitors and crawlers reach a dead end.
Warning
Pages with too many links
Pages with hundreds of links dilute the value of each link and can look spammy.
Notice
Broken external links
Links to other websites return errors. They frustrate visitors and signal neglected content.
Warning
Links without anchor text
Links with no text, alt text or aria-label give users and search engines no clue about the destination.
Warning
Generic anchor text
Links such as “click here” or “read more” waste a chance to describe the linked page.
Notice
javascript: links
Links using javascript: instead of a real URL cannot be followed by crawlers.
Notice
Internal links to http:// URLs
An HTTPS site links to its own pages over insecure http://, causing extra redirects and mixed signals.
Warning
Links to development or staging hosts
Pages link to localhost, staging or test domains that visitors and search engines cannot reach.
Error
Internal links with tracking parameters
Internal links carry utm_ parameters. They create duplicate URLs and overwrite the real traffic source in analytics.
Notice
Deep pages (4+ clicks from the homepage)
Pages buried deep in the structure get crawled less and receive less internal authority.
Notice
Titles, descriptions & headings (17)
IssueSeverity
Missing title tag
Pages without a title are hard to rank and look broken in search results.
Error
Duplicate titles
Several pages share the same title, so search engines struggle to tell them apart.
Warning
Title too long (over 60 characters)
Long titles get truncated in results.
Notice
Title too short (under 25 characters)
Short titles waste space that could attract clicks.
Notice
Multiple title tags
These pages have more than one <title> tag. Search engines use one and ignore the rest.
Warning
Missing meta description
Google will generate a snippet from page text instead, which is often less persuasive.
Warning
Duplicate meta descriptions
Several pages share the same meta description.
Warning
Meta description too long (over 160 characters)
Long descriptions are cut off in search results.
Notice
Meta description too short (under 70 characters)
Very short descriptions miss the chance to persuade searchers to click.
Notice
Multiple meta descriptions
More than one meta description was found on these pages.
Warning
Missing H1 heading
Pages without an H1 lack a clear main heading.
Warning
Empty H1 heading
An H1 exists but contains no text, often because it wraps an image without alt text.
Warning
Multiple H1 headings
More than one H1 can blur the main topic.
Notice
Duplicate H1 headings
Several pages use the same H1, which suggests overlapping topics or template headings.
Notice
H1 too long (over 70 characters)
Very long main headings are hard to scan.
Notice
Skipped heading levels
Heading levels jump (for example H2 to H4). Outlines are harder to follow, especially for screen-reader users.
Notice
Long pages without subheadings
Pages with more than 500 words but no H2 are hard to scan and give search engines less structure.
Notice
Content quality & duplication (6)
IssueSeverity
Thin content (under 200 words)
Pages with very little text rarely rank well and give AI answers little to quote.
Warning
Duplicate content
These indexable pages have identical body text, so search engines pick one and may ignore the rest.
Warning
Near-duplicate content
These pages are almost identical to another page (over about 95% similar text).
Notice
Placeholder text (lorem ipsum)
Placeholder text was published on these pages.
Error
Low text-to-HTML ratio
Under 10% of these pages’ HTML is visible text, which usually means heavy markup or very little content.
Notice
Outdated copyright year
The footer copyright year is more than a year old, which can make the site look unmaintained.
Notice
Images (6)
IssueSeverity
Images missing alt text
Images without alt text are invisible to screen readers and lose out in image search.
Notice
Broken images
These images fail to load. Visitors see empty boxes and image search cannot index them.
Error
Large images (over 200 KB)
Heavy images slow pages down, especially on mobile connections, and hurt Largest Contentful Paint.
Warning
Images without width and height
Images without dimensions cause layout shifts (CLS) as they load.
Notice
No modern image formats
These pages serve only JPEG/PNG/GIF images. WebP and AVIF are typically 25–50% smaller.
Notice
Many images without lazy loading
Pages with more than 10 images load them all up front.
Notice
Performance (9)
IssueSeverity
Slow server response (over 1.5 s)
Slow responses hurt user experience and Core Web Vitals.
Warning
Moderately slow response (0.6–1.5 s)
These pages start responding later than the 600 ms that keeps Largest Contentful Paint comfortable.
Notice
Large HTML (over 500 KB)
Heavy HTML is slow to download and parse.
Notice
HTML served without compression
The HTML is sent uncompressed. Gzip or Brotli typically cuts text size by 70–80%.
Warning
Render-blocking scripts
Several scripts in <head> block the first paint until they download and run.
Notice
Too many JavaScript files
Pages load more than 25 script files. Each one adds download and execution time.
Notice
Excessive DOM size (over 1,500 elements)
Large DOM trees slow down rendering and interaction (INP).
Notice
Heavy inline JavaScript
More than 100 KB of inline script is downloaded again with every page and cannot be cached.
Notice
Many third-party script hosts
Scripts from more than 10 outside domains add connections, delay and privacy risk.
Notice
Security (11)
IssueSeverity
Website not served over HTTPS
The site loads over plain http://. Browsers mark every page “Not secure” and HTTPS is a ranking signal.
Error
Pages served over insecure HTTP
These pages of an HTTPS site load over plain http:// without redirecting. Browsers mark them “Not secure”.
Error
Mixed content
HTTPS pages load resources over insecure http://. Browsers block or warn about them.
Error
Insecure forms
Forms submit to http:// addresses, or password fields appear on insecure pages, exposing what visitors type.
Error
HSTS header missing
Without Strict-Transport-Security, browsers may still try insecure HTTP first.
Notice
Content-Security-Policy missing
A Content-Security-Policy limits where scripts can load from and reduces the damage of cross-site scripting.
Notice
No clickjacking protection
Neither X-Frame-Options nor a CSP frame-ancestors directive is set, so other sites can frame your pages.
Notice
X-Content-Type-Options missing
Without nosniff, browsers may guess file types and run files as scripts.
Notice
Server software versions exposed
Response headers reveal exact software versions, which helps attackers find known vulnerabilities.
Notice
target="_blank" links without rel="noopener"
External links that open a new tab without rel="noopener" let the other site control your tab in older browsers.
Notice
Plain-text email addresses
Email addresses in page text are harvested by spam bots.
Notice
Structured data (5)
IssueSeverity
Invalid structured data
JSON-LD blocks on these pages cannot be parsed, so search engines ignore them.
Error
Structured data missing required properties
Schema types are present but miss properties needed for rich results.
Warning
Pages without structured data
No schema.org markup was found. Structured data helps search engines and AI understand the page and can unlock rich results.
Notice
No breadcrumb markup on deeper pages
Pages two or more levels deep have no BreadcrumbList. Breadcrumbs show your site structure in results.
Notice
Homepage has no Organization markup
Organization (or LocalBusiness/Person) markup on the homepage helps search engines and AI assistants identify your brand, logo and profiles.
Notice
Social sharing (4)
IssueSeverity
Missing Open Graph tags
Without og:title and og:image, shares on Facebook, LinkedIn, WhatsApp and Slack show a plain or random preview.
Notice
Open Graph image missing
Pages have Open Graph tags but no og:image, so shares appear without a picture.
Notice
og:url differs from the canonical
og:url should match the canonical URL so shares are counted for the right page.
Notice
Missing X (Twitter) card
Without twitter:card, X shows a small preview by default.
Notice
Mobile & HTML basics (6)
IssueSeverity
Missing mobile viewport
Without a viewport meta tag, phones show a zoomed-out desktop layout. Google indexes the mobile version.
Error
Zoom disabled on mobile
The viewport stops visitors from zooming, which is an accessibility failure.
Warning
Missing language attribute
The <html> tag has no lang attribute, so screen readers and search engines must guess the language.
Warning
Missing HTML5 doctype
Without <!DOCTYPE html>, browsers may render in quirks mode.
Notice
Missing character encoding
No character encoding is declared, so special characters may display incorrectly.
Notice
Deprecated HTML tags
Obsolete tags such as <font>, <center> or <marquee> were found.
Notice
Accessibility (10)
IssueSeverity
Form fields without labels
Inputs without a label (or aria-label) cannot be identified by screen-reader users.
Warning
Buttons without an accessible name
Icon-only buttons with no text or aria-label are announced as just “button”.
Warning
Iframes without a title
Embedded frames need a title so screen-reader users know what they contain.
Notice
Duplicate element IDs
IDs must be unique. Duplicates break label associations, skip links and ARIA references.
Notice
Positive tabindex values
tabindex values above 0 change the natural keyboard order and confuse keyboard users.
Notice
No main landmark
Pages without a <main> element (or role="main") are harder to navigate with screen readers.
Notice
Data tables without header cells
Tables without <th> headers are read cell by cell with no context.
Notice
Invalid ARIA roles
Unknown role values are ignored by assistive technology.
Notice
Focusable elements hidden from assistive technology
aria-hidden="true" is set on links, buttons or fields that keyboard users can still reach, creating “ghost” focus stops.
Warning
Alt text that is just a file name
Alt text such as “IMG_1234.jpg” tells visitors nothing about the image.
Notice
AI search readiness (3)
IssueSeverity
AI search crawlers blocked
robots.txt blocks crawlers that power AI search answers and citations, which can hide the site from ChatGPT search, Perplexity and similar engines.
Warning
Snippets blocked
nosnippet or max-snippet:0 stops search engines quoting these pages, including in AI Overviews.
Notice
Content depends on JavaScript
The raw HTML has an empty app container and little text. Most AI crawlers do not run JavaScript, so they see an empty page.
Warning
URL structure (9)
IssueSeverity
Long URLs (over 115 characters)
Long URLs are harder to share and are truncated in results.
Notice
Uppercase letters in URLs
URLs are case-sensitive, so uppercase letters can create duplicate versions of a page.
Notice
Underscores in URLs
Google treats hyphens as word separators but not underscores.
Notice
URLs with many parameters
URLs with more than two query parameters often create near-duplicate pages and waste crawl budget.
Notice
Non-ASCII characters in URLs
Unencoded special characters can break when URLs are shared or logged.
Notice
Double slashes in URL paths
Paths with “//” are usually template mistakes and create duplicate URLs.
Notice
Duplicate URL variants
The same page is reachable at URLs that differ only in letter case or a trailing slash, and none of them canonicalises to the other.
Warning
Session IDs in URLs
Session identifiers in URLs create unlimited duplicate URLs.
Warning
Pagination links to broken pages
rel="next" or rel="prev" points to a URL that returns an error.
Warning
JavaScript rendering (6)
IssueSeverity
JavaScript rendering failed
Chrome could not render these pages, so rendered-DOM checks are incomplete.
Warning
Title changes after JavaScript
The browser-rendered title differs from the title in the original HTML. Search engines may see different metadata depending on rendering.
Warning
Canonical changes after JavaScript
JavaScript changes the canonical URL after load, which can create conflicting indexing signals.
Error
Robots directives change after JavaScript
Robots directives change after JavaScript rendering.
Error
Important content depends on JavaScript
Much of the visible text is missing from the initial HTML and only appears after JavaScript runs.
Warning
Internal links depend on JavaScript
Several internal links only appear after JavaScript executes.
Warning
Search Console insights (5)
IssueSeverity
Pages earning clicks that are not indexable
Search Console shows clicks to these URLs, but the crawl found them noindex, canonicalised elsewhere, redirecting or broken. That traffic is at risk.
Error
Pages with search impressions that the crawl could not reach
Search Console reports impressions for these URLs, but no crawled page links to them, so they get no internal authority.
Warning
Indexable pages with no search impressions
These indexable pages had no impressions in Google during the last 28 days. They may not be indexed, or they target no real searches.
Notice
Page-one rankings with a low click-through rate
These pages rank on page one with plenty of impressions but get far fewer clicks than expected for their position.
Notice
Striking-distance pages with thin content
These pages rank in positions 8–20 with real impressions but have under 400 words. Expanding them is often the quickest ranking win.
Notice

Versions

Every report stores the methodology version it was produced with (currently version 2), so a score change caused by a change in our rules can be told apart from a change on your website.

Limits

The audit tests what can be measured from outside: the HTML, HTTP headers, robots.txt, sitemaps, links and assets of the page. It does not see rankings, traffic or backlinks, and a high score does not guarantee rankings or AI citations. We never invent search volumes, traffic or authority scores.

Run a free audit Browse all checks