Skip to main content

Our Methodology

Every check, every threshold, every primary source — published in full. SEO tools should not be black boxes.

Quick Summary

How is the RankifyPro SEO score calculated? Each of 12 deterministic checks is awarded 10 points for a pass, 5 points for a warning, and 0 for a fail. Informational-only checks are excluded from the denominator. The final score is the percentage of awarded points across all scored checks. Thresholds are based on Google’s published Search Central guidance, web.dev recommendations, and widely accepted industry consensus dating back to 2014.

Why We Publish Our Methodology

Most SEO tools are proprietary black boxes. You get a score and a marketing pitch — but no way to verify what was measured or why. We think that is bad for the industry. RankifyPro publishes every threshold, every rule, and every primary source, so you can decide for yourself whether the score is meaningful for your context.

Audit Pipeline (Step by Step)

  1. Receive the URL via HTTPS POST to /tool.php with X-Requested-With: XMLHttpRequest.
  2. Validate URL format. If missing scheme, prepend https://. If invalid, return an error.
  3. Issue a single HTTP GET via PHP file_get_contents with a 10-second timeout, following up to 5 redirects, with User-Agent Mozilla/5.0 (compatible; RankifyPro/1.0; +https://rankifypro.com).
  4. Record wall-clock time from request send to response received in milliseconds (this is the Page Load Speed metric).
  5. Parse the HTML into a DOM via PHP DOMDocument with libxml warnings suppressed.
  6. Run 12 XPath queries (one per check) against the DOM.
  7. Award points: pass = 10, warn = 5, fail = 0. Informational checks are not counted in the denominator.
  8. Compute final score = (sum of awarded points) / (sum of max possible points) × 100, rounded to the nearest integer.
  9. Return JSON: { url, score, checks[], load_time }.
  10. Discard the URL, HTML, and DOM from memory.

Check-by-Check Reference

1. Title Tag

XPath: //title. Primary source: Google Search Central — Title Link best practices.

ConditionStatusPoints
Length 40–65 charactersPASS10
Length outside 40–65 but > 0WARN5
MissingFAIL0

2. Meta Description

XPath: //meta[@name="description"]/@content. Primary source: Google Search Central — Snippets.

ConditionStatusPoints
Length 120–160 charactersPASS10
Length outside 120–160 but > 0WARN5
MissingFAIL0

3. H1 Heading

XPath: //h1. Primary source: web.dev — Headings & sections.

ConditionStatusPoints
Exactly 1 H1PASS10
More than 1 H1WARN5
No H1FAIL0

4. H2 Headings

ConditionStatusPoints
≥ 2 H2 elementsPASS10
Exactly 1 H2WARN5
No H2FAIL0

5. Image Alt Text

XPath: //img. We inspect the alt attribute. Empty-string alts (alt="") are treated as present (the explicit decorative declaration). Only entirely-missing or whitespace-only alts are counted as missing.

ConditionStatusPoints
No images on pageINFONot scored
100% of images have alt textPASS10
Some but not all have alt textWARN5
0% of images have alt textFAIL0

6. Mobile Viewport

XPath: //meta[@name="viewport"]. Primary source: Google Search Central — Mobile-first indexing.

7. Canonical Tag

XPath: //link[@rel="canonical"]/@href. Primary source: Google Search Central — Consolidate duplicate URLs.

8. Page Load Speed

Measures TTFB of the HTML document only — not full-page Core Web Vitals. For LCP, FID, INP, CLS use PageSpeed Insights.

ConditionStatusPoints
< 800 msPASS10
800–2000 msWARN5
> 2000 msFAIL0

9. Keyword Density

We strip HTML, lowercase the visible text, split on whitespace, and count occurrences of every word longer than 4 characters. Healthy density: 1%–3%. Above 3% may look like keyword stuffing. Below 1% is informational only.

10. HTTPS / SSL

We inspect the URL scheme after redirects. Primary source: Google Search Central blog — HTTPS as a ranking signal (2014).

11. Open Graph Tags

XPath: //meta[@property="og:title"]/@content. Primary source: ogp.me — the Open Graph Protocol specification.

12. Robots Meta

XPath: //meta[@name="robots"]/@content. Primary source: Google Search Central — Robots meta tag.

What the Tool Does Not Check (Yet)

  • Backlinks (off-page authority)
  • Full Core Web Vitals (LCP, INP, CLS) — use PageSpeed Insights
  • JSON-LD schema validation — use Google’s Rich Results Test
  • hreflang for international sites
  • XML sitemap presence and validity
  • Internal link graph
  • JavaScript-rendered content (we audit the raw HTML response, the same as Googlebot’s first pass)

Versioning & Updates

We review the scoring rules quarterly against any updates to Google’s Search Central documentation and web.dev recommendations. The current rule version is v1.2 (effective 2026-06-11). Material changes will be summarised here with the date of effect.

Report a Methodology Issue

If you spot what you believe is an inaccurate threshold or stale citation, please email support@rankifypro.com. We acknowledge methodology reports within 7 days and publish a correction (if confirmed) within 30 days.