The offer ends at midnight on Sunday. You want a clock on the page that ticks down to it, so nobody can say they did not know. Simple enough, until you wonder whose midnight that is: yours, your server’s, or a customer’s three time zones away.
To add a countdown timer in WordPress you need a block or plugin, a correct end time, and a plan for what the page shows once the clock reaches zero. The tool is the easy part. Getting the time right, keeping the deadline honest and tidying up afterwards are what make a countdown help rather than hurt.
Decide what the clock is counting to
A countdown is a promise. Before you build one, write down in one line what happens when it reaches zero:
- “The festive discount ends and prices return to normal.”
- “Registrations for the [Name] workshop close.”
- “Orders placed after this will not arrive before the holiday.”
If you cannot finish that sentence with something that genuinely changes, the page probably does not need a timer. If you can, the same sentence becomes the label above the clock, which is clearer than a bare row of numbers.
Ways to add a countdown timer in WordPress
WordPress has no countdown block of its own, so the timer comes from one of these places.
A block plugin
Several block collections in the plugin directory include a countdown block, and there are small plugins that add only that one block. If you already use a block collection for other things, check its block list before installing anything new; not every edition of every collection includes one.
Your page builder
Many page builders offer a countdown element; look through your builder’s element list to see whether yours does. If the page was built with a builder, use its element so the design matches and you are not adding another plugin for one feature.
A dedicated countdown or “urgency” plugin
These offer more display options, such as bars across the top of the site or timers on product pages. Many are marketed around urgency, and some include “evergreen” timers that restart for every visitor. Read the section on honest deadlines below before turning one of those on.
No timer at all
Sometimes a plain line of text does the job: “Offer ends Sunday [date] at 11:59 pm (India time).” It never breaks, works without scripts, and nobody has to remember to remove a widget. For a short notice across the whole site, an announcement bar at the top of your pages carrying that sentence can be enough.
Weighing a plugin against a simpler route is the theme of our group guide on how to add features to a WordPress site; a countdown is a good example of a feature that is easy to install and easy to forget.
Setting up the timer, step by step
- Check your site’s time zone under Settings → General. It should be a city in your own time zone, not a bare UTC offset that someone set years ago. The difference between the two is explained in our time zone and date format walkthrough.
- Add the block or widget to the page, near the offer itself rather than at the very top of the page, so the clock sits next to what it refers to.
- Enter the end date and time. Read the block’s settings to see which time zone it uses: the site’s setting, UTC, or the visitor’s device. This varies between tools.
- Write a label, such as “Festive discount ends in”, and choose which units to show. Days, hours and minutes are usually enough; a seconds counter adds movement without adding information.
- Set the expiry action. Most timers can hide themselves, show a message or redirect at zero. A short message, “This offer has ended”, is the safest.
- Check the page on a phone. Four large number boxes in a row can overflow a narrow screen.
- Test the ending. On a draft or test page, set a timer to end five minutes from now and watch what happens at zero, including after a page refresh.
Time zones: the part that goes wrong most often
A countdown runs in the visitor’s browser, but the end time is set by you. Problems appear when those two disagree.
| How the tool sets the end time | What a visitor in another time zone sees | Watch out for |
|---|---|---|
| A fixed moment (site time zone or UTC) | The same remaining time as you, wherever they are | Your label must name the time zone if you also write the end time as text |
| A local time on the visitor’s device | A clock that ends at their midnight, not yours | The real offer may already have ended for them, or not yet |
For a sale, you almost always want a fixed moment, because the real change, such as prices going back up, happens at one moment for everyone. Also remember that a timer reads the visitor’s device clock to calculate what is left. If someone’s phone clock is wrong, their countdown will be wrong too. That is one more reason to write the end date in plain text near the timer.
Keep the deadline honest
A countdown only works because people believe it. Timers that reset when the page is reloaded, or “evergreen” timers that start fresh for every new visitor, turn a real deadline into a trick. Returning customers are the ones who spot it, and they are the customers you can least afford to lose.
There is a legal side as well. Consumer protection rules in the EU, the UK and India all treat false urgency, such as claiming an offer is about to end when it is not, as an unfair or misleading practice. That is a general point rather than legal advice, and if you are unsure how the rules apply to a particular promotion, ask someone qualified. The simple test is whether the timer matches a real deadline. If it does not, do not run it.
An honest countdown follows three simple rules:
- The deadline is real, and the offer actually ends when the clock says.
- The same deadline applies to every visitor.
- When the offer ends, it is not quietly extended with a fresh timer the next morning. If you do decide to extend it, say so plainly.
Make the real offer end on time
The timer is decoration; the price change is the real thing. If you sell through WooCommerce, schedule the sale price itself using the Schedule link next to the sale price field, so prices change at the same moment the clock reaches zero. Coupon codes should have a matching expiry date. Our post on getting a WooCommerce store ready for a festival sale covers the rest of that preparation.
If you use a caching plugin, clear the cache after the sale ends. Most timers calculate in the browser and are not affected, but any text or banner that changes at the deadline may be served from an old cached copy until you do.
Removing it afterwards
A page still showing “00:00:00” or “This offer has ended” weeks later looks abandoned. Put a reminder in your calendar for the day after the deadline:
- Remove the countdown block or widget from every page where you placed it.
- Update or remove the offer text around it.
- If a plugin was installed only for this sale, deactivate it. Delete it if you will not use it again, after checking it left nothing behind on the page, such as a shortcode.
- Check any popup, bar or email footer that pointed to the offer.
A countdown is a small part of running the site day to day, the sort of task our complete WordPress guide places alongside the regular checks.
Frequently asked questions
Can I show a countdown in an email as well as on the website?
Not with a WordPress timer block, because emails cannot run the scripts that make it tick. Some email marketing services offer timer images that update when the email is opened. A simpler choice is to state the end date and time clearly in the email and link to the page with the live countdown.
Why does my countdown show a different time on my phone and laptop?
Usually one device has a wrong clock or time zone setting, or the timer is set to use each visitor’s local time rather than a fixed moment. Check the block’s time zone option first, then the device settings. If the two differ by a whole number of hours, a time zone setting is the likely cause.
Can I use one timer across several pages and update it in one place?
Yes. Build the timer with its label inside a group, save it as a synced pattern, and insert that pattern on each page. Changing the date in the pattern updates every copy. With a page builder, its global or saved widget feature does the same job.
Is a countdown timer worth it for a service business, not a shop?
It can be, when there is a real deadline: an early-booking rate, a course start date, or the last day to order before a holiday. For a service with no fixed end, a timer adds pressure without a reason, and a clear line about availability usually reads better.
Before the clock starts
Three checks cover most of it: the time zone, a test ending on a draft page, and a reminder to take the timer down. Occasionally the timer, the sale prices and the cache still disagree, usually because each one reads the time from a different place. Working out which is out of step is something our WordPress support can help with.
Next in this series: How to Add a Search Bar in WordPress (Header or Menu)