Algorithm v2 · historical
How EcoMark scores a website.
- EnterAdd your website address.
- CrawlEco checks your site.
- AnalyseMeasure the key signals.
- GradeCalculate your EcoMark using our algorithm.
- ImproveGet simple steps how to improve.
Scoring
Five areas. One grade.
Grades
A simple final band.
80–89
70–79
60–69
50–59
0–49
Algorithm v2
The rules used for this version.
This is the published evidence scope, criterion scale, scoring formula and metric thresholds used by EcoMark v2.
Evidence sample
On
Up to 3
Up to 5
Up to 16
A, AAAA, CNAME, MX, NS, TXT
On
Criterion scale
Scoring formula
| Stage | Published rule |
|---|---|
| Criterion points | criterion_points = max_points × level ÷ 4 |
| Category score | category_score = sum(criterion_points) |
| Overall score | overall_score = round(sum(category_score × category_weight)) |
| Ranking | competition ranking: equal scores share a rank and the next rank skips accordingly (1, 1, 3) |
| Comparison | rankings compare assessments produced by the same EcoMark version only |
All criteria
The 25 scoring rules.
Thresholds are applied from level 4 down to level 1. The first matching threshold wins; otherwise the criterion receives level 0.
25% of the final score
Efficiency
Resource use, page weight and avoidable computation.
| Criterion | Metric | 4 · Strong | 3 · Good | 2 · Mixed | 1 · Poor | 0 · Fail |
|---|---|---|---|---|---|---|
| PayloadMeasured HTML and sampled asset payload is proportionate and optimised. | average_page_kbLower is better | ≤ 500 KB/page | ≤ 1000 KB/page | ≤ 2000 KB/page | ≤ 4000 KB/page | > 4000 KB/page |
| JavaScriptReferenced JavaScript weight is kept proportionate. | average_javascript_kbLower is better | ≤ 100 KB/page | ≤ 250 KB/page | ≤ 500 KB/page | ≤ 1000 KB/page | > 1000 KB/page |
| RequestsPages avoid excessive resource references and third-party connections. | average_resource_referencesLower is better | ≤ 20 resources/page | ≤ 40 resources/page | ≤ 70 resources/page | ≤ 100 resources/page | > 100 resources/page |
| MediaImages and video avoid obvious loading and autoplay waste. | media_issue_countLower is better | ≤ 0 issues | ≤ 1 issues | ≤ 3 issues | ≤ 6 issues | > 6 issues |
| Caching and compressionSampled static assets expose effective cache policy. | cacheable_asset_percentHigher is better | ≥ 80% | ≥ 60% | ≥ 40% | ≥ 20% | < 20% |
25% of the final score
Privacy
Tracking, cookies, profiling, analytics and consent.
| Criterion | Metric | 4 · Strong | 3 · Good | 2 · Mixed | 1 · Poor | 0 · Fail |
|---|---|---|---|---|---|---|
| Behavioural trackingKnown advertising pixels and cross-site trackers are absent or minimised. | tracker_countLower is better | ≤ 0 known trackers | ≤ 1 known trackers | ≤ 2 known trackers | ≤ 4 known trackers | > 4 known trackers |
| Analytics minimisationAnalytics technology is absent or privacy-preserving and proportionate. | analytics_riskLower is better | ≤ 0 risk level | ≤ 1 risk level | ≤ 2 risk level | ≤ 3 risk level | > 3 risk level |
| Cookies and consentNon-essential response cookies are avoided before interaction. | nonessential_cookie_countLower is better | ≤ 0 response cookies | ≤ 1 response cookies | ≤ 3 response cookies | ≤ 6 response cookies | > 6 response cookies |
| Third-party disclosureResource loading does not unnecessarily disclose visits to third parties. | third_party_percentLower is better | ≤ 0% | ≤ 10% | ≤ 25% | ≤ 50% | > 50% |
| Invasive techniquesKnown session replay and similarly invasive tools are absent. | invasive_tracker_countLower is better | ≤ 0 known invasive tools | ≤ 0 known invasive tools | ≤ 0 known invasive tools | ≤ 1 known invasive tools | > 1 known invasive tools |
20% of the final score
Sovereignty
Ownership, geography, openness, portability and dependency.
| Criterion | Metric | 4 · Strong | 3 · Good | 2 · Mixed | 1 · Poor | 0 · Fail |
|---|---|---|---|---|---|---|
| Provider jurisdictionObservable visitor-facing dependencies minimise reliance on US-headquartered platform ecosystems. | us_provider_countLower is better | ≤ 0 visitor-facing provider ecosystems | ≤ 1 visitor-facing provider ecosystems | ≤ 3 visitor-facing provider ecosystems | ≤ 6 visitor-facing provider ecosystems | > 6 visitor-facing provider ecosystems |
| Third-party geographyKnown non-EU third-party data exposure is minimised. | known_non_eu_data_percentLower is better | ≤ 0% | ≤ 10% | ≤ 30% | ≤ 60% | > 60% |
| Portable deliveryPages minimise proprietary embeds and platform-specific content dependencies. | proprietary_embed_countLower is better | ≤ 0 embeds | ≤ 1 embeds | ≤ 3 embeds | ≤ 6 embeds | > 6 embeds |
| Supplier concentrationThird-party resource loading is not dominated by one provider ecosystem. | top_provider_share_percentLower is better | ≤ 0% | ≤ 40% | ≤ 65% | ≤ 85% | > 85% |
| Open technologyOpen standards, first-party delivery, open-source technology and public source code are preferred where practical. | open_technology_scoreHigher is better | ≥ 90 openness score | ≥ 75 openness score | ≥ 60 openness score | ≥ 40 openness score | < 40 openness score |
15% of the final score
Accessibility
Inclusive, semantic and resilient implementation.
| Criterion | Metric | 4 · Strong | 3 · Good | 2 · Mixed | 1 · Poor | 0 · Fail |
|---|---|---|---|---|---|---|
| SemanticsHTML exposes basic language, heading and landmark structure. | semantic_issue_countLower is better | ≤ 0 issues | ≤ 1 issues | ≤ 2 issues | ≤ 4 issues | > 4 issues |
| Keyboard accessMarkup avoids obvious keyboard-hostile interaction patterns. | keyboard_issue_countLower is better | ≤ 0 issues | ≤ 1 issues | ≤ 3 issues | ≤ 6 issues | > 6 issues |
| Forms and controlsForm controls expose labels or accessible names. | unlabelled_control_percentLower is better | ≤ 0% | ≤ 5% | ≤ 15% | ≤ 30% | > 30% |
| Visual accessibilityViewport and media markup avoid obvious visual accessibility barriers. | visual_issue_countLower is better | ≤ 0 issues | ≤ 1 issues | ≤ 2 issues | ≤ 4 issues | > 4 issues |
| ResilienceMeaningful text remains present without relying entirely on client rendering. | raw_text_ratio_percentHigher is better | ≥ 80% | ≥ 60% | ≥ 40% | ≥ 20% | < 20% |
15% of the final score
Responsibility
Transparency, security basics and responsible choices.
| Criterion | Metric | 4 · Strong | 3 · Good | 2 · Mixed | 1 · Poor | 0 · Fail |
|---|---|---|---|---|---|---|
| Public accountabilityPrivacy, terms, accessibility, contact and applicable registration information are discoverable. | transparency_evidence_scoreHigher is better | ≥ 90 evidence score | ≥ 75 evidence score | ≥ 55 evidence score | ≥ 35 evidence score | < 35 evidence score |
| Security basicsThe main response exposes sensible browser security headers. | security_header_countHigher is better | ≥ 5 headers | ≥ 4 headers | ≥ 3 headers | ≥ 2 headers | < 2 headers |
| Consent designTracking and consent markup avoids obvious one-sided choice patterns. | consent_issue_scoreLower is better | ≤ 0 risk level | ≤ 1 risk level | ≤ 2 risk level | ≤ 3 risk level | > 3 risk level |
| Supplier disclosureDetected material visitor-facing providers are reflected in discoverable privacy information. | undisclosed_provider_percentLower is better | ≤ 0% | ≤ 25% | ≤ 50% | ≤ 75% | > 75% |
| Sustainability evidenceGreen hosting, carbon.txt and public sustainability information provide discoverable evidence of digital sustainability practice. | sustainability_evidence_scoreHigher is better | ≥ 4 evidence signals | ≥ 3 evidence signals | ≥ 2 evidence signals | ≥ 1 evidence signals | < 1 evidence signals |
Version history
What changed from v1?
This comparison is generated from the published v1 and v2 algorithm definitions.
Evidence collection
- Policy page sample: Not used → Up to 5
- Asset sample: Up to 24 → Up to 16
- DNS record types: Not used → A, AAAA, CNAME, MX, NS, TXT
- Green Web check: Not used → On
Scoring rules
- Sovereignty · Provider jurisdiction: provider ecosystems → visitor-facing provider ecosystems
- Sovereignty · Open technology: first_party_asset_percent → open_technology_score; thresholds 95/80/60/40 → 90/75/60/40; % → openness score
- Responsibility · Public accountability: missing_transparency_links → transparency_evidence_score; lower → higher; thresholds 0/1/2/3 → 90/75/55/35; missing links → evidence score
- Responsibility · Sustainability evidence: responsible_default_issue_count → sustainability_evidence_score; lower → higher; thresholds 0/1/2/4 → 4/3/2/1; issues → evidence signals
Definitions
- Efficiency · Payload: wording updated
- Sovereignty: wording updated
- Sovereignty · Provider jurisdiction: wording updated
- Sovereignty · Open technology: wording updated
- Responsibility · Public accountability: wording updated
- Responsibility · Supplier disclosure: wording updated
- Responsibility · Sustainability evidence: wording updated
Versioning
Scoring changes get a new version.
Historical results keep the algorithm that produced them.