Audit rules reference

All 70 checks Crawlens runs after every crawl, what each one means and how to fix it. This is the same text you see next to each issue in the app (v0.20.1).

Critical 9Warning 31Notice 30

Severity and health score

The health score (0–100) is based on the share of crawled URLs with problems. Each URL counts once, by its most severe issue:

100 × (1 − (URLs with a critical issue + 0.5 × URLs with a warning) ÷ all crawled URLs)

Notices don't lower the score. 90 or more shows as Good, 70–89 as Needs work, below 70 as Poor.

Some checks need data a basic crawl doesn't collect, such as rendering, Search Console or server logs. If it's missing, the check shows as Not enough data in the app instead of passing, with the reason. The requirement is listed under each rule below.

Response codes

Critical

Internal pages return 4xx

Why it matters
Pages that return 404 or another client error cannot rank, waste crawl budget and frustrate visitors who follow links to them.
How to fix
Restore the page, 301-redirect it to the closest relevant page, or remove the links pointing to it.

Rule id client-error

Critical

Internal pages return 5xx

Why it matters
Server errors tell search engines the site is unreliable. Persistent 5xx responses can drop pages from the index.
How to fix
Check server logs for the failing URLs and fix the application or hosting error.

Rule id server-error

Critical

Pages did not respond

Why it matters
The request timed out or failed (DNS, connection, SSL). Search engines see the same failure.
How to fix
Check the error for each URL: server capacity, firewall or bot protection, DNS and SSL configuration.

Rule id no-response

Critical

Redirect loops

Why it matters
A redirect that eventually points back to itself never resolves: browsers show an error and crawlers give up.
How to fix
Break the loop so the chain ends at a page that returns 200.

Rule id redirect-loop

Warning

Redirect chains (2+ hops)

Why it matters
Each extra hop slows users down, and search engines may stop following long chains.
How to fix
Point the first URL straight at the final destination with a single 301.

Rule id redirect-chain

Notice

Temporary redirects (302/303/307)

Why it matters
Temporary redirects signal the move is not permanent, so search engines may keep the old URL indexed.
How to fix
Use a 301 or 308 if the move is permanent.

Rule id temporary-redirect

Indexability

Critical

Canonical points to a non-200 URL

Why it matters
A canonical pointing to a redirect, error or unreachable URL is usually ignored, leaving search engines to guess.
How to fix
Point the canonical at the final, 200-status version of the page.

Rule id canonical-to-error

Critical

Canonical points to a noindex page

Why it matters
This sends conflicting signals: "index that URL instead" and "don't index that URL". The page may drop out entirely.
How to fix
Canonicalise to an indexable page, or remove the noindex from the target.

Rule id canonical-to-noindex

Warning

Multiple canonical tags

Why it matters
When a page declares more than one canonical, search engines may ignore all of them.
How to fix
Keep a single canonical, in the HTML head or the HTTP Link header, not both.

Rule id multiple-canonicals

Warning

Linked pages blocked by robots.txt

Why it matters
Blocked pages can still be indexed from links, but without their content, often showing a bare URL in results.
How to fix
Unblock the pages if they should rank, or stop linking to them and use noindex instead of robots.txt.

Rule id blocked-but-linked

Notice

Noindex pages

Why it matters
These pages ask not to be indexed. Make sure that is intentional.
How to fix
Remove the noindex (meta robots or X-Robots-Tag) from pages that should appear in search.

Rule id noindex

Notice

Canonicalised pages

Why it matters
These pages point their canonical to another URL, so they will not be indexed themselves.
How to fix
Confirm the canonical target is the version you want indexed.

Rule id canonicalised

Notice

Missing canonical tag

Why it matters
Without a canonical, search engines choose one themselves among duplicate or parameterised URLs.
How to fix
Add a self-referencing canonical to indexable pages.

Rule id missing-canonical

On-page content

Warning

Missing page title

Why it matters
The title is the main headline in search results and a strong relevance signal.
How to fix
Add a unique, descriptive <title> to every indexable page.

Rule id missing-title

Warning

Duplicate page titles

Why it matters
Pages sharing a title compete with each other and look identical in search results.
How to fix
Write a unique title for each page that reflects its specific content.

Rule id duplicate-title

Warning

Missing meta description

Why it matters
Without a description, search engines pick a snippet themselves, which is often less compelling.
How to fix
Add a meta description summarising the page for searchers.

