A stylesheet or script the page declares returns an error

In the reportCSS or JavaScript resource returned an error

subresource_broken · Review item

Short answer

This appears when a page's HTML declares a stylesheet or script that answers 404 or 410, or a server error on both of our requests. The page may then look or work differently for visitors and for Google. Restore the file, point the page to its current address, or remove the reference if nothing uses it.

Severity: Low. Review it in your next round of site changes. It is Medium when one of the files answers a server error on both requests.

Why it matters

Google renders pages much as a browser does and runs their JavaScript, and it notes that without rendering it might not see content that scripts bring to the page. A stylesheet or script that fails to load can change what visitors and Google see.

What to do

  1. Look at the finding: it lists up to ten failing files with the answer each gave and the page that loads them.
  2. Restore each file, or update the <script> or <link> to the file's current address, for example after a release gave it a new name.
  3. If the page no longer needs the file, remove the reference; for a file on another provider's host, confirm who controls it first.

When to leave it as it is: if the failing file belongs to another provider and has no visible effect on the page, you can wait for the provider to fix it; the check does not measure a file's effect.

What we read

We read each crawled page's HTML, without running JavaScript, and collect the <script src> and <link rel="stylesheet"> it declares outside <noscript> and <template>, including files on other hosts. We then request up to 30 files per audit, starting with those most pages share; images join the same budget, and files on your own site that robots.txt forbids are not requested.

A file counts as broken when it answers 404 or 410, or a 5xx on both of our requests. Other answers, such as 401, 403, 429 or a single server error, leave it unsettled, not broken. A page is reported when at least one of its files is broken, including pages that are only a frame for scripts.

Example & evidence

Illustrative example — one page and one stylesheet, not a live audit.

Page https://bakery.example/cakes declares:

<link rel="stylesheet" href="/assets/site.4f2a.css">
GET https://bakery.example/assets/site.4f2a.css
HTTP/1.1 404 Not Found

The stylesheet answers 404, so the page is reported: 1 declared CSS or JavaScript resource returned an error. The finding shows the file, our request and its status.

A possible correction: point the href at the file the site now serves, such as /assets/site.9c1e.css, which answers 200 OK, or remove the <link> if nothing uses it.

Confirm & check again

Check for yourself: open the page with your browser's developer tools on the Network tab and look for stylesheets or scripts that fail to load.

Check again: Full audit — run a new audit of the site. The finding closes when the page is crawled again as a complete HTML page and every stylesheet and script it still declares gets a settled answer, none of them broken. It can also close when the address now answers directly with a 200 file that is not HTML, or starts with a permanent redirect within your site; problems at the new target may be reported separately. A file left unrequested by the budget, blocked by robots.txt or answering 401, 403, 429 or a single server error keeps the finding open, and so does a page that is only a frame for scripts.

Limits & sources

The check requests the files but does not run JavaScript or show how much a failing file changes the page. Files added by scripts, CSS @import, preload hints, inline scripts and fonts are not checked, and files beyond the budget of 30 are not requested.

Confidence: High because each broken status is read directly, and a server error counts only when both requests fail.

Sources

Editorial review: 29 September 2026