← All articles
Ad Creation5 min read

How much text on a Facebook ad image is too much?

Meta dropped the 20% text rule, so the limit on a Facebook ad image is now one glance. What to put on the image, what to move, and how to check it.

The designer sends over the sale static. A headline, three benefit bullets, a discount badge, a star rating, the logo, and "free shipping" across the bottom. Someone on the call asks whether it passes the 20% rule. Nobody is sure the rule still exists.

As a hard rule, it doesn't. Facebook stopped enforcing the 20% text limit in 2020, which BASIC thinking reported in September of that year. Meta's guidance still says, in its own words quoted by Social News Desk, that "images with less than 20% text perform better." So the question moved. You are no longer asking what Meta will reject. You are asking what a thumb in mid-scroll will read.

Short answer: Put one claim on a Facebook ad image: the offer or the hook, in a few words that read at feed size on a phone. Meta dropped its 20% text limit in 2020 but still recommends staying under it. The working limit is one glance, so every extra line competes with the claim that sells.

The takeaways

  • The 20% limit has not been enforced since 2020. Meta still recommends it and publishes no data behind the recommendation, so treat it as a hint about delivery you cannot audit.
  • Count the claims on the image. A static with 15% text coverage can still carry four competing messages. One bold line covering a third of the frame carries one.
  • Check two things before launch: that the claim reads at feed width on a phone, and that a saliency map puts the first fixation on it.

Does Facebook still enforce the 20% text rule?

No. Facebook's 20% text rule stopped being enforced in 2020, and the Text Overlay tool that used to grade your image went with it.

What stayed is the recommendation. Meta still tells advertisers that images under 20% text perform better, and that sentence is all you get. No published dataset, no breakdown by placement, no word on whether delivery still leans against text-heavy images or people just scroll past them.

I don't know which is true, and neither does anyone quoting you a precise penalty. From years of running statics, I rarely find it matters: an image text-heavy enough to fear a delivery penalty has already lost the reader. That human penalty is the one you can test.

Why is one glance the real limit on image text?

A static in the feed gets one look before the thumb decides. In that look the eye lands on whatever stands out most (a face, a high-contrast badge, the biggest type) and reads maybe a handful of words from there.

That makes text area the wrong unit. The old 20% rule measured how much of the frame the letters covered. It never asked how many separate messages they carried. Take the sale static from the top of this post. Its text might cover well under a fifth of the frame and still put six things in front of a reader with one glance to spend. Each block is another candidate for the first fixation, and five of the six are not the reason anyone buys.

A single line like "40% off until Sunday", set big, can cover more area and still win, because there is nothing for it to compete with. The eye has one place to go.

What belongs on the image, and what goes in the primary text?

The image carries the one claim the scroll has to catch: either the offer (the discount, the free trial, the price) or the hook (the pain, the surprising fact, the question). Pick one. If you can't, the ad has two jobs and should be two ads.

Everything else moves to the text fields around the image. Proof, the second and third benefit, delivery terms, the star rating: the primary text and headline exist for this, and people who stopped for the claim will read them. How to write those fields is its own discipline.

Two exceptions earn a place on the image. Text that belongs to the product itself, like a label on packaging, is part of the picture. And conditions that legally have to sit next to an offer stay with the offer. Keep them small and out of the way of the claim. Your logo can usually shrink further than your brand team would like.

How do you check image text before you spend on it?

Run two tests on every static, both before launch.

The first is legibility at serving size. Shrink the image to feed width on a phone and hold it at arm's length. If the claim needs squinting, it is decoration. Never judge type at 100 percent in the design file. On vertical placements, also check that the text clears the interface overlay, because Reels and Stories cover parts of the frame.

The second is attention. In my own pipeline every generated static gets a DeepGazeIIE pass, a neural saliency model trained on human eye-tracking data. It returns a per-pixel heatmap, the predicted scan-path order and region scores. The question I ask of it is narrow: does the first predicted fixation land on the claim, or on the badge, the logo or the bullet list? It predicts where eyes tend to land without watching your real audience, and a person acts on its flags.

When does more text on the image work?

When the text is the creative. A customer review rendered as the whole image, a screenshot of a message thread, a notes-app style list: these formats fill the frame with words and still stop the scroll, because the reader takes the whole thing as one object. The block of text is the single claim.

The same tests still apply. The first line has to read at feed width and has to work as a hook by itself, since that is all most people will read before deciding.

Before any of my statics go out, a copywriting critic also scores the concept against 6 direct-response principles and returns pass or fail with the offending line quoted. A text-heavy image usually fails the same way: the line that should sell is buried under the line that explains.

That loop (write the claim, predict where the eye lands, check the copy, launch, read the result) is how the creative side of Adscalr is built. The 20% rule was always a rough stand-in for one honest question: will the person see the claim?

This is the thinking behind Adscalr.

See the product →