Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Video Embeds Fonts

Font Weight Files Are Increasing Page Size Without Changing the Design

Audit WordPress font weights, distinguish synthetic from real faces and keep only variants that the design genuinely renders.

A typography panel may offer nine weights, and a theme can dutifully request a separate file for each one. Yet the visible site may use only regular text and bold headings. The additional variants increase requests, cache storage and initial competition without adding a meaningful visual difference.

Before removing them, map CSS weights to the files browsers actually choose.

Inventory declared and rendered weights

Search stylesheets and builder settings for font-weight. Record numeric values, not labels such as “medium,” because naming differs between families.

Inspect representative elements in developer tools and check the rendered font. Include paragraphs, headings, navigation, buttons, prices, form labels and strong text. Repeat on mobile and important templates.

Network requests reveal which font files transfer during a cold load. A declared 600 weight may be synthesised from 700 if no 600 file exists, so CSS alone is not enough.

Understand why nearly identical weights load

Design systems sometimes assign 500 to navigation, 600 to buttons and 700 to headings even when visual differences are negligible. A page builder may also create separate typography rules for desktop and mobile that resolve to adjacent weights.

Another common issue is incorrect @font-face metadata. If every source is declared as weight 400, the browser cannot select them properly and may fetch unexpected files.

Each static face needs the correct descriptor:

@font-face {
  font-family: "Service Sans";
  src: url("/fonts/service-sans-semibold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

Consolidate the design before the files

Choose a small, intentional scale—for example 400 for body text and 700 for emphasis and headings—only if it still preserves hierarchy. Update theme or builder typography at its source.

Do not simply delete the 500 and 600 files while CSS continues asking for them. Browsers may synthesise weight, choose a surprising fallback or log failed requests.

Compare buttons and small text carefully. A weight that seems redundant in a large heading may materially improve readability at 14 pixels.

Decide between static and variable fonts

A variable font can serve a range such as:

@font-face {
  font-family: "Service Sans Variable";
  src: url("/fonts/service-sans-variable.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
}

One request can replace several static files, but compare actual sizes. If the site uses only 400 and 700, two subset static files may be smaller than a broad variable face.

Verify browser support required by the project and test interpolation at the precise weights. Do not add a variable file while leaving every static source enqueued.

Keep language coverage intact

Font subsetting can save more than deleting a nearby weight, but the subset must contain every required glyph. English-only testing can miss accented characters used in Spanish and Catalan.

Check headings, names, currency symbols, punctuation and form errors in all public languages. Define fallbacks for characters outside the subset rather than allowing a visually jarring mix in normal content.

Retain licensing information and confirm the font licence permits self-hosting and modification.

Load weights by template only when justified

If a campaign page genuinely uses a display weight absent elsewhere, enqueue that stylesheet or font on the campaign rather than globally. Conditional loading requires stable template logic and testing of reused blocks.

Do not build a complex conditional system to save one small cached file. The maintenance cost should be proportional to measured visitor impact.

Verify the typography and the network

Clear generated CSS and relevant caches, then inspect cold requests. Confirm only intended weights transfer and no old URLs return 404.

Compare before-and-after screenshots at common widths. Look for changed line wrapping, button height, faux bold, missing italics and layout shift during font swap. Retest print or PDF output if the site relies on it.

If the source of each weight is unclear or a builder regenerates old declarations, request a scoped performance assessment. The public URL and typography symptoms are enough to begin; passwords should not be sent through the contact form.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident