Methodology Specification

HRI™ METHODOLOGY

HostList Ranking Index

Formerly published as HostScore™.

A reproducible 0–100 algorithmic rating for active web hosting companies. The base score is a deterministic function of public profile data; a signal-augmentation layer adds verifiable, evidence-backed micro-signals with continuous time decay. The one editorial input is the known-host infrastructure tier list, which sets the Performance baseline for hosts without measured data and is overridden by measured CrUX or a benchmark. No paid placements.

Version 2.2Revised 1 September 2026Range [0, 100] ∩ ℤChangelogTerms apply

Status update, 26 August 2026: HRI v3.0 takes effect on 3 November 2026. HRI v2.2 remains current until then and no score moves on the day: a disclosed transition credit holds every existing listing and decays over 90 days. Full details in the changelog.

Interactive

Drag the sliders to see how profile fields move a score in real time. Expand the technical specification below for every formula and signal.

WHAT WOULD YOUR SCORE BE?

Live calculation against the production HRI algorithm. Base components only; signal-augmentation bonuses require verified evidence rows and are not included here.

Reviews

Google Rating4.4
Google Reviews240
Trustpilot Score0
Trustpilot Reviews0
G2 Rating0
G2 Reviews0

Vintage & Freshness

Founded Year2014
Days Since Update20

Performance Tier

Tier maps to a representative URL the real lookup recognises.

Profile Completeness

Segment classification: always present, 5 pts constant until v3.0

Estimated HRI
91
/ 100
Trust
25
Complete
23
Fresh
25
Perf
18

PERFORMANCE MEASUREMENT LADDER

The Performance component (0–25 points) uses the strongest available signal for each host. We prefer controlled benchmarks that isolate server performance from site design; weaker fallbacks apply only when no benchmark exists.

Benchmarked

An identical test site load-tested on the host's real plan (e.g. ReviewSignal). Measures response time under load, uptime during the test window, and error rate. The most rigorous signal: it reflects hosting infrastructure, not marketing-site polish.

Measured

Real-user Core Web Vitals (LCP, INP, CLS, TTFB) from Google CrUX field data on the provider's public website. Useful when no benchmark exists, but reflects the host's own marketing site, not how fast your site would run on their platform. We are manually deploying identical test website instances across the top 200 hosts by HRI rank. Benchmark data is published host by host as each deployment is validated and load-tested on the host's real plan. Profiles move from Measured or Estimated to Benchmarked as results go live.

Estimated

Editorial infrastructure tier based on known platform stack (CDN, caching layer, data-centre footprint). Replaced automatically when benchmark or CrUX data arrives.

Baseline

Neutral starting score (11/25) until any performance signal is collected. Not a penalty; hosts rise as data is gathered or signals are verified.

For a buyer-friendly explainer, including hosting speed vs site speed and how to test your own host, see How we measure hosting performance.

ABSTRACT

HRI is a composite measure of public-signal quality for web hosting companies. The base score decomposes additively into four equally-weighted components, T (Trust),C (Completeness), F (Freshness), andP (Performance), each constrained to the integer interval [0, 25]. The total score S(h) = T(h) + C(h) + F(h) + P(h) therefore lies in [0, 100].

Version 2.2 introduces a signal-augmentation layer. Each verified signalσ ∈ Σ(h) carries a value, an evidence_url, a captured_at timestamp, and a per-signal decay_horizon_days. A signal contributes b(σ) · D(σ) to its mapped component, whereD(σ) = max(0, 1 − age_days(σ) / horizon) is a linear time-decay factor in [0, 1]. Components are clamped to [0, 25] after augmentation; the score remains in [0, 100].

The system is append-only: every signal that ever entered the score remains in thehost_signals table with its full provenance, even after it has been superseded by a newer measurement. Claimed host owners may dispute any signal through the dashboard, freezing it out of the active score until adjudication against the recorded evidence.

87
/ 100
Example S(h)
T=20 · C=18 · F=25 · P=24
Technical specificationFormulas, notation, component inputs, signal extractors, and provenance

NOTATION

The remainder of this document uses the following symbols. Each appears in at least one formula below.

