{
  "$schema": "https://datapackage.org/profiles/2.0/datapackage.json",
  "name": "wordpress-polish-web-2026-10-30",
  "title": "CMS market share on Polish homepages, and Core Web Vitals by CMS",
  "description": "Every .pl site in a pinned Tranco list whose homepage answered with HTML: the CMS, site builder or shop platform its HTML, headers and cookies show, WordPress's version, builders, caching plugins and plugins, and phone Core Web Vitals at p75 from the Chrome UX Report.",
  "version": "2026-10-30",
  "created": "2026-10-30T05:59:05.232Z",
  "homepage": "https://www.outofplace.space/blog/wordpress-polish-web",
  "keywords": [
    "WordPress",
    "CMS",
    "market share",
    "Core Web Vitals",
    "CrUX",
    "Poland"
  ],
  "licenses": [
    {
      "name": "CC-BY-4.0",
      "path": "https://creativecommons.org/licenses/by/4.0/",
      "title": "Creative Commons Attribution 4.0"
    }
  ],
  "contributors": [
    {
      "title": "Outofplace Poland sp. z o.o.",
      "roles": [
        "creator"
      ],
      "path": "https://www.outofplace.space"
    }
  ],
  "sources": [
    {
      "title": "Tranco list Y8YYG (https://doi.org/10.14722/ndss.2019.23386)",
      "path": "https://tranco-list.eu/list/Y8YYG/1000000"
    },
    {
      "title": "Chrome UX Report (Google, CC BY 4.0)",
      "path": "https://developer.chrome.com/docs/crux"
    }
  ],
  "resources": [
    {
      "name": "sites",
      "path": "sites.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 1250119,
      "hash": "sha256:9cc2c09f68e9e6a68a3332e7939b4a927a2ae5aaf02630610055143e19e73e1d",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "rank_tranco",
            "type": "integer",
            "description": "Rank in the Tranco list."
          },
          {
            "name": "rank_sample",
            "type": "integer",
            "description": "Rank among the sample's homepages."
          },
          {
            "name": "rank_band",
            "type": "string",
            "description": "top100, top1000 (ranks 101–1,000 in the sample) or rest."
          },
          {
            "name": "domain",
            "type": "string",
            "description": "The .pl domain in the Tranco list."
          },
          {
            "name": "origin",
            "type": "string",
            "description": "The origin its homepage ended on."
          },
          {
            "name": "gov",
            "type": "integer",
            "description": "1 for gov.pl domains."
          },
          {
            "name": "cms",
            "type": "string",
            "description": "CMS, site builder or shop platform found; framework (JS framework only) or none."
          },
          {
            "name": "kind",
            "type": "string",
            "description": "cms, builder, enterprise, shop, framework or none."
          },
          {
            "name": "framework",
            "type": "string",
            "description": "A JavaScript framework the HTML shows, if any."
          },
          {
            "name": "shop_platform",
            "type": "string",
            "description": "The e-commerce study's platform classification."
          },
          {
            "name": "is_shop",
            "type": "integer",
            "description": "1 when the e-commerce classifier calls the homepage a shop."
          },
          {
            "name": "wp_version",
            "type": "string",
            "description": "WordPress major.minor from the generator tag; empty when hidden or not WordPress."
          },
          {
            "name": "wp_generator",
            "type": "integer",
            "description": "1 when a WordPress homepage carries a WordPress generator tag."
          },
          {
            "name": "wp_builders",
            "type": "string",
            "description": "Page builders a WordPress homepage shows, space-separated."
          },
          {
            "name": "wp_cache",
            "type": "string",
            "description": "Caching or optimisation plugins a WordPress homepage shows, space-separated."
          },
          {
            "name": "wp_plugin_count",
            "type": "integer",
            "description": "Distinct /wp-content/plugins/ folders the homepage's HTML loads assets from."
          },
          {
            "name": "wp_plugins",
            "type": "string",
            "description": "Those folders, space-separated."
          },
          {
            "name": "evidence",
            "type": "string",
            "description": "The markers that decided the class (S strong, W weak)."
          },
          {
            "name": "truncated",
            "type": "integer",
            "description": "1 when the homepage was cut at 1 MiB."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "crux",
      "path": "crux.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 844439,
      "hash": "sha256:52a487820f016619d7144a8332e35564ba8212268c18406b0db11667951317c9",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "origin",
            "type": "string",
            "description": "Origin from the census."
          },
          {
            "name": "crux_origin",
            "type": "string",
            "description": "Origin CrUX answered for (the www twin when the first was not found)."
          },
          {
            "name": "form_factor",
            "type": "string",
            "description": "PHONE."
          },
          {
            "name": "status",
            "type": "string",
            "description": "ok, not_found or error."
          },
          {
            "name": "collection_first",
            "type": "string",
            "description": "First day of CrUX's 28-day collection period."
          },
          {
            "name": "collection_last",
            "type": "string",
            "description": "Last day of the collection period."
          },
          {
            "name": "lcp_p75",
            "type": "number",
            "description": "p75 LCP on phones (ms)."
          },
          {
            "name": "lcp_good_density",
            "type": "number",
            "description": "Share of page loads with good LCP."
          },
          {
            "name": "inp_p75",
            "type": "number",
            "description": "p75 INP on phones (ms)."
          },
          {
            "name": "inp_good_density",
            "type": "number",
            "description": "Share of page loads with good INP."
          },
          {
            "name": "cls_p75",
            "type": "number",
            "description": "p75 CLS on phones."
          },
          {
            "name": "cls_good_density",
            "type": "number",
            "description": "Share of page loads with good CLS."
          },
          {
            "name": "fcp_p75",
            "type": "number",
            "description": "p75 FCP on phones (ms)."
          },
          {
            "name": "fcp_good_density",
            "type": "number",
            "description": "Share of page loads with good FCP."
          },
          {
            "name": "ttfb_p75",
            "type": "number",
            "description": "p75 TTFB on phones (ms)."
          },
          {
            "name": "ttfb_good_density",
            "type": "number",
            "description": "Share of page loads with good TTFB."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "cms",
      "path": "cms.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 3657,
      "hash": "sha256:d47ac0c5171fa8881455cf8ef3bb07b66bd6aa143dfd0ba74a9ecb86378f2bf2",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "band",
            "type": "string",
            "description": "all, top100, top1000 or rest."
          },
          {
            "name": "group",
            "type": "string",
            "description": "CMS group (under 30 homepages folded into other_cms or other_shop)."
          },
          {
            "name": "kind",
            "type": "string",
            "description": "cms, builder, enterprise, shop, framework or none."
          },
          {
            "name": "sites",
            "type": "integer",
            "description": "Homepages in the group and band."
          },
          {
            "name": "band_sites",
            "type": "integer",
            "description": "Homepages in the band."
          },
          {
            "name": "share",
            "type": "number",
            "description": "sites / band_sites."
          },
          {
            "name": "ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "detected_sites",
            "type": "integer",
            "description": "Homepages in the band with a recognised CMS, builder or shop platform."
          },
          {
            "name": "share_of_detected",
            "type": "number",
            "description": "sites / detected_sites, for CMS and shop groups."
          },
          {
            "name": "detected_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "detected_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "vitals",
      "path": "vitals.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 2362,
      "hash": "sha256:77f7557182604dd06344af2faa5862f23b3406406133009931c09a65d0dfe50e",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "dimension",
            "type": "string",
            "description": "group, or a WordPress breakdown: plugins, builder, cache, version, shop."
          },
          {
            "name": "segment",
            "type": "string",
            "description": "The group or value."
          },
          {
            "name": "origins",
            "type": "integer",
            "description": "Homepages (origins) in the segment."
          },
          {
            "name": "crux_origins",
            "type": "integer",
            "description": "Of them, origins with Chrome UX Report data on phones."
          },
          {
            "name": "coverage",
            "type": "number",
            "description": "crux_origins / origins."
          },
          {
            "name": "assessable",
            "type": "integer",
            "description": "Origins with p75 LCP, INP and CLS all present."
          },
          {
            "name": "cwv_pass",
            "type": "number",
            "description": "Share of assessable origins passing all three on phones; empty under 30."
          },
          {
            "name": "cwv_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "cwv_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "lcp_good",
            "type": "number",
            "description": "Share of origins with LCP data whose p75 LCP is at most 2,500 ms."
          },
          {
            "name": "lcp_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "lcp_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "inp_good",
            "type": "number",
            "description": "Share of origins with INP data whose p75 INP is at most 200 ms."
          },
          {
            "name": "inp_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "inp_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "cls_good",
            "type": "number",
            "description": "Share of origins with CLS data whose p75 CLS is at most 0.1."
          },
          {
            "name": "cls_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "cls_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "lcp_median_ms",
            "type": "number",
            "description": "Median of the origins' p75 LCP, in milliseconds."
          },
          {
            "name": "lcp_median_ci_low",
            "type": "number",
            "description": "Bootstrap 95% interval of the median, lower bound (10,000 resamples, seeded)."
          },
          {
            "name": "lcp_median_ci_high",
            "type": "number",
            "description": "Bootstrap 95% interval of the median, upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "wordpress",
      "path": "wordpress.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 2950,
      "hash": "sha256:4838977ca62a119456b9bd9b74cd8fd7f181f13b2638bef5519bcd3ce9c2ddd3",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "dimension",
            "type": "string",
            "description": "group, or a WordPress breakdown: plugins, builder, cache, version, shop."
          },
          {
            "name": "segment",
            "type": "string",
            "description": "The group or value."
          },
          {
            "name": "origins",
            "type": "integer",
            "description": "Homepages (origins) in the segment."
          },
          {
            "name": "crux_origins",
            "type": "integer",
            "description": "Of them, origins with Chrome UX Report data on phones."
          },
          {
            "name": "coverage",
            "type": "number",
            "description": "crux_origins / origins."
          },
          {
            "name": "assessable",
            "type": "integer",
            "description": "Origins with p75 LCP, INP and CLS all present."
          },
          {
            "name": "cwv_pass",
            "type": "number",
            "description": "Share of assessable origins passing all three on phones; empty under 30."
          },
          {
            "name": "cwv_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "cwv_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "lcp_good",
            "type": "number",
            "description": "Share of origins with LCP data whose p75 LCP is at most 2,500 ms."
          },
          {
            "name": "lcp_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "lcp_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "inp_good",
            "type": "number",
            "description": "Share of origins with INP data whose p75 INP is at most 200 ms."
          },
          {
            "name": "inp_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "inp_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "cls_good",
            "type": "number",
            "description": "Share of origins with CLS data whose p75 CLS is at most 0.1."
          },
          {
            "name": "cls_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "cls_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          },
          {
            "name": "lcp_median_ms",
            "type": "number",
            "description": "Median of the origins' p75 LCP, in milliseconds."
          },
          {
            "name": "lcp_median_ci_low",
            "type": "number",
            "description": "Bootstrap 95% interval of the median, lower bound (10,000 resamples, seeded)."
          },
          {
            "name": "lcp_median_ci_high",
            "type": "number",
            "description": "Bootstrap 95% interval of the median, upper bound."
          },
          {
            "name": "share_of_wordpress",
            "type": "number",
            "description": "The value's share of WordPress homepages."
          },
          {
            "name": "sow_ci_low",
            "type": "number",
            "description": "95% Wilson interval, lower bound."
          },
          {
            "name": "sow_ci_high",
            "type": "number",
            "description": "95% Wilson interval, upper bound."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "verification",
      "path": "verification.csv",
      "type": "table",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 2329,
      "hash": "sha256:317eaed57b1049ceb403e8d0f77a6965e567b5fafe0e61f5015eb69a22c47f64",
      "dialect": {
        "header": true,
        "delimiter": ",",
        "lineTerminator": "\r\n",
        "quoteChar": "\"",
        "doubleQuote": true
      },
      "schema": {
        "fields": [
          {
            "name": "origin",
            "type": "string",
            "description": "Homepage read by hand."
          },
          {
            "name": "stratum",
            "type": "string",
            "description": "The class the rules gave it."
          },
          {
            "name": "ok",
            "type": "integer",
            "description": "1 when the reader agreed with the rules (for none: no CMS visible in the HTML)."
          },
          {
            "name": "note",
            "type": "string",
            "description": "Why, where it matters."
          }
        ],
        "missingValues": [
          ""
        ]
      }
    },
    {
      "name": "summary",
      "path": "summary.json",
      "description": "Headline numbers from the CSVs.",
      "format": "json",
      "mediatype": "application/json",
      "encoding": "utf-8",
      "bytes": 58076,
      "hash": "sha256:cad83b3ca551191f3e764d26062e75e594d79028bdcd1e9470ee27c956d1a093"
    }
  ]
}
