Documentation · Getting started

A blank WordPress install to a live directory.
Every step, on video.

This is the whole setup path in order — install, license, wizard, Google, data, dashboard, front end, money. Each step is written out and paired with the clip that shows it happening on screen. Work down from 01.

Start here Watch the 50-min cut
25 episodes ~50 min of video Under an hour to a live directory Free plugin, no account
Just bought? Your license key is in your email receipt, your downloads are on your order page, and tier changes, invoices and cancelling are in the billing portal. Where everything lives
Prerequisites

What you need before step 01

Short list. Two of the five are optional, and the only one that reliably takes longer than a couple of minutes is the Google connection.

3 min read 5 prerequisites
A WordPress site
New or established, on any host. The plugin has no theme dependency and coexists with WooCommerce, a blog, and whatever else is already installed.
Required
The free TurnKey Directories plugin
From the WordPress.org directory. No license, no account, no listing cap — it is the real product, not a trial.
Required
Listing data, or a budget to buy it
Your own CSV/XLSX, or an in-wizard Outscraper scrape you pay Outscraper for directly (about $0.60 per 100 listings). Bulk import is a paid capability; the free plugin adds listings manually.
Required
A Google account
For Search Console, Analytics and the Indexing API. Skippable — but skip it and the dashboard has no keyword or traffic data to show you, which is most of the reason to open it.
Strongly advised
A Mapillary token
Free, about a minute to get, and it gives every listing a street-level featured image. Without it listings use the generated fallback image instead.
Optional

What you don't need

An SEO plugin. XML and HTML sitemaps, schema on every URL level and search-engine submission are built in.

A Google Maps API key or billing account. The map is OpenStreetMap; street view is Mapillary.

MemberPress, WooCommerce Subscriptions or a membership plugin. Billing for the businesses you list runs on your own Stripe account.

A page builder, or any theme in particular. Listing pages are rendered by the plugin, not built by hand.

A separate rank tracker. The keyword tool runs on your own Search Console data.

Roughly how long it takes

~5 min
Install both plugins + activate a license
15–30 min
The Google connection — the slow part, done once
~1 min
Mapillary token
~10 min
Import + map 10,000 listings, timed on camera

Under an hour from empty site to a directory that is live, indexed and generating pages — and the Google step is the only one you ever do twice, when you add another site.

Part 1 · Steps 01–04

Install & activate

The product ships as two plugins and the order matters: the free core first, the Pro add-on second, the license key third.

6 min read 4 videos
TurnKey Directories
Free core · WordPress.org · install first
  • Setup wizard, virtual page engine, listing pages
  • Unlimited listings, added manually
  • Faceted search + OpenStreetMap map
  • Mapillary street view + live working hours
  • Schema on every URL level · XML + HTML sitemaps
  • Search Console + GA4 analytics dashboard
  • Accent color + typography customization
TurnKey Directories Pro
Add-on · needs the free core · install second
  • Bulk CSV / XLSX import + column mapping
  • Outscraper scraping inside the wizard
  • Claimable listings + the customer portal
  • Stripe billing, owner-set plans, 5 ad zones
  • Google Indexing API + IndexNow
  • Keyword rank tracker
  • The Network Hub
01

Watch the overview first

The series walks the whole product end to end: installing the free core and the Pro add-on, running the setup wizard, connecting Google Search Console and Analytics, touring every dashboard tab, and building a working 10,000-listing directory that loads fast and scores near 100/100 in Google PageSpeed Insights.

Nine minutes here saves you from guessing at the order of the next twenty-four steps. Then follow this page top to bottom.

Prefer one sitting? The 50-minute stitched cut is the same material with no breaks.

02

Install the free plugin

Install TurnKey Directories from the WordPress.org plugin directory, on a new site or an existing one. Search for it under Plugins → Add New, install, activate. There is no license step and no account to create.

Once active you get the setup wizard, Settings, the Compatibility tab, Analytics, the Sitemap and Manage Listings. The free version is uncapped and fully functional — unlimited listings added through the Add a Listing form, schema on every URL level, XML and HTML sitemaps, faceted search and the map.

