REIGN

20 min read · 3,954 words

What Makes a Directory Worth Running: Claims and Paid Slots

A map with listing pins and four stacked layers: free claimed listings at the base, then premium listings, home page featured and town page featured

A directory earns money when it holds information that a search engine or an AI assistant cannot make up, when the listed businesses keep that information fresh themselves, and when every listing has one useful page of its own. This guide shows how to build that with the Reign theme and WB Listora (our directory plugin, made by Wbcom Designs), in the order that protects your time and your listings.

In this guide:

  • What makes a directory worth running now
  • How to fill the first 500 listings by hand
  • How business claims keep listings fresh
  • The three ways to earn, and the order to switch them on
  • What to do when adverts pay very little
  • How to structure town and category pages so they rank
  • How to stop contact details being harvested without hiding listings from Google
  • How to bring in listings from a spreadsheet or another plugin
  • A setup walkthrough, with Free and Pro stated plainly
  • Questions people ask

This is written for someone who wants to run a local or niche directory as a business and is not a developer, so each technical term is explained the first time it appears. Nothing here is legal or financial advice. Check your local rules on publishing business contact details before you launch.

What makes a directory worth running now?

A directory is worth running when it owns information that cannot be generated on demand. An AI assistant can produce “the best plumbers in a town” in seconds. It cannot know that one plumber changed their hours last week, or that another has stopped taking new work. That kind of fact comes only from the business itself, or from someone who checked.

  1. Owned data. The listings live in your database, on your site. We made that argument in Build a Classified Ads or Directory Site on WordPress That You Own, so we will not repeat it.
  2. Freshness. A listing that was right two years ago sends a customer to a closed shop. The cheapest way to stay current is to let owners keep their own entries up to date.
  3. One useful page per listing. Each business gets its own address on your site, with a description, photos and a way to make contact. That page is what a search engine indexes.
  4. A place or niche people care about. “Every business everywhere” competes with enormous sites. “Every independent bike shop in one region” is somewhere you can be the most complete source.

If you already know members will pay to be listed, Launch a Directory Your Members Pay to Be Listed In covers tier pricing and the paid flow. This guide covers what comes before and around it: getting the data, keeping it fresh, protecting it, and choosing which revenue to switch on first.

How do you fill the first 500 listings by hand?

You fill them yourself, from sources you are allowed to use and people you can talk to. Nobody submits to an empty directory, and nobody searches one. Until it looks alive, you are the content team.

Here is one account a directory owner shared in a public forum for directory builders. We could not check the numbers, so read it as one person’s report. A two-person regional business directory grew to about 2,500 listings in roughly ten weeks with no ad spend. About 700 of them arrived in the first week, and the site had not yet charged anyone. The lesson is the order of work: build something useful first, earn trust second, and ask for money third.

Where do the first listings come from?

  • Businesses you already know: customers, suppliers, neighbours. Ask permission, then add them.
  • Public registers and association lists: chambers of commerce, trade bodies and councils. Check each source’s terms before copying anything, and if reuse is not allowed, ask the body to share its list or link to your submission form.
  • Owners who add themselves: once a few hundred listings exist, owners start asking to be added or corrected. Make the submission form easy to find.
  • Local social groups and word of mouth: town groups are where people already ask “does anyone know a good electrician?”. Answer with a link to a useful listing page, not a blanket advert. The groups notice the difference.

What is the minimum each listing needs?

  1. A photo. A shopfront, a van, a finished job. It makes a listing look cared for.
  2. A description in your own words. Two or three sentences on what the business does and where. Do not paste text from the business’s own website, because that text already ranks somewhere else.
  3. One working way to make contact. A phone number, an email or a website. Without one the listing is decoration.

Hours, services and extra photos are a bonus the owner can add after claiming.

Why not scrape?

Scraping means using software to copy listings from another site in bulk. It makes 500 listings appear in an afternoon, and we advise against it. The text and photos belong to someone else, so you risk a takedown request. Identical pages give a search engine no reason to prefer yours. And scraped data is as old as the day it was copied, with no owner who can correct it. Hand-seeding is slower, but every listing starts with a person you can contact, which matters in the next section.

How do business claims keep your listings fresh?

A claim lets the real owner of a business take control of its listing and edit it. It is the biggest freshness tool a directory has. In WB Listora, business claims with admin approval and ownership transfer are in the free plugin, and the plugin’s documentation describes the flow like this.

  1. The owner clicks Claim this listing on an unclaimed listing.
  2. They give their role (owner, manager or authorised representative), a note on how they can prove it, and contact details for follow-up.
  3. You review the claim in the Moderation area. You can filter by pending, approved and rejected, and open a claim to see the proof and any uploaded documents.
  4. Approving makes the claimant the listing’s author. They get an email with a link to edit, and can edit the listing and reply to reviews from their dashboard.
  5. If you approve the wrong person, a Reverse approval action returns the listing to its previous owner. If another moderator already decided the same claim, the plugin tells you and leaves the first decision alone.

