- Class
- C3 Standard
- Weight
- 2
- Severity on fail
- minor
- Applies to
- RFC 3986
Scope and evidence
Evaluated on page (P). The book marks this requirement REQUIRED, STANDARD (reclassified, §1.4).
Non-ASCII characters are counted in observed.non_ascii_count and are not failures: they are valid in IRIs, and browsers encode them. No engine documents a consequence for these characters, so the rule is a standards finding.
Fail conditions
Each condition has a stable code and a reason template. The evaluator fills the placeholders from observed values only; no sentence in a report is generated.
invalid_characters{n} URLs on {url} contain characters that RFC 3986 (IETF STD 66) does not allow unencoded, for example “{example}” (character {char}). Google supports URLs as defined by IETF STD 66.
bad_percent_encoding{n} URLs on {url} contain malformed percent-encoding, for example “{example}”. RFC 3986 percent-encoding is a % followed by two hexadecimal digits.
The documented fix
Generate every URL with a standards-compliant encoder (encode path segments and query values separately).
Sources, quoted
These are the passages the rule rests on, stored once in the knowledge base and emitted exactly as written. A citation marked for specific conditions appears only on findings with those codes.
“A URI is composed from a limited set of characters consisting of digits, letters, and a few graphic symbols.”
[RFC3986] RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (IETF STD 66) · 2. Characters · last updated January 2005
https://www.rfc-editor.org/rfc/rfc3986.html“If data for a URI component would conflict with a reserved character's purpose as a delimiter, then the conflicting data must be percent-encoded before the URI is formed.”
[RFC3986] RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (IETF STD 66) · 2.2 Reserved Characters · last updated January 2005
https://www.rfc-editor.org/rfc/rfc3986.html“URLs as defined by IETF STD 66”
[G-URL] URL structure best practices for Google Search · Follow IETF STD 66 · last updated 2025-12-10
https://developers.google.com/search/docs/crawling-indexing/url-structure