The withdrawal button has been mandatory in the EU since 19 June 2026 (Directive (EU) 2023/2673), and the rules go further than requiring a mere link: they precisely define the button's accessibility conditions. Here are the four possible placements, their advantages, and the pitfalls that break compliance.
What the rules require
Directive (EU) 2023/2673 sets three cumulative criteria for the withdrawal button:
- Clear identification through the wording "Withdraw from the contract here" or any equivalent unambiguous phrase.
- Direct visibility: the consumer must not have to search actively.
- Permanent availability throughout the withdrawal period, from any page of the site.
The most demanding criterion is the third. "From any page" explicitly rules out solutions where the button appears only on the home page or in the logged-in customer area. It is this point that makes most partial placements non-compliant.
One common confusion is worth clearing up: the button is not a per-order button that would display for 14 days and then disappear. It is a permanent feature of the site, visible continuously on every page, whatever the state of the orders. The 14-day period runs for each customer from their own delivery; the mechanism itself stays displayed permanently. You therefore have nothing to "schedule" or to make appear or disappear: once it is in place, the button stays there.
The four possible placements
1. Permanent footer (recommended)
The site's footer, present on every URL, is the legally safest placement. It is also the placement many sites already use for the online cancellation button, so following the same pattern for withdrawal gives you an alignment that is already tried and tested.
Advantages:
- Present on every page unconditionally (navigation, cart, product page, listing page, customer account)
- Consistent with the other legal notices (terms of use, terms and conditions, GDPR)
- A pattern consumers expect
- No significant UX change
Pitfalls to avoid:
- A footer collapsed by default on mobile (a "Legal information" accordion): the button must be visible without any interaction
- A link buried among 30 other notices, in pale grey (the "direct visibility" criterion requires a certain legibility)
- A "sticky bottom" footer that hides itself when you scroll up
2. Permanent header
The site's permanent header, provided it is always visible (sticky or not), is acceptable but less common.
Advantages:
- Maximum visibility (the area the eye scans first)
- A consistent position on every page
Pitfalls to avoid:
- The button hidden in a collapsed hamburger menu on mobile: non-compliant. The directive requires direct visibility, not visibility conditional on an action.
- The withdrawal item lost among 8 other navigation elements
- A visual clash with the site's main CTA (for example "Buy now" in red next to "Withdraw from the contract") that creates UX confusion
3. A dedicated "Right of withdrawal" page
A standalone "/droit-de-retractation" page (or an equivalent title), accessible from the main menu or the footer, is acceptable subject to a condition: the entry link to that page must itself be present on every page of the site.
Advantages:
- Lets you bring all the information together (legal text, form, FAQ, button)
- A Google-indexable page that can rank on "right of withdrawal [brand name]" queries
- Good practice from an educational standpoint
Pitfalls to avoid:
- A page accessible only from the collapsed footer on mobile (see pitfall #1)
- An access link in a very light colour or with a misleading title ("Our commitment")
- Pointing to this page without an interactive button on it: the dedicated page must itself contain the button, not just explain how to withdraw
4. Logged-in customer area (not enough on its own)
Placing the button only in the logged-in customer area does not comply with Directive (EU) 2023/2673. The consumer must be able to exercise their right even if they have no account (guest checkout) or if they have lost their login details.
The customer area may host an enriched version of the button (with a summary of eligible orders, examples), but in addition to a public button, never as a replacement.
The classic pitfall: "My CMS doesn't let me edit the footer"
This is a common objection but a false one in 95% of cases. All the major CMSs (Shopify, WooCommerce, PrestaShop, Wix, Webflow, Squarespace, WiziShop) let you add a global script into the <head> or the footer. The installation guide by CMS sets out the procedure for each one.
If your technical stack really allows no global insertion at all (an extremely rare case, usually WordPress sites with a theme locked down by a third-party developer), you have two options:
- Ask your developer to add a specific hook (5 minutes)
- Migrate to a more modern CMS (recommended for reasons other than withdrawal)
Failing to get compliant on the pretext that "the footer can't be edited" exposes you to the applicable penalty regime (up to 4% of annual turnover for widespread infringements under the Omnibus Directive (EU) 2019/2161; in Ireland, up to €60,000 under the Consumer Rights Act 2022).
As a complement: the link in transactional emails
Order-confirmation and dispatch emails are a durable medium that the customer keeps. Adding a "Withdraw from the contract here" link to them strengthens the accessibility of the process, at the precise moment the customer has the contract in mind. Several legal analyses do in fact cite transactional emails among the accessible placements.
It is a complement, not a replacement. An email does not on its own satisfy the "from any page" availability requirement of the site: the permanent button (in the footer) remains the anchor of compliance, and the email link reinforces it.
Best practice: test the button's accessibility
Three quick tests to run on your site once the button is installed:
Test 1: the scroll test
Go to the least-visited page on the site (for example: an obscure product page, a buried "About" page). Scroll to the bottom. The button must be visible there without any manipulation. If you have to click on an accordion or open a menu, the test fails.
Test 2: the mobile test
Repeat test 1 on a smartphone, in the real viewport (not in the desktop browser's responsive mode). Many well-built desktop footers become illegible or too small on mobile. The button must remain clickable with a touch target ≥ 24 px (WCAG / Google Mobile-Friendly recommendation).
Test 3: the older-user test
Ask someone over 60, with no prior context, to "find the button to cancel an order" on your site. If they take more than 30 seconds, your button is badly placed or badly labelled. This is exactly the test a national consumer regulator will apply during an inspection.
Special cases: multiple domains and subdomains
If your business operates across several domains (for example brand.com for consumers and brand-pro.com for B2B), the button must be installed on every domain where you sell to consumers. A button on brand.com does not cover brand-pro.com even if it is the same company.
The same goes for subdomains: if shop.brand.com is a genuine e-commerce shop and brand.com a showcase site, the button must be on shop.brand.com but may be absent from brand.com. That said, for consistency and to make communication easier, a uniform rollout is preferable.
BackToMe handles multi-site natively from a single account: one subscription, a coordinated rollout across all your domains with a centralised audit log.
In summary
The EU rules require a button that is directly visible, on every page, throughout the withdrawal period. The permanent footer remains the safest placement (aligned with the pattern already used for the online cancellation button). The header is acceptable outside a collapsed hamburger menu. A dedicated page works if its access link is on every page. The logged-in customer area alone is never enough. Three quick tests (scrolling an obscure page, real mobile, an older user) confirm that the mechanism is compliant.
Founder of BackToMe
Art. L.221-21 · 19 June 2026
Ready to install the withdrawal feature?
Install the withdrawal button on your site in five minutes. 7-day free trial: 0 € today, 30-day money-back guarantee.
Start the free trial →