Keep automatic approval off. The documentation warns that with it on, anyone can claim any listing.

How do you tell a genuine claim from a bad one?

The symptom of a weak process is a stranger or a competitor in charge of someone else’s listing. To check, read the proof, then contact the business using details you already hold, not the details the claimant typed. A call to the number already on the listing settles most doubts. To prevent trouble, ask for an email address on the business’s own domain, or a document that names the business. If you reject, say why, so a genuine owner knows what to send next. Because you hand-seeded the early listings, many first claims will come from owners you recognise.

What are the three ways to earn, and in which order do you switch them on?

Switch on premium listings first, featured slots on the home page second, and featured slots on town or category pages third. The order follows how much proof of value you have at each step.

LayerWhat the owner buysSwitch it on when
1. Premium listingsA fuller listing: more photos, a longer run, extra featuresYou have a few hundred good listings, steady visitors and owners claiming
2. Home page featuredA place in the featured row every visitor seesThe home page has steady traffic and more owners want it than there are slots
3. Town or category featuredA top place on the page for one town or categoryThose pages draw their own search traffic

Layer one: premium listings

Keep the basic listing free and sell the upgrade. The free listing fills your directory and your search results, so never lock it. In WB Listora this layer is Pro. Pro adds pricing plans and a credit system: you define plans with a cost in credits, a duration and extras, and owners buy credits to pay for them. Pro lists payment connections for WooCommerce, WooCommerce Subscriptions, MemberPress, Paid Memberships Pro and WooMemberships.

Sell this only when you can say how many people see the home page, because you cannot honestly promise views you cannot measure. The free plugin has a Featured block. You place it on a page, choose how many listings to show, optionally limit it to one listing type, and it shows listings you have marked as featured from the edit screen. It shows only featured listings and does not pad the row with ordinary ones. In Pro, a pricing plan can carry a featured perk, so listings on that plan become featured for the plan’s duration and drop out when it ends.

This layer has the most value per slot and comes last. A plumber will pay more to be first on “plumbers in one town” than to appear somewhere on the home page, because everyone on that page already wants a plumber there. It only works once those pages have their own visitors, which takes months.

One honest note. From the plugin’s own documentation we can confirm the Featured block can be limited by listing type, and Pro plans can be limited to certain listing types and categories. We could not confirm a built-in “one featured slot per town”. Whatever plugin you use, ask: “can a featured row be shown on one town or category page, filtered to that place, and can a paid plan decide who appears in it?” If not, sell the slot by hand for a fixed monthly fee until you know it is worth building.

Do not charge for the basic listing before you have the data. Charging early shrinks the directory and removes the freshness and search traffic that make the paid layers worth buying.

AdSense pays very little on my directory. How else can a directory make money?

Sell to the businesses in the directory, not to advertisers who have never heard of it. A local or niche directory has few visitors by advertising standards, and advert income depends on visitor numbers. But each of those visitors is looking for a specific kind of business, and the businesses listed will pay to be the one they find. Premium listings, featured slots and direct sponsorship usually earn more than display adverts on the same traffic.

Here is how to check where you stand and what to try, in order of effort.

  1. Check what adverts really earn you. Open your advert account and divide last month’s income by the number of listing pages viewed. Then ask one listed business what a single new customer is worth to them. If one customer is worth more than your whole month of adverts, you are selling the wrong thing.
  2. Sell a premium listing. More photos, a longer description, a link to a booking page. This is layer one in the table above.
  3. Sell the featured row. A fixed monthly fee for a place at the top of the home page, then of a town or category page. These are layers two and three.
  4. Sell a category sponsorship by hand. One business, one category, one flat fee per month, with “sponsored” shown plainly. You can do this with an image and a link before any payment plugin is set up.
  5. Charge for leads only when you can count them. If your listing contact form sends enquiries to owners, you can show an owner how many they received before you ask for money.
  6. Add a paid extra the listed businesses already want. A jobs page for local vacancies or an events calendar gives owners a second reason to pay you.

You can keep adverts on pages that no business would sponsor, such as general guides. Take them off listing pages you are selling, because an advert for a competitor next to a paid listing is hard to explain to the owner who paid.

How do you structure town and category pages so they rank?

