What is E.164?
E.164 is a numbering plan defined by the International Telecommunication Union (ITU-T) that standardises phone numbers across every country in the world. An E.164 number has three components:
- A + prefix – indicates an international number
- A country code (1–3 digits) – identifies the country or territory
- A subscriber number – the remaining digits (up to 15 total)
The result is a single, unambiguous string of digits that can be dialled from any country without modification.
Format and examples
| Country | Local format | E.164 format |
|---|---|---|
| United Kingdom | 07700 900123 | +44 7700900123 |
| United States | (555) 867-5309 | +1 5558675309 |
| Germany | 030 1234567 | +49 301234567 |
| Australia | 0412 345 678 | +61 412345678 |
| France | 01 23 45 67 89 | +33 123456789 |
| Japan | 03-1234-5678 | +81 312345678 |
| India | 98765 43210 | +91 9876543210 |
Key rules
- Always starts with + followed by the country code – no leading zeros, no brackets, no spaces, no dashes.
- Maximum 15 digits (including the country code), minimum 8 for geographic numbers.
- No formatting characters – the canonical form is digits only after the +.
- Leading zeros are stripped – a UK mobile 07700... becomes +44 7700... (the 0 is a domestic trunk prefix, not part of the international number).
Why E.164 matters for AEO and search
The country code ambiguity problem
When a phone number appears on a web page without E.164 formatting, crawlers and answer engines must guess the country code based on context – and they frequently get it wrong.
Consider the number 020 7946 0958. A human in London knows this is a UK landline, but a crawler processing it sees:
- No country code – could be UK (+44), or could it be a truncated US number?
- The leading 0 – is it a domestic trunk prefix (UK) or part of the subscriber number?
- The spacing – is 020 an area code, or 0207?
Without an explicit country code, the number becomes ambiguous structured data. Answer engines like Google's AI Overviews, Perplexity, and ChatGPT Search may misclassify it, omit it, or surface it with the wrong country – especially for businesses operating across multiple markets.
How crawlers and answer engines parse phone numbers
Modern answer engines extract structured data from web pages to build knowledge graphs and generate direct answers. Phone numbers are a high-value extraction target – they appear in local business panels, contact cards, and voice assistant results.
Crawlers use pattern matching and heuristics to identify phone numbers. When they encounter E.164 format, extraction is deterministic – the country, carrier type, and subscriber number are unambiguous. When they encounter raw local formats like 020 7946 0958, extraction becomes probabilistic – the system must infer country from page language, hreflang tags, server location, or surrounding text, and any of these signals can be wrong or missing.
E.164 numbers are parsed correctly 100% of the time. Local formats are not.
Schema.org and structured data
The Schema.org telephone property explicitly recommends E.164 format. When you mark up your contact information with JSON-LD, search engines and answer engines consume this structured data directly. For example, setting the telephone field to "+44 20 7946 0958" in your Organization schema ensures your phone number enters knowledge graphs exactly as intended – no interpretation required.
Voice assistants and click-to-call
E.164 is also the format used by tel: URI links in HTML, which power click-to-call on mobile devices and voice assistant dialling. If your number is in E.164, the entire chain – crawl, extraction, knowledge graph, voice result, dial – works without any conversion or guessing.
E.164 as a global standard
E.164 is not a web convention – it is the foundational numbering standard for global telecommunications:
- Every phone call routed internationally uses E.164 for addressing.
- Every SMS uses E.164 for sender and recipient identification.
- SIP (VoIP) uses E.164 URIs for call routing.
- SS7 and ISUP signalling protocols use E.164 for number translation.
- Mobile networks (GSM/LTE/5G) store subscriber identities as E.164 numbers (MSISDNs).
- WhatsApp, Signal, Telegram – all use E.164 as their user identifier.
It was first published by the ITU (then CCITT) and has been revised multiple times, most recently as ITU-T Recommendation E.164 (11/2010). The standard is maintained alongside the ITU's country code assignment table, which allocates the +1 through +999 prefix space.
Best practices for implementation
- Store all phone numbers in E.164 format in your database – convert on input, display in local format on output.
- Use E.164 in all structured data – Schema.org JSON-LD, Open Graph, microdata.
- Use E.164 in tel: links – ensures correct dialling from any country.
- Display a human-readable local format alongside the machine-readable E.164 – e.g. show +44 (0)20 7946 0958 to users while the underlying link uses the full E.164 number.
- Validate on input – use a library like Google's libphonenumber to parse and validate, rather than regex alone.
- Include the country code on every page where a phone number appears – don't rely on crawlers inferring it from context.
Related standards
| Standard | Scope |
|---|---|
| E.164 | International telephone numbering (up to 15 digits) |
| E.123 | Notation and display of telephone numbers (formatting rules) |
| E.212 | Mobile network identification (MCC/MNC codes) |
| RFC 3966 | The tel: URI scheme for use in hyperlinks and SIP |
| RFC 4715 | ENUM – mapping E.164 numbers to DNS for VoIP routing |