← All guides

How to Build a Classified Ads Website on WordPress

Build a classified ads website on WordPress step by step: ad types, fields, accounts, moderation, expiry, paid ads, maps, search and getting your first ads.

How Do You Build a Classified Ads Website on WordPress?

Watch on YouTube →

To build a classified ads website on WordPress, you install a directory plugin, give it a Classified listing type with fields for price, condition and location, and let signed-in members post ads through a front-end form. New ads wait in a moderation queue, expire on their own after a set number of days, and can be paid for or featured if you want revenue. With Listora, everything up to charging for ads runs on the free plugin.

The rest of this guide goes step by step through the real screens, so you can follow along on a fresh install. It also covers the parts that decide whether a board survives: spam, expiry, and getting the first few hundred ads.

Key points

  • A classifieds site connects a buyer and a seller and steps back. Listora handles posting, search, moderation and expiry, and does not process the sale.
  • Free covers the Classified type, front-end posting with accounts, moderation, renewal, search, filters and Leaflet maps.
  • Pro adds the money side: pricing plans, credits, coupons and Google Maps.
  • Plan for daily moderation and a seeded board. Those two things matter more than the plugin you pick.

What you need before you start

You need WordPress 6.9 or higher, PHP 8.1 or higher, and MySQL 5.7+ or MariaDB 10.2+. A normal shared host is fine for a board that is just starting. Ads are searched through a dedicated index table, not generic WordPress queries, so the site does not slow down as ads pile up.

Decide three things first, because they shape every later step:

  1. What the board covers. A general local board (bikes, rooms, sofas) is a different build from a niche one (boats, horses, vintage cameras). Niche boards fill faster because a small audience knows where to look.
  2. Where it is local. Most classifieds activity assumes the buyer can reach the seller. A city or region gives you a map that makes sense and search results that mean something.
  3. Whether you will charge. You can run free for months and add paid ads later. Nothing you build now has to be redone.

If you are still unsure whether you want classifieds, a marketplace or a plain directory, read classifieds vs marketplaces vs directories first. It takes five minutes and saves a wrong build.

You can also click around a working board before you install anything. The live demo runs the plugin with sample data.

Step 1: How do I install the plugin and run the setup wizard?

Listora is not in the WordPress.org plugin search. You download it from the Listora downloads page, then:

  1. Go to Plugins > Add New > Upload Plugin.
  2. Choose the ZIP and click Install Now, then Activate.
  3. You land on the Listora Setup wizard.

The wizard has six steps: Directory Type, Location, Map Provider, Pages, Demo Content and Done!. For a classifieds board, answer like this:

  • Directory Type: tick Classified. Every type you do not tick is set to Draft and hidden from posters, which keeps the Add Listing form clean.
  • Location: enter the country and city, plus the latitude and longitude the map should open on. Tick the global box if the board is not tied to one place.
  • Map Provider: leave OpenStreetMap (Leaflet) selected. It needs no API key. Google Maps is greyed out until Pro.
  • Pages: the wizard creates Directory Home, Add Listing and My Dashboard. Tick Browse Categories and Featured Listings under optional pages.
  • Demo Content: pick Classifieds and choose Import selected pack. You get a populated board to test against. You can delete it later under Listora > Settings > Advanced, in the Maintenance block, with Delete Demo Data.

Take ten minutes here to click through the demo content as a visitor before you change anything. You will understand the product faster than from any doc.

Step 2: How do I set up a Classifieds listing type with price, condition and location?

An ad is a listing, and a listing type decides which fields it has. Open Listora > Listing Types and click Edit on Classified. The built-in Classified type outputs Product schema, and it ships with fields for price, condition and availability.

A type is built from field groups, and inside each group you add fields. The field kinds you can use are:

KindExamples
BasicText, Textarea, Number, Email, Phone, URL
ChoiceSelect, Multi-Select, Checkbox, Radio
Media and placeGallery, Video, Map Location

There are more (dates, files, business hours, social links, price range), but the table above covers what most ads need.

Here is a sensible field list for a general board:

  • Price as a number, so the price slider in search works.
  • Condition as a Select: New, Like new, Used, For parts.
  • Location with the Map Location field, so the ad gets a pin and can be found with Near Me.
  • Phone as optional, if you want sellers to show a number. Many boards skip it and rely on the contact form.
  • Gallery for photos. Ads with several photos get answered more often, so allow more than one.

Keep the form short. Every extra required field costs you posters. A seller listing a used chair does not want to fill in eleven boxes.

In the same editor, the Listing expires after (days) setting controls ad lifetime, and 0 means never. We cover expiry properly in step 6.

If your board is niche, create a second type instead of overloading one. A board with Classified and Event types can show a pop-up market next to a used bike, each with its own fields and its own filters. Click Add New Type, name it, and build its fields in the visual builder. A new type starts as Draft until you set it to Active.