The recording predates the WordPress.org release, and it mentions a listing limit on the free version. There is no such limit. Every feature gate was removed from the free plugin. What is paid is bulk import, monetization, advanced SEO and the Network Hub — never the number of listings you are allowed to add.

Connect Google Search Console and Google Analytics early. Without those two connections the plugin has no keyword or traffic data to show you, and that is most of what makes the dashboard worth opening.

03

Install the Pro add-on

Pro is a separate plugin with a dependency: the free core has to be installed and active first, then Pro. Download turnkey-directories-pro.zip from your purchase email, then Plugins → Add New → Upload Plugin.

Nothing visibly changes yet. Until a license key is activated, Pro behaves exactly like the free version — that is the next step, not a bug.

Install order matters. Uploading Pro to a site without the free core active will not activate.

04

Activate your license

Pick a tier, and the key arrives by email. Paste it into TurnKey Directories → License and click Activate License.

Activation runs against the same database — nothing is re-imported and nothing is migrated. Your tier’s bulk-import ceiling switches on, along with the paid tabs: Monetization, Customers, Keywords, Indexing and the Network Hub. From the same screen you can re-check the key, deactivate it to move it to another site, or upgrade a tier later.

The key arrives in your Lemon Squeezy email receipt, which also links to your order page — that is where every plugin file your tier includes stays downloadable. Everything after that (tier changes, card, invoices, cancelling) lives in the billing portal.

Part 2 · Steps 05–09

The setup wizard

Google, Mapillary, data. Step 06 is the one that takes real time and the one people get stuck on — it has its own troubleshooting section further down.

9 min read 5 videos Re-runnable any time
05

Open the setup wizard

The wizard has three real jobs: Google integration (analytics and keyword data), Mapillary (free featured images), and data import (getting your listings in, including column mapping).

You can restart it whenever you like — to reconnect a service, point it at a different site, or connect a different Google account. Nothing in it is one-shot.

The video calls it a six-step wizard. The shipped plugin runs it in five steps; the screens were consolidated. The components and the order are unchanged.

06

Connect Google — Search Console, Analytics & Indexing

The trickiest step, and the one worth doing slowly. It connects Search Console (keywords), Google Analytics (traffic) and the Indexing API (getting listings indexed) over OAuth, in four stages:

1. Create a Google Cloud project and enable the three APIs. 2. Configure the OAuth consent screen. 3. Create OAuth credentials and paste the plugin’s redirect URL. 4. Authorize the plugin for read-only access to your own data.

The step is skippable. Skipping it means no keyword data and no traffic data anywhere in the dashboard.

Two traps catch almost everyone. Add yourself as a test user and publish the app, or authorization fails with “Access blocked”. And copy the redirect URL with the copy button rather than typing it, or you get redirect_uri_mismatch. Both are covered in troubleshooting.

Google reorganizes this console often. If a screen looks different from the video, the action is almost always the same — the button moved.

07

Get free featured images with Mapillary

Mapillary is crowdsourced street-level imagery, and it gives every listing a real featured image without a Google Maps bill. Sign up, register an application, copy the access token — it always starts with MLY — and paste it into the plugin.

Coverage is not universal. Rural areas and smaller towns have gaps, and listings without a match fall back to a generated image carrying the business name and address, so no listing ever ships with an empty frame.

The token is free and the sign-up takes about a minute. Image syncing then runs in the background — you do not wait on it.

08

Load your listings

Two ways to bulk-load data: upload your own CSV or XLSX, or scrape Google Maps through the built-in Outscraper flow.

Outscraper is transparent pay-as-you-go and you pay them directly — roughly $0.60 per 100 listings, about $60 for 10,000 and about $300 for 50,000, contact enrichment included. Fund your Outscraper balance before you start a scrape. The plugin lists the exact columns it uses, and an Outscraper export already contains all of them.

The recording shows a third option, a built-in demo dataset. That importer has been removed from the product. Data Import is CSV/XLSX and Outscraper only.

Bulk import is the paid line. On the free plugin you add listings one at a time through Add a Listing — unlimited, but manual.

09

Map your columns, then import

Column mapping tells the plugin which column in your file feeds which listing field. Most of it is auto-detected and marked green; your job is to verify it.

Check the URL-structure fields hardest — niche, country, state, city, business name. Those five build every URL on the site, so a phone number mapped where the business name belongs corrupts the whole tree. Confirm the contact, content, location, reviews and social steps, then run the import. You land on a finished, working directory.

Prefer the short country code over the full country name. /us/ makes a cleaner URL than /united-states/, and you cannot change it later without re-importing.

Part 3 · Steps 10–17

The dashboard, tab by tab

Eight tabs, eight clips. This is the section to skim now and come back to when you actually need one of them.

12 min read 8 videos
10

Settings — branding, ad zones & integrations

Set one accent color and it applies everywhere: buttons, links, and the customer portal all inherit it. Typography — family, size, weight, line height — is global in the same way.

Ad Banners gives you five zones: one on each side and three in content. Each takes a text banner, an image banner, custom code such as AdSense, or a mix, with per-banner control over nofollow, sponsored, target tab and ad disclosure, and its own on/off toggle. Integrations holds the Google and Mapillary connections and runs featured-image syncing in the background.

11

Check theme compatibility

The Compatibility tab detects your active WordPress theme and optimizes for it so the plugin renders cleanly and loads independently of the theme’s own styles.

It is theme-agnostic by design, and it re-detects and re-optimizes when you switch themes — the video demonstrates it by switching to Kadence mid-tour.

12

Read your analytics

With Google connected, pick your property and the Analytics tab syncs Search Console and GA4 into one view: visitors, sessions, pageviews, bounce rate, clicks, impressions, CTR and average position, plus a traffic map and top countries, queries, pages and listings.

There is a day-range selector and a demo-data preview for the empty first week. Included on the free plugin and every paid tier.

13

Let the sitemap run itself

A sitemap tool is built in, so you do not need a separate SEO plugin for it. It generates an XML sitemap for search engines and an HTML sitemap for people, connects to Search Console for automatic submission, and references robots.txt.

It regenerates whenever listings change and re-pings Google each time. Every entry carries its own last-modified date.

14

Track your keywords

A rank tracker built on your own Search Console data. Overview gives you total keywords, top 3 / 10 / 20, clicks and average position. The Keywords, Pages and Listings tabs break performance down by URL — the Listings view is the one to show a paying client.

Opportunities surfaces keywords sitting between page one and page two with the click gain you would get by pushing them up. Cannibalization flags one keyword competing across several of your own URLs. Data needs a few days to accumulate before either is useful.

Search Console is the only data source, so the tracker sees the queries your site already gets impressions for. That is a Search Console boundary, not a plugin limit.

15

Submit to ten search engines

The indexing tool submits listing URLs to the Google Indexing API and to IndexNow — Bing, Yandex, Seznam and Naver, around ten engines in total.

It shows how many listings are submitted, queued, indexed or not yet sent, with a configurable daily batch size (default 150, and worth keeping under 200), auto-submit, and run scheduling. This is normally a paid third-party tool.

16

Join the Network Hub

The Hub automates the hardest part of ranking a directory: backlinks. Directories built on TurnKey Directories link to each other inside curated, niche-isolated networks — roofing with roofing, dental with dental — through a single /partners/ page on each domain.

It is opt-in and available from Growth up. Joining needs a fully built, verified directory with at least ten published listings and a live plugin heartbeat; offline sites are dropped automatically. You can leave in one click, and a Discord community connects operators to each other.

Full mechanics, the five verification gates and why it is not a PBN: the Network Hub page.

17

Manage & bulk-edit listings

Manage Listings shows totals, image coverage, edited counts and categories. Select all to import, export or delete, or open a single listing and edit everything: business info, description (one is generated if your data has none), working hours, featured images by drag-drop or image URL, status flags (claimed, sponsored, verified, priority boost), contact details, socials and reviews.