Rule id missing-meta-description

Warning

Duplicate meta descriptions

Why it matters
Identical descriptions make different pages look the same in results.
How to fix
Write a unique description for each page.

Rule id duplicate-meta-description

Warning

Missing H1

Why it matters
The H1 tells users and search engines what the page is about.
How to fix
Add one H1 that describes the main topic of the page.

Rule id missing-h1

Warning

Duplicate content

Why it matters
Indexable pages with identical text compete with each other, and search engines pick one to show.
How to fix
Consolidate duplicates with a 301 redirect or a canonical to the preferred URL, or make each page unique.

Rule id duplicate-content

Notice

Title longer than 60 characters

Why it matters
Long titles are usually truncated in search results.
How to fix
Keep titles under about 60 characters, with the key words first.

Rule id title-too-long

Notice

Title shorter than 30 characters

Why it matters
Very short titles miss the chance to describe the page and include relevant terms.
How to fix
Expand the title to describe the page, ideally 30–60 characters.

Rule id title-too-short

Notice

Multiple H1 headings

Why it matters
Several H1s can blur what the page is mainly about.
How to fix
Use a single H1 and structure the rest with H2–H6.

Rule id multiple-h1

Notice

Thin content (under 200 words)

Why it matters
Pages with very little text often struggle to rank and may be seen as low quality.
How to fix
Add useful content, merge thin pages, or noindex them if they have no search value.

Rule id thin-content

Notice

Near-duplicate content

Why it matters
Pages whose text is almost the same add little value on their own and may be treated as duplicates.
How to fix
Differentiate the pages with unique content, or consolidate them.

Rule id near-duplicate-content

Notice

Pages more than 4 clicks from the start

Why it matters
Deep pages get crawled less often and receive less internal link equity.
How to fix
Link to important deep pages from higher-level pages, categories or hubs.
Needs
A crawl that follows links (Website mode, or Sitemap mode with "Also follow links")

Rule id deep-page

Notice

Internal links with nofollow

Why it matters
Nofollow on internal links withholds link signals from your own pages.
How to fix
Remove rel="nofollow" from internal links unless there is a specific reason.

Rule id internal-nofollow

Images

Warning

Images missing alt text

Why it matters
Alt text makes images accessible to screen readers and helps them rank in image search.
How to fix
Add a short description in the alt attribute; use alt="" for purely decorative images.

Rule id image-missing-alt

Warning

Broken images

Why it matters
Images that fail to load hurt user experience and look neglected.
How to fix
Fix the image URL or restore the missing file.
Needs
"Check images" turned on

Rule id broken-image

Security

Warning

Pages served over HTTP

Why it matters
Browsers mark HTTP pages as "Not secure", and HTTPS is a ranking signal.
How to fix
Serve every page over HTTPS and 301-redirect the HTTP versions.

Rule id http-page

Warning

HTTP version does not redirect to HTTPS

Why it matters
If http:// still serves the site, it can be indexed as a duplicate and visitors browse insecurely.
How to fix
Add a site-wide 301 redirect from HTTP to HTTPS.

Rule id http-not-redirected

Performance

Warning

Poor LCP for real users

Why it matters
Largest Contentful Paint over 4 s means visitors wait a long time for the main content. LCP is a Core Web Vital that Google uses in ranking.
How to fix
Speed up the server response, preload the hero image and serve it in a modern format at the right size, and remove render-blocking CSS and JavaScript.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id cwv-poor-lcp

Warning

Poor INP for real users

Why it matters
Interaction to Next Paint over 500 ms means the page feels slow to respond to taps and clicks. INP is a Core Web Vital.
How to fix
Break up long JavaScript tasks, defer third-party scripts, and keep event handlers light.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id cwv-poor-inp

Warning

Poor CLS for real users

Why it matters
Cumulative Layout Shift over 0.25 means content jumps around while the page loads, causing mis-clicks. CLS is a Core Web Vital.
How to fix
Set width and height on images and embeds, reserve space for ads and banners, and avoid inserting content above what is already shown.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id cwv-poor-cls

Notice

Slow server response (over 1 second)

Why it matters
Slow responses hurt user experience and can reduce how much of the site gets crawled.
How to fix
Investigate server performance, caching and database queries for these URLs.

Rule id slow-response

Notice

Core Web Vitals need improvement

