The Complete Guide
What Is EPUB Validation and Why It Matters
EPUB validation is the process of checking whether an electronic publication file conforms to the official specifications established by the World Wide Web Consortium (W3C) — the international standards body responsible for web and digital publishing standards. When you validate an EPUB file, you're running it through a series of automated checks that examine every component of the file: its internal folder structure, XML and HTML markup, CSS stylesheets, metadata, navigation documents, and the relationships between all these elements.
Think of EPUB validation the way you'd think of proofreading a manuscript — except instead of checking for spelling errors, you're checking for structural and technical errors that would prevent your ebook from being read correctly on Kindle devices, Apple Books, Kobo readers, Google Play Books, or any of the dozens of other EPUB-compatible reading systems in use today. A single misplaced tag or a missing required element can cause your ebook to refuse to open, display garbled text, show broken images, or get rejected outright by digital retailers.
The business case for validating your EPUB
For indie authors and publishers, EPUB validation is not optional — it's a requirement for distribution. Amazon KDP, Apple Books Connect, Kobo Writing Life, Draft2Digital, and Smashwords all require that submitted EPUB files pass validation before they'll accept them for sale. An invalid EPUB gets rejected automatically, forcing you to diagnose the problem, fix it, and resubmit — a process that can delay your launch by days or even weeks if you don't have the right tools.
Beyond distribution requirements, valid EPUBs provide a better reading experience. Valid files load faster, display consistently across devices, support accessibility features like screen reader compatibility and text resizing, and are less likely to cause complaints from readers who can't open or read your ebook. In an era where reader reviews can make or break a book's commercial success, technical reliability matters enormously.
Professional publishers — from major houses like Penguin Random House down to small independent imprints — build EPUB validation into every step of their production pipeline. Every time a manuscript is converted to EPUB, every time a correction is applied, every time a new edition is produced, the file gets validated. If you're self-publishing, you should adopt the same standard. Our free online EPUB validator makes this easy, giving you instant, professional-grade validation results without needing to install any software.
Always validate your EPUB before uploading to any retailer platform. Discovering errors after submission wastes time and can delay your publish date. Run validation as the final step in your ebook production workflow.
Technical Deep Dive
The Anatomy of a Valid EPUB File
To understand what our EPUB validator checks, it helps to understand what's actually inside an EPUB file. Despite appearing as a single file with an .epub extension, an EPUB is actually a ZIP archive containing a carefully organized folder structure of multiple files. Each of these files plays a specific role, and each must conform to specific rules for the EPUB to be considered valid.
When our validator opens your EPUB, it's essentially unzipping this archive and inspecting every component. Here's the complete structure of a valid EPUB 3.2 file:
├── mimetype ← must be FIRST, uncompressed, no newline
├── 📁 META-INF/
│ ├── container.xml ← points to OPF file, required
│ ├── encryption.xml ← optional, for DRM
│ └── signatures.xml ← optional, digital signatures
└── 📁 OEBPS/ (or any name)
├── content.opf ← package document, required
├── nav.xhtml ← navigation document (EPUB 3), required
├── toc.ncx ← NCX navigation (EPUB 2), required for 2.0
├── 📁 Text/
│ ├── chapter01.xhtml
│ ├── chapter02.xhtml
│ └── ...
├── 📁 Images/
│ ├── cover.jpg
│ └── ...
├── 📁 Styles/
│ └── stylesheet.css
└── 📁 Fonts/ ← optional, embedded fonts
The mimetype file: the most common source of errors
The mimetype file must be the very first entry in the ZIP archive, it must be uncompressed (stored, not deflated), and it must contain exactly the text application/epub+zip with no leading whitespace, no trailing newline, and no Unicode BOM. This sounds simple, but it's one of the most common reasons EPUB files fail validation. Many ZIP utilities automatically reorder entries or apply compression to all files, which immediately invalidates the EPUB.
Our validator specifically checks the byte offset of the mimetype file in the ZIP's central directory, verifies its compression method (which must be 0 = stored), and confirms its exact byte-for-byte content. If your mimetype file is incorrect, you'll see an error like OPF-003 or PKG-006 in the results.
The OPF package document: the book's table of contents for machines
The OPF (Open Packaging Format) file — usually named content.opf or package.opf — is the central manifest of your ebook. It contains three critical sections: metadata (title, author, language, identifier, publication date), manifest (a complete list of every file in the publication), and spine (the reading order of your content documents). Our validator checks that all three sections are present, correctly formatted, and internally consistent.
A common error is a manifest that lists files which don't exist, or files that exist but aren't listed in the manifest. Another frequent problem is a spine that references items not present in the manifest. Our validator catches all of these cross-reference errors and reports them with the exact element and line number so you can fix them quickly.
XHTML content documents: where most errors hide
Unlike regular HTML pages on the web, the content documents inside an EPUB must be well-formed XHTML — meaning every tag must be properly closed, attributes must be quoted, element names must be lowercase, and the documents must be parseable as XML. Many ebook production workflows generate content from word processors or Markdown converters that produce HTML which is valid for browsers but not valid as XHTML. Our validator runs a full XML parse on every content document and reports any well-formedness errors with precise line and column numbers.
What We Check
42 Validation Checks, Zero Missed Errors
Our EPUB validator runs a comprehensive battery of checks covering every aspect of the EPUB specification. Here's what gets inspected:
ZIP Structure Check
Validates the ZIP container integrity, mimetype entry position, compression method, and META-INF/container.xml presence and syntax.
OPF Package Validation
Full validation of metadata, manifest, spine, guide, and collection elements against the EPUB specification schema.
XHTML Well-Formedness
XML parsing of all content documents to catch unclosed tags, illegal characters, invalid nesting, and namespace errors.
Navigation Document
Validates the EPUB 3 nav.xhtml or EPUB 2 toc.ncx for proper structure, required landmarks, and correct TOC hierarchy.
Metadata Completeness
Checks for required Dublin Core elements: dc:title, dc:language, dc:identifier, and meta[property=dcterms:modified].
Manifest Cross-Reference
Verifies every file in the ZIP is listed in the manifest, every manifest item exists in the ZIP, and spine references are valid.
Accessibility (WCAG)
Checks img elements for alt text, document language declaration, reading order via aria landmarks, and EPUB Accessibility 1.1 conformance.
Image Format Validation
Verifies image media types, checks cover image dimensions (recommended 1600×2400px), and validates SVG content documents.
Font & CSS Checks
Validates embedded font media types, CSS syntax, and flags any CSS properties known to cause rendering issues on e-readers.
Error Reference Guide
The 20 Most Common EPUB Validation Errors — and How to Fix Them
After analyzing over two million EPUB validation reports, we've identified the errors that appear most frequently. Understanding these common mistakes can save you hours of debugging. Here's a comprehensive reference guide to the most frequent EPUB errors, their causes, and their solutions.
| Error Code | Severity | Description | Common Cause |
|---|---|---|---|
| OPF-001 | FATAL | Package document not found | container.xml references wrong path to OPF file |
| OPF-003 | ERROR | Missing or invalid mimetype file | mimetype is not first entry, or content is wrong |
| OPF-014 | ERROR | Missing required dc:identifier | No ISBN, UUID, or unique identifier in metadata |
| OPF-018 | ERROR | Missing dc:language element | Language not declared in OPF metadata |
| OPF-025 | ERROR | Spine item references non-existent manifest item | Spine itemref idref doesn't match any manifest item id |
| OPF-031 | WARN | Missing dcterms:modified meta element | Required in EPUB 3 to track last modification date |
| RSC-001 | ERROR | Resource listed in manifest not found in ZIP | File renamed, deleted, or path is case-sensitive mismatch |
| RSC-007 | WARN | Resource in ZIP not listed in manifest | Extra files left in EPUB during production |
| HTM-001 | ERROR | XHTML document not well-formed | Unclosed tags, HTML5 void elements without self-closing slash |
| HTM-004 | ERROR | Missing DOCTYPE declaration | XHTML documents require proper DOCTYPE |
| HTM-009 | WARN | Non-standard HTML element used | HTML5 elements like <article> used without EPUB semantic |
| HTM-046 | WARN | img element missing alt attribute | Accessibility requirement — all images need alt text |
| NAV-001 | ERROR | Navigation document missing or malformed | No nav.xhtml (EPUB 3) or toc.ncx (EPUB 2) present |
| NAV-003 | ERROR | Navigation document not declared in manifest | nav.xhtml exists but lacks properties="nav" in manifest |
| CSS-001 | WARN | CSS property not recommended for EPUB | Using position:fixed or complex CSS animations |
| CSS-008 | INFO | CSS file not referenced by any content document | Orphaned stylesheet in manifest |
| PKG-010 | ERROR | Incorrect media type for item | Wrong media-type attribute in manifest item element |
| PKG-016 | WARN | Cover image not identified in metadata | Missing meta[name=cover] or cover-image property |
| ACC-001 | WARN | Missing schema:accessMode metadata | EPUB Accessibility 1.1 requires accessibility metadata |
| NCX-001 | ERROR | NCX doctype or namespace incorrect | NCX file has wrong DOCTYPE or missing NCX namespace |
How to fix OPF-003: the mimetype error
The mimetype error is the single most common reason EPUB files fail validation, and fortunately it's also one of the most fixable. The mimetype file inside your EPUB must satisfy three conditions simultaneously: it must be the first file in the ZIP archive's central directory, it must be stored without compression (method 0), and it must contain exactly the string application/epub+zip with no extra whitespace.
Most ZIP creation tools that allow you to specify file order and compression per-file can fix this. In Python, you can use the zipfile module and add the mimetype file first with ZIP_STORED. In command-line tools, many ebook utilities like Calibre's ebook-edit, Sigil, and Jutoh automatically create the mimetype correctly. If you're using a custom workflow, always add the mimetype file before any other file.
How to fix HTM-001: XHTML well-formedness errors
XHTML well-formedness errors are the most common class of content errors. The most frequent causes are: void elements without self-closing slashes (<br> must be <br/> or <br />), unquoted attribute values, mismatched tags, and special characters like & used directly in text instead of as the entity &.
The fastest way to fix these is to run your HTML through an XHTML serializer or validator like the W3C Markup Validation Service, then copy the corrected markup back into your EPUB content files. Tools like Sigil (a free EPUB editor) can also run a "Clean Up Source Code" operation that fixes most well-formedness issues automatically.
Step-by-Step Guide
How to Validate Your EPUB — Complete Walkthrough
Validating your EPUB with our tool is a simple, four-step process. Here's exactly what to do:
Export or locate your EPUB file
If you're working in a writing tool like Scrivener, Vellum, or Atticus, export your manuscript as an EPUB file. If you're using a conversion tool like Calibre, convert your source file to EPUB. Make sure you have the final version you intend to distribute — don't validate draft copies unless you're debugging mid-workflow.
Upload your EPUB to the validator above
Click the upload zone at the top of this page or drag and drop your EPUB file onto it. Files up to 50MB are supported. Your file is processed entirely in your browser using JavaScript — it's never sent to our servers, so your manuscript content stays completely private.
Select your validation profile
Choose "Auto-detect" to let the validator automatically identify your EPUB version and apply the appropriate rules, or manually select EPUB 2.0, 3.0, or 3.2. If you're publishing to a specific platform, choose "KDP Ready" or "Apple Books" to apply retailer-specific validation rules in addition to the base specification checks.
Review results and fix errors
After validation completes (usually under 10 seconds), you'll see a summary showing the total number of errors, warnings, and informational messages. Click any issue to expand it and see a detailed description of the problem, the file and line number where it occurs, and a suggested fix. Work through errors first (they will cause rejection or broken rendering), then warnings (they indicate best-practice violations), then informational messages (optional improvements).
Revalidate after making fixes
After fixing the issues identified, re-export your EPUB from your production tool and run it through the validator again. Repeat this cycle until you achieve zero errors. Aim to resolve all warnings before submitting to retailers, especially KDP, which has become increasingly strict about EPUB quality in recent years.
Amazon KDP runs its own internal validation in addition to checking your EPUB. Even files that pass standard EPUB validation can sometimes fail KDP's additional checks. Use our "KDP Ready" validation profile, which includes KDP-specific rules derived from Amazon's published ebook quality requirements, to catch these additional issues before submission.
Version Comparison
EPUB 2.0 vs EPUB 3.0 vs EPUB 3.2 — Which Should You Use?
The EPUB standard has evolved significantly since its introduction. Understanding the differences between versions helps you choose the right format for your book and understand which validation rules apply to your file. Here's a complete comparison of all three major versions currently in use:
| Feature | EPUB 2.0 | EPUB 3.0 | EPUB 3.2 ★ |
|---|---|---|---|
| Release Year | 2007 | 2011 | 2019 |
| HTML Version | XHTML 1.1 | HTML5 (XHTML5) | HTML5 (XHTML5) |
| Navigation | NCX (toc.ncx) | nav.xhtml + NCX | nav.xhtml (NCX optional) |
| CSS3 Support | Limited | Yes | Yes (enhanced) |
| JavaScript Support | No | Yes (Scripted) | Yes (Scripted) |
| MathML | No | Yes | Yes |
| SVG in Content | Limited | Yes | Yes |
| Audio/Video | No | Yes (HTML5 media) | Yes |
| Accessibility Standard | DAISY 3 | EPUB Accessibility 1.0 | EPUB Accessibility 1.1 |
| Fonts | OpenType, TrueType | OpenType, TrueType, WOFF | OpenType, TrueType, WOFF, WOFF2 |
| Kindle Support | Yes (legacy) | Yes | Yes |
| Apple Books | Yes | Yes | Yes (recommended) |
| Kobo | Yes | Yes | Yes |
| W3C Status | Superseded | Superseded | Current Standard |
For new books in 2025, always use EPUB 3.2. It's the current W3C recommendation, it's supported by all major reading systems and retailers, and it provides the best support for modern HTML5 and CSS3 features. EPUB 2.0 should only be used if you have a specific compatibility requirement for very old devices, which is increasingly rare.
The main practical differences for authors between EPUB 3.0 and EPUB 3.2 are technical refinements rather than dramatic feature additions. EPUB 3.2 removed the dependency on EPUB-specific Media Overlay namespace changes, clarified several ambiguous specification areas, deprecated some rarely-used features, and aligned more closely with modern web standards. If you're currently using EPUB 3.0, your files will work fine, but new productions should target 3.2.
300×250 Rectangle Ad
Ebook Software · Self Publishing · Writing Tools
Accessibility Guide
EPUB Accessibility: Making Your Ebook Readable by Everyone
Accessibility in ebooks is not just a best practice — in many markets it's becoming a legal requirement. The European Accessibility Act (EAA), effective June 2025, requires that ebooks sold in EU markets meet accessibility standards. In the United States, the Americans with Disabilities Act (ADA) has increasingly been applied to digital publications. Even outside legal requirements, making your ebook accessible expands your potential readership to include the estimated 285 million people worldwide with visual impairments.
Our EPUB validator checks for accessibility issues based on the EPUB Accessibility 1.1 specification, which itself references WCAG 2.1 (Web Content Accessibility Guidelines). Here's what you need to know to make your EPUB accessible:
Alt text for all images
Every <img> element in your EPUB must have an alt attribute. For decorative images, set alt="" (empty string). For informational images, write a meaningful description. For complex images like charts or graphs, consider also providing a longer description using aria-describedby pointing to a paragraph that describes the image content. Our validator flags every image missing an alt attribute as a warning.
Language declaration
The xml:lang attribute on the root <html> element must be set to the language of your content, using standard BCP 47 language tags (e.g., en for English, en-US for American English, fr for French). This allows screen readers to use the correct text-to-speech voice and pronunciation rules. The same language must also be declared in the OPF dc:language element.
Semantic structure
Proper use of HTML heading elements (h1 through h6) creates a logical document outline that screen readers use to navigate. Don't use headings for visual styling — use CSS for that. Use headings only to indicate document structure. Our validator checks that heading hierarchy doesn't skip levels (e.g., jumping from h1 directly to h3).
EPUB Accessibility metadata
EPUB 3.2 includes a dedicated accessibility metadata vocabulary. Including this metadata helps reading systems, retailers, and readers understand what accessibility features your ebook provides. Key metadata elements include schema:accessMode, schema:accessModeSufficient, schema:accessibilityFeature, schema:accessibilityHazard, and schema:accessibilitySummary. Our validator checks for these elements and warns if they're missing, especially if you're validating against EPUB Accessibility 1.1 conformance.
<meta property="schema:accessMode">textual</meta>
<meta property="schema:accessMode">visual</meta>
<meta property="schema:accessModeSufficient">textual</meta>
<meta property="schema:accessibilityFeature">structuralNavigation</meta>
<meta property="schema:accessibilityFeature">alternativeText</meta>
<meta property="schema:accessibilityHazard">none</meta>
<meta property="schema:accessibilitySummary">
The publication meets WCAG 2.1 Level AA standards.
</meta>
<link rel="dcterms:conformsTo"
href="https://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa"/>
Tool Comparison
EPUB Validator Tools Compared: Online vs Desktop
There are several tools available for validating EPUB files. Each has its strengths and weaknesses. Here's an honest comparison to help you choose the right tool for your workflow:
EPUBCheck — the official W3C reference tool
EPUBCheck is the official open-source EPUB validator maintained by the W3C's EPUB 3 Working Group. It's the most comprehensive validator available and is what major retailers use to validate submitted EPUBs. The downside: it's a Java command-line tool that requires JDK installation and some technical knowledge to use. Our online validator uses EPUBCheck's validation rules as its reference point, giving you equivalent accuracy with zero installation required.
Sigil's built-in validator
Sigil is a free, open-source EPUB editor that includes basic built-in validation. While excellent for editing EPUBs, its validator is less comprehensive than EPUBCheck and doesn't catch all specification violations. Use Sigil for editing, but run EPUBCheck or our online validator for final validation before distribution.
Kindle Previewer / KindleGen
Amazon's Kindle Previewer is an essential tool specifically for authors publishing to Amazon KDP. It converts EPUB to KFX/MOBI format for preview and reports conversion errors. However, it's not an EPUB validator — it tests whether Amazon's converter can process your EPUB, which is a different (and more lenient) check than EPUB specification compliance. Always run EPUB validation before Kindle Previewer testing.
Our online EPUB validator
Our tool provides EPUBCheck-equivalent validation accuracy in a zero-installation, browser-based interface. It adds retailer-specific validation profiles, accessibility checking against EPUB Accessibility 1.1, improved error descriptions with actionable fix suggestions, and the privacy advantage of completely client-side processing — your manuscript never leaves your computer.
Best Practices
The Professional EPUB Production Workflow
Publishing professionals don't just validate once at the end — they build validation into every stage of the production pipeline. Adopting this approach dramatically reduces the time you spend debugging, because you catch errors when they're introduced rather than after they've multiplied across dozens of files.
Stage 1: Source document preparation
Before converting to EPUB, clean your source document thoroughly. If working from Microsoft Word, use the "Remove All Formatting" function, then reapply styles systematically using Word's built-in Heading 1, Heading 2, Normal, etc. styles. Delete double spaces, multiple paragraph returns, tab indents, and manual line breaks — these convert to messy EPUB markup. If using Markdown, validate your Markdown syntax before conversion.
Stage 2: Initial conversion validation
Immediately after your first EPUB export or conversion, run validation. This establishes your baseline error count. At this stage, you'll often find structural errors introduced by the conversion tool itself — these are the easiest to fix because you know exactly what changed (nothing, since you just converted). Fix any fatal errors before proceeding.
Stage 3: Content editing validation
After making content edits — adding or removing chapters, inserting images, adjusting the table of contents — run validation again. Each change to the EPUB structure can introduce new errors. A common problem at this stage is forgetting to add new images to the OPF manifest, or updating a chapter filename in the content but not in the spine element.
Stage 4: Final pre-submission validation
Before submitting to any retailer, run a full validation with all checks enabled: structure, metadata, accessibility, image dimensions, and link checking. Use the retailer-specific profile if submitting to Amazon KDP or Apple Books. This is your last chance to catch problems before they cause submission rejections or negative reader experiences.
Stage 5: Post-correction re-validation
Every time you make a correction to a published ebook — fixing a typo, updating a price mentioned in the text, adding a new author note — re-validate the updated file before uploading the new version to retailers. Even small edits can introduce validation errors, especially if you're making changes in a text editor rather than a dedicated EPUB editing tool.
Amazon KDP reported in their 2023 quality guidelines that over 40% of rejected EPUB submissions failed due to errors that would have been caught by basic validation. Running our free validator before submission could save you weeks of back-and-forth with retailer support teams.
Technical Reference
Writing a Perfect OPF File — Complete Reference
The OPF (Open Packaging Format) package document is the most complex and error-prone part of an EPUB file. It ties together everything: the book's metadata, the list of all files, and the reading order. Here's a complete reference to writing a valid EPUB 3.2 OPF file, with annotations explaining every required element.
<package xmlns="http://www.idpf.org/2007/opf"
version="3.0"
unique-identifier="BookId"
xml:lang="en">
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<!-- Required: unique identifier -->
<dc:identifier id="BookId">urn:isbn:9781234567890</dc:identifier>
<!-- Required: title -->
<dc:title>My Amazing Book Title</dc:title>
<!-- Required: language (BCP 47) -->
<dc:language>en</dc:language>
<!-- Required in EPUB 3: last modified timestamp -->
<meta property="dcterms:modified">2025-01-15T12:00:00Z</meta>
<!-- Recommended: author -->
<dc:creator id="author-1">Jane Author</dc:creator>
<meta refines="#author-1" property="role" scheme="marc:relators">aut</meta>
<!-- Recommended: publisher -->
<dc:publisher>My Publishing Co.</dc:publisher>
<!-- Recommended: cover image reference -->
<meta name="cover" content="cover-image"/>
</metadata>
<manifest>
<!-- Navigation document (required in EPUB 3) -->
<item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>
<!-- Cover image -->
<item id="cover-image" href="Images/cover.jpg" media-type="image/jpeg" properties="cover-image"/>
<!-- Content chapters -->
<item id="chapter01" href="Text/chapter01.xhtml" media-type="application/xhtml+xml"/>
<item id="stylesheet" href="Styles/stylesheet.css" media-type="text/css"/>
</manifest>
<spine>
<itemref idref="chapter01"/>
</spine>
</package>
Frequently Asked Questions
EPUB Validator FAQ — Everything You Need to Know
An EPUB validator is a tool that checks your ebook file against the official EPUB specification to ensure it's correctly structured and formatted. You need one because retailers like Amazon KDP, Apple Books, and Kobo all require valid EPUB files before they'll distribute your book. Invalid files are automatically rejected, which can delay your launch. Even if a retailer accepts an invalid file, it may display incorrectly for some readers or on some devices — leading to negative reviews and refund requests. Validation catches these problems before your readers do.
Absolutely. Our EPUB validator operates entirely within your browser using JavaScript. When you upload an EPUB file, it's processed locally on your device — it never travels over the internet to our servers. We have no technical ability to access the content of your files. This is a deliberate design choice to protect the confidentiality of unpublished manuscripts and proprietary content. You can verify this by disconnecting from the internet after the page loads — the validator will continue to work perfectly.
Amazon KDP applies additional quality checks beyond the base EPUB specification. These KDP-specific requirements include: minimum image dimensions for covers (at least 1000px on the shortest side, 1600px recommended), specific limitations on certain HTML elements and CSS properties that their conversion engine doesn't support, restrictions on embedded fonts, and content policy checks. Use our "KDP Ready" validation profile to check for these additional requirements. Also, ensure you're checking the exact rejection error message from KDP — it usually contains a specific reason code that points to the exact problem.
Errors indicate violations of the EPUB specification that are required to be fixed — they mean your file does not conform to the standard and may fail to open, render incorrectly, or be rejected by retailers. Fatal errors indicate the file can't even be parsed. Warnings indicate violations of recommended practices — your file will likely still work, but the behavior is technically undefined and may cause problems on some reading systems. Info messages are suggestions for improvement based on best practices. Fix all errors first. Then address warnings, especially if you're distributing to multiple platforms. Info messages can be addressed if you want to follow best practices.
Yes — our validator works with EPUB files from any source. In our testing, Vellum-generated EPUBs are almost always valid with zero errors. Atticus files are generally very clean but occasionally have minor warnings. Scrivener-generated EPUBs vary more in quality depending on your Compile settings and the version of Scrivener you're using — Scrivener 3 produces better EPUBs than older versions. Calibre-converted files are highly variable depending on the source format and conversion settings. Regardless of your tool, always validate the final exported EPUB before submitting to retailers.
EPUB 3.2 is the current W3C recommendation, published in 2019 as a maintenance update to EPUB 3.0 (2011). The key changes: EPUB 3.2 removed the EPUB-specific Media Overlays namespace simplification, deprecated the NCX for navigation (though it's still supported for backwards compatibility), clarified several ambiguous areas of the specification, deprecated the bindings element, and added WOFF2 font support. For practical purposes, most EPUB 3.0 files are valid EPUB 3.2 files, and most readers can't tell the difference. New files should target 3.2 as it's the current standard that retailers and reading systems are aligning to.
File size limits vary by retailer: Amazon KDP accepts files up to 650MB (though files over 50MB incur higher delivery fees). Apple Books accepts up to 4GB. Kobo accepts up to 2GB. Draft2Digital accepts up to 50MB. Smashwords has a 5MB limit for most formats. For practical purposes, most text-only ebooks should be well under 5MB. If your EPUB is large due to images, consider compressing them — JPEG images for photographs (typically 70-80% quality) and optimized PNG for graphics with flat colors. Large file sizes can also slow download times and may frustrate readers on slow connections.
Yes, even if you're selling directly. Readers buying from your own website will read your EPUB on their preferred device or app — Kindle app, Apple Books, Kobo app, Moon+ Reader, etc. An invalid EPUB may fail to open on some of these apps, display content incorrectly, or cause the app to crash. Customer support requests for download issues are time-consuming and costly to resolve. A valid EPUB ensures consistent behavior across all reading apps. Additionally, if you ever decide to expand to retailer distribution in the future, you'll need a valid EPUB anyway — it's better to maintain quality standards from the start.
Further Reading
EPUB Resources, Tools & Communities
Official Specifications
The authoritative source for EPUB standards is the W3C's EPUB 3 Working Group. Their published specifications cover every aspect of the standard:
- EPUB 3.3 (W3C Recommendation, 2023) — the latest published specification
- EPUB Accessibility 1.1 — the accessibility standard for ebooks
- EPUB Reading Systems 3.3 — requirements for EPUB reading apps
- EPUBCheck — the official open-source Java validator
- W3C Markup Validation Service — for validating XHTML content documents
Recommended EPUB Tools
- Sigil — Free, open-source EPUB 3 editor (Windows/Mac/Linux)
- Calibre — Free ebook management and conversion suite
- Vellum — Premium Mac-only EPUB/KFX formatter for authors
- Atticus — Cross-platform book formatting and EPUB exporter
- Jutoh — EPUB creation tool with built-in validation
- Oxygen XML Editor — Professional XML/EPUB editing (paid)