hA single hosting company record in the directory.
S(h)The HRI of h. An integer in [0, 100].
T, C, F, PThe four base components: Trust, Completeness, Freshness, Performance. Each is an integer in [0, 25].
σA verified signal, one row of host_signals. Has signal_key, value, captured_at, decay_horizon_days, evidence_url.
Σ(h)The current signal set for h: latest non-superseded, non-disputed σ per signal_key.
D(σ)Linear decay factor of σ. D(σ) = max(0, 1 − age_days(σ) / horizon_days(σ)).
b(σ)The fractional bonus a signal contributes to its mapped component (defined per signal_key).
clamp(a, b, x)min(b, max(a, x)). Used to enforce the [0, 25] ceiling on every component.
𝟙(p)Indicator function. 1 if predicate p holds, 0 otherwise.

FORMAL DEFINITION

For any host h in the directory:

S(h) = T'(h) + C'(h) + F'(h) + P'(h) where X'(h) = clamp(0, 25, X_base(h) + Σ_{σ ∈ Σ(h) : map(σ) = X} b(σ) · D(σ)) D(σ) = max(0, 1 − (now − captured_at(σ)) / (1 day · horizon(σ))) Σ(h) = { latest non-superseded, non-disputed signal per signal_key, for h } S(h) ∈ {0, 1, 2, ..., 100} after componentwise rounding.

The map(σ) function routes each signal_key to one of the four base components; mappings are defined in src/lib/host-signals.ts. The signal setΣ(h) is materialised by the host_signals_currentPostgreSQL view, which filters the append-only host_signals table to the currently-effective row per (host_id, signal_key).

BASE COMPONENTS

Each component is a deterministic function of fields on the hosts table. Formulas below describe the published methodology; the production implementation includes additional proprietary signal mappings and editorial safeguards not fully enumerated here.

Trust 25/100
Completeness 25/100
Freshness 25/100
Performance 25/100
Trust (T)[0, 25]

Multi-platform review signal, profile vintage, and verified ownership.

