What do we check, and how?
The full RankSorted check runs 150 automated checks on a web page. The free check runs 20 of them. Each check reports pass, needs improvement, fail or not run, with the evidence found and a suggested fix.
What do the results mean?
- The score is our own checklist estimate. It is not a Google score and does not predict rankings, enquiries or AI mentions.
- A check that could not be run is marked “not run”. It is never counted as a pass.
- Checks marked “screening” give a result a person should confirm on the live page.
- Phone-width checks render the page without its scripts, so they are estimates.
- Some speed checks use Google PageSpeed. When that service is unavailable they are marked “not run”.
- An accessibility screening is not a certificate of WCAG conformance.
What still needs a person or your own Google data?
A further 38 checks are outside the automated count. Twelve need your own Search Console, Google Business Profile or Analytics data, such as whether Google has indexed a page. Nineteen need a person or the business owner, such as whether reviews are genuine, qualifications are current and photos are your own. Seven are interaction tests done by hand, such as using the page with a keyboard only and reading form error messages.
SEO: 32 checks
- Title tag present and the right length
- Meta description present and the right length
- Exactly one H1 heading
- Headings in order (no skipped levels)
- No empty or paragraph-length headings
- Canonical points to this page
- Page can be indexed (no noindex)
- Main keyword in the title and H1
- Main keyword in the opening paragraph
- Enough internal links
- No vague link text ('click here', 'read more')
- Page listed in the sitemap
- Readable URL (lowercase, hyphens)
- Title differs from other pages on the site
- Description differs from other pages on the site
- Only one title element
- Only one description tag
- Title is not generic ('Home', 'Untitled')
- Canonical is a full https:// address
- No conflicting canonical declarations
- Canonical address works (200, no redirect, indexable)
- Tracking parameters keep the clean canonical
- Trailing-slash and capital-letter addresses resolve to one page
- http and www versions redirect to this address
- No broken internal links
- Internal links go straight to their page
- Internal links are not marked nofollow
- Same link text does not lead to different pages
- Navigation uses real link addresses
- No #/ routes hiding separate pages
- Blog or listing pages have crawlable next-page links
- Language alternates are consistent
Local SEO: 7 checks
- Phone number visible on the page
- Business markup (LocalBusiness or subtype)
- Phone in markup matches the page
- Areas in the markup are named on the page
- No keyword-stuffed list of towns
- Address and hours in the markup appear on the page
- Email in the markup matches the page
AI search (GEO, AEO and LLMO): 9 checks
- Phone and price readable without JavaScript
- Question headings customers would ask
- Each question heading is followed by an answer
- Search and AI-search crawlers allowed in robots.txt
- AI training crawlers (your decision, not scored)
- Genuine 'last reviewed' or 'updated' date
- No snippet restrictions on useful content
- AI-search crawlers are not blocked at the server
- Search crawlers get the same response as a browser
Trust (E-E-A-T): 15 checks
- Link to an About page
- Link to a Contact page
- Link to a privacy policy
- Author or reviewer named
- No unprovable claims ('best', 'guaranteed', 'No.1')
- A real customer review on the page
- Real job examples (street, postcode or case study)
- No obvious stock photos
- How to complain or report an error
- No placeholder or unfinished text
- Tracking scripts sit behind a cookie consent tool (screening)
- Forms submit over HTTPS
- Security certificate accepted
- No insecure http:// files on a secure page
- Outside links you cite still work
Content quality: 6 checks
- Word count in the sweet spot for this page type
- Main keyword not over-used
- Plain English (reading ease)
- FAQ count for this page type
- Short paragraphs
- No repeated paragraphs
Technical SEO: 30 checks
- Structured data has no code errors
- One business entity with a stable @id
- Service markup points to a business on the page
- FAQ markup matches the page word for word
- No self-serving review or rating markup
- Prices in the markup appear on the page
- Breadcrumb markup
- Mobile viewport tag
- Social share title, description and image
- HTTPS and status 200
- Page language set
- No indexing block in the response header
- robots.txt is reachable and readable
- Sitemap is valid and within limits
- Sitemap lists live, indexable pages
- Missing pages return a 404
- No meta-refresh redirect
- Base address does not misroute links
- Only valid elements in the head
- UTF-8 encoding declared at the top
- HTML5 doctype present
- Language code is valid
- Structured data has its required fields
- Structured-data references resolve
- Markup address and dates agree with the page
- CSS and JavaScript files are not blocked or broken
- Favicon loads and is a suitable size
- Social share image loads and is large enough
- Content images load
- Image file names are descriptive
Mobile performance: 23 checks
- Images in WebP or AVIF
- Images have width and height set
- First image loads first, others lazy
- Core Web Vitals (Google PageSpeed)
- No sideways scroll on a phone
- Server response time
- Text files are compressed
- Static files are cached
- Images are sized for phones
- Main image or text is found early (PageSpeed)
- Few files delay the first paint
- Text stays visible while fonts load
- Outside scripts are not costly (PageSpeed)
- Little unused JavaScript (PageSpeed)
- Little unused CSS (PageSpeed)
- CSS and JavaScript are minified (PageSpeed)
- Page responds quickly while loading (PageSpeed)
- Back and forward navigation is instant (PageSpeed)
- Page weight is reasonable
- Page is not overly complex (element count)
- No browser errors on load (PageSpeed)
- Text is a readable size on a phone
- No large pop-up covering the page (screening)
Accessibility: 24 checks
- Images have meaningful alt text
- No empty links or buttons
- Form fields have labels
- Call links big enough to tap (24px+)
- Text colour contrast (screening)
- Pinch zoom is not disabled
- Text can be enlarged to 200% (screening)
- Skip link to the main content
- Keyboard focus is visible (screening)
- Focused items are not hidden behind a fixed header (screening)
- All links and buttons big enough to tap (24px+)
- Spoken names include the visible text
- Label and ARIA references resolve
- No duplicate ids that labels rely on
- No keyboard-reachable controls inside hidden areas
- Click targets are real buttons or links (screening)
- Embedded frames have titles
- Data tables have header cells
- Personal-detail fields say what they are for
- Email and phone fields use the right input type
- No sound plays automatically
- Moving content can be paused (screening)
- Animations respect reduced-motion settings (AAA, not scored)
- No text hidden from visitors (screening)
Conversion: 4 checks
- Tap-to-call link near the top
- Call link repeated further down
- Price or price range near the top
- A clear next step (quote, booking or contact)
What is this based on?
The checks follow Google’s helpful-content guidance (opens in a new tab), its AI search documentation (opens in a new tab) and the W3C accessibility guidelines (WCAG 2.2) (opens in a new tab). The test definitions are our own, informed by those sources. No special markup guarantees an AI recommendation.
Page last updated .