Back to Blog
Marketing 2026-04-25 · 8 min read

FTC Affiliate Disclosure on WordPress (and How to Automate It)

Most affiliate sites get FTC disclosure wrong. Here's what the FTC actually requires and how to auto-inject compliant disclosures on WordPress.

Most affiliate sites I audit have a disclosure problem. Either the disclosure is buried in a footer link nobody reads, or it's vague language like "this post may contain affiliate links" that doesn't actually disclose anything, or it's missing entirely from individual posts because the site owner relies on a single page in the navigation.

The FTC has been clear about what compliant disclosure looks like since the 2009 endorsement guides, and clearer still in the 2023 update. The bar isn't ambiguous. Most affiliate marketing advice — including a lot of plugin documentation — has been telling people to do things that don't actually meet the standard.

This post is the no-spin version: what the FTC actually requires, what common WordPress patterns get wrong, and how to set up automated disclosure that meets the bar across every post that needs it.

What the FTC Actually Requires

The FTC's endorsement guides (16 CFR Part 255) require that material connections between an endorser and an advertiser be disclosed in any context where a reader wouldn't reasonably expect them. Affiliate links are exactly that kind of material connection — you get paid if the reader clicks and buys, and the reader almost certainly doesn't assume that by default.

The disclosure has to meet three criteria, all of them:

  • Clear. Plain language. "I get a commission if you buy through this link" is clear. "May contain affiliate links" is borderline. "As an Amazon Associate, this site participates in promotional programs" is technically clear but reads like legal boilerplate that readers skim past.
  • Conspicuous. Visible, not hidden. The 2023 update specifically called out that disclosures buried in a footer or behind a "click here for more" link don't meet the bar. The disclosure should be in the same area as the affiliate links it's disclosing.
  • Before the link. The reader needs to encounter the disclosure before they encounter the link they might click. A disclosure at the bottom of a 2,000-word post about a product they've already clicked through to buy doesn't help.

That third one — before the link — is where most WordPress sites fail. Footer disclosures don't count. About-page disclosures don't count. Sidebar widgets don't count if the reader can scroll past the affiliate link without seeing them.

The Common Mistakes

Mistake 1: Footer-Only Disclosure

A line in the site footer that says "this site contains affiliate links" is the most common pattern, and it's the one the FTC has specifically pushed back on. Footers are below-the-fold by definition, and most readers never scroll there. If your only disclosure is in the footer, you're not disclosing.

Mistake 2: About-Page Disclosure

A "Disclosure" or "Legal" page in the navigation is similarly insufficient. The reader has no obligation to find that page before clicking a link in a blog post. Disclosures need to live where the affiliate links live.

Mistake 3: "May Contain" Language

"This post may contain affiliate links" is hedging. If the post does contain them, the disclosure should say so directly. "This post contains affiliate links" or "Some links below are affiliate links — I get a small commission if you buy through them" is direct.

Mistake 4: Manual Insertion (Eventually Skipped)

The honest version of the disclosure problem on most WordPress sites is that the site owner intends to add a disclosure to every post and forgets on a few. I audited Acuario Pets when I started building Affiliate Buffet and found 11 posts with Amazon links and no disclosure — three years of accumulated forgetting. Manual disclosure works until it doesn't, and you usually don't find out which posts are missing it until you do an audit.

Mistake 5: Disclosure on Posts That Don't Have Affiliate Links

The opposite problem — slapping the disclosure on every post via a global template — is technically over-disclosure rather than under-disclosure, but it's still wrong because it teaches readers to ignore the notice. If half your posts say "this post contains affiliate links" and only some of them actually do, the disclosure becomes background noise.

What a Compliant Disclosure Looks Like

A disclosure that meets the FTC bar:

  • Is in plain language ("I get paid a commission if you buy through these links")
  • Appears at or near the top of the post, before the first affiliate link
  • Is visually distinct enough to be noticed (italic text, a small box, or a styled callout — not buried in body copy)
  • Only appears on posts that actually have affiliate links
  • Doesn't require the reader to click anything to read

A boilerplate template I've used:

Disclosure: Some links in this post are Amazon affiliate links. I earn a commission if you buy through them, at no extra cost to you. I only link to products I've actually used or would recommend to a friend.

