Skip to content

Measure rel attributes plus all link elements#192

Merged
tunetheweb merged 1 commit intomainfrom
measure-rel-attribute-usage
Feb 5, 2026
Merged

Measure rel attributes plus all link elements#192
tunetheweb merged 1 commit intomainfrom
measure-rel-attribute-usage

Conversation

@tunetheweb
Copy link
Member

Adds a counter for rel attribute usage. @bkardell was curious if some of the lesser-known ones e.g. (bookmark) were used.

I've also extended to <link> element to measure all <link> elements as don't see reason to restrict them to just thos ein <head> as in-body <link> elements could become more common though patterns such as custom elements.


Test websites:

@github-actions
Copy link

github-actions bot commented Feb 5, 2026

https://almanac.httparchive.org/en/2022/

WPT result details

Changed custom metrics values:

{
  "_almanac": {
    "01.12": 0,
    "01.13": 0,
    "link-nodes": {
      "total": 31,
      "nodes": [
        {
          "tagName": "link",
          "rel": "stylesheet",
          "href": "/static/css/normalize.css?v=3a712a3381a95c0a7b7c6ed3aa03b911"
        },
        {
          "tagName": "link",
          "rel": "stylesheet",
          "href": "/static/css/almanac.css?v=f1b659664e1ffbc5e1f3feca4080486d"
        },
        {
          "tagName": "link",
          "rel": "stylesheet",
          "href": "/static/css/index.css?v=10da3c5123c1a99e20252d43085e83d5"
        },
        {
          "tagName": "link",
          "rel": "preload",
          "href": "/static/fonts/Poppins-Light.woff2",
          "as": "font",
          "type": "font/woff2",
          "crossorigin": ""
        },
        {
          "tagName": "link",
          "rel": "preload",
          "href": "/static/fonts/Lato-Regular.woff2",
          "as": "font",
          "type": "font/woff2",
          "crossorigin": ""
        },
        {
          "tagName": "link",
          "rel": "preload",
          "href": "/static/fonts/Poppins-Bold.woff2",
          "as": "font",
          "type": "font/woff2",
          "crossorigin": ""
        },
        {
          "tagName": "link",
          "rel": "preload",
          "href": "/static/fonts/Lato-Black.woff2",
          "as": "font",
          "type": "font/woff2",
          "crossorigin": ""
        },
        {
          "tagName": "link",
          "rel": "preload",
          "href": "/static/fonts/Lato-Bold.woff2",
          "as": "font",
          "type": "font/woff2",
          "crossorigin": ""
        },
        {
          "tagName": "link",
          "rel": "shortcut icon",
          "href": "/static/images/favicon.ico"
        },
        {
          "tagName": "link",
          "rel": "apple-touch-icon",
          "href": "/static/images/apple-touch-icon.png"
        },
        {
          "tagName": "link",
          "rel": "webmention",
          "href": "https://webmention.io/almanac.httparchive.org/webmention"
        },
        {
          "tagName": "link",
          "rel": "pingback",
          "href": "https://webmention.io/almanac.httparchive.org/xmlrpc"
        },
        {
          "tagName": "link",
          "rel": "me",
          "href": "mailto:team@httparchive.org"
        },
        {
          "tagName": "link",
          "rel": "canonical",
          "href": "https://almanac.httparchive.org/en/2022/"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "type": "application/rss+xml",
          "title": "Web Almanac by HTTP Archive RSS (en)",
          "href": "/en/rss.xml"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/en/2022/",
          "hreflang": "en"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/es/2022/",
          "hreflang": "es"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/fr/2022/",
          "hreflang": "fr"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/hi/2022/",
          "hreflang": "hi"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/it/2022/",
          "hreflang": "it"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/ja/2022/",
          "hreflang": "ja"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/nl/2022/",
          "hreflang": "nl"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/pt/2022/",
          "hreflang": "pt"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/ru/2022/",
          "hreflang": "ru"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/tr/2022/",
          "hreflang": "tr"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/uk/2022/",
          "hreflang": "uk"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/zh-CN/2022/",
          "hreflang": "zh-CN"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/zh-TW/2022/",
          "hreflang": "zh-TW"
        },
        {
          "tagName": "link",
          "rel": "alternate",
          "href": "https://almanac.httparchive.org/en/2022/",
          "hreflang": "x-default"
        },
        {
          "tagName": "link",
          "rel": "preconnect",
          "href": "https://www.google-analytics.com"
        },
        {
          "tagName": "link",
          "rel": "prefetch",
          "href": "/static/css/page.css?v=9a1ae5aea9b36df260da9f7c442073e7"
        }
      ],
      "attribute_usage_count": {
        "rel": 31,
        "href": 31,
        "as": 5,
        "type": 6,
        "crossorigin": 5,
        "title": 1,
        "hreflang": 14
      }
    },
    "priority-hints": {
      "total": 1,
      "nodes": [
        {
          "tagName": "img",
          "src": "/static/images/home-hero.png",
          "alt": "",
          "width": "820",
          "height": "562",
          "fetchpriority": "high"
        }
      ],
      "attribute_usage_count": {
        "src": 1,
        "alt": 1,
        "width": 1,
        "height": 1,
        "fetchpriority": 1
      }
    },
    "meta-nodes": {
      "total": 16,
      "nodes": [
        {
          "tagName": "meta",
          "charset": "UTF-8"
        },
        {
          "tagName": "meta",
          "name": "viewport",
          "content": "width=device-width, initial-scale=1"
        },
        {
          "tagName": "meta",
          "name": "description",
          "content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
        },
        {
          "tagName": "meta",
          "property": "og:title",
          "content": "The 2022 Web Almanac"
        },
        {
          "tagName": "meta",
          "property": "og:url",
          "content": "https://almanac.httparchive.org/en/2022/"
        },
        {
          "tagName": "meta",
          "property": "og:image",
          "content": "https://almanac.httparchive.org/static/images/home-hero-2022.png"
        },
        {
          "tagName": "meta",
          "property": "og:image:height",
          "content": "600"
        },
        {
          "tagName": "meta",
          "property": "og:image:width",
          "content": "1200"
        },
        {
          "tagName": "meta",
          "property": "og:type",
          "content": "article"
        },
        {
          "tagName": "meta",
          "property": "og:description",
          "content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
        },
        {
          "tagName": "meta",
          "name": "twitter:card",
          "content": "summary_large_image"
        },
        {
          "tagName": "meta",
          "name": "twitter:site",
          "content": "@HTTPArchive"
        },
        {
          "tagName": "meta",
          "name": "twitter:title",
          "content": "The 2022 Web Almanac"
        },
        {
          "tagName": "meta",
          "name": "twitter:image",
          "content": "https://almanac.httparchive.org/static/images/home-hero-2022.png"
        },
        {
          "tagName": "meta",
          "name": "twitter:image:alt",
          "content": "The 2022 Web Almanac"
        },
        {
          "tagName": "meta",
          "name": "twitter:description",
          "content": "The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive."
        }
      ],
      "attribute_usage_count": {
        "charset": 1,
        "name": 8,
        "content": 15,
        "property": 7
      }
    },
    "10.5": [
      "WebPage",
      "ImageObject",
      "Organization",
      "Person",
      "schema.org/Article",
      "EntryPoint",
      "SearchAction",
      "schema.org/WebSite",
      "ListItem",
      "schema.org/BreadcrumbList"
    ],
    "seo-anchor-elements": {
      "internal": 118,
      "external": 17,
      "hash": 1,
      "navigateHash": 0,
      "earlyHash": 1
    },
    "seo-titles": {
      "titleWords": 15,
      "titleElements": 6
    },
    "seo-words": {
      "wordsCount": 353,
      "wordElements": 36
    },
    "input_elements": {
      "total": 10,
      "nodes": [
        {
          "tagName": "input",
          "id": "header-search-box",
          "type": "search",
          "name": "q",
          "placeholder": "Search",
          "aria-label": "Search"
        },
        {
          "tagName": "input",
          "id": "mobile-search-box",
          "type": "search",
          "name": "q",
          "placeholder": "Search",
          "aria-label": "Search"
        },
        {
          "tagName": "select",
          "id": "table-of-contents-switcher-mobile"
        },
        {
          "tagName": "select",
          "id": "year-switcher-mobile"
        },
        {
          "tagName": "select",
          "id": "language-switcher-mobile"
        },
        {
          "tagName": "input",
          "id": "footer-search-box",
          "type": "search",
          "name": "q",
          "placeholder": "Search",
          "aria-label": "Search"
        },
        {
          "tagName": "input",
          "id": "mobile-footer-search-box",
          "type": "search",
          "name": "q",
          "placeholder": "Search",
          "aria-label": "Search"
        },
        {
          "tagName": "select",
          "id": "table-of-contents-switcher-mobile-footer"
        },
        {
          "tagName": "select",
          "id": "year-switcher-mobile-footer"
        },
        {
          "tagName": "select",
          "id": "language-switcher-mobile-footer"
        }
      ],
      "attribute_usage_count": {
        "id": 10,
        "class": 4,
        "type": 4,
        "name": 4,
        "placeholder": 4,
        "title": 4,
        "aria-label": 4,
        "data-label": 2
      }
    },
    "link_protocols_used": {
      "https": 135
    },
    "06.47": 0,
    "08.39": {
      "link": 0,
      "script": 0
    },
    "09.27": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "icon_only_clickables": 0,
    "inline_svg_stats": {
      "total": 18,
      "content_lengths": [
        11691,
        250,
        232,
        240,
        252,
        252,
        249,
        77,
        250,
        246,
        232,
        235,
        235,
        232,
        210,
        222,
        222,
        219
      ],
      "attribute_usage_count": {
        "xmlns": 1,
        "width": 17,
        "height": 17,
        "display": 1,
        "role": 16,
        "aria-labelledby": 4,
        "viewbox": 1
      }
    },
    "images": {
      "pictures": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "imgs": {
        "total": 5,
        "nodes": [
          {
            "tagName": "img"
          },
          {
            "tagName": "img",
            "loading": "lazy"
          },
          {
            "tagName": "img",
            "loading": "lazy"
          },
          {
            "tagName": "img",
            "loading": "lazy"
          },
          {
            "tagName": "img",
            "loading": "lazy"
          }
        ],
        "attribute_usage_count": {
          "src": 5,
          "alt": 5,
          "width": 5,
          "height": 5,
          "fetchpriority": 1,
          "id": 3,
          "class": 4,
          "loading": 4
        }
      },
      "sources": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "total_with_srcset": 0,
      "total_with_sizes": 0,
      "total_pictures_with_img": 0,
      "sizes_values": [],
      "loading_values": [
        "lazy",
        "lazy",
        "lazy",
        "lazy"
      ],
      "alt_lengths": [
        0,
        0,
        0,
        0,
        0
      ]
    },
    "videos": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {},
      "total_with_track": 0,
      "tracks": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      }
    },
    "audios": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {},
      "total_with_track": 0,
      "tracks": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      }
    },
    "iframes": {
      "iframes": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "loading_values": []
    },
    "scripts": {
      "total": 13,
      "nodes": [
        {
          "tagName": "script",
          "type": "text/javascript",
          "async": "",
          "src": "https://www.google-analytics.com/plugins/ua/linkid.js",
          "nonce": ""
        },
        {
          "tagName": "script",
          "type": "text/javascript",
          "async": "",
          "src": "https://www.google-analytics.com/analytics.js",
          "nonce": ""
        },
        {
          "tagName": "script",
          "type": "text/javascript",
          "async": "",
          "src": "https://www.googletagmanager.com/gtag/js?id=UA-22381566-3&cx=c&gtm=4e6240",
          "nonce": ""
        },
        {
          "tagName": "script",
          "nonce": ""
        },
        {
          "tagName": "script",
          "type": "application/ld+json"
        },
        {
          "tagName": "script",
          "type": "application/ld+json"
        },
        {
          "tagName": "script",
          "type": "application/ld+json"
        },
        {
          "tagName": "script",
          "nonce": ""
        },
        {
          "tagName": "script",
          "async": "",
          "src": "/static/js/almanac.js?v=fa418742db0ee3ef3f6f493962cd0dc7",
          "nonce": ""
        },
        {
          "tagName": "script",
          "async": "",
          "src": "https://www.googletagmanager.com/gtag/js?id=G-PQ5N2MZG5M",
          "nonce": ""
        },
        {
          "tagName": "script",
          "defer": "",
          "src": "/static/js/web-vitals.js?v=e7b8ecda99703fdc7c6a33b6a3d07cc6",
          "nonce": ""
        },
        {
          "tagName": "script",
          "defer": "",
          "src": "/static/js/send-web-vitals.js?v=67574c23a511f3149c90c88735c5a6f3",
          "nonce": ""
        },
        {
          "tagName": "script",
          "type": "speculationrules",
          "nonce": ""
        }
      ],
      "attribute_usage_count": {
        "type": 7,
        "async": 5,
        "src": 7,
        "nonce": 10,
        "defer": 2
      }
    },
    "nodes_using_role": {
      "total": 16,
      "usage_and_count": {
        "img": 16
      }
    },
    "headings_order": [
      1,
      2,
      2,
      3,
      2,
      2
    ],
    "shortcuts_stats": {
      "total_with_aria_shortcut": 0,
      "total_with_accesskey": 0,
      "aria_shortcut_values": [],
      "accesskey_values": []
    },
    "attributes_used_on_elements": {
      "lang": 51,
      "charset": 1,
      "name": 12,
      "content": 15,
      "rel": 33,
      "href": 166,
      "as": 5,
      "type": 30,
      "crossorigin": 5,
      "async": 5,
      "src": 12,
      "nonce": 10,
      "property": 7,
      "title": 5,
      "hreflang": 15,
      "class": 199,
      "xmlns": 2,
      "width": 22,
      "height": 22,
      "display": 1,
      "id": 57,
      "viewBox": 14,
      "d": 17,
      "fill": 17,
      "fill-rule": 1,
      "clip-rule": 1,
      "cx": 2,
      "cy": 2,
      "r": 1,
      "stroke-width": 3,
      "stroke-miterlimit": 3,
      "stroke": 3,
      "rx": 1,
      "ry": 1,
      "aria-label": 14,
      "aria-expanded": 9,
      "action": 4,
      "for": 10,
      "placeholder": 4,
      "role": 16,
      "aria-labelledby": 17,
      "xmlns:xlink": 16,
      "xlink:href": 16,
      "data-event": 4,
      "data-label": 4,
      "data-open-text": 1,
      "data-close-text": 1,
      "selected": 6,
      "disabled": 2,
      "value": 98,
      "x": 1,
      "y": 1,
      "alt": 5,
      "fetchpriority": 1,
      "aria-hidden": 1,
      "loading": 4,
      "defer": 2
    },
    "body_node": {
      "tagName": "body",
      "class": "year-2022"
    },
    "html_node": {
      "tagName": "html",
      "lang": "en"
    },
    "document_title": {
      "value": "The 2022 Web Almanac",
      "length": 20
    },
    "length_of_h1s": [
      11
    ]
  },
  "_markup": {
    "favicon": true,
    "rel_alternate_mobile": false,
    "compatMode": "CSS1Compat",
    "noscripts": {
      "iframe_googletagmanager_count": 0,
      "total": 0
    },
    "buttons": {
      "types": {
        "button": 9,
        "submit": 4
      },
      "total": 13
    },
    "form": {
      "target": {},
      "method": {},
      "elements": [
        {
          "tagNames": {
            "label": 1,
            "input": 1,
            "button": 1
          },
          "types": {
            "search": 1,
            "submit": 1
          },
          "total": 3
        },
        {
          "tagNames": {
            "label": 1,
            "input": 1,
            "button": 1
          },
          "types": {
            "search": 1,
            "submit": 1
          },
          "total": 3
        },
        {
          "tagNames": {
            "label": 1,
            "input": 1,
            "button": 1
          },
          "types": {
            "search": 1,
            "submit": 1
          },
          "total": 3
        },
        {
          "tagNames": {
            "label": 1,
            "input": 1,
            "button": 1
          },
          "types": {
            "search": 1,
            "submit": 1
          },
          "total": 3
        }
      ],
      "total": 4
    },
    "dirs": {
      "html_dir": null,
      "body_nodes_dir": {
        "values": {},
        "total": 0
      }
    },
    "inputs": {
      "types": {
        "search": 4
      },
      "total": 4
    },
    "audios": {
      "autoplay": {},
      "total": 0
    },
    "classes": {
      "unique_names_total": 77,
      "references_total": 249
    },
    "rel": {
      "rels_total": 33,
      "rels": {
        "stylesheet": 3,
        "preload": 5,
        "shortcut icon": 1,
        "apple-touch-icon": 1,
        "webmention": 1,
        "pingback": 1,
        "me": 3,
        "canonical": 1,
        "alternate": 15,
        "preconnect": 1,
        "prefetch": 1
      }
    },
    "ids": {
      "ids_total": 57,
      "duplicate_ids_total": 0,
      "unique_ids_total": 57
    },
    "images": {
      "picture": {
        "total": 0
      },
      "source": {
        "total": 0,
        "src_total": 0,
        "srcset_total": 0,
        "media_total": 0,
        "type_total": 0
      },
      "img": {
        "total": 5,
        "src_total": 5,
        "srcset_total": 0,
        "alt": {
          "missing": 0,
          "blank": 5,
          "present": 0
        },
        "loading": {
          "auto": 0,
          "lazy": 4,
          "eager": 0,
          "invalid": 0,
          "missing": 1,
          "blank": 0
        },
        "dimensions": {
          "missing_width": 0,
          "missing_height": 0
        }
      }
    },
    "iframes": {
      "total": 0,
      "loading": {
        "auto": 0,
        "lazy": 0,
        "eager": 0,
        "invalid": 0,
        "missing": 0,
        "blank": 0
      }
    },
    "amp": {
      "html_amp_attribute_present": false,
      "html_amp_emoji_attribute_present": false,
      "amp_page": false,
      "rel_amphtml": null
    },
    "data_nosnippet": {
      "valid": 0,
      "wrong_tag_type": 0
    },
    "obsolete_elements": {},
    "svgs": {
      "svg_element_total": 18,
      "svg_img_total": 0,
      "svg_object_total": 0,
      "svg_embed_total": 0,
      "svg_iframe_total": 0,
      "svg_total": 18
    },
    "app": {
      "app_id_present": false,
      "meta_theme_color": null
    },
    "anchors": {
      "hrefs_without_special_scheme": []
    },
    "dom-shape": {
      "bodyNodesCount": 623,
      "bodyLeafNodesCount": 346,
      "depth": {
        "mean": 7.809248554913295,
        "median": 9,
        "mode": 9,
        "stddev": 2.4479615234519887,
        "skew": -0.4864257193910339,
        "range": {
          "min": 1,
          "max": 13
        }
      },
      "bodyNonLeafNodesCount": 277,
      "branchFactor": {
        "mean": 5.433212996389892,
        "median": 3,
        "mode": 3,
        "stddev": 8.687933962448147,
        "skew": 0.2800680814226912,
        "range": {
          "min": 1,
          "max": 71
        }
      },
      "branchFactorByDepth": [
        {
          "depth": 0,
          "count": 1,
          "mean": 33,
          "stddev": 0,
          "skew": null,
          "median": 33,
          "mode": 33,
          "range": {
            "min": 33,
            "max": 33
          }
        },
        {
          "depth": 1,
          "count": 6,
          "mean": 12,
          "stddev": 18.502252115170556,
          "skew": 0.4864272707980575,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 1,
            "max": 53
          }
        },
        {
          "depth": 2,
          "count": 20,
          "mean": 4.5,
          "stddev": 3.5142566781611158,
          "skew": 0.42683279491835413,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 19
          }
        },
        {
          "depth": 3,
          "count": 14,
          "mean": 6.285714285714286,
          "stddev": 3.260774917289522,
          "skew": 1.007648294978144,
          "median": 5,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 11
          }
        },
        {
          "depth": 4,
          "count": 20,
          "mean": 5.55,
          "stddev": 3.0244834269673224,
          "skew": 0.8431191843418062,
          "median": 5,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 13
          }
        },
        {
          "depth": 5,
          "count": 29,
          "mean": 4.275862068965517,
          "stddev": 3.0160096007820525,
          "skew": 0.4230298433515216,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 1,
            "max": 15
          }
        },
        {
          "depth": 6,
          "count": 28,
          "mean": 3.642857142857143,
          "stddev": 1.51691147011395,
          "skew": -0.8946750577612212,
          "median": 3.5,
          "mode": 5,
          "range": {
            "min": 1,
            "max": 7
          }
        },
        {
          "depth": 7,
          "count": 20,
          "mean": 14,
          "stddev": 18.606450494385005,
          "skew": 0.48370321909146463,
          "median": 5,
          "mode": 5,
          "range": {
            "min": 3,
            "max": 71
          }
        },
        {
          "depth": 8,
          "count": 65,
          "mean": 6.015384615384615,
          "stddev": 11.567184761799627,
          "skew": 0.26068439965987716,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 71
          }
        },
        {
          "depth": 9,
          "count": 59,
          "mean": 3.135593220338983,
          "stddev": 0.812145664454979,
          "skew": 0.16695677422593652,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 1,
            "max": 7
          }
        },
        {
          "depth": 10,
          "count": 7,
          "mean": 3.5714285714285716,
          "stddev": 1.761261143705422,
          "skew": 0.32444284226152514,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 1,
            "max": 7
          }
        },
        {
          "depth": 11,
          "count": 5,
          "mean": 3.4,
          "stddev": 0.8,
          "skew": 0.4999999999999999,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 5
          }
        },
        {
          "depth": 12,
          "count": 4,
          "mean": 5,
          "stddev": 0,
          "skew": null,
          "median": 5,
          "mode": 5,
          "range": {
            "min": 5,
            "max": 5
          }
        }
      ]
    }
  }
}
https://example.com

