Countdown timer for your website, free
A deadline people can see.
One that
actually ends.
You can add a free countdown timer to any website with a few lines of code: set the deadline and its timezone, paste the code where the timer should appear, and it counts down in every visitor’s browser and replaces itself with an “ended” message, or disappears, at zero. The generator below writes that code for a box on one page or a bar across every page, with the steps for Shopify, WordPress, Squarespace, Wix and Webflow. It also covers the one rule that matters: the deadline has to be real. A timer that restarts for every visitor is false urgency, which the EU and UK ban outright. Builderify has a countdown block too, and an announcement bar that ends on time.
By the Builderify team
Four things a website countdown timer
has to get right.
Most free timers get the ticking right and the rest wrong: the wrong timezone, a row of zeros after the sale, or a clock that starts again for the next visitor. The generator handles all four.
-
01
One deadline, with its timezone
Sunday 23:59 means a different moment in Lisbon and in Chicago. The code fixes the end to one instant, so every visitor sees the same deadline counted in their own time.
-
02
Something sensible at zero
A timer stuck on 00:00:00 tells visitors the sale ended and you didn’t notice. At zero, show an “ended” line or take the timer away.
-
03
Readable on a phone
One short line, digits that don’t jump as they change, and no layout that pushes the page around.
-
04
A real deadline
The same end for everyone, and no quiet extension. A clock that restarts for each new visitor is false urgency; section 04 has the rules.
Free countdown timer generator
for any website.
Set the deadline and what happens at zero, pick a box or a bar, and copy the code. It has no account, no tracking and nothing to load from anyone else’s server; it runs in the visitor’s browser.
<!-- Countdown timer: ends 2026-10-18 23:59 (UTC+00:00) -->
<div id="countdown-timer"></div>
<script>
(function () {
var ends = Date.parse('2026-10-18T23:59:00+00:00');
var label = "Autumn sale ends in";
var after = "The autumn sale has ended.";
var el = document.getElementById('countdown-timer');
el.style.cssText = 'display:inline-block;background:#111827;color:#ffffff;padding:12px 18px;border-radius:10px;font:600 16px/1.4 system-ui,sans-serif;text-align:center';
var text = document.createElement('span');
var clock = document.createElement('span');
clock.setAttribute('role', 'timer');
clock.style.fontVariantNumeric = 'tabular-nums';
el.appendChild(text);
el.appendChild(clock);
function pad(n) { return (n < 10 ? '0' : '') + n; }
function tick() {
var left = Math.floor((ends - Date.now()) / 1000);
if (left <= 0) {
el.textContent = after;
return;
}
var d = Math.floor(left / 86400), h = Math.floor(left % 86400 / 3600), m = Math.floor(left % 3600 / 60), s = left % 60;
text.textContent = label ? label + ' ' : '';
clock.textContent = (d ? d + 'd ' : '') + pad(h) + 'h ' + pad(m) + 'm ' + pad(s) + 's';
setTimeout(tick, 1000);
}
tick();
})();
</script>
The end is fixed to one instant using the timezone you picked, so a visitor anywhere sees the same deadline. The clock carries role="timer", which screen readers don’t announce every second.
How to add a countdown timer
to Shopify, WordPress, Squarespace, Wix and Webflow.
A box goes where you want it on one page, usually above the offer or the buy button. A bar goes into the code that every page shares. Paste only one timer of each kind per page.
| Platform | A box on one page | A bar on every page |
|---|---|---|
| Shopify | In the theme editor, add a Custom Liquid section where the timer should sit, if your theme offers one, paste and save. | Online Store › Themes › Edit code, then paste into layout/theme.liquid just before </body>. |
| WordPress | Add a Custom HTML block where it should sit and paste. Do it as an administrator: other roles can have scripts stripped. | Add it with a header-and-footer code plugin, or before </body> in a child theme’s footer. |
| Squarespace | Add a Code Block and paste. Code blocks run JavaScript on the Core plan and above. | Pages › Custom Code › Code Injection › Footer, on Core, Plus or Advanced. |
| Wix | Add Elements › Embed Code › Popular Embeds › Embed HTML, then Enter Code and Apply. It runs in a frame, so size the element to fit. | Settings › Custom Code › Add Custom Code, All pages, Body – end. Needs a published site with a connected domain. |
| Webflow | Drag a Code Embed element where it should sit and paste. Needs a paid Workspace or an active Site plan. | Site settings › Custom code › Footer code, then publish. Also on paid plans. |
| Any HTML site | Paste it into the page where the timer should appear. | Paste it just before </body> on every page, or in your shared footer. |
For a bar that also needs a start time and a link, the announcement bar generator writes one that switches itself on and off.
Are fake countdown timers legal?
In the EU and UK, no.
Both put the same practice on their list of commercial practices that are unfair in all circumstances, whatever the effect: falsely stating that a product, or particular terms, will only be available for a limited time, to push someone into deciding straight away.
This is a summary to help you use a timer honestly, not legal advice for your case.
“Falsely stating that a product will only be available for a very limited time”, or on particular terms for a very limited time.
“Falsely stating that a product will only be available for a limited time”. In force since 6 April 2025.
-
01
A timer that restarts for every visitor
Often sold as an “evergreen” countdown. Each visitor is told about a deadline that doesn’t exist.
Use one end for everyone, as the generator does.
-
02
A “final” deadline that quietly moves
The sale is extended but the old deadline was presented as the last chance.
If you extend, say so on the timer and in the offer.
-
03
A timer on a price that never changes
The countdown ends and the same offer carries on.
When it ends, end the offer, and show the ended message.
A countdown in the same widget
as your offer and your chat.
The free code above is all most sites need. If you already use Builderify’s floating widget, its Countdown Timer block counts down to a date and time in your widget’s timezone and disappears at zero, next to whatever else the widget holds: a discount popup, live chat or a newsletter signup.
It runs on the 250 free credits every account gets each month, at 10 credits per 1,000 page loads of the widget. For a message across the top of the page with a start and an end, Notifications take themselves down on time too.
What the block does
- Counts down to one date and time, the same for every visitor
- Uses the timezone set for your widget
- Removes itself when it reaches zero
- Three looks: Default, Compact and Minimal
- Show it only on some pages, devices, or to new or returning visitors
Know this first
- It sits inside the floating widget, not in your page’s own layout
- The digits only: add your message in a text block beside it
- No “ended” message or colour settings of its own
- One countdown per widget
- No per-visitor timers, by design
The widget shows “Powered by Builderify”; packs from $9, once, if you outgrow the free credits.
Countdown timers, before you ask.
Set the end date, time and timezone in a generator, copy the code and paste it where the timer should appear: a Custom HTML or code block for one page, or the site-wide footer code for a bar on every page. The timer runs in each visitor's browser, with no account or monthly fee.
Yes, if the code fixes the deadline to one instant. A deadline written with its UTC offset, such as 2026-11-01T23:59:00+00:00, is the same moment everywhere, and each visitor's browser counts down to it from their own clock.
Whatever the code says. A good timer either replaces itself with a message such as "The sale has ended" or removes itself, rather than sitting on 00:00:00. Then end the offer too.
Falsely stating that a product will only be available for a limited time is banned in all circumstances in the EU, under Annex I of the Unfair Commercial Practices Directive, and in the UK, under Schedule 20 of the DMCC Act 2024. A timer that restarts for each visitor, or a final deadline that is quietly extended, risks both. This is not legal advice.
Yes, as a block in the floating widget. It counts down to one date and time in the widget's timezone and disappears at zero, and can be shown only on certain pages or devices. It shows the digits only, so add your message in a text block, and it runs on 250 free credits a month.
Sources
Read on 11 October 2026.
- EUR-Lex Unfair Commercial Practices Directive 2005/29/EC, Annex I
- legislation.gov.uk Digital Markets, Competition and Consumers Act 2024, Schedule 20
- Wix Help Center Embedding a site or a widget (Embed HTML)
- Webflow Help Center Custom code embed
- Shopify Help Center Extend your theme with custom code
- Squarespace Pricing and plan features (code blocks)
- Squarespace Help Customize parts of your site with code injection
- MDN ARIA: timer role
Stop losing the visitors
you already paid for.
More leads from the traffic you already have, and follow-up that sends itself. Free to start. No card, no monthly fee.