Step 3: How should I organise categories and locations?

Categories are how most people browse a classifieds site, so spend real time on them. Open Listora > Categories and add the top level first: For Sale, Housing, Services, Jobs, Community, or whatever fits your audience.

A few rules from boards that work:

  • Keep the top level to a dozen or fewer. More than that and nobody scans it.
  • Add children only where ads cluster. Under For Sale, Bikes and Furniture earn their place. Forty sub-categories with one ad each look empty.
  • Limit what each type offers. In the Listing Type editor you can tick which categories a type offers. Leave all unticked and it offers every one.

Add the Categories block to your front page. Each tile shows an icon, a name and a live listing count, and tiles are ordered busiest first. A tile with no ads links back to the directory home rather than an empty results page.

Locations are a separate, hierarchical taxonomy under Listora > Categories > Locations: country, then state, then city, then neighbourhood, as deep as you need. A single-city board needs one level. Each location gets its own archive page, such as /listing-location/leeds/, which is useful for search traffic. Add the top level first, then children with the Parent dropdown. For hundreds of places, create terms with WP-CLI or import them with your listings.

Step 4: How do I let people post ads from the front end?

The wizard already made the Add Listing page with the Listing Submission block on it. Posters never need wp-admin.

Posting always needs a signed-in account. A visitor who is not signed in sees a sign-in prompt with a link to register, provided registration is open on your site. Guest posting does not exist in Listora. That is a feature for a classifieds board: every ad is tied to an account you can suspend, and your spam problem gets much smaller.

Open Listora > Settings > Submissions to tune the form:

  • Moderation: Require admin approval is the default, and it is the right default for a board. Auto-approve publishes at once, and the docs suggest pairing it with CAPTCHA.
  • Submission form style: Step-by-step wizard or Single page form. A classified ad is short, so the single page form is often faster for returning posters.
  • Uploads: the maximum file size (default 5 MB) and the maximum gallery images per listing (default 20, range 1 to 100).
  • Allowed types: turn Frontend submission off on any type only you should create.

The wizard form walks a poster through Choose Type, Basic Info, Type Fields, Categories and Preview & Submit. The last step shows the ad as it will look on a card, with an Edit link back to each step. If a poster starts and does not finish, Listora emails a reminder after 24 hours with a link to resume.

Registration and the sign-in screen come from WordPress. Make sure your registration page, password reset and email delivery work before launch. A poster who cannot reset a password will not come back.

Step 5: How do I moderate ads and stop spam?

A classifieds board moderates a stream, every day, for as long as it is open to the public. Set that expectation with yourself now.

The queue. With approval required, new ads sit as Pending. Open Listora > All Listings and filter by Pending. Row actions are Approve, Reject, Edit, Feature and Trash. Reject asks for an optional note that goes in the email to the poster, so write standard reasons once and reuse them. For volume, select rows and use the Bulk actions dropdown to approve, reject, feature or assign a category. Your dashboard also has a Needs attention box linking to each queue.

The layers. Spam protection is defence in depth, and any layer can reject an ad:

  • Honeypot field. A hidden input that humans leave empty and bots fill. On by default.
  • Per-IP rate limits. Caps how often one address can submit. On by default, tunable per endpoint.
  • CAPTCHA. Off by default. Choose Google reCAPTCHA v3 or Cloudflare Turnstile in settings and paste the keys. Both are invisible, and Turnstile suits GDPR-conscious sites because it does not track users.
  • Akismet. If the Akismet plugin is active, Listora detects it and checks submissions.
  • Banned words. A comma-separated list. Any ad containing one is rejected.
  • URL-density cap. A maximum number of links per text field.

All of these are in the free plugin. For a deeper walk through them, see how to stop spam listing submissions and the spam protection docs.

Reports and duplicates. Any signed-in visitor can click Report on an ad and choose a reason such as spam or duplicate. Reports land in Listora > Reports. The duplicate check runs while a poster types the title, and if a similar ad exists it shows a warning before the poster can submit. That matters more here than on any other type, because people repost ads that did not sell.

Pro adds a Listora Moderator role, so trusted helpers can approve ads without administrator access, with new items shared out round-robin. It also adds an audit log of who approved, edited or deleted what.

Listora does not include escrow, buyer protection or a private message thread between buyer and seller. A buyer contacts the seller through the Contact owner form on the ad, which emails the seller. After that they continue by email or phone. If that is not enough for your board, you want a marketplace, not classifieds.

Step 6: How do ad expiry and renewal work?

An ad that sold three weeks ago and still shows up in search is worse than no ad. Expiry is the feature that keeps a board trustworthy.

Automatic expiry is off by default, because most directories keep listings for good. Turn it on:

  1. Go to Listora > Settings > General.
  2. Switch on Enable automatic listing expiration. Reminder emails go out before ads expire.
  3. Set Default expiration in days, or leave it at 0 and set the length per type.
  4. Set the Renewal window (how many days before expiry a poster can renew) and Renewal duration (how many days a renewal adds).

An ad’s length comes from its plan first (Pro), then its listing type, then the default. So you can run 30 days for general ads and longer for a category like housing.

Posters manage this themselves under My Dashboard > My Listings. Each ad can be Renewed, Deactivated, Reactivated, Edited or Deleted. Deactivate is the one to teach people: it pulls an ad from the board without deleting it, which suits “sold, pending pickup”. They can filter their ads by Active, Expiring soon or Expired.

Set the length shorter than feels comfortable and let renewals do the work. A board of live ads earns more trust than a bigger one full of stale ones. Renewal is free in the free plugin. With Pro it can cost credits, which is how paid renewals work.

Classifieds revenue comes from the posting, not from the sale. Typical options are a fee to post, a fee to renew and a fee to be featured. The free plugin never touches money, so everything here needs Pro.

Switch it on at Listora > Settings > Features with the Monetization toggle. That one switch activates credits, pricing plans, coupons and the payment webhook receiver. Then:

  1. Create plans at Listora > Monetization > Pricing Plans > Add New. A plan carries a Plan Cost (credits), a Listing duration, the listing types and categories it applies to, a Featured flag, and an optional Free trial and Auto-renew. A cost of 0 makes it a free plan.
  2. Sell credits. Under Listora > Settings > Credits > Payments, paste Stripe or PayPal keys and define credit packs, or map products from WooCommerce, MemberPress or Paid Memberships Pro.
  3. Let posters choose. A Choose a Plan step appears in the submission form. If the balance is short, the ad waits as Awaiting Credits with a Buy Credits link and goes live when the poster tops up.

A simple starting menu: a free basic ad that runs for a short time, a paid ad that runs longer, and a paid featured ad that is marked Featured for its duration. Pricing plans decide credit cost, duration and the Featured flag. They do not gate analytics or hide contact details.

Two details worth knowing. A paid ad goes live as soon as the plan is paid, even when approval is required, because paying is the trust signal. And coupons are available if you want launch discounts. Pricing plans cannot rotate featured ads; the Featured flag just marks them.

On the free plugin you can still feature ads by hand. Tick Featured on any listing, and show them with the Featured block on your front page. You can also cap how many ads each role can post under Listora > Settings > Credits > Limits, which is a quick way to stop one account flooding the board.

For the model behind all this, how directory websites make money goes through the options. Listora’s own plans and prices are on the pricing page.

Step 8: How do I add maps and search filters buyers will use?

Buyers search by what, where and how much. Add the Listing Search block to your Directory Home page, with the Listing Map and Listing Grid blocks beside it.

Search covers titles, descriptions, custom field values and service names, with autocomplete. Visitors can narrow results with:

FilterUse on a classifieds board
CategoryBikes, Furniture, Housing
Price rangeMinimum and maximum slider
DistanceRadius from a typed address or Near Me

Features, rating and a map-bounds search are there too. Results can be sorted by Featured, Newest, Rating, Distance or Relevance. For a classifieds board, set the default sort to Newest on the search block so fresh ads come first. Filters are carried in the page address, so a buyer can share a link to a search such as bikes under a given price.

The free map uses Leaflet. Under Listora > Settings > Maps, pick a Tile source: OpenStreetMap is fine for a small site, and the docs point heavier sites to MapTiler or Stadia, which have free keys. Turn on Marker clustering for busy maps, and Search on drag so the list updates as people pan the map. The Max markers setting defaults to 500, and the map tells visitors when some are hidden.

Google Maps with Places autocomplete on the posting form is a Pro option. Most small boards do not need it.

Step 9: What should I check before launch?

Run this list on a staging copy or a quiet evening. Use a private window and a test account, not your admin login.

  1. Register as a new member, post an ad end to end, and watch it appear in the queue.
  2. Approve it, then find it through search, a category tile and the map.
  3. Send a message through Contact owner and confirm the email arrives, including in spam.
  4. Renew, deactivate and reactivate the ad from My Dashboard.
  5. Post a near-identical ad and confirm the duplicate warning appears.
  6. Enter a banned word and a pile of links and confirm both are rejected.
  7. Turn on CAPTCHA and test the form again.
  8. Check the Add Listing page and one ad at 390px wide, on a real phone if you can.
  9. Switch on automatic expiry and set the dates you actually want.
  10. Delete the demo data once you have real ads, and check your terms, posting rules and contact page exist.
  11. If you are charging, buy a plan with a test payment and confirm the ad goes live.

