Skip to main content
← Blog

Which HTML Tags KDP Actually Supports

By SmartKDP

Laptop on a desk showing book-description source markup beside a paperback — SmartKDP KDP HTML tags guide hero

Amazon KDP will take HTML in your book description — but only a short whitelist. Paste from Word, use a generic “Amazon HTML” formatter, or invent a heading level, and you get stripped formatting, broken bold across the whole blurb, or an error about invisible characters at publish time.

This guide is the exact supported-tag list from KDP’s own help page, plus the 4,000-character budget (tags count), what the editor commonly destroys, and a pre-publish test you can run in Source view. When you want a description that is already rendered into that whitelist — under the limit, without prohibited promo language — use the KDP Description Generator. If you already have copy, the free KDP Listing Checker runs the same HTML and length rules over what you paste.

Not affiliated with Amazon. Tag lists, character limits, and content restrictions below describe public KDP help-page rules. KDP can change editor behavior and help docs — confirm against the current Write a Book Description page before you ship a high-stakes listing.

The constraint that bites

HTML tags count toward the 4,000-character limit. KDP’s description field is not “4,000 characters of prose, then free formatting.” Every <b>, every </p>, every list item wrapper is a character. KDP’s own example: the word test is 4 characters; bold test as <b>test</b> is 11 characters.

That is the ordering trap: authors write to the limit in a Google Doc, then wrap every line in tags in KDP Source view, then hit a hard wall or get truncated thinking. Budget rendered HTML length, not plain-text word count.

Second trap: heading levels 1–3 are not supported, even though they look like “real” HTML. KDP documents <h4> through <h6> only. Third-party formatters that emit <h1>, <h2>, or <h3> are wrong against the help page — and wrong markup is a common reason a description looks bold, huge, or broken on the detail page.

The durable core: a 12-tag whitelist

KDP’s Write a Book Description help page lists the tags you may use. There are twelve:

The twelve HTML tags Amazon KDP allows in a book description: br, p, b, em, i, u, h4, h5, h6, ol, ul, and li

TagWhat it doesNotes
<br>Line breakVoid tag (no closing tag). Two in a row = a blank line
<p></p>ParagraphAdds a break after the block
<b></b>BoldUse for emphasis, not whole paragraphs
<em></em>Emphasis (usually italic)Semantic emphasis
<i></i>ItalicVisual italic
<u></u>UnderlineUse sparingly; underlines read as links on many sites
<h4></h4>Section heading (largest allowed)Largest heading KDP supports
<h5></h5>Section heading (medium)
<h6></h6>Section heading (smallest)
<ol></ol>Numbered listPair with <li>
<ul></ul>Bulleted listPair with <li>
<li></li>List itemOnly inside <ol> or <ul>

Everything else is outside the official whitelist. That includes tags many “KDP HTML” tools still emit:

Tag / patternWhy authors reach for itOfficial status
<h1>, <h2>, <h3>Big “headline” at the topNot supported (KDP says so explicitly)
<strong>Bold alternativeNot on the help-page list
<hr>Horizontal rule / dividerNot on the help-page list
<a href="…">LinksNot for descriptions; URLs are restricted content
<div>, <span>, <table>, <img>Layout, imagesNot on the help-page list

If a competitor post or free formatter includes those tags, treat it as unverified against KDP, not as an extension of the whitelist.

Character budget: 4,000 including markup

From the same help page:

  • Limit: 4,000 characters for the description.
  • The editor counts all characters, including HTML, in both visual and Source views.

KDP character budget example: plain test is 4 characters; bold test with b tags is 11 characters toward the 4,000 limit

Rough budgeting:

plain prose budget ≈ 4,000 − (characters spent on tags)

A tight pattern burns more budget than it looks:

<h4>What's inside</h4>
<ul>
  <li><b>50</b> large-print puzzles</li>
  <li>Answer key at the back</li>
</ul>

That block is short on screen and expensive as source. Prefer:

  • One <h4> headline, not three stacked headings
  • <br><br> for simple spacing when you do not need a list
  • Bold on keywords, not whole sentences
  • Closing tags on every open tag (unclosed <b> is a classic “everything is bold” bug)

Exactly 4,000 is legal; 4,001 is not. Trim trailing bullets before you cut the hook.

What the KDP editor strips (or rejects)

KDP’s companion help page, Fixing errors or formatting with book descriptions, is blunt about paste problems: copying from a document into the description field often brings unsupported HTML and invisible characters. Symptoms include:

  • Errors like “Description may not contain invisible characters” or “Please fix the highlighted issue”
  • Formatting that looks fine in the editor and wrong on the Amazon detail page
  • Unexpected all-bold or header-sized text from leftover heading tags

What to avoid:

  1. Paste-from-Word / Google Docs / Pages as final source. Prefer plain text into Source view, then hand-add only whitelist tags.
  2. Empty angle brackets. KDP calls out <> and <> stacks as sources of invisible-character issues. Remove them.
  3. Unsupported tags from external formatters (<h2>, <hr>, <strong>, style attributes, spans).
  4. Unbalanced pairs. Every <b> needs a </b>; every list needs <li> inside <ul> or <ol>.
  5. Multiple spaces between words. KDP notes they will not show as multiple spaces on the detail page.

KDP’s own troubleshooting path: Bookshelf → → Edit details → Description → Source → review HTML against the supported list.

Book description content restrictions (not just tags)

Formatting can be perfect and still fail policy. The Write a Book Description page lists content KDP will not accept in the description, including:

  • Phone numbers, physical addresses, email addresses, or website URLs
  • Reviews, quotes, or testimonials
  • Requests for customer reviews
  • Ads, promotional material, time-sensitive tour/event dates
  • Availability, price, or alternative ordering information
  • Spoilers (for relevant BMVD-style listings)
  • Unicode emojis
  • Keyword or book-tag phrases used as tag spam

So the durable checklist is two layers:

valid markup  = only the 12 tags, balanced, under 4,000 chars with tags
valid content = no restricted claim families (promo, contact, price, emoji, …)

A generator that only “pretty-prints HTML” without the second layer still ships listings Amazon can reject or scrub later.

Minimal HTML pattern that stays legal

Illustrative structure (not a template to spam):

<h4>A calm hour of large-print word searches</h4>
<p>
  Settle in with <b>50</b> ocean-themed puzzles — one per page, answer key
  included.
</p>
<ul>
  <li>Large print grid</li>
  <li>One puzzle per page</li>
  <li>Solutions at the back</li>
</ul>
<p><i>For quiet evenings when you want focus without noise.</i></p>

Why this shape works:

  • One <h4> for the above-the-fold hook (not <h1>)
  • Paragraphs for readable prose
  • A short bullet list for scan value
  • Bold on a single proof point; italic for a closing line
  • No links, emoji, prices, or fake reviews

Paste that into KDP Source, confirm the character counter, then switch back to the visual editor only if you need to proofread — re-check Source before you publish.

How to test before you publish

Do this while you still control the listing draft — not after ads are live on a broken detail page.

  1. Open the book on your KDP Bookshelf.
  2. Edit Details → Description.
  3. Click Source.
  4. Confirm every tag is in the twelve-tag whitelist; strip anything else.
  5. Confirm every open tag has a matching close (except void <br>).
  6. Read the character counter: it includes tags. Stay ≤ 4,000.
  7. Scan for restricted content (URLs, prices, “as seen on,” testimonials, emoji).
  8. Save and Continue, finish the publish path, then open the live Amazon detail page (or preview once available) and re-read the rendered description on desktop and phone.

If you want the same rules applied automatically: paste into the free KDP Listing Checker, or generate from a book brief with the KDP Description Generator so the renderer never emits unsupported tags.

How to use the KDP Description Generator

  1. Open the KDP Description Generator (Listing Studio).
  2. Point it at a SmartKDP project or paste your own book facts — topic, format, audience, what is inside.
  3. Choose tone (and keep it non-salesy: promotional registers are where prohibited claims hide).
  4. Generate. The model returns structure; our renderer turns it into the twelve-tag HTML set and budgets toward 4,000 characters.
  5. Read the labelled warnings (if any) for length, HTML, or guideline issues — same corpus as the free listing checker.
  6. Copy the HTML into KDP Source view, then still run the live detail-page check after publish.

The model never writes free-form HTML in that pipeline. That is deliberate: unclosed tags and rogue <h2>s are a renderer problem, not a prompt problem.

FAQ

Which HTML tags does KDP support in a book description?

Twelve: <br>, <p>, <b>, <em>, <i>, <u>, <h4>, <h5>, <h6>, <ol>, <ul>, and <li>. That list is from KDP’s Write a Book Description help page. <h1>, <h2>, and <h3> are explicitly not supported.

Does the 4,000-character limit include HTML tags?

Yes. KDP counts every character in the field, including tags, whether you use the visual editor or Source view. Bolding test as <b>test</b> costs 11 characters, not 4.

Why is my KDP description all bold or huge after I paste?

Usually leftover unsupported heading tags or an unclosed formatting tag from a Word/Docs paste. Open Source, remove non-whitelist tags, and balance every pair. Prefer plain text plus hand-added tags over rich-text paste.

Can I use <strong>, <hr>, or links in a KDP description?

They are not on KDP’s published description HTML list. Use <b> for bold. Skip horizontal rules and anchors. Website URLs are also listed under description content restrictions.

Are emoji allowed in a KDP book description?

No. KDP lists Unicode emojis among content it will not accept in the description. Remove them before you publish.

How do I fix “invisible characters” in a KDP description?

Review Source view, delete empty brackets (<>), strip unsupported markup, and if needed re-type the description instead of pasting. KDP’s fix article walks the same path.

Is there a free way to check my description HTML?

Yes. The free KDP Listing Checker validates description HTML and length against the same rule corpus we use for generated copy. The KDP Description Generator is the paid path that writes and renders the HTML for you.

Related tools

Disclaimer

SmartKDP is independent of Amazon. “Amazon,” “Kindle,” and “KDP” are trademarks of their respective owners and are used here only to describe publicly documented book-description and metadata rules. Always confirm final HTML, character counts, and eligibility in your KDP account and current help docs before publishing.