WPT result details

Changed custom metrics values:

{
  "_almanac": {
    "01.12": 0,
    "01.13": 0,
    "link-nodes": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "priority-hints": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "meta-nodes": {
      "total": 1,
      "nodes": [
        {
          "tagName": "meta",
          "name": "viewport",
          "content": "width=device-width, initial-scale=1"
        }
      ],
      "attribute_usage_count": {
        "name": 1,
        "content": 1
      }
    },
    "10.5": [],
    "seo-anchor-elements": {
      "internal": 0,
      "external": 1,
      "hash": 0,
      "navigateHash": 0,
      "earlyHash": 0
    },
    "seo-titles": {
      "titleWords": 2,
      "titleElements": 1
    },
    "seo-words": {
      "wordsCount": 15,
      "wordElements": 1
    },
    "input_elements": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "link_protocols_used": {
      "https": 1
    },
    "06.47": 0,
    "08.39": {
      "link": 0,
      "script": 0
    },
    "09.27": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "icon_only_clickables": 0,
    "inline_svg_stats": {
      "total": 0,
      "content_lengths": [],
      "attribute_usage_count": {}
    },
    "images": {
      "pictures": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "imgs": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "sources": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "total_with_srcset": 0,
      "total_with_sizes": 0,
      "total_pictures_with_img": 0,
      "sizes_values": [],
      "loading_values": [],
      "alt_lengths": []
    },
    "videos": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {},
      "total_with_track": 0,
      "tracks": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      }
    },
    "audios": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {},
      "total_with_track": 0,
      "tracks": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      }
    },
    "iframes": {
      "iframes": {
        "total": 0,
        "nodes": [],
        "attribute_usage_count": {}
      },
      "loading_values": []
    },
    "scripts": {
      "total": 0,
      "nodes": [],
      "attribute_usage_count": {}
    },
    "nodes_using_role": {
      "total": 0,
      "usage_and_count": {}
    },
    "headings_order": [
      1
    ],
    "shortcuts_stats": {
      "total_with_aria_shortcut": 0,
      "total_with_accesskey": 0,
      "aria_shortcut_values": [],
      "accesskey_values": []
    },
    "attributes_used_on_elements": {
      "lang": 1,
      "name": 1,
      "content": 1,
      "href": 1
    },
    "body_node": {
      "tagName": "body"
    },
    "html_node": {
      "tagName": "html",
      "lang": "en"
    },
    "document_title": {
      "value": "Example Domain",
      "length": 14
    },
    "length_of_h1s": [
      14
    ]
  },
  "_markup": {
    "favicon": false,
    "rel_alternate_mobile": false,
    "compatMode": "CSS1Compat",
    "noscripts": {
      "iframe_googletagmanager_count": 0,
      "total": 0
    },
    "buttons": {
      "types": {},
      "total": 0
    },
    "form": {
      "target": {},
      "method": {},
      "elements": [],
      "total": 0
    },
    "dirs": {
      "html_dir": null,
      "body_nodes_dir": {
        "values": {},
        "total": 0
      }
    },
    "inputs": {
      "types": {},
      "total": 0
    },
    "audios": {
      "autoplay": {},
      "total": 0
    },
    "classes": {
      "unique_names_total": 0,
      "references_total": 0
    },
    "rel": {
      "rels_total": 0,
      "rels": {}
    },
    "ids": {
      "ids_total": 0,
      "duplicate_ids_total": 0,
      "unique_ids_total": 0
    },
    "images": {
      "picture": {
        "total": 0
      },
      "source": {
        "total": 0,
        "src_total": 0,
        "srcset_total": 0,
        "media_total": 0,
        "type_total": 0
      },
      "img": {
        "total": 0,
        "src_total": 0,
        "srcset_total": 0,
        "alt": {
          "missing": 0,
          "blank": 0,
          "present": 0
        },
        "loading": {
          "auto": 0,
          "lazy": 0,
          "eager": 0,
          "invalid": 0,
          "missing": 0,
          "blank": 0
        },
        "dimensions": {
          "missing_width": 0,
          "missing_height": 0
        }
      }
    },
    "iframes": {
      "total": 0,
      "loading": {
        "auto": 0,
        "lazy": 0,
        "eager": 0,
        "invalid": 0,
        "missing": 0,
        "blank": 0
      }
    },
    "amp": {
      "html_amp_attribute_present": false,
      "html_amp_emoji_attribute_present": false,
      "amp_page": false,
      "rel_amphtml": null
    },
    "data_nosnippet": {
      "valid": 0,
      "wrong_tag_type": 0
    },
    "obsolete_elements": {},
    "svgs": {
      "svg_element_total": 0,
      "svg_img_total": 0,
      "svg_object_total": 0,
      "svg_embed_total": 0,
      "svg_iframe_total": 0,
      "svg_total": 0
    },
    "app": {
      "app_id_present": false,
      "meta_theme_color": null
    },
    "anchors": {
      "hrefs_without_special_scheme": []
    },
    "dom-shape": {
      "bodyNodesCount": 5,
      "bodyLeafNodesCount": 3,
      "depth": {
        "mean": 2.3333333333333335,
        "median": 2,
        "mode": 2,
        "stddev": 0.4714045207910317,
        "skew": 0.7071067811865478,
        "range": {
          "min": 2,
          "max": 3
        }
      },
      "bodyNonLeafNodesCount": 2,
      "branchFactor": {
        "mean": 2,
        "median": 2,
        "mode": 1,
        "stddev": 1,
        "skew": 1,
        "range": {
          "min": 1,
          "max": 3
        }
      },
      "branchFactorByDepth": [
        {
          "depth": 0,
          "count": 1,
          "mean": 2,
          "stddev": 0,
          "skew": null,
          "median": 2,
          "mode": 2,
          "range": {
            "min": 2,
            "max": 2
          }
        },
        {
          "depth": 1,
          "count": 1,
          "mean": 3,
          "stddev": 0,
          "skew": null,
          "median": 3,
          "mode": 3,
          "range": {
            "min": 3,
            "max": 3
          }
        },
        {
          "depth": 2,
          "count": 1,
          "mean": 1,
          "stddev": 0,
          "skew": null,
          "median": 1,
          "mode": 1,
          "range": {
            "min": 1,
            "max": 1
          }
        }
      ]
    }
  }
}
https://web.dev

WPT result details

Cannot display changed custom metrics due to comment size limits, view test JSON instead.

@tunetheweb tunetheweb changed the title Measure rel attributes plud all link elements Measure rel attributes plus all link elements Feb 5, 2026
@tunetheweb tunetheweb merged commit e002339 into main Feb 5, 2026
5 checks passed
@tunetheweb tunetheweb deleted the measure-rel-attribute-usage branch February 5, 2026 22:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants