A restaurant directory is one of the most natural use cases for GeoDirectory because location is central to how people search for restaurants. “Italian restaurants near me” or “best sushi in Edinburgh” are geographic queries, and GeoDirectory’s map-based search handles them better than generic directory plugins that treat location as an afterthought. This walkthrough covers the complete process from fresh installation to a directory ready for public use.
Planning Your Restaurant Directory Before Touching the Plugin
The decisions you make before installing anything determine how much rework you do later. For a restaurant directory specifically, think through these questions first. Will you cover one city, a region, or multiple cities? GeoDirectory handles all three, but multi-city setups need additional pages and navigation. Will restaurants self-submit their listings, or will you import existing data and let restaurants claim their profiles? Will the directory be free for restaurants to list, paid, or a freemium model? Will you include delivery services, or only dine-in? These decisions affect which custom fields you create, which schema types you use, and which GeoDirectory extensions you need from the start.
For this walkthrough, we will build a single-city restaurant directory where restaurants can submit free basic listings and pay for featured placement. This is the most common structure for a local restaurant directory and gives you a clear monetisation path without requiring payment infrastructure from day one.
Step 1: Install GeoDirectory and Required Extensions
Install GeoDirectory from WordPress.org. For a restaurant directory, the extensions worth installing immediately are the Pricing Manager (for featured listing upgrades), the Events addon if you want restaurants to post events and specials, and the Ninja Forms or Gravity Forms integration if you want a contact form on each listing page. The core plugin and these extensions cover a restaurant directory’s functional requirements.
For the Google Maps integration – which is essential for a restaurant directory – you need a Google Maps API key with the Maps JavaScript API, Geocoding API, and Places API enabled. Enter it in GeoDirectory -> Settings -> General -> Google Maps API Key. Without this, the map does not render and address autocomplete does not work during listing submission.
Step 2: Create Restaurant-Specific Custom Fields
Go to GeoDirectory -> Settings -> Custom Fields. The default fields (name, address, phone, website, email, hours) cover the basics. Add these restaurant-specific fields:
- Cuisine Type (Select or Checkboxes) – Italian, Japanese, Indian, Mexican, etc. Make this filterable so visitors can filter by cuisine. If restaurants serve multiple cuisines, use Checkboxes rather than Select.
- Price Range (Select) – $ (under $15), $$ ($15-30), $$$ ($30-60), $$$$ (over $60). Mark as filterable for price-range searching.
- Dining Options (Checkboxes) – Dine-in, Takeaway, Delivery, Outdoor Seating, Private Dining. Mark as filterable.
- Reservation Required (Radio) – Yes, No, Recommended. Useful for planning purposes.
- Menu URL (URL) – link to the restaurant’s online menu.
- Parking (Select) – Street Parking, Car Park, Valet, No Parking. Simple filter for visitors arriving by car.
- Alcohol Served (Radio) – Full Bar, Wine and Beer, No Alcohol. Important for some visitors.
For each filterable field, check the “Search Filter” option in the field settings. These fields appear in the search sidebar as filter widgets, letting visitors narrow results by cuisine, price, and dining options rather than scrolling through all restaurants.
Need a developer to build this out? Describe your directory project and get a free estimate.
Step 3: Set Up Categories With Correct Schema Types
Create categories for your main restaurant types. Go to GeoDirectory -> Listings -> Categories. For each category, set the Schema Type to the most specific applicable type from schema.org:
- Italian / French / Asian etc -> Restaurant
- Coffee shops and cafes -> CafeOrCoffeeShop
- Pubs and bars -> BarOrPub
- Bakeries -> Bakery
- Fast food -> FastFoodRestaurant
- Ice cream and desserts -> IceCreamShop
Using the specific schema type rather than the generic Restaurant for every category gives Google more information about each listing type. This matters for rich result eligibility and for how Google displays your listing pages in search results.
Step 4: Configure the Business Hours Field
GeoDirectory’s built-in business hours field allows restaurants to enter opening and closing times per day, including split shifts (open for lunch, closed mid-afternoon, open for dinner). This is critical for a restaurant directory – knowing whether a restaurant is currently open is one of the first things visitors check. Configure the hours field to be required during submission so restaurants cannot list without providing their hours.
The hours data feeds into GeoDirectory’s “Open Now” filter and into the openingHoursSpecification schema property. Both improve the directory’s usefulness: “Open Now” filtering is the most common filter visitors use on restaurant directories, and correct schema helps Google display opening hours directly in search results.
Step 5: Import Seed Data
Launching a restaurant directory with zero listings means visitors leave immediately and never return. Populate your directory with real restaurant data before launch. Data sources for UK, US, and most developed countries:
- Companies House (UK) or business license databases often have categorised business data including addresses
- Google Places API allows querying businesses by type and location – useful for a bootstrap dataset, but check Google’s terms of service for commercial use of their data
- OpenStreetMap’s Overpass API has restaurant data for most cities, freely usable under its open data license
Import into GeoDirectory using the built-in CSV importer. Your CSV needs columns for the business name, address (GeoDirectory geocodes this to coordinates during import), phone, website, and any custom field values. Run a test import with 10 restaurants before importing the full dataset to catch format issues.
Step 6: Set Up the Review System
GeoDirectory’s built-in review system lets visitors rate restaurants on a 1-5 star scale and leave text reviews. Enable reviews in GeoDirectory -> Settings -> Reviews. Configure whether reviews are published immediately or require admin approval. For a new directory, manual approval prevents fake reviews from competitors while the directory builds its audience. Once you have regular visitors, you can switch to immediate publishing with post-publication moderation.
For the review schema to work correctly (showing star ratings in Google search results), each listing needs at least a few reviews. Add a “Leave a Review” call to action in your listing template and in any email communications with restaurants. Getting 3-5 reviews on your most popular listings should be a priority in the first few weeks after launch.
Step 7: Featured Listing Monetisation
The featured listing model keeps the directory free for restaurants to join while providing a clear revenue stream. Featured restaurants appear at the top of search results and category pages with a visual badge distinguishing them from standard listings. Set featured listing pricing in GeoDirectory’s Pricing Manager extension. A common starting price for a local restaurant directory is $29-49/month for featured placement.
Launch with featured placement offered at a discount or free to the first 10-20 restaurants who claim their listing. This builds social proof that premium placement exists and gives you case studies to show other restaurants why upgrading is worthwhile.
Launch Checklist
Before making the directory public, verify: the map loads correctly on the homepage and listing pages, search filters work and return correct results, address geocoding works during new listing submission, the review form submits correctly, the “Open Now” filter works based on the current time, all custom fields appear correctly on listing pages, and Google’s Rich Results Test validates the schema on a sample of listing pages. Fix any issues before public launch – first impressions on a directory site determine whether visitors return.