Build one short template in plain static HTML (headings, paragraphs, lists, a simple table), ask AI to fill it from your own item notes, and paste it into eBay's HTML view. Keep scripts, iframes, remote includes and pop-ups out, because eBay's policy bans them. Then preview on a phone-width window before you publish.
The temptation with AI is to ask for a "beautiful eBay template" and get back a page of fonts, banners and a slideshow. That is how listings fail. Most buyers read on a phone, in a narrow column, and anything fancy either breaks there or trips eBay's code filter. The answer is the opposite: one dull, dependable template that you reuse for every item.
What eBay's policy actually bans
eBay's JavaScript policy is blunt about active content. JavaScript, Flash, plug-ins and form actions are no longer displayed in listings; active content was removed from existing listings and is not allowed in new ones. The policy then lists what code may not do, and the list reads like a security checklist rather than a style guide. Code in a listing may not:
- drop or read cookies on eBay pages;
- redirect buyers away from eBay;
- automatically call remote scripts or pages;
- create automatic pop-ups, with links that open in a new window exempt;
- automatically post to eBay scripts or overwrite areas of the listing outside the item description;
- manipulate areas outside the description, such as changing fonts, colours or backgrounds in eBay's headers and footers;
- load a program onto a buyer's computer, or launch a song or video when the listing opens.
The policy also treats any attempt to disguise what a listing's code does as a breach in its own right. eBay says it may respond by removing the listing, issuing a warning, restricting activity or suspending the account. A listing that contains active content triggers a "Disallowed JavaScript/HTML Syntax" error when you list. The wording differs a little between eBay sites and changes without notice, so open the version in your own site's help pages before you rely on any detail.
Two practical points follow. First, a template that uses only text structure and inline styling has nothing to ban. Second, "active content" rules are about behaviour, not looks, so what you are really avoiding is anything that moves, loads from elsewhere, or reaches outside the description box.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe filter can be cruder than the policy
There is a quirk worth knowing. A seller-tool support thread from March 2026 describes a seller whose listings were refused with a "JavaScript not allowed" message even though the markup was only div, table, td, p, h1 and span with inline styles. The error text lists fragments such as cookie, replace(, IFRAME, META, includes and base href. In that thread, the likely cause turned out to be the word "cookie" appearing in the listing's plain text, and putting it in its own paragraph got the listings through. No fix came from eBay; the thread closed with the pattern-matching explanation as a suspicion.
The lesson is a test routine, not a rule. If a clean template is rejected, copy the fragments named in the error message, search your description for each one, including inside ordinary words and product text, and reword the match. A cookie jar, a "replace" instruction in a repair guide and a "meta" reference in a hobby item can all trigger it. Cheap to try, and quicker than arguing with a filter.
Design the template for a phone first
I will not quote a share of eBay visits that come from phones, because eBay does not publish a figure I can verify here. Open your own Seller Hub traffic report or ask a few buyers instead. What is safe to say is that a description box has to survive a narrow screen, and the rules below do that.
- One column. No side-by-side layouts, no fixed widths in pixels. Let text run the full width.
- Short blocks. Two to four lines per paragraph, with a heading before each block so a buyer can scroll to what they want.
- Tables only for specs. Two columns, label and value, and short values. A wide table gets squeezed or scrolled sideways on a phone.
- Plain fonts and sizes. Use normal heading tags rather than big coloured text. Avoid tiny text for flaws; those lines matter most.
- No images in the HTML that you do not host on eBay. Photos belong in eBay's picture uploader, where buyers see them in the gallery and can zoom. A picture linked from your own server vanishes from the description the day that server moves, and eBay's links policy requires secure HTTPS for anything it does let you link to.
- Nothing the page needs to run. If a tab, a slideshow or a collapsible panel is needed to read the key facts, a buyer without it sees nothing.
A template you can copy
This is deliberately small. It has an opening line, a condition block, a flaws block, a specification table, what is included, and a short note on dispatch. Replace each bracketed placeholder with the facts from your own notes.
<h2>[Item name in plain words]</h2>
<p>[One sentence: what it is, who it suits, and its condition class.]</p>
<h3>Condition</h3>
<p>[Overall condition in two sentences. Say how it has been used and stored.]</p>
<h3>Flaws and wear</h3>
<ul>
<li>[Flaw 1 and where it is. Refer to the photo number.]</li>
<li>[Flaw 2 and where it is.]</li>
</ul>
<h3>Specifications</h3>
<table>
<tr><td>Brand</td><td>[value]</td></tr>
<tr><td>Model or part number</td><td>[value]</td></tr>
<tr><td>Size or dimensions</td><td>[value, with units]</td></tr>
<tr><td>Colour</td><td>[value]</td></tr>
</table>
<h3>What is included</h3>
<p>[List what the buyer receives, and what is not included.]</p>
<h3>Dispatch</h3>
<p>[Handling time you actually meet, packaging in one line.]</p>
That is about 30 lines of HTML and it will read cleanly in a narrow column, because the browser decides the wrapping. Nothing here loads from elsewhere, nothing runs, and nothing reaches outside the description box.
Getting AI to produce your version
You can write the template once by hand and ask AI only to fill it, or you can ask it to design the template. Either way, the instruction matters. Here is a prompt for the design step.
Write a reusable eBay listing description template in plain static HTML.
Rules:
- allowed tags only: h2, h3, p, ul, li, table, tr, td, strong, br
- no script, no iframe, no style blocks, no external links, no includes, no meta, no forms
- no fixed pixel widths; it must read in one narrow column
- sections: opening line, condition, flaws, specification table, what is included, dispatch
- use square-bracket placeholders for every fact
- do not add any claims, guarantees or marketing slogans
Return only the HTML.
Compare what comes back with the list. A typical illustrative response adds a coloured banner in a div with a pixel width, a "100% satisfaction guaranteed" line and a style tag. Delete all three. The banner breaks narrow screens, the guarantee is a promise you did not make, and the style block is more markup than the template needs. Ask once more with those faults named if you prefer, but removing them by hand takes a minute.
Filling it from your own item notes
Now the daily job. For each item, jot facts into a simple notes sheet: one row per item, one column per placeholder. Capture them at the moment you handle the item, before you photograph it, because memory fades by the time you list. A two-minute note beats a long guess.
Illustrative notes for a used desk lamp from a small accountancy practice's office clear-out:
Item: adjustable desk lamp, metal arm
Brand: [from base plate]; model on base: DL-40
Size: arm extends to 62 cm; base 16 cm across
Colour: black
Condition: used, works, bulb included
Flaws: scratch on base underside (photo 4); small chip in paint near hinge (photo 5)
Included: lamp, bulb, no box
Dispatch: ships in two working days, wrapped in paper and boxed
Then the filling prompt:
Fill this HTML template using ONLY the notes below. Do not add any fact, material, measurement or feature that is not in the notes. If a placeholder has no note, write "Not stated" and list it after the HTML. Keep each paragraph under 40 words. Keep the tags exactly as in the template.
TEMPLATE:
[paste the template]
NOTES:
[paste one item's notes]
The "not stated" rule is the important line. Without it, a model fills a missing material or wattage with something plausible. An illustrative bad output: the template's brand row reads "Brand: Generic" and a sentence calls the lamp "energy-efficient LED", though the notes say only "bulb included". You catch that by reading every output against the note, which takes about a minute per item. For help on the content side, such as how to word condition and flaws, the condition, flaws and measurements template goes further than this one.
Test on mobile before you publish
Do not trust the layout you see on a desktop screen. Three ways to check, from quickest to most reliable:
- Use eBay's own preview. The Seller Hub listing form has a preview of the item. I won't describe the buttons because eBay moves them, so look for a preview or "see how buyers will view it" option in your own form and switch to the phone view if there is one.
- Narrow your browser window. Drag the window to about the width of a phone. If a table forces sideways scrolling or a line runs off the edge, shorten it.
- Look at it on a real phone. List one item as a test, or open a draft preview, on a phone, and read it with your thumb. It takes two minutes and finds problems no emulator shows.
Check at the same time that every placeholder was filled. A leftover square bracket on a live listing is embarrassing and easy to miss in a batch. Search the HTML for an opening bracket before you publish.
A rejected description, step by step
Say the listing form returns an error about disallowed code and you cannot see why. Work through this in order:
- Switch to the HTML view and look for anything outside your template: scripts, a stray iframe, a meta tag, an include, a style tag, or a link tag that AI added.
- If you pasted text from a supplier's page or a PDF, paste it as plain text first. Copied web content often carries hidden markup.
- Take the fragments from the error message and search your description for each one. Reword any hit, including inside ordinary words.
- Strip the description to its heading and one sentence, and re-add blocks one at a time until the error returns. The last block you added holds the cause.
- If a template that worked before now fails, change nothing for a day and test again with a different item; the filter's behaviour has changed for other sellers before.
Step four is the most reliable. It is also the reason to keep your template in small blocks.
Variations by kind of item
One template does not mean one wording. Keep the same structure and change which rows appear.
Clothing and shoes
Add rows for size label, measured chest or waist, length and fabric from the care label. Measured sizes beat label sizes because brands differ, and returns for fit are an expense. Ask AI to turn your tape-measure notes into a tidy table, with units in every cell.
Electronics and tools
Add a "Tested" line that says what you tested and how, such as powered on and ran for ten minutes, or untested and sold as seen. Do not let AI write "fully tested" if you did not test it. Add the model number exactly as printed, since buyers search on it.
Collectables and books
Add edition, year printed, and the condition of each part: cover, spine, pages. For collectables, say what is original and what is replaced. This category punishes vagueness the hardest, because buyers are experts in the item.
Parts and spares
Add compatibility. List the models the part fits as you verified it, and say you have not verified any others. Copying a long compatibility list from a supplier invites returns for items that do not fit.
The same lamp, before and after
A before-and-after shows what the template buys you. Here is the kind of description many sellers paste in when they are in a hurry, followed by the filled template for the same lamp, using the notes above.
Before (illustrative): "Great desk lamp, works perfectly, a few marks but nothing major, would suit any office, fast postage, any questions just ask." That is 21 words, and it answers none of the first four questions a buyer has: how big is it, what are the marks, what comes with it, and when does it ship.
After (illustrative, from the same notes): the opening line says it is a used black metal desk lamp, model DL-40, working. Condition says it has been used in an office and stored indoors. Flaws lists a scratch on the underside of the base (photo 4) and a small paint chip near the hinge (photo 5). The table gives arm reach 62 cm and base 16 cm across. Included says lamp and bulb, no box. Dispatch says two working days. It is longer, but every line is a fact the buyer can check against the photos, and no line is a claim you cannot support.
A quick sum: is the template worth the setup?
Illustrative figures for a seller listing 30 items a week. Writing each description from scratch takes about six minutes, so 180 minutes a week. With a notes sheet and the template, note-taking takes about two minutes per item, AI filling takes about one minute, and reading the output against the notes takes about one minute: four minutes per item, 120 minutes a week. The saving is an hour a week, and it grows if you reuse notes for a second marketplace. The first setup costs perhaps two hours once, so it pays back in about two weeks.
The saving is the smaller benefit. The bigger one is that every listing has the same fields, so a gap is visible. If the flaws block is empty on an item you know is worn, you notice, and the same discipline cuts the number of "not as described" complaints before they happen.
A pre-publish check you can paste into your routine
- Open the HTML view and scan for any tag outside your template: script, iframe, meta, link, style, form, base.
- Search for an opening square bracket, to catch an unfilled placeholder.
- Read each fact in the table against the item notes, not against the AI's text.
- Check that every flaw named in the text appears in a photo, and every flaw visible in a photo appears in the text.
- Check units are present on every number, and that you used the same unit system throughout.
- Check that the description makes no promise about delivery dates, returns or guarantees that your policy fields do not already state.
- Preview at phone width.
Seven checks sound like a lot, and the first six take under a minute on a short template once you have done them a few times.
What to leave out of the description altogether
A template tempts you to fill the space. Leave these out. Policies that duplicate eBay's own fields can contradict them the day you change one and forget the other. eBay's links policy bars links that send buyers to a site other than eBay, even when the link is not clickable, and its policy on offers outside eBay bars sharing email addresses or phone numbers before a sale is complete; keep contact in eBay's messaging. Keywords stuffed in a hidden or tiny block read as manipulation to buyers and to the platform's reviewers. Comparative claims such as "better than the branded one" need evidence you rarely have. If in doubt, ask whether a fact helps a buyer decide, and if not, drop it.
Keeping a template library without mess
Once you have the base, name each variant plainly: "base", "clothing", "electronics", "collectable". Store them in one document, with a date on the latest version in the filename rather than inside the listing. When eBay's rules or your own policy change, update the base, then regenerate the variants from it. If you list on several marketplaces, the multichannel rule-set tutorial shows how to keep one set of item notes and produce a version for each site.
Finally, keep the description honest to the photos. If you change pictures with editing tools, check what eBay's rules allow first; the picture policy tutorial goes through it. And if a listing is ever taken down, the notice usually names the policy at fault, which the removed-listing checklist helps you read.
How to tell the template is working
After ten listings, ask three questions. Do the descriptions read the same way, so you can scan them in a minute? Do buyer questions repeat things the description already covers? Do returns cite a fact that is wrong in the description? If the first answer is yes and the second and third are no, the template is doing its job. If buyers keep asking about size, put a measurements row higher up. If returns cite condition, add a flaws line to the first screen.
Keep the first template boring and complete, change it only when a pattern of questions or returns tells you to, and never let AI add a fact you did not give it.
Questions about eBay HTML descriptions
Can I use JavaScript or an iframe in an eBay description?
No. eBay's JavaScript policy says active content such as JavaScript, Flash, plug-ins and form actions is not allowed in new listings, and it bans code that calls remote scripts or pages, reads or drops cookies, redirects buyers off eBay or opens automatic pop-ups. Use plain static HTML, and remove anything an AI tool adds beyond that.
Why does eBay reject a template that looks harmless?
The checker is a pattern filter. Sellers have reported rejections caused by ordinary words such as cookie appearing in the text, not only by code. If a clean template is refused, search your text for the words and fragments in the error message and reword them.
Should the template carry all my policies?
Keep it short. Put shipping and returns in eBay's own policy fields so they stay consistent and editable in one place, and use the description for item facts, condition, flaws and what is included.
Can AI write the description text as well as the layout?
Yes, from your own notes. Give it the facts you have checked and tell it to add nothing else. Then read the result against the item, because a model will happily invent a material, a size or a feature that sounds right.
Further reads
- eBay Magical Listing Checklist: Test AI Item Specifics Against Sold Data — Check item specifics after a listing tool fills them.
- How to Write eBay Listings With AI That Sell Faster — Titles and listing structure that help items sell.
- eBay Bulk Listing Tool: Magical Bulk Listing vs Third-Party Apps — When a listing tool does the layout for you.
- DeepSeek or ChatGPT for eBay Sellers: Which Writes Better Listings? — Which chat model drafts listing text more reliably.
- eBay Bulk Listing for Sports Cards: An AI Error Checklist — An audit routine for cards drafted in bulk.
- eBay Promoted Listings: Set Ad Rates With AI and a Margin Floor — Work out the highest ad rate each item can bear, set a margin floor, and test cost-per-sale rates by category with AI doing the arithmetic.
- eBay Seller Rating Levels: Audit Defects and Late Shipments With AI — How eBay's seller levels are set, and a weekly routine that turns Seller Hub defect and late-shipment exports into a ranked fix list with AI.
- eBay Store Automation With AI: What Is Allowed and What Isn't — Which eBay store jobs AI can safely draft, where the bot and agent rules bite, and how API-based tools differ from scrapers.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: eBay help pages on its JavaScript policy, links policy and policy on offering to buy or sell outside eBay; a seller-tool support thread reporting a March 2026 rejection.