Give every town and every category its own page, keep the listings on it as plain text, and link them in a clear tree. A search engine rewards a page that answers one question well, such as “electricians in this town”.

  1. Plan categories and locations before the first import. Renaming a category after 500 listings changes 500 addresses. Keep the list short, and add rather than rename.
  2. Use a location tree. The free plugin has a hierarchical Locations setting (country, state, city) and a Categories setting.
  3. Use the landing pages the wizard builds. It creates one for each listing type you choose, with a search bar and a grid.
  4. Check breadcrumbs, structured data and the sitemap. The free plugin includes them as switchable features. Structured data is a standard format telling search engines “this is a local business”.
  5. Add town-and-category pages (Pro). Pro includes SEO landing pages with addresses such as “type in location”, their own titles and a sitemap entry. The Pro documentation and the plugin’s feature list disagree on whether this is on by default, so open the Features settings and check, then save permalinks once after changing the address pattern.
  6. Write a short intro on important pages. One paragraph of your own words, saying what is here and how you checked, gives search engines something a scraper lacks.

To check, search for your town and category a few weeks later and see which of your pages appear. A page that is missing after a month usually has too few listings, no intro, or no links pointing to it. Fix those in that order.

How do you stop contact details being harvested without hiding listings from Google?

Keep the listing text in the page so search engines can read it, and put the phone number and email behind an extra step that is easy for a person and expensive for a bulk collector. Harvesting means software visiting thousands of pages and copying every number and address into lists that are sold or used for spam. It annoys your listed businesses and they blame you.

1. Keep listing text in the page

Do not hide the listing behind a login or load it only after a script runs. The symptom of getting this wrong is listings that never appear in search. To check, right-click a listing page, choose view page source, and look for the business name and description. If you can read them, so can a search engine.

2. Show phone and email only after a click

A “Show phone number” button fetches the number from your server when pressed, so it is not sitting in the page for a collector to read. A person clicks once. A collector must click and fetch for every listing, which is slow and easy to spot. That fetch should itself be rate limited, meaning the server counts requests from one visitor address and refuses once there are too many in a short time. Otherwise a collector can repeat it thousands of times.

Here is what we verified. We read WB Listora’s readme, feature matrix and capability list and found no click-to-reveal feature, so we do not claim one. Before building on any directory plugin, ours included, get a written answer to three questions: is the number in the page text or fetched on click, is that fetch rate limited, and can the reveal be turned off for listings you want indexed?

3. Use a contact form instead of a raw email address

A form lets a visitor message the business without seeing its address. This is the strongest protection for email, and customers are happy with it. WB Listora’s free plugin puts a contact form on each listing. The message goes to the listing owner’s account email with the visitor’s address as the reply address. The form has a hidden trap field that bots fill and people do not, banned-word and link-count checks, and Akismet if you use it. Per the documentation, a visitor address is limited to three messages an hour per listing, with twenty a day per listing, adjustable with a filter.

4. Throttle at the CDN

A CDN (content delivery network) sits in front of your site and serves pages from servers near the visitor. Many offer a rule such as “if one address asks for more than a set number of pages a minute, challenge or block it”. That catches collectors moving page to page, which no plugin sees. Pick a limit no normal visitor reaches, watch the logs for a week before tightening, and make sure search engine crawlers are not blocked.

5. Require a login only when the data is truly valuable

A login stops nearly all harvesting but also hides the details from search and costs visitors. Use it for private member directories or high-value contacts. For an open local directory, the first four layers are usually enough.

Test after each change by opening a listing in a private browser window. The description should be readable in the page source, and the contact details should not be.

How do you bring in existing listings without breaking them?

Clean the file, import into a copy of the site, check the results, and only then repeat on the live site. Most lost data comes from messy source files and a skipped test copy.

Step 1: clean the file

  • Remove blank rows. Spreadsheets often carry hundreds of empty-looking rows at the bottom.
  • Fix short rows. A short row has fewer columns than the header, usually from a stray comma or a line break inside a description. Some importers fail on these and some shift data into the wrong column. Check every row has the header’s column count.
  • Keep columns consistent. One column each for phone, category and town, written in one style.
  • Give every row a title. WB Listora’s CSV importer skips a row without one and reports “Missing title, skipped” with the row number.

Step 2: import on a copy first

Ask your host for a staging copy and run the import there. A bad import into a live site means deleting hundreds of half-formed listings by hand. On a copy, you throw it away and try again.

Step 3: check categories and locations

Look for near-duplicates (“Plumber” and “Plumbers”), empty categories, and locations that are really street addresses. Fix them in the source file and re-import on a fresh copy, rather than patching listings one by one.

Step 4: check claims and ownership