Search by name and paginate for large datasets. For the same change across thousands of rows, editing the source CSV and re-importing is still faster. Available on every tier.

Part 4 · Steps 18–19

What your visitors actually see

One physical page, and an entire URL tree generated underneath it — every level a real page with its own schema.

4 min read 2 videos
18

The search page and the free map

The search page is the only physical page the plugin creates, and you can use it as a search page or as your homepage.

It lists everything with faceted filters — quality rating, location, reviews, availability, near-me by country, state and city — a free OpenStreetMap map with markers, listing cards with featured images and click-to-call, favourites, side-by-side compare, share and email, and pagination. It generates CollectionPage schema on its own.

It is a real WordPress page with a fixed Directory Listings block in it, so you can add your own Gutenberg blocks above and below the live listings and use it as a marketing homepage.

19

Inside a listing page

Every listing page is built from your data automatically: ad zones (two side, three in content), business name and category, Google-linked reviews, a live open/closed schedule based on the visitor’s time, the Mapillary street-view image, quick actions (directions, phone, website, booking, where your data has them), specialties, hours, contact details, an embedded map, social links, interlinking to similar businesses, and on-site reviews. A claim/owner-login flow sits at the bottom.

Schema exists on every level of the URL — business, city, state, country — and each of those is a genuinely built-out page with breadcrumbs and structured data, not a thin repeated template.

The URL tree it generates

Listing URLs are rendered dynamically rather than stored as WordPress posts, which is why 50,000 of them do not slow the site down. Every level below is a real, indexable, schema-marked page:

/niche/ /niche/country/ /niche/country/state/ /niche/country/state/city/ /niche/country/state/city/business-name/

See it running at scale on the 10K, 30K and 50K live demos.

Part 5 · Steps 20–22

Turning listings into customers

A business owner claims their listing, you approve it, and they land in a self-serve portal that bills through your own Stripe account. No platform cut, ever.

6 min read 3 videos Starter and up
20

Let businesses claim their listings

A business owner who finds their listing can claim it with a short form — name, business email, phone, proof of ownership — and no WordPress account.

The Customers tab shows the totals: customers, verified accounts, pending claims and plan usage. A claim arrives, you check the proof and approve it, and the owner moves onto your free tier with a login to their own dashboard. Claimable listings and the portal start at Starter.

21

The customer portal

After approval the owner gets a branded email in your colors with a link to set a password, then signs in to a separate portal — no WordPress access at any point.

There they view and edit their listing (info, contact, hours, featured images, video, CTA banners), change plans, moderate their own reviews where you allow it, and see per-listing analytics for traffic and clicks from your directory. Billing is built in. Starter and up.

22

Monetization — Stripe, plans & revenue

Three sub-tabs. Stripe setup connects your own account with a publishable key, secret key and webhook URL; once connected, sync your plans in one click and owners pay you directly with no platform cut.

Plans & pricing shows customer counts per plan and lets you create, edit, disable or delete tiers — monthly or one-time — each with its own feature list, photo limits, price and optional “most popular” badge. Revenue reports all-time, monthly, MRR, active subscriptions and total payments straight from Stripe, alongside listing status.

The plugin ships default plans (Free / Professional / Premium) as a starting point. They are yours to rename, reprice or restructure entirely — they are what you sell to the businesses in your directory, not what you pay us.

Part 6 · Steps 23–25

Scale, speed, and moving up a tier

The last three clips are the proof, not the instructions: a timed 10,000-listing build, a live PageSpeed test at that size, and what happens when you outgrow your tier.

5 min read 3 videos
23

Build 10,000 listings, timed

A real build, on the clock: a 10,000-listing roofing dataset from Outscraper imported in about a minute and a half, column mapping done live, then image refresh and sitemap regeneration.

End to end it is under ten minutes to a working directory. The same path scales to 50,000 listings on the tiers that allow it.

24

PageSpeed at scale

A brand-new, completely unoptimized WordPress site with nothing but this plugin on it, on a $10-a-month Hostinger plan, carrying more than 10,000 listings — run through Google PageSpeed Insights live.

It returns a strong score before any optimization work at all, which is the part worth noticing for a WordPress site at that size.

The public 50,000-listing demo measures 96/100 with a 1.2s LCP. You can run it yourself against the live demo.

25

Upgrade later, pay the difference

Upgrades are pay-the-difference, always. Start low to see whether the directory is worth building, then move to Growth, Pro or Agency for the gap only — never the full price again.

Every listing you already have is kept. There is no re-import and no migration step.

Two routes, depending on how you bought. Yearly: do it yourself in the billing portal — prorated instantly. One-time: click Request upgrade in TurnKey Directories → Upgrade and we email a personal link for the difference. Both are laid out in plan & billing, with the exact amounts.

The ones that actually happen

Troubleshooting

Nine problems, in rough order of how often they come up. Seven of them are the Google connection.

9 known issues Discord if none of these fit
Access blocked when you authorize Google

You did not add yourself as a test user on the OAuth consent screen, or you did not publish the app. Both are required, and Google gives the same generic message either way.

Go back to Google Auth Platform → Audience, add your own email under test users, save, then publish the app and confirm. Return to the plugin and connect again — nothing else needs redoing.

redirect_uri_mismatch when you connect

The authorized redirect URL in your Google Cloud credentials does not byte-for-byte match the one the plugin generates. A missing trailing slash or http instead of https is enough to break it.

Use the copy button in the plugin rather than typing the URL. Paste it into Credentials → your OAuth client → Authorized redirect URIs, save, and try again.

The Google Cloud console looks nothing like the video

Google reorganizes this console frequently — the OAuth screens in particular have moved and been renamed more than once. The actions have not changed: create a project, enable Search Console API, Analytics Data API and Web Search Indexing API, configure the consent screen, add yourself as a test user, publish, create a Web application OAuth client, paste the redirect URL, copy the client ID and secret back into the plugin.

If a button has moved, look for the same wording rather than the same position.

No keyword or traffic data anywhere in the dashboard

Three possibilities, in order of likelihood. Google is not connected — the wizard step is skippable and it is easy to skip. The correct property is not selected in the Analytics tab. Or the site is genuinely too new: Search Console needs a few days of impressions before there is anything to report, and the keyword tracker only ever sees queries you already get impressions for.

The demo-data toggle in the Analytics tab lets you see the layout while you wait.

Pro is installed but nothing changed

Expected. Until a license key is activated, Pro deliberately behaves exactly like the free version. Go to TurnKey Directories → License, paste the key from your purchase email, activate, and refresh — the paid tabs appear immediately.

The Pro plugin will not install or activate

Pro has a hard dependency on the free core. Install TurnKey Directories from WordPress.org and activate it first, then upload turnkey-directories-pro.zip. Installing them in the other order will not work.

Listings imported, but the URLs are wrong

Column mapping. The URL tree is built from five fields — niche, country, state, city, business name — so if any of those was mapped to the wrong column, every URL inherits the mistake. Different scraping services format their exports differently, which is why the auto-detected mapping always needs a look before you import.

Fix the mapping and re-import. Also worth choosing the short country code over the full country name: /us/ reads better than /united-states/ and you cannot change it afterwards without re-importing.

Some listings have no featured image

Mapillary is crowdsourced, so coverage is uneven — thin in rural areas and smaller towns. Those listings fall back to a generated image carrying the business name and address, so nothing renders empty.

You can override any of them by uploading your own image on the listing, and business owners can replace it themselves from the customer portal once they have claimed it.

The directory looks wrong after a theme switch

Open the Compatibility tab. It detects the active theme and re-optimizes for it; switching themes is exactly the case it is built for. If something still looks off after re-detection, that is worth reporting — include your theme name and a screenshot.

Still stuck? Say so with your site URL and, if you have one, your license key — that is usually enough to answer in one reply.

Reference

What unlocks where

Read it as a ladder: each rung lists only what it adds to the one above it. Nothing is ever taken away when you move up, and upgrades cost the difference.

5 rungs One-time or annual
Free
$0 · WordPress.org · unlimited sites
Everything below is unconditional
  • Unlimited listings, added manually
  • 5-step setup wizard
  • Virtual page engine
  • Faceted search + map
  • Mapillary street view
  • Live working hours
  • Schema on all URL levels
  • XML + HTML sitemaps
  • Search Console + GA4 dashboard
  • Accent color + typography
  • Bulk inline editor
Starter
$299 one-time · or $129/yr · 1 site
Adds
  • Bulk CSV / XLSX import up to 10,000
  • Column mapping
  • Claimable listings + customer portal
  • Stripe billing + 2 owner-set plans
  • Reviews (Google import + on-site)
  • 5 display-ad zones
  • Google Indexing API
  • Email support
Growth
$549 one-time · or $199/yr · 1 site
Adds
  • Bulk import up to 30,000
  • Outscraper scraping in the wizard
  • IndexNow — Bing, Yandex, Seznam, Naver
  • Keyword rank tracker
  • The Network Hub
  • Unlimited owner-set plans
  • À la carte upgrade marketplace
  • Sponsored placement
  • Priority email
Pro
$899 one-time · or $329/yr · 1 site
Adds
  • Bulk import up to 50,000
  • Keyword Opportunities
  • Keyword Cannibalization
  • Priority roadmap input
  • Direct Discord access
  • Reading Toolbar Pro bundled
Agency
$1,499 one-time · or $549/yr · unlimited sites
Adds
  • Unlimited site activations
  • 50,000 listings per site
  • Dedicated agency Discord queue

Upgrades cost the difference

Starter → Growth $250, Growth → Pro $350, Pro → Agency $600. Never the full price twice, and nothing is re-imported.

One-time means one time

Lifetime updates on every one-time license, and a 30-day money-back guarantee. Annual exists for people who would rather not commit yet.

Your Stripe, your revenue

What the businesses in your directory pay you runs through your own Stripe account. There is no platform cut on any tier.

Full side-by-side breakdown and the current promo on the pricing table.

After checkout

Your key, your files, your billing

Payment runs through Lemon Squeezy, so your things end up on three different screens. Here is which one owns what — and which one you will actually come back to.

3 min read Self-serve
01Your email receipt

Arrives from Lemon Squeezy seconds after payment. It carries your license key and a link back to your order page — so keep it, or at least keep it findable.

Paste the key into TurnKey Directories → License and hit Activate. That is covered in step 04.

02Your order page

Every plugin file your tier includes, re-downloadable whenever you need it — a second site, a rebuild, a fresh install two years from now.

Pro and Agency also carry TKD Reading Toolbar and Reading Toolbar Pro here; the same license key activates both plugins.

03Your billing portal

The one you will revisit. Change tier, update your card, pull invoices, cancel a yearly plan.

Sign in with the email you bought with and you get a one-time magic link — there is no password to lose.

shop.turnkeydirectories.com/billing

Changing your tier

Both routes cost you the difference and nothing more. Which one you use depends entirely on whether you bought yearly or one-time.

On a yearly planSelf-serve

Open the billing portal, pick your subscription, hit Update subscription and choose the new tier.

The price is prorated automatically — you pay only the difference for what is left of your billing year — and the change applies instantly. It works in both directions, so downgrading is the same three clicks.

On a one-time planOne request

One-time purchases cannot auto-prorate, so there is one manual step. In the plugin, go to TurnKey Directories → Upgrade and click Request upgrade — it sends us your details.

We email back a personal upgrade link for the price difference. You never pay the full price twice, and nothing about your existing install changes.

What the difference costs Starter → Growth $250 Starter → Pro $600 Starter → Agency $1,200 Growth → Pro $350 Growth → Agency $950 Pro → Agency $600

Everything else in the portal

Update your card before a renewal fails, rather than after.

Download invoices and your full billing history, any time.

Cancel a yearly plan yourself. No email, no retention call — it stops the renewal and you keep the tier until the period ends.

Switch tier on yearly plans, up or down, prorated instantly.

