---
title: "Which HTML Tags KDP Actually Supports"
description: "The 12 HTML tags KDP accepts in a book description, the 4,000-character limit (tags count), what paste strips, and how to test in Source before publish."
source: "https://smartkdp.com/blog/kdp-description-html-tags-that-work"
date: "2026-08-09"
---

# Which HTML Tags KDP Actually Supports

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](https://smartkdp.com/tools/kdp-description-generator?via=guide:kdp-description-html-tags-that-work). If you already have copy, the free [KDP Listing Checker](https://smartkdp.com/tools/kdp-listing-checker?via=guide:kdp-description-html-tags-that-work) 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](https://kdp.amazon.com/help/topic/G201189630) 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](https://smartkdp.com/blog/kdp-description-html-tags-that-work/supported-tags-table.webp)

| Tag              | What it does                      | Notes                                                  |
| ---------------- | --------------------------------- | ------------------------------------------------------ |
| `<br>`           | Line break                        | Void tag (no closing tag). Two in a row = a blank line |
| `<p></p>`        | Paragraph                         | Adds a break after the block                           |
| `<b></b>`        | Bold                              | Use for emphasis, not whole paragraphs                 |
| `<em></em>`      | Emphasis (usually italic)         | Semantic emphasis                                      |
| `<i></i>`        | Italic                            | Visual italic                                          |
| `<u></u>`        | Underline                         | Use 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 list                     | Pair with `<li>`                                       |
| `<ul>` … `</ul>` | Bulleted list                     | Pair with `<li>`                                       |
| `<li></li>`      | List item                         | Only inside `<ol>` or `<ul>`                           |

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

| Tag / pattern                         | Why authors reach for it  | Official status                                   |
| ------------------------------------- | ------------------------- | ------------------------------------------------- |
| `<h1>`, `<h2>`, `<h3>`                | Big “headline” at the top | **Not supported** (KDP says so explicitly)        |
| `<strong>`                            | Bold alternative          | Not on the help-page list                         |
| `<hr>`                                | Horizontal rule / divider | Not on the help-page list                         |
| `<a href="…">`                        | Links                     | Not for descriptions; URLs are restricted content |
| `<div>`, `<span>`, `<table>`, `<img>` | Layout, images            | Not 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](https://smartkdp.com/blog/kdp-description-html-tags-that-work/tags-count-toward-4000.webp)

Rough budgeting:

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

A tight pattern burns more budget than it looks:

```html
<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](https://kdp.amazon.com/help/topic/GC4VASCGNQP6LQ7L), 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):

```html
<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](https://smartkdp.com/tools/kdp-listing-checker?via=guide:kdp-description-html-tags-that-work), or generate from a book brief with the [KDP Description Generator](https://smartkdp.com/tools/kdp-description-generator?via=guide:kdp-description-html-tags-that-work) so the renderer never emits unsupported tags.

## How to use the KDP Description Generator

1. Open the [KDP Description Generator](https://smartkdp.com/tools/kdp-description-generator?via=guide:kdp-description-html-tags-that-work) (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](https://smartkdp.com/tools/kdp-listing-checker?via=guide:kdp-description-html-tags-that-work) validates description HTML and length against the same rule corpus we use for generated copy. The [KDP Description Generator](https://smartkdp.com/tools/kdp-description-generator?via=guide:kdp-description-html-tags-that-work) is the paid path that writes and renders the HTML for you.

## Related tools

- [KDP Description Generator](https://smartkdp.com/tools/kdp-description-generator?via=guide:kdp-description-html-tags-that-work) — generate description HTML in the twelve supported tags, under 4,000 characters
- [KDP Listing Checker](https://smartkdp.com/tools/kdp-listing-checker?via=guide:kdp-description-html-tags-that-work) — free check of title, description, and keywords against KDP rules
- [KDP Keyword Generator](https://smartkdp.com/tools/kdp-keyword-generator?via=guide:kdp-description-html-tags-that-work) — seven backend keyword boxes without repeating the title
- [All tools](https://smartkdp.com/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.
