Want to create a web directory like Yelp or Angi where people can discover local businesses?
You don’t need a developer or a custom-built site to do it. A free directory plugin gives you listings, categories, a search box, and a submission form that business owners can use to add their own entries. If your businesses are already in a spreadsheet, you can upload them all at once.
In this guide, we’ll show you how to create a web directory in WordPress and how to start charging for listings if you want to.

Here’s what we’ll cover in this article.
- Step 1. Install a Web Directory Plugin
- Step 2. Set up Your Business Directory Page
- Step 3. Customize Your Listing Form
- Step 4. Create Some Business Categories
- Step 5. Start Accepting Directory Listings
- Step 6. Add Locations and a Map
- Bonus Step. Accepting Payments for Directory Listings
- FAQs About Creating a Web Directory in WordPress
Let’s get started!
Step 1. Install a Web Directory Plugin
Several WordPress plugins can build a directory, including GeoDirectory, HivePress, and Directorist. We’ll use Business Directory Plugin for this tutorial, because its free version covers what most directories need: listings, categories, front-end search, and CSV import. So if you already have a list, you can upload it all at once instead of adding each entry manually.
First, you’ll need to install and activate Business Directory Plugin. If you need help, please see our guide on how to install a WordPress plugin.

Step 2. Set up Your Business Directory Page
After activating the plugin, go to Directory » Settings from the WordPress dashboard.
You will see a popup asking for permission to create a new page. The plugin uses this page to display the directory shortcode, which adds the search bar, category browsing, and listing submission form. Go ahead and click ‘Create required pages for me.’

The plugin will now create a new page called ‘Business Directory.’ By default, this page includes all the controls visitors need to browse your listings and submit their own.

To start, it’s a good idea to review the plugin’s settings by going to Directory » Settings. Here, you’ll find several sections:
- Listings
- Payment
- Appearance
Two of these are worth changing before you go any further. Under the Listings tab, set ‘Default new post status’ to ‘Pending (Require approval)’ so you can review submissions before they go live. Then open the General tab, click ‘SPAM’, and turn on reCAPTCHA, because a public submission form attracts bots within days. While you are in Listings, you can also choose how many listings to display on each page.

When you’re finished, don’t forget to click ‘Save Changes’ to store your settings.
Step 3. Customize Your Listing Form
Business Directory has a standard form that it shows to visitors, but you may want to customize this form by adding your own custom logo, branding, or content.
To customize the form, go to Directory » Directory Content and select ‘Form Fields.’

This screen shows all the fields that make up the standard form. To rearrange fields, you can use the up/down arrows in the ‘Order’ column.
To remove a field, click ‘Delete.’ If you want to edit a field’s label, description, or mandatory status, hover over the option and click ‘Edit.’

This opens a page where you can change the field label, make the field mandatory, add an optional description, and more. When you’re finished, click ‘Update Field’ to save your changes.

Step 4. Create Some Business Categories
Next, it’s a good idea to create some categories that people can use when submitting their listings. These categories help organize your listings so visitors can browse or filter them to find what they need. Without them, visitors would have to scroll through every entry to find what they need.
By default, the plugin has a single ‘General’ category, but you can add more by clicking the ‘Categories’ tab. Then, select ‘Add New Category.’

In the popup that appears, type in a name for the category. You can also organize categories into parent and child categories, similar to child pages in WordPress. For example, you might create a main category called ‘Restaurants’ and a subcategory called ‘Italian Restaurant.’
To turn a category into a subcategory, open the ‘Parent Category’ dropdown and choose its parent category.

To create the category, click ‘Add New Category.’ You can repeat the process to add more categories to your business directory.

Step 5. Start Accepting Directory Listings
Now, visitors can create a new listing by heading to your Business Directory page and clicking ‘Add Listing.’

This takes them to a screen where they can choose a listing category and enter all the information for their listing.
Once they’re finished, they can click ‘Complete Listing’ at the bottom of the page to submit it.

By default, submitted listings publish straight away. To review them yourself first, go to Directory » Settings » Listings and set ‘Default new post status’ to ‘Pending (Require approval).’
To review them, go to Directory » Directory Content » Listings in your WordPress admin area. Here, you’ll see a list of pending listings.

To preview a listing, click its ‘Preview’ link. This will open the listing in a new tab.
If you need to make changes, click ‘Edit’ instead. The listing will open in the block editor, where you can expand the Meta Boxes section to access the listing options.
When you’re done reviewing and editing the listing, click ‘Publish.’

You can also create listings by yourself by going to Directory » Directory Content and click ‘Add New Listing.’

This opens a screen where you can enter all the listing information. When you’re finished, click ‘Publish’ to make the listing live.

Once you have a few listings published, visitors can use the directory’s built-in search and category filters to find what they need. They can search by keyword or narrow the results to a specific category instead of scrolling through every listing.