Check who the author of an imported listing is, whether the claim button appears on listings that should be claimable, and whether owners approved before the move can still edit. Then submit a test claim from a spare account and approve it. Repeat this test after any update to a form or spam-protection plugin, because forms depend on a chain of plugins and an update to one link can break the claim form without any visible error. You may not hear about it for weeks.

Moving from another directory plugin

WB Listora’s free plugin includes migrators that read straight from GeoDirectory, Directorist, Business Directory Plugin, ListingPro and HivePress. Per the documentation, you keep the old plugin installed, pick it as the source, let the migrator run in batches, check a sample of listings on the front of the site, and only then deactivate the old plugin. Run it on your test copy first. Pro adds a visual importer, where you map your file’s columns to fields and preview before importing.

What is the setup walkthrough with Reign and WB Listora?

You install Reign, install WB Listora, run the setup wizard, then work through the steps above. Reign styles WB Listora’s pages (listings, categories, search results, submission forms) directly, and per reigntheme.com there is no extra styling add-on to buy for it. See Reign with Listora and the business directory recipe for current details and prices.

  1. Install and activate Reign. The Reign theme page lists what it styles.
  2. Install WB Listora (Free) from your WordPress admin or from listora.org. It needs WordPress 6.9 or newer.
  3. Run the setup wizard (Free). Six steps: directory type, location, map provider, pages, demo content, done. Pick the free OpenStreetMap map, which needs no key. Google Maps is the Pro option.
  4. Let the wizard create your pages (Free): directory home, add listing and member dashboard, plus optional pages for categories, featured listings and an events calendar.
  5. Set up listing types, categories and locations (Free) before any import. A bike shop and a wedding vendor need different custom fields.
  6. Choose the moderation mode (Free): auto-publish or manual review. For a public directory, manual review keeps spam out.
  7. Add the first listings (Free) by hand, or by CSV, JSON or GeoJSON import. CSV export is also free, so you always hold a copy of your data.
  8. Switch on claims (Free) with automatic approval off, and test with a spare account.
  9. Add the Featured block to your home page (Free) and mark a few listings by hand while you build the case for layer two.
  10. Add Pro for earning. Install WB Listora Pro on top of the free plugin and enter your licence key. Create your first plan, and check the town-and-category pages toggle. Pro never runs without the free plugin.

This table sums up where Free ends and Pro begins, from the plugin’s own readme and feature matrix.

FeatureFreePro
Listing types and custom fieldsYesYes
Search, filters, radius and mapYes (OpenStreetMap)Adds Google Maps
Business claims, approval, ownership transferYesAdds verification badge
Contact form on each listingYesLead form can replace it
Rate limits on public formsYesYes
CSV, JSON, GeoJSON import; CSV exportYesAdds visual importer
Migrators from five directory pluginsYesYes
Featured block, listings marked by youYesYes
Pricing plans, credits, couponsNoYes
Featured as a plan perkNoYes
Town-and-category landing pagesNoYes
Click-to-reveal phone or emailNot statedNot stated

Questions people ask

How many listings do you need before charging?

There is no magic number. We would wait for a few hundred good listings, steady visitors and owners claiming without being asked. The example above reached thousands before charging anyone.

Is it all right to copy listings from another directory?

No. The text and photos belong to someone else, most sites forbid copying, and identical pages give you no advantage. Use public registers within their terms, ask owners directly, or let owners submit.

Do you need the Pro plugin to start?

No. The free plugin gives you listing types, search, submission, claims, reviews, import and export, and a contact form on each listing. Pro adds plans and credits, featured as a plan perk, Google Maps and town-and-category pages. Start free and add Pro when you want to earn.

Can phone numbers be fully protected from copying?

No. Anything a visitor can see can be copied by hand. The aim is to make bulk harvesting expensive, using contact forms, click-then-fetch for phone numbers where the plugin offers it, rate limits and CDN rules.

What if the claim form stops working after an update?

Submit a test claim from a spare account after any form or spam-protection update. If it fails, roll the update back on a staging copy, find which plugin changed, and report it to that plugin’s support with your steps.

If you are planning a directory, start with the Reign theme page, and read Reign with Listora to see how the theme and the directory plugin work together.

Reading
20 min · 3,954 words
Published
Oct 12, 2026
Varun Dubey
Reign contributor

Writing about WordPress communities, BuddyPress, BuddyBoss, LMS plugins, and the business of paid communities.

Keep reading

More from the Reign blog

Browse all posts on community, WordPress, BuddyPress and the studio of plugins behind Reign.

What customers say on Trustpilot

Swift and expert coding!

Swift and expert coding by Kerit to apply a personalised display adjustment on the Reign Theme for a media plugin that was not fully supported at the moment.

RussellGB