Three sentences. States the relationship, the financial mechanism, and the editorial principle. That last sentence isn't required by the FTC, but it's good for reader trust and it gives you a reason to actually mean it.

How to Automate Compliant Disclosure on WordPress

The piece that makes manual disclosure fail is human attention — you can't be vigilant about a copy-paste task across hundreds of posts and three years of writing. Automating it is the only durable solution.

The FTC Disclosure module in Affiliate Buffet is the piece I built specifically to solve this. It auto-injects the disclosure on any post that contains an Amazon link, and only on those posts. You configure the disclosure text once, choose where it appears (before the first affiliate link, at the top of the post, or at the bottom), filter by post type if you want it on posts but not on pages, and forget about it.

The "before the first affiliate link" position is the FTC-correct one — the disclosure renders inline, immediately before the paragraph containing the first link. New post you add tomorrow with an Amazon link gets the disclosure automatically. Old post where you remove all affiliate links automatically loses the disclosure (because it no longer needs one).

The HTML-entity-safe injection matters more than it sounds — many WordPress plugins write Amazon URLs with `&` entities, which breaks naive link detection. The detection logic decodes entities before scanning, which is why it actually catches links that other plugins miss.

What Other Plugins Get Wrong

A few plugins handle FTC disclosure as a feature, but most have at least one of the following problems:

  • Global insertion (over-disclosure). Adds the disclosure to every post regardless of whether it contains affiliate links. Trains readers to ignore it.
  • Shortcode-based insertion. You have to add a `[disclosure]` shortcode to each post. Same failure mode as manual insertion — you'll forget on some posts.
  • Footer-only injection. Renders the disclosure at the bottom of the post, after the affiliate links. Doesn't meet "before the link" requirement.
  • No post-type filtering. Shows the disclosure on About pages, Contact pages, and category archives — anywhere posts render, including contexts where there are no affiliate links.

Disclosure for Non-Amazon Affiliate Links

Affiliate Buffet's Disclosure module specifically detects Amazon links because that's its domain. If you also use other affiliate networks (Skimlinks, ShareASale, direct merchant programs), you have two options:

  • Use a separate generic disclosure plugin for non-Amazon affiliate links, configured to detect whatever domain patterns those networks use.
  • Manually add a disclosure to posts with non-Amazon affiliate links if those posts are rare enough that automation isn't worth it.

The FTC requirement is the same regardless of which network the affiliate link points to. Amazon is just the most common case, which is why I focused there.

Verifying Your Disclosure Coverage

Once you have automated disclosure set up, the periodic check is to confirm it's still working. The simplest way: spot-check a few posts that have Amazon links and confirm the disclosure renders. If you make any change to your theme or to the plugin's filter chain, do this check immediately.

For a broader site audit, I cover the workflow in my WordPress content audit guide. ScanMyPosts can search post content for arbitrary HTML patterns — useful for confirming "is the disclosure text actually present in the rendered HTML of every post that should have it?" as a sanity check.

What Happens If You Get It Wrong

The FTC has historically focused enforcement on large-scale, deliberate non-disclosure (paid Instagram posts disguised as organic content, sponsored YouTube videos without sponsorship labels). Small affiliate blogs aren't typical enforcement targets.

But the more meaningful risk for a normal affiliate site is reader trust. Modern audiences are increasingly sensitive to undisclosed monetization, and "I didn't realize this was an affiliate link" feels deceptive to readers even if it's technically legal in their jurisdiction. Compliant disclosure is the right thing to do for the readers, and the FTC framework happens to be a good template for what "doing it right" looks like.

The Bigger Picture

FTC disclosure is one of those things that's easy to deprioritize because nothing breaks if you skip it — until it does. Setting up automated, post-targeted disclosure is a one-time setup that protects you from the slow accumulation of compliance gaps. If you're running an Amazon affiliate site on WordPress, the FTC Disclosure module in Affiliate Buffet is the pattern I'd recommend.

For the broader picture of the toolkit I've built around Amazon affiliate work, see the Affiliate Buffet overview post. And if you're tracking the bigger industry shift, the PA-API sunset is the most urgent thing on most affiliates' plate this quarter.