Freeframe

How to Set Up a Black Friday Sale on Your Website

Build a Black Friday page on a URL you can reuse, add an honest sale banner, mark sale prices for Google and take it all down cleanly when the offer ends.

· 7 min read

To run a Black Friday sale on a small website, publish one landing page now on a permanent address such as /sale/black-friday, link to it from your home page, add a sale banner and sale prices that match what you actually charge, and mark those prices up so Google can show them. Then take everything down on the day the offer ends. Black Friday 2026 is on Friday 27 November, so you have about six weeks, which is plenty for a one-afternoon job plus time for Google to find the page. This guide walks through each step and the UK rules on "was" prices and countdown timers that catch small shops out.

Why do it now#

Black Friday falls the day after US Thanksgiving, which this year is Thursday 26 November, and Cyber Monday follows on 30 November. If you're in the UK, Small Business Saturday UK is a week later, on 5 December 2026, which is a good reason to plan one page that can carry you through both weekends.

Google's advice on Black Friday and Cyber Monday pages is to "create the page well before the sale so Googlebot has time to discover and index the page". A page that goes live on the morning of the sale may not appear in search results until it's over.

Step 1: Decide the offer and write it down#

Before you touch the website, write a short note for yourself with:

  • What's included: which products or services, and whether it's everything or a selection.
  • The discount: a percentage, a fixed amount, a free extra or free delivery.
  • The dates and times: when it starts and when it ends, with the time zone.
  • The normal price of each item, and how long you've been charging it.

That last point matters for the rules in Step 4. Keep the note, plus your sales records, after the sale too.

Step 2: Make a landing page on a URL you can reuse#

Google's post recommends a "recurring URL, not a new URL for each occurrence of the event". Its example is /sale/black-friday rather than /sale/2020/black-friday. The same address each year collects links and history, so next year's sale starts with a page Google already knows.

Copy an existing page in your template as a starting point. On a shop template such as Market or Roast, the shop page is the obvious base: keep the product grid and filter it down to the items on offer. For a service business, an ordinary content page with a short list of offers and a booking or contact button works fine. On the page:

  • Put the offer, the dates and the end time in the first screen, in plain words: "20% off all pottery, Friday 27 November to Monday 30 November, ends 11:59 pm UK time".
  • Give the page its own <title> and meta description, and a sharp, relevant image for social sharing. Google's post also suggests a "relevant, high quality image".
  • Check the page isn't blocked: no noindex meta tag and no Disallow line for it in robots.txt. Add it to your sitemap.xml if you have one.

Then link to it from the home page. Google lists "link to the landing pages from your home page" as one of its recommendations, and it's also how visitors find it. Once the page is live, open Search Console, paste the URL into URL Inspection and choose Request indexing. If Search Console is new to you, our launch checklist and SEO docs explain how to set it up.

Step 3: Add a sale banner to every page#

A thin strip above the header is the simplest way to tell every visitor about the sale. Put it in the shared header or layout so it appears on every page and you can remove it from one place:

html
<div class="bg-brand-600 px-4 py-2 text-center text-sm font-medium text-white">
  Black Friday: 20% off all pottery until Monday 30 November, 11:59 pm.
  <a class="underline underline-offset-2" href="/sale/black-friday">Shop the sale</a>
</div>

Swap bg-brand-600 for a colour from your own theme; our guide to customising a Tailwind template shows where the brand colours live. In a WordPress block theme, add the strip to the header template part in the Site Editor. In Next.js or Astro, add it to the root layout.

Keep the banner text and the landing page saying the same thing. If the offer changes, change both.

Step 4: Show sale prices honestly#

This is the part to get right, because sale pricing is where consumer law applies most directly. The points below are for UK shoppers; other countries have their own rules, so check yours.

"Was" prices must be real. Trading Standards' Guidance for Traders on Pricing Practices (last reviewed April 2026) says "any price advantage claimed must not be misleading or unfair" and asks you to think about how long the higher price applied, how recently, and whether you sold a meaningful amount at it. One of its examples of poor practice is a website quoting previous prices "that were charged many months ago". It also recommends keeping records of prices, stock and sales for the time both prices were charged.

Deadlines must be real too. Since 6 April 2025, unfair commercial practices in the UK fall under the Digital Markets, Competition and Consumers Act 2024, and the CMA's unfair commercial practices guidance lists "falsely stating that a product will only be available for a limited time" as a banned practice. Its example is a countdown clock that restarts when it runs out while the offer carries on. A genuine deadline is fine: if you say the sale ends on Monday night, end it on Monday night.

The CMA's earlier compliance advice on urgency and price reduction claims (March 2023, written under the older regulations the Act replaced) gives practical checks that still make sense, including making sure "special offer prices do not continue beyond the promotion's end date" and that search ads keep matching your current offers.

In practice, for a small shop:

  • Show the normal price struck through next to the sale price only if that normal price is what you've genuinely been charging recently.
  • Only say "from" or "up to 50% off" if a fair share of the range really has that discount.
  • Skip countdown timers unless the deadline is fixed and you'll stick to it.
  • Keep your note from Step 1 and your sales figures.

None of this is legal advice; if your sale is large or unusual, read the guidance in full or ask an adviser.

Step 5: Mark up sale prices for Google#

If your product pages have Product structured data, Google can show the sale price in results. Google's merchant listing documentation explains how: the price on the Offer is the price people pay now, and you add the normal price as a second price inside priceSpecification with priceType set to https://schema.org/StrikethroughPrice. In Google's words, "the current, active price automatically becomes a sale price when you provide a second price". Don't put a priceType on the active price.

json
"offers": {
  "@type": "Offer",
  "url": "https://example.com/shop/serving-bowl",
  "price": 36.0,
  "priceCurrency": "GBP",
  "validFrom": "2026-11-27T00:00:00+00:00",
  "validThrough": "2026-11-30T23:59:59+00:00",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "priceType": "https://schema.org/StrikethroughPrice",
    "price": 45.0,
    "priceCurrency": "GBP"
  }
}

The same page documents validFrom and validThrough for when the sale price applies, and warns that a listing "may not display" if priceValidUntil is a date in the past, so remove or update old dates after the sale. Use the Rich Results Test to check the markup before the sale starts.

Our shop templates don't ship with product structured data, so this step is optional. Roast's DOCS.md suggests adding Product JSON-LD for each coffee "if you sell for real", and its product data lives in the COFFEES list at the top of assets/js/main.js. If you add a sale price there, show the normal price struck through on the page as well, so the page and the markup agree.

Step 6: Check the checkout and contact paths#

A sale brings more visitors in a short window, so test the whole path a customer takes:

  • Add a sale item to the basket and check the discounted price carries through to the payment page.
  • If you use a discount code instead of reduced prices, try it, and try it after the end time.
  • Send a test message through your contact form; our guide to contact forms on static sites covers the usual services.
  • Look at the banner and landing page on a phone as well as a computer.

Step 7: Take it down on time#

Put the end time in your calendar with a reminder. When the sale ends:

  1. Remove the banner and put prices back to normal.
  2. Remove the sale price markup, or the validThrough date will soon be in the past.
  3. Keep the landing page and its URL. Change it to say the sale has ended and point people to your current products, or to sign up for news of the next one. Don't delete the page or redirect it to a new address each year, or you lose the benefit of the recurring URL.
  4. Stop any adverts or emails that mention the offer.

Next year, edit the same page, update the dates and request indexing again.

Summary#

Publish one sale page on /sale/black-friday now and link it from your home page, add a banner that matches it, show only genuine "was" prices and real deadlines, mark sale prices up with StrikethroughPrice if you use product structured data, and tidy everything up the moment the offer ends. If you're also changing opening hours over the holidays, our guide to holiday opening hours covers the rest of the season's website jobs.

Templates for this

Roast website template preview

Roast

Store

A bold shop for a specialty coffee roaster, with a subscription builder, brew guides and a working cart.

HTML + TailwindNext.jsAstroWordPress

10 pages · 169 KB

Documentation
Crumb website template preview

Crumb

Business

A charming bakery and café website with click-and-collect preorders, a live bake board and a celebration cake builder.

HTML + TailwindNext.jsAstroWordPress

8 pages · 271 KB

Documentation

Keep reading