Two things worth knowing

A one-time license has nothing to cancel. It is yours permanently with lifetime updates, so the portal simply holds your invoices and payment method. There is no renewal to stop.

Thirty-day money-back guarantee on every paid tier. If it does not fit your project, email support@turnkeydirectories.com within thirty days for a full refund. The free plugin removes the risk before you buy; this removes it after.

Open the billing portal Email support
Before you start

Questions people ask first

Do I have to buy anything to try it?

No. The free plugin on WordPress.org is the real product with no listing cap and no locked features — you can run an actual directory on it, watch real Google traffic land in the dashboard, and decide from there. What the paid tiers add is bulk import at scale, monetization, advanced SEO and the Network Hub. There is no separate trial because the free version is the trial.

Can I install it on a site I already run?

Yes. It works on a new install or an established site and coexists with WooCommerce, a blog and other plugins. Listing URLs are rendered dynamically rather than stored as posts, so it does not touch your existing content.

Does it work with my theme?

It is theme-agnostic. The Compatibility tab detects your active theme and optimizes for it, and re-runs that detection whenever you switch. Step 11 above shows a theme change happening live.

Do I have to connect Google?

Technically no — the wizard step is skippable and the directory runs fine without it. Practically yes: Search Console and Analytics are where every keyword number, traffic number and ranking report in the plugin comes from. Skip it and those screens stay empty.

Where does the listing data come from?

Your own CSV or XLSX file, or a Google Maps scrape run through the built-in Outscraper integration. Outscraper is pay-as-you-go at roughly $0.60 per 100 listings — about $60 for 10,000 and about $300 for 50,000 — and you pay them directly, with no markup from us. On the free plugin you add listings one at a time instead.

Do I need a Google Maps API key?

No, and that is deliberate. The map is Leaflet on OpenStreetMap, and street-level imagery comes from Mapillary. Neither bills you. The only Google APIs involved are Search Console, Analytics and Indexing, all of which are free at this volume.

How long does a big import actually take?

Step 23 is a timed 10,000-listing build, unedited: about a minute and a half for the import itself, and under ten minutes end to end including column mapping, image refresh and sitemap regeneration. A 50,000-listing import takes minutes rather than seconds.

Will 50,000 listings slow the site to a crawl?

The public 50,000-listing demo measures 96/100 in PageSpeed Insights with a 1.2s LCP. Step 24 runs the same test on a deliberately unoptimized site on $10-a-month hosting so you can see the floor rather than the ceiling. Both are inspectable — the demo pages are live.

I just paid — where is my license key?

In the email receipt Lemon Squeezy sends within seconds of payment, along with a link to your order page, where every plugin file your tier includes stays downloadable. Paste the key into TurnKey Directories → License and activate. If the receipt has not arrived, check spam first, then email us — we can resend it. Full map of all three screens in plan & billing.

Can I start small and move up later?

Yes, and it is lossless. Upgrades cost the difference between the two tiers, every listing you already imported stays where it is, and there is no migration step. On a yearly plan you do it yourself in the billing portal, prorated instantly; on a one-time plan it is a single Request upgrade click inside the plugin. Annual subscribers get full credit for years paid toward the same tier's one-time price.

How do I cancel, or change my card?

Both are self-serve at shop.turnkeydirectories.com/billing. Sign in with the email you bought with — you get a one-time magic link, no password — and you can cancel a yearly plan, swap your payment method or pull invoices without contacting anyone. Cancelling stops the renewal; you keep your tier until the paid period ends.

A one-time license has nothing to cancel. It is yours permanently, so the portal just holds your invoices and payment method.

What if I get stuck halfway through?

Check troubleshooting first — it covers the nine things that actually go wrong, and seven of them are the Google connection. After that, email support@turnkeydirectories.com with your site URL and license key, or ask in Discord, where other operators are usually faster than we are.

Step 01 is free.
Nothing to decide yet.

Install the plugin, run the wizard, add a handful of listings and see whether the directory is worth building. Everything above still applies when you scale it.

No listing cap No account needed Upgrade whenever