Step 6. Add Locations and a Map
Finding local businesses is one of the main reasons people use web directories, making location data just as important as keyword search. In the free version, listings can include a text-based address field, which works well for a simple directory where visitors only need contact details.
If you want visitors to see listings on a map or search by ZIP code or city, you’ll need the Google Maps and ZIP Code Search modules, which are available with the Pro plan.

Once enabled, each listing’s location appears on a map in the search results and on the individual listing page. Visitors can also filter results by proximity instead of searching by business name.
Bonus Step. Accepting Payments for Directory Listings
Business Directory lets you accept payments for listings in its free version. Stripe and Authorize.net are included at no extra cost, so you don’t need to upgrade to start charging for listings.
Stripe uses pay-as-you-go pricing, with a 3% fee per transaction in addition to Stripe’s processing fees. A paid Business Directory plan removes this extra fee. Authorize.net doesn’t charge a per-transaction fee at any tier.
PayPal requires at least the Basic paid plan ($99/year), while Payfast is only available with the Elite plan ($249/year).
In this tutorial, we’ll show you how to set up Authorize.net payment. Go to Directory » Settings and click the ‘Payment’ tab.

Next, select ‘Authorize.net’ and enable the ‘Enable Authorize.net’ switch. You can then enter the login ID and transaction key for your Authorize.net account.

FAQs About Creating a Web Directory in WordPress
Now that you’ve seen how to create a web directory in WordPress, let’s answer some common questions to help you get the most out of your directory.
Can I create a free web directory in WordPress?
Yes. The free version of Business Directory Plugin covers listings, categories, front-end search, and Stripe or Authorize.net payments. Features like Google Maps, ZIP code search, and PayPal require upgrading to a paid plan.
How do I accept payments for directory listings?
With Business Directory Plugin, Stripe and Authorize.net work out of the box on the free version. Upgrading to a paid plan removes Stripe’s per-transaction fee and adds PayPal, with Payfast available on the top-tier plan.
Can I import my existing business listings instead of adding them one by one?
Yes. Business Directory Plugin includes built-in CSV import and export in both the free and premium versions, so you can bulk-upload listings from a spreadsheet instead of entering each one manually.
We hope this article helped you create a web directory using WordPress. Next, you may also want to see our guide on how to accept payments with Stripe and our handpicked list of the best WordPress plugins.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Daphane Simmons
Thank you WPBeginner. The business directory review and step-by-step outline was very good. I’m new to WordPress and now think I will pursue creating a website with WordPress.
WPBeginner Support
Glad we could help make you more comfortable starting a site
Admin
Mrteesurez
Please, what is the difference between formidable form and the formidable views, is it a part of it or a different plugin entirely ?
WPBeginner Support
The views are a part of Formidable Forms
Admin
Mrteesurez
Thanks for the clarification, I initially thought it’s another plugin entirely or an add-on to Formidable form.
jeff
If I install directory theme , do I still need to install plug in?
WPBeginner Support
It would depend on the theme, some have the functionality added while others only offer the styling. If you do use a theme with directory functions it would also make it difficult to move your content to a new theme
Admin
crassus David
How do create real estate site using wordpress?
Please help.
WPBeginner Support
To create a real estate site you would want to take a look at our article here: https://www.wpbeginner.com/wp-tutorials/how-to-create-an-idx-real-estate-website-using-wordpress/
Admin
Brandon
Can you tie directory results to user submitted form?
Emmanuel
hi am trying to combine an inventory and a directory functionality on a website and I would love if the users can search for specific products that are available in stores near them. pls how do I achieve this? thanks
Rizwan
I tried submit listing as a visitor, it required me to register with site, it gives email and activation link and after that new user is created with limited dashboard (actually only profile) what i want is that anyone can submit his business details in created listings and what i have to do is to approve or disapprove (like we do with comments)
Aurora
This is exactly what I’m looking for. Great post as usual!
desy
It will be great if you give demo link
Ravinder Singh
Hello i am WordPress user want to create a WordPress web directory.
Please can anyone help me in detail.
Archanian
Great article, I loved it. I was thinking about creating a directory website and wanted to use WordPress but I wasn’t sure if WordPress would be a good choice. Your article here answered several questions I have been seeking answers for.
I was a little unsure about using WordPress for this purpose but was seriously thinking about it since I am quite familiar with it.
You info here has helped me to decide to go for it and see what I can do with it.
Thanks for the write-up, it was just what I was looking for.
Tushar Bhambare
please give demo link
Nouman Younas
It will be great if you give demo link
RickyO
There are other plugins that offer much more (such as photos, events, scheduling, attendance sales, and multiple layouts for viewing the listings by biz type, dates [current day, past and future]), and easy to install and maintain.
The GF solution just seems like too much detail work.
Siddharth Saudagar
Can you please provide names of such plugins?
Andrea Pernici
The problem with Wordpress directories is that you can’t manage any level of permission by category for example.
Do you know a way to set the proper user levels to a Wordpress Directory plugin or theme?
Janet Barclay
I love Gravity Forms, but had a bad experience with the Directory add-on, which is a third party plugin and not supported by Gravity Forms. The support is next to zero, but I got by until one day my directory just disappeared.