Skip to main content
HTML Validation

A “script” element with a “type” attribute whose value is neither a JavaScript MIME type, “module”, “importmap”, nor “speculationrules” (i.e., a data block) must not have a “src” attribute.

About This HTML Issue

The src attribute is invalid on a <script> element whose type marks it as a data block, because the data lives in the element itself and there is nothing to fetch from elsewhere.

When the type attribute is anything other than a JavaScript MIME type, module, importmap, or speculationrules, the browser treats the element as a data block: inline content that other scripts on the page can read, but that is never downloaded or run. The most common example is application/ld+json structured data. The whole point of a data block is that it carries its content between the opening and closing tags, so pointing src at an external file makes no sense and is not allowed.

This usually happens when the type is set for a data block but the markup was copied from a real external script that still carries its src.

Examples

Invalid: src on a data block

<script type="application/ld+json" src="https://example.com/data.json"></script>

Valid: data block with inline content

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "Example"
  }
</script>

Remove the src attribute and place the data inline. If the file really is a script to load and run, fix the type value instead: use a JavaScript MIME type, module, or omit the attribute entirely.

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Help us improve our guides

Was this guide helpful?
🌍 Trusted by teams worldwide

Validate at scale.
Ship accessible websites, faster.

Automated HTML & accessibility validation for large sites. Check thousands of pages against WCAG guidelines and W3C standards in minutes, not days.

Scheduled Reports
API Access
Open Source Standards
$7 / 7 days

Pro Trial

Full Pro access. Cancel anytime.

Start Pro Trial →

Join teams across 40+ countries