Also write your posting rules in plain words: what is banned, what happens to reported ads, how long ads run. Link them from the Add Listing page.

Step 10: How do I get the first ads?

This is the part guides skip, and it is where most boards stall. Nobody posts on an empty board. Posters want buyers, and buyers want ads.

What works, in order:

  1. Seed fifteen to thirty real ads yourself. Real means real items from people you know. They do not have to be perfect. They have to make the board look alive.
  2. Import what already exists. If you have a spreadsheet, a Facebook group list or an older site, import it as a CSV. The free importer maps columns to Listora fields and shows a preview before it writes. Large files run in the background.
  3. Start narrow. One category in one area beats ten categories nobody uses. Add categories as ads arrive.
  4. Go where sellers already are. Local groups, community newsletters, clubs and the shops that already pin cards to a noticeboard.
  5. Make the first post easy. A short form, a working login, a quick approval. Approve new ads fast in the first weeks. A poster who waits three days does not come back.
  6. Watch what happens at expiry. If most posters renew, you have something people value, and that is the moment to start charging.

Expect the first month to be thin and moderation to be a daily job. That is the trade for not carrying the transaction risk a marketplace does. For ideas on seeding, see first listings for a directory website.

What is free and what needs Pro?

So you can plan with what you have:

  • Free: the Classified type and custom fields, categories and locations, front-end posting with accounts and a duplicate check, the moderation queue and bulk actions, spam layers (honeypot, rate limits, CAPTCHA, Akismet, banned words, URL cap), renewal, deactivate and reactivate, search and filters, Leaflet maps, hand-set featured ads, listing limits per role, and CSV import.
  • Pro: pricing plans, credits, coupons, Stripe and PayPal credit packs, self-serve featured ads, Google Maps, moderators, the audit log, saved searches and the visual importer.

The Free vs Pro page has the full list. If you are comparing other plugins, the alternatives pages cover each one.

Who should pick something else

Listora is a fit for a posting board where two people settle the sale themselves. It is not the right tool if you want:

  • Checkout and buyer protection. A marketplace takes payment and holds funds. Listora does not.
  • A private message thread between buyer and seller. Contact is by form and email.
  • Anonymous posting. Every ad needs a signed-in account.
  • A hosted service with nothing to install. Here you host, update and secure the WordPress site yourself.

If one of those is the point of your project, say so before you build. It is cheaper to pick the right model than to rebuild around the wrong one.

Also worth reading

Watch it

Build a Classified Ads or Real Estate Listing Site on WordPress3:19Chapters and transcript

Browse the full video library →

Questions

How do I build a classified ads website on WordPress?

Install a directory plugin that has a classified listing type, set up the fields an ad needs (price, condition, location), turn on front-end posting with accounts, put new ads in a moderation queue, switch on expiry, and add search and a map. With Listora the Classified type, posting, moderation, expiry, search and Leaflet maps are all in the free plugin. Charging for ads needs Pro.

Can I build a free classified website on WordPress?

Yes. The free Listora plugin gives you the Classified listing type, a posting form, a moderation queue, renewal, search filters and maps. You pay only for hosting and a domain. Pro is for charging posters, with pricing plans, credits and coupons, and for Google Maps.

How do I let people post classified ads without wp-admin?

Use the Add Listing page the setup wizard creates. Posters sign in or register, fill in a step-by-step form, and manage their own ads from My Dashboard. They never see wp-admin. Posting always needs an account, which is what lets you suspend a bad poster.

How do I charge for classified ads on WordPress?

With Listora Pro you switch on Monetization, create pricing plans that carry a credit cost, a duration and an optional Featured flag, and sell credit packs through Stripe or PayPal, or through WooCommerce, MemberPress or Paid Memberships Pro. Listora does not process the sale between buyer and seller, only the poster's payment to you.

How do I stop spam on a classifieds site?

In layers. New ads wait in a moderation queue, a hidden honeypot field and per-IP rate limits run by default, and you can add reCAPTCHA v3 or Cloudflare Turnstile, a banned-words list and a cap on links per ad. Reports from visitors and a duplicate check catch the rest. Expect to moderate daily.

How long should a classified ad stay live?

Short enough that sold items disappear on their own. Most boards pick a few weeks. In Listora you set the number of days on the listing type, turn on automatic expiry in General settings, and let posters renew from their dashboard.

Keep reading

What customers say on Trustpilot

WBCOM Designs is Amazing!

WBCOM Designs has constantly updated and supported their plugins and themes. Recently the new BuddyNext project is Amazing! - and the new line of addons like Mediaverse, Jetonomy, Mediashield, and Listora.. are likewise Amazing! - and very well built. Today their online Chat solved a download…

Edward S.US