Show formula
T(h) = clamp(0, 25, round( rating_term(h) // [0, 8] 8 · google_rating / 5, or Trustpilot fallback [0, 6] + volume_term(h) // [0, 7] log-banded google_review_count, or Trustpilot fallback [0, 4] + vintage_term(h) // [0, 5] age-banded founded_year + verified_term(h) // {0, 5} 5 · 𝟙(claimed_at ≠ null) + tier_bonus(h) // {0, 5} 5 · 𝟙(P(h) ≥ 18) + tp_term(h) // [0, 2] Trustpilot corroboration (only alongside Google) + g2_term(h) // [0, 2] G2 corroboration ))
Sub-terms
  • rating_term= 8 · google_rating / 5 if google_rating ≠ null; else 6 · trustpilot_score / 5 if trustpilot_score ≠ null ∧ tp_reviews ≥ 10; else 0. v2.2: Trustpilot substitutes at a discounted ceiling when Google data is absent, Google dominates whenever present.
  • volume_term= { 7 if google_review_count ≥ 1000; 5 if ≥ 100; 3 if ≥ 10 }. When google_rating is null: { 4 if tp_reviews ≥ 1000; 3 if ≥ 100; 1 if ≥ 10 }; else 0.
  • vintage_term= { 5 if founded < 2005; 4 if < 2010; 3 if < 2015; 2 if < 2020; else 1 } if founded_year ≠ null else 0. founded_year is the company founding year where one is recorded; otherwise the domain registration year from RDAP fills it, so the term measures years since founding or domain registration.
  • verified_term= 5 if claimed_at ≠ null else 0
  • tier_bonus= 5 if Performance ≥ 18 else 0. Couples Trust to verified infrastructure quality.
  • tp_term= { 2 if trustpilot_score ≥ 4.0 ∧ tp_reviews ≥ 100; 1 if score ≥ 4.0 ∧ reviews ≥ 10; 1 if score ≥ 3.5 ∧ reviews ≥ 100; else 0 }, awarded only when google_rating ≠ null (when Google is absent, Trustpilot already fills the review terms, corroboration on top would double-count). Asymmetric, bad Trustpilot does NOT subtract from Trust.
  • g2_term= { 2 if g2_rating ≥ 4.0 ∧ g2_reviews ≥ 50; 1 if rating ≥ 4.0 ∧ reviews ≥ 10; 1 if rating ≥ 3.5 ∧ reviews ≥ 50; else 0 }. G2 thresholds halved vs Trustpilot because G2 is B2B/SaaS-leaning with smaller per-host volumes.
Inputs
hosts.google_ratinghosts.google_review_counthosts.founded_yearhosts.claimed_athosts.trustpilot_scorehosts.trustpilot_review_counthosts.g2_ratinghosts.g2_review_count
Completeness (C)[0, 25]

Disclosure of public profile data.

Show formula
C(h) = clamp(0, 25, 5 · 𝟙(url ≠ null) + 3 · 𝟙(description ≠ null) + 3 · 𝟙(logo_url ≠ null) + 3 · 𝟙(claimed_at ≠ null) // proxy: has verified contact channel + 2 · 𝟙(city ≠ null ∨ country ≠ null) + 5 · 𝟙(segment ≠ null) + 2 · 𝟙(founded_year ≠ null) + 2 · 𝟙(affiliate_url ≠ null ∨ affiliate_network ≠ null) )
Sub-terms
  • Maximum unaugmented total= 25. The 0-1 indicator structure means C is integer-valued before clamping.
  • SaturationAny subset of 25-pts worth of fields saturates. Adding more fields beyond that does not lift C.
  • segmentEvery active host carries a segment, so the 5-point segment term is a constant across the directory until v3.0 retires this component.
Inputs
hosts.urlhosts.descriptionhosts.logo_urlhosts.claimed_athosts.cityhosts.countryhosts.segmenthosts.founded_yearhosts.affiliate_urlhosts.affiliate_network
Freshness (F)[0, 25]

How recently the profile record was last updated, by any write including our own enrichment. Currently the weakest component, see the note below.

Show formula
Δd = floor((now − updated_at) / 1 day) F_base(h) = { 25 if Δd ≤ 30; 20 if 30 < Δd ≤ 90; 15 if 90 < Δd ≤ 180; 10 if 180 < Δd ≤ 365; 5 otherwise } F(h) = clamp(0, 25, F_base(h) + 0.5 · Σ_{σ ∈ Σ(h)} D(σ))
Sub-terms
  • Base curveStep function on hosts.updated_at, five bands, no continuous resolution.
  • Signal contributionEvery verified σ contributes 0.5 · D(σ) on top of its component-specific bonus. In practice this is clamped away for the whole leaderboard, which already sits at the 25 ceiling.
  • Known limitationupdated_at is written by our own enrichment as well as by hosts, so it measures when the record was last updated, not whether anything was verified. Most active hosts, and every host in the top 200, score the full 25, which means Freshness contributes almost no separation between providers. We have started recording host-authored updates separately and will re-source this component once that data supports it. It will be announced in advance with a transition credit, the same way Completeness was for v3.0.
Inputs
hosts.updated_athost_signals_current.captured_at
Performance (P)[0, 25]

Independent benchmark first, then measured field data, then infrastructure tier.

Show formula
P_base(h) = benchmark(h) if fresh controlled-benchmark (≤ 400d) else cwv(h) if fresh CrUX field data (≤ 120d) else tier_lookup(domain(h.url) || h.slug) ∈ {22 tier-1, 18 tier-2, 14 tier-3, 11 default} benchmark(h): response-under-load 0-14, uptime 0-7, Top Tier +4, minus error-rate penalty; a Top Tier award floors P_base at 18. cwv(h) = min(22, 25 · Σ wᵢ·fᵢ(mᵢ) / Σ wᵢ) weights LCP 10, INP 6, CLS 5, TTFB 4 good thresholds: LCP 2.5s, INP 200ms, CLS 0.10, TTFB 800ms (Google 2026) capped at 22: the range above it is reserved for benchmarked hosts P(h) = clamp(0, 25, P_base(h) + 1.0 · D(σ_status_page) + 0.5 · D(σ_ipv6) + 0.5 · D(σ_http3) + ...)
Sub-terms
  • Benchmarked (authoritative)When an independent controlled benchmark exists (an identical test site load-tested on the host's real plan, e.g. ReviewSignal), Performance is derived from response time under load, uptime, and the Top Tier award. Shown on the profile as "Benchmarked". This measures the customer experience, not the provider's own marketing site.
  • Measured (CrUX)Absent a benchmark, aggregated p75 Core Web Vitals from real-user CrUX field data on the provider's public website origin (LCP, INP, CLS, TTFB) score Performance directly. Shown as "Measured". This reflects the host's marketing site, not customer sites on their platform. Field data older than 120 days is discarded, and the result is capped at 22 of 25 because it measures the provider's own site rather than customer sites; the range above the cap is reserved for benchmarked hosts. Identical test-site benchmarks for the top 200 hosts are in deployment (see FAQ).
  • Estimated (tier)Hosts with neither signal fall back to an editorial infrastructure tier (see src/lib/known-host-tiers.ts), shown as "Estimated". Matched by URL domain or brand token so regional TLDs and descriptive slugs resolve correctly.
  • BaselineA host with no benchmark, no field data, and no known tier receives P_base = 11, a mid-scale starting point rather than a penalty. It rises as data is collected or via signal augmentation.
Inputs
hosts.bench_top_tierhosts.bench_uptime_pcthosts.bench_response_mshosts.cwv_lcp_mshosts.cwv_inp_mshosts.cwv_clshosts.cwv_ttfb_mshosts.urlhosts.slughost_signals_current.signal_key in {status_page_present, ...}

SIGNAL AUGMENTATION LAYER

The base 4×25 formula uses banded inputs and therefore moves in step-function jumps. The augmentation layer introduces continuous fractional bonuses on top of each component, giving the total score genuine single-point resolution. Each enabled signal is extracted from public sources by an autonomous runner (scripts/enrich/run.ts) and written tohost_signals with full provenance.

B_X(h) = Σ_{σ ∈ Σ(h) : map(σ) = X} b(σ) · D(σ) augmented X'(h) = clamp(0, 25, X_base(h) + B_X(h)) every σ also contributes +0.5 · D(σ) to F (component-agnostic freshness bump)
Enabled signal extractors
signal_keyextractor + notesbonus mappinghorizonmin confidence
status_page_presentHTTP probe of status.{domain}, /status, /uptimeCounts only when the response contains operational-status vocabulary (operational, incident, uptime, degraded, maintenance, monitoring). Prevents a 200-status marketing page from passing as a status page.P += 1.0 · D(σ)180d50
free_ssl_documentedLexicon match on /pricing, /plans, or root with plan-context windowSearches for "free SSL" / "Let's Encrypt" and variants. /pricing match passes at 90 confidence; root-page match requires a plan-context word (price, "/mo", "features", "included", etc.) within ±200 chars of the phrase. Tag-stripped, whitespace-collapsed surrounding-sentence stored as evidence.C += 1.0 · D(σ)365d70
pricing_page_detectedPrice pattern on /pricing, /plans, /hosting/pricing, or root with plan-context wordsRecords whether public pricing is published. Carries only the component-agnostic Freshness bump every verified signal earns; it maps to no component, because public pricing is a v3 Completeness fact rather than a signal.F += 0.5 · D(σ) only (no component bonus)180d75
renewal_price_delta_pctPricing-page DOM extraction (pending)Computes (renewal − intro) / intro × 100. Lower deltas indicate pricing transparency. Implementation in progress.C += 1.0 · D(σ) if delta < 50; +0.5 if delta < 10090d60
support_response_minutesMeasured form submission at 14:00 UTC (pending)Real measurement against the host's public support channel. Only counts first-touch human reply (auto-responders filtered).T += 2.0 · D(σ) if < 60min; +1.0 if < 240min90d100

Signals listed as pending are in active development. Bonus mappings and horizons are declared in source before deployment, so the algorithm version increments when these come online and the public spec updates in the same commit.

DATA PROVENANCE & AUDIT TRAIL

Every signal that contributes to a score is durably recorded. The table below summarises the per-row fields.

table host_signals (append-only; primary store) id uuid host_id uuid → hosts(id) signal_key text // e.g. "status_page_present" signal_value jsonb // payload, schema per signal_key evidence_url text // where the agent found it evidence_excerpt text // ~200 char raw snippet evidence_hash sha256(excerpt) // dedup; idempotent insert captured_at timestamptz captured_by text // "agent:v1" or "user:..." confidence smallint ∈ [0, 100] decay_horizon_days int superseded_at timestamptz? // set when newer σ arrives superseded_by uuid? // → host_signals(id) disputed_at timestamptz? resolution text? // 'upheld' | 'overturned' | 'pending' view host_signals_current (read by scoring layer) = SELECT DISTINCT ON (host_id, signal_key) ... WHERE superseded_at IS NULL AND (disputed_at IS NULL OR resolution = 'upheld') ORDER BY host_id, signal_key, captured_at DESC
  • Append-only. The scoring layer never issues UPDATE on host_signals. A new measurement is a fresh INSERT that supersedes any prior row for the same (host, signal_key) via the supersede_prior_signal RPC.
  • Idempotent. The (host_id, signal_key, evidence_hash) UNIQUE index makes re-discovery of the same evidence a no-op. The runner can re-process any host without disturbing the score.
  • Disputable. A claimed host owner files a dispute via the host dashboard with a counter_evidence_url. The signal is excluded from host_signals_current until a reviewer adjudicates upheld or overturned. Resolution times are bounded by the disclaimer SLA.
  • Inspectable. Every active signal on a host profile links back to its evidence_url. There are no opaque inputs.

PUBLISHED METHODOLOGY & VERSIONING

We publish this specification so buyers and host owners understand how scores are derived. The methodology, weightings, signal extractors, tier classifications, and enrichment pipeline are proprietary intellectual property of HOSTLIST.IO. Publishing the formula does not grant a licence to reverse-engineer, reproduce, or create derivative ranking systems. See our Terms of Service.

Current version2.2 · revised 1 September 2026ChangeTrustpilot now substitutes for the Google review terms at a discounted ceiling (rating 0-6, volume 0-4) when a host has no Google Places data, Google Places data covers 57.8% of active hosts (counted 1 September 2026) and well-reviewed hosts in the remainder were scoring as if they had no review signal. Google remains dominant whenever present; the Trustpilot corroboration bonus now applies only alongside Google to avoid double-counting. v2.1 added Trustpilot/G2 corroboration; v2.0 introduced the signal-augmentation layer.SpecificationThis page (updated with each version increment)LegalTerms of Service · HRI™ is a registered methodology

Buyers can verify any score by inspecting the host's public profile fields and active signal evidence. Host owners may dispute individual signals through the dashboard. Automated bulk extraction of scores for competitive cloning or reverse-engineering is prohibited.

STATISTICAL PROPERTIES & LIMITATIONS

HRI measures public-signal quality, which correlates with but is not identical to subjective service quality. The following constraints apply.

  • Sample bias. Hosts that have claimed their listing, run a status page, and maintain public review profiles score higher. Excellent service operators with no public footprint are systematically under-rated; this is a measurement limitation, not a service judgement.
  • Granularity. Without signal augmentation, the base score moves in discrete jumps of 5+ points. The augmentation layer is the source of fine-grained resolution; hosts with no verified signals have lower differentiation around the same base value.
  • Volume vs quality coupling in Trust. The log-banded volume_term means a host with rating 4.9 and 50 reviews can score below a host with rating 4.4 and 5,000 reviews. This favours established operators by design, review volume is itself a trust signal.
  • Geographic coverage. Google Places coverage and Trustpilot adoption vary by region. Hosts headquartered in regions with low review-platform penetration carry a structural Trust handicap.
  • Review manipulation. Google and Trustpilot rating and review volumes are taken as published by those platforms and are not screened for inorganic growth. A host that buys or solicits reviews in bulk moves Trust by the same volume bands as one that earned them; detection rests on the platforms.
  • Temporal sensitivity. Recent claim activity moves Trust by 5 points immediately; a host that claims its listing today will see this reflected on the next score recompute. Other signals require successful extraction by the runner.
  • Not a recommendation. HRI is one data point. Buyers should additionally read third-party reviews, test with trial / money-back terms, and verify provider claims directly.
  • Informational only. Scores and rankings are expressions of opinion based on public signals and may lag real-world changes. See the ratings disclaimer and Terms. Hosts disputing listing data: email [email protected].

IMPROVING A SCORE (FOR HOSTS)

Every action below corresponds to a deterministic point movement, recalculated on the next score cycle.

01
Claim the listing

Sets claimed_at. Adds 5pt to Trust (verified_term) and 3pt to Completeness (contact channel). Free.

Claim Listing →
02
Complete the profile

Description, logo, founded_year, segment, location fields each contribute deterministic points to Completeness. Saturates at 25.

Reference fields above →
03
Publish a status page

A status.{domain} or /status URL with operational vocabulary contributes +1pt to Performance via the status_page_present extractor on next enrichment pass.

Read methodology →

FREQUENTLY ASKED

What happens when several hosts have the same HRI?

HRI is a whole number out of 100, so ties are normal: on 5 September 2026 six hosts held 97. Tied hosts are ordered by a fixed, published chain, never by database order or by when a profile was last saved. Key 1 is the published score. Key 2 is the number of verified disclosures on the profile: the Completeness facts a buyer can check against evidence, which is the work the host did on its own listing. Key 3 is approved reviews left on HostList itself. Key 4 is third-party review volume: the combined Google, Trustpilot and G2 count, grouped into half-decade buckets (under 10, 10 to 31, 32 to 99, 100 to 315, 316 to 999, 1,000 to 3,161, 3,162 to 9,999, 10,000 and up), so hosts in the same bucket are treated as equal evidence. Key 5 is the Trust component. Key 6 is alphabetical order, so the sequence is total and reproducible. Worked example from the September 2026 table: HostPapa, hosting.de, DreamHost, SiteGround, Kinsta and cdmon all scored 97. HostPapa has 28 verified disclosures, hosting.de 24, DreamHost 22, so they take the first three places in that order. SiteGround and Kinsta both have 5, neither has HostList reviews yet, so third-party volume separates them: SiteGround sits in the 10,000+ bucket with about 32,400 reviews, Kinsta in 1,000 to 3,161. cdmon, with 2 disclosures, is last of the six. The chain only ever reorders hosts that already share a score. It cannot lift a 96 above a 97, however many reviews or disclosures the 96 has.

Twenty hosts share my score. What actually moves me up?

In order of leverage. First, get out of the tie: every pillar has headroom somewhere, and the profile dashboard shows which Completeness facts are undisclosed and whether Performance is estimated or measured. One extra point beats any tiebreak. Second, disclose: each verified fact you add moves you ahead of every tied host with fewer, and it is the same work that raises Completeness in v3.0. Third, HostList reviews: an approved review from a customer on your profile counts before any third-party number does, and the dashboard has review invitations built in. Fourth, third-party volume: the tiebreak reads the combined Google, Trustpilot and G2 count, so if your Google Business Profile is missing from the listing or your Trustpilot domain is not the one on your profile, that evidence is not being counted. Fix the linkage before asking customers for reviews. Volume is bucketed, so going from 2,000 to 2,400 reviews changes nothing; crossing 3,162 does. Fifth, Trust, which is mostly rating quality, founding year and a claimed profile. Name order is last and is the only key you cannot change. One thing that does not help: ratings above what you already have once Trust is at 25.

Why does the host in first place have fewer reviews than the host in second?

Because they do not share a score. Every tiebreak, disclosure and reviews included, only applies between hosts with the same published HRI. A host at 98 with 200 reviews ranks above a host at 97 with 30,000 reviews, because the 98 reflects a point earned elsewhere (a measured benchmark, a disclosed fact, a fresher profile) that the second host has not earned. Trust is capped at 25, and both hosts may already be at the cap, so the difference between them was never going to be reputation. It is the other three pillars. If that feels wrong, the answer is in the pillar weights, which are published above and revisited in each numbered version, not in the tiebreak.

Can I pay to improve my HRI?

HRI is entirely algorithmic and derived from publicly verifiable inputs. Every signal that enters the score carries an evidence_url, evidence_excerpt, captured_at timestamp, and confidence score. Payment does not affect any of these fields.

How often is HRI recalculated?

Base components recompute when a host's inputs change: through the enrichment runner, the claim flows, or an edit in the host dashboard. A full directory recompute runs on the 1st of each month via a scheduled job. Scores are read from the stored result, not computed at page load.

Why is my HRI lower than I expected?

Common reasons, in order of frequency: missing profile fields (description, logo, segment, founding year), no third-party review signal (Google/Trustpilot/G2), profile updated_at older than 30 days, no public status page, no documented free SSL. Each of these is independently fixable by a host owner.

What constitutes a "good" HRI?

Score ≥ 70 earns the Top Ranked badge (the top few percent of the directory). Scores in [50, 70) indicate solid performance. The lowest total in the directory today is 41, not 0: the constant terms (a neutral Performance baseline, a Freshness floor, an always-present segment) put every host in the 40s before any evidence is counted, so a score in the low 40s indicates a thin profile, stale data, or a small operator with limited public footprint, not necessarily a poor service.

Is HRI independently auditable?

We publish the methodology specification on this page so buyers understand how scores are derived. The full implementation, including signal extractors, tier mappings, weighting constants, and editorial adjustments, is proprietary to HOSTLIST.IO. Every signal that contributes to a score is publicly inspectable via the host profile (evidence_url, captured_at). Disputes are filed via the host dashboard and adjudicated against recorded evidence, not subjective ranking. Use of the methodology to reverse-engineer, clone, or create derivative ranking systems is prohibited under our Terms of Service.

Do internal HostList reviews count?

Not in the current version. The Trust component relies exclusively on third-party platforms (Google Places, Trustpilot, G2) where review provenance is independently auditable. Internal reviews are tracked separately on host profile pages and may be incorporated in a future algorithm version.

Are you deploying identical test sites on hosts?

Yes, in progress. We are manually deploying identical test website instances across the top 200 hosts by HRI rank. Benchmark data is published host by host as each deployment is validated and load-tested on the host's real plan. Profiles move from Measured or Estimated to Benchmarked as results go live. Until benchmark data exists for a host, Performance falls back to CrUX field data on the provider's public website (Measured) or an infrastructure tier estimate (Estimated).

View Rankings →Browse Directory →
Gautam Khorana
About the author

Founder, HostList.io · 10,000+ websites launched · Host of the WP Legends podcast · gautamkhorana.com

Sponsor

Premium names that work like prime real estate

400,000+ short, memorable premium domains across .tech, .store, .online, .site and more. 20,000+ already sold.

See Radix premiums

Promoted placement. Does not affect HRI or ranking order.

Radix
Sponsor

.host: a domain that says what you do

Premium .host names for hosting companies and infrastructure brands, from the Radix registry.

See premium .host

Promoted placement. Does not affect HRI or ranking order.

.host domains from Radix
Sponsor

.tech: the address for what you build

Premium .tech names like cloud.tech and micro.tech, from Radix. Short, dictionary-word domains for tech brands.

See premium .tech

Promoted placement. Does not affect HRI or ranking order.

.tech domains from Radix
Featured host

HonestHosting

Ranked 62/100 on HostList and displays the HostList badge on its own site.

Visit HonestHosting

Promoted placement. Does not affect HRI or ranking order.

Sponsor

Short domains that actually get used

.icu, .bond, .cfd, .sbs and .cyou: 3M+ names live across 400+ registrars. Short to type, cheap to start.

See ShortDot domains

Promoted placement. Does not affect HRI or ranking order.

ShortDot
Sponsor

.icu: the domain that says I see you

Short, memorable and cheap to start. From ShortDot, the registry behind .icu, .bond, .cfd, .sbs and .cyou.

See .icu domains

Promoted placement. Does not affect HRI or ranking order.

.icu by ShortDot
Featured host

HillHost

Ranked 67/100 on HostList and displays the HostList badge on its own site.

Visit HillHost

Promoted placement. Does not affect HRI or ranking order.

HillHost
Featured host

GameHostCloud

Ranked 62/100 on HostList and displays the HostList badge on its own site.

Visit GameHostCloud

Promoted placement. Does not affect HRI or ranking order.

Featured host

Blossom Host

Ranked 62/100 on HostList and displays the HostList badge on its own site.

Visit Blossom Host

Promoted placement. Does not affect HRI or ranking order.

Featured host

Fast, Reliable, & Affordable Web Hosting

Launch, grow and manage your website with reliable hosting, easy tools and 24/7 PapaSquad support.

See HostPapa

Promoted placement. Does not affect HRI or ranking order.

HostPapa
Featured host

Eco-Friendly WordPress Hosting Deal

Fast WordPress performance backed by expert 24/7 support, free migration, daily backups and built-in security.

See GreenGeeks

Promoted placement. Does not affect HRI or ranking order.

GreenGeeks
Data reports
Most Reliable Web Hosts 2026, Ranked by HRI
View report →
Largest Web Hosting Companies 2026
View report →
Web Hosting Companies by Country 2026
View report →
Fastest Web Hosts 2026, by Real-User TTFB
View report →
Oldest Web Hosting Companies 2026
View report →
Highest-Rated Web Hosts 2026, by Reviews
View report →