Direct answer: 21 of the 25 sites carry 2,352 !important declarations (nine sites with 100 or more) and 24 carry 529 inline style attributes; three sites load 58 http:// subresources (57 images and one script), plus 182 http:// anchor links on 17 sites — navigation links, not mixed content. External CSS, form actions and CSS url() references contain no http:// at all. E04 concentrates all three (276 !important, 78 inline styles, 32 http subresources).

This study reads HTML and CSS text only; it does not load subresources or render. !important and inline styles are maintainability signals, while mixed content is a security signal, so they are reported separately.

2,352
!important
529
inline styles
58
http subresources
21
sites with !important
24
sites with inline style
3
sites with http subresources

Method: HTML, inline styles and the first three external CSS files

On 2026-11-09 between 11:42 and 11:43 we requested the HTML of the same 25 cached-200 homepages, read inline <style> blocks and the first three external stylesheets, and counted !important, style= attributes, http:// subresources by tag (img/script/iframe/embed/source/video/audio/track and srcset), plus http:// links, form actions and CSS url(). The referenced addresses are not loaded.

MeasureRuleBoundary
!important!important in CSS, spaces allowedNecessity not judged
Inline stylestyle="…" on a tagRuntime writes not counted
http subresourcesrc="http://" on img/script/iframe and srcsetPassive or active mixed content on an HTTPS page
http link<a href="http://">Navigation, not mixed content
CSS / form httpExternal CSS, form action, url(http://)All zero this round

Result: template debt clusters on a few sites

MeasureCountSites
!important2,35221
Sites with 100 or more—9
Inline style attributes52924
http:// subresources583
http:// anchor links18217
http:// external CSS / forms / CSS url()0 / 0 / 00
Site!importantInline styleshttp subresources
E042767832
E22274140
E17228320
E24220270
E0621940
E1162710
E130497

The three problems have different sources: E04 tops all three (276 / 78 / 32), while E22, E17, E24 and E06 have more than 200 !important declarations but almost no http subresources; E13 has no !important at all yet 49 inline styles and seven http images, so it customises through inline styles rather than specificity.

What this means for acceptance

  1. Treat !important as debt. 2,352 across 21 sites, nine above 100; start with theme colour, font and spacing overrides.
  2. Every inline style needs a reason. 529, with 78 on E04, 71 on E11 and 49 on E13; reusable rules belong in CSS.
  3. Handle mixed content by type. Move the 57 http images to https or scheme-relative URLs; the single http script must change or the browser blocks it outright.
  4. List http navigation links separately. The 182 do not break the page but trigger security prompts and an extra hop.
  5. Read inline styles together with CSP. The more inline style there is, the harder a nonce/hash policy becomes; see the website development service.

Limits

  • First three external CSS files only: the !important total is a lower bound, not a whole-site count.
  • No JavaScript: runtime inline styles and dynamically inserted resources are not counted.
  • Subresources not loaded: whether an http URL works or is auto-upgraded is not tested.
  • Boundaries: E17 resolved only one external CSS file, E18/E20 returned none, and E25 keeps all CSS inline.
  • 25-site pilot: the same equipment-company sample; no industry claim.

Data and reproduction

Anonymised data: equipment-homepage-template-hygiene-2026.csv (25 rows × 12 columns: CSS files and size, !important, inline styles, http subresources/links/forms/CSS url and time). The repository keeps docs/research/2026-11-homepage-template-hygiene.csv.

Parser: scripts/template_hygiene_probe.py; unit tests: scripts/test_content_template_hygiene_probe.py (10, offline). Run:

python -m unittest scripts.test_content_template_hygiene_probe

Related: the homepage CSP pilot, the homepage resource inventory pilot, the homepage HTML weight composition pilot, and the homepage id-uniqueness audit (48 duplicates on ten sites).

Sources and definitions

  1. Sample: the 25 study-4 homepages cached as 200.
  2. Fetch: 2026-11-09 11:42–11:43 Asia/Shanghai, serial, 0.5 s apart, 15-second timeout.
  3. Styles: inline <style> plus the first three external stylesheets.
  4. Mixed content: http subresources by tag; navigation links, forms and external CSS are reported separately.

Frequently asked questions

Is !important always a code smell?

Utility classes occasionally need it; but 2,352 across 21 sites, with nine above 100, means overrides depend on it and theming or component reuse gets stuck.

Why are inline styles risky?

They cannot be cached across pages and are hard to override consistently; under a nonce/hash CSP they are blocked. This round found 529 on 24 sites.

How serious are the 58 http subresources?

Fifty-seven images may be auto-upgraded or blocked by the browser, while one script is active mixed content and is blocked outright, so the related feature can break.

Are http:// anchor links mixed content?

No. Navigation links do not load resources automatically; the 182 on 17 sites are listed separately and only affect experience and security prompts.

Why only the first three CSS files?

To keep request volume and cross-site comparability in check; the full inventory is in the homepage resource pilot, and the result is not a whole-site verdict.

Can the data be re-checked?

Yes. The public CSV has 25 rows by 12 columns, and scripts/template_hygiene_probe.py has 10 offline unit tests.

About the author

Lingyi Information Official (delivery team) works on requirements, proposals and acceptance for corporate websites, brand and smart-manufacturing projects. This article counts template signals in homepage HTML and CSS; it does not load subresources or execute scripts. The 25-site sample is a pilot.

Template debt should be visible

!important, inline styles and http subresources are invisible, yet they decide whether a theme can change, a CSP can tighten, and images get blocked.

Request a recheck plan