Why it matters
At least one Core Web Vital is between the good and poor thresholds for real users. Pages need all three to be good to pass the assessment.
How to fix
Check the metric shown for each URL in PageSpeed Insights and work on the opportunities listed there.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id cwv-needs-improvement

Notice

Low Lighthouse performance score

Why it matters
A lab score under 50 points to heavy pages or slow loading, which usually shows up in real-user experience too.
How to fix
Open the URL to see the biggest opportunities Lighthouse found, such as unused JavaScript or oversized images.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id lab-low-score

Notice

Pages PageSpeed Insights could not test

Why it matters
Google could not load these pages for testing, often because of bot protection, redirects or timeouts. Googlebot may have the same trouble.
How to fix
Check the error for each URL, and make sure the page loads for the Lighthouse user agent.
Needs
Core Web Vitals measured (PageSpeed Insights API key)

Rule id vitals-failed

Notice

Large HTML (over 2 MB)

Why it matters
Very large documents are slow to download and parse, especially on mobile.
How to fix
Reduce inline code and markup, or split the content.

Rule id large-html

Sitemaps

Warning

Non-indexable URLs in sitemaps

Why it matters
Sitemaps should list only indexable 200 URLs. Redirects, errors, noindex and canonicalised URLs reduce trust in the sitemap.
How to fix
Remove these URLs from the sitemap, or fix the pages so they return 200 and are indexable.
Needs
Sitemap mode

Rule id sitemap-non-indexable

Warning

Sitemaps that could not be read

Why it matters
A sitemap that returns an error or is not valid XML is ignored by search engines.
How to fix
Make sure the sitemap URL returns 200 with valid sitemap XML.
Needs
Sitemap mode

Rule id sitemap-error

Warning

Orphan pages (in sitemap, not linked)

Why it matters
Pages that only appear in the sitemap get no internal link equity and are hard for users to find.
How to fix
Link to these pages from relevant pages or navigation, or remove them if they are obsolete.
Needs
Sitemap mode · A crawl that follows links (Website mode, or Sitemap mode with "Also follow links")

Rule id orphan-page

International

Warning

Invalid hreflang codes

Why it matters
Search engines ignore hreflang values that are not a valid language (and optional country) code, such as "en-UK" or "english".
How to fix
Use ISO 639-1 language codes with optional ISO 3166-1 country codes, e.g. en, en-GB, vi-VN, or x-default.

Rule id hreflang-invalid-code

Warning

Hreflang without return links

Why it matters
Hreflang only works when both pages point to each other; one-way annotations are ignored.
How to fix
Add the reciprocal hreflang on every alternate page.

Rule id hreflang-missing-return

Warning

Hreflang points to non-indexable URLs

Why it matters
Alternates that redirect, error, are noindexed or canonicalised elsewhere break the hreflang set.
How to fix
Point hreflang only at the final, indexable URL of each language version.

Rule id hreflang-to-non-indexable

Notice

Hreflang set without a self-reference

Why it matters
Each page in an hreflang set should list itself as well as its alternates.
How to fix
Add an hreflang entry for the page's own language pointing to its own URL.

Rule id hreflang-missing-self

Notice

Hreflang set without x-default

Why it matters
x-default tells search engines which page to show users whose language is not covered.
How to fix
Add hreflang="x-default" pointing to your language selector or main version.

Rule id hreflang-missing-x-default

Structured data

Warning

Invalid JSON-LD

Why it matters
A JSON-LD block with a syntax error is ignored entirely, so its rich results are lost.
How to fix
Fix the JSON syntax (commas, quotes, brackets) and check it with Google's Rich Results Test.

Rule id structured-data-invalid

Warning

Structured data missing required properties

Why it matters
Items without the properties Google requires are not eligible for rich results.
How to fix
Add the listed properties to each item, or remove markup for types you do not want as rich results.

Rule id structured-data-missing-required

JavaScript

Warning

JavaScript changes SEO tags

Why it matters
When scripts rewrite the title, description, canonical or robots tags, search engines may index either version, and the raw one is what most other bots see.
How to fix
Serve the final tags in the HTML from the server (server-side rendering or static output).
Needs
"Render JavaScript" turned on

Rule id js-changes-seo-tags

Notice

Content depends on JavaScript

Why it matters
Most of the page text appears only after rendering. Indexing is slower and other bots see an almost empty page.
How to fix
Render the main content on the server, or pre-render pages that need to rank.
Needs
"Render JavaScript" turned on

Rule id js-content-dependent

Notice

Pages that failed to render

Why it matters
The page could not be rendered in time, so its rendered content could not be checked.
How to fix
Check for slow scripts, endless loading or errors in the browser console, or raise the timeout.
Needs
"Render JavaScript" turned on

Rule id js-render-failed

Critical

Landing pages with visits return errors

Why it matters
Visitors from any channel (search, ads, email, social) land on these URLs, but they now return an error.
How to fix
Restore the page or 301-redirect it to the closest working page, and update campaigns that link to it.
Needs
Google Analytics data fetched

Rule id ga-traffic-error

Critical

Pages with search traffic return errors

Why it matters
These URLs earned clicks from Google search but now return an error, so that traffic is being lost.
How to fix
Restore the page, or 301-redirect it to the closest working page so the visits and rankings carry over.
Needs
Search Console data fetched

Rule id gsc-traffic-error

Warning

Pages with search traffic are not indexable

Why it matters
Google sends visitors to these URLs, but they are now noindexed, canonicalised elsewhere, redirected or blocked. Their rankings will fade.
How to fix
Check that this is intended. If the page should rank, remove the noindex or point the canonical at itself.
Needs
Search Console data fetched

Rule id gsc-traffic-not-indexable

Warning

URLs with impressions the crawl did not find

Why it matters
Google shows these URLs in search, but the crawl could not reach them by following links: they may be orphaned or linked only from elsewhere.
How to fix
Link to the pages that should rank from relevant internal pages; redirect or remove the ones that should not exist.
Needs
Search Console data fetched · A crawl that follows links (Website mode, or Sitemap mode with "Also follow links")

Rule id gsc-not-crawled

Notice

Landing pages with visits the crawl did not find

Why it matters
People land on these URLs (from campaigns, old links or search), but they are not linked from the site, so the crawl never reached them.
How to fix
Link to the ones that matter from relevant pages; redirect retired campaign or legacy URLs to current pages.
Needs
Google Analytics data fetched · A crawl that follows links (Website mode, or Sitemap mode with "Also follow links")

Rule id ga-not-crawled

Notice

Low click-through rate for the ranking position

Why it matters
These pages rank on page one but get far fewer clicks than usual for their position, often because the title or description does not appeal.
How to fix
Rewrite the title and meta description to match what searchers want; add structured data for rich results where it fits.
Needs
Search Console data fetched

Rule id gsc-low-ctr

Notice

Pages ranking just below page one (positions 11–20)

Why it matters
Pages on page two get few clicks, but a small improvement can move them onto page one.
How to fix
Strengthen these pages: better content for the main queries, more internal links from strong pages, and a sharper title.
Needs
Search Console data fetched

Rule id gsc-striking-distance

Notice

Indexable pages with no search impressions

Why it matters
These pages did not appear in Google search at all in the period: they may not be indexed, or target no searched topic.
How to fix
Inspect the URL in Search Console. Improve, merge or remove pages that serve no search purpose.
Needs
Search Console data fetched

Rule id gsc-no-impressions

Log files

Warning

Googlebot gets errors (server logs)

Why it matters
Googlebot requested these URLs and got a 4xx or 5xx response. Errors waste crawl budget, and repeated server errors make Google crawl the site less.
How to fix
Fix server errors first. Redirect or restore pages that Google still requests but no longer exist, or remove the links that point to them.
Needs
Server logs imported

Rule id log-googlebot-errors

Notice

Indexable pages Googlebot did not crawl (server logs)

Why it matters
In the period the logs cover, Googlebot never requested these pages, so changes to them are not picked up and new pages may not get indexed.
How to fix
Link to these pages from strong, frequently crawled pages, list them in the XML sitemap, and check they are not too deep in the site.
Needs
Server logs imported

Rule id log-not-crawled-by-google

Notice

URLs Googlebot crawls that the crawl did not find (server logs)

Why it matters
Google keeps requesting these URLs, but the site does not link to them: old pages, parameter variants or orphaned content that use up crawl budget.
How to fix
Redirect retired URLs, link to orphaned pages that should rank, and block crawl traps (e.g. endless parameters) in robots.txt.
Needs
Server logs imported · A crawl that follows links (Website mode, or Sitemap mode with "Also follow links")

Rule id log-orphan-crawled

See which of these your site has

New to Crawlens? Start with your first crawl.

Run your first crawl