How much to charge for a directory website
How much to charge for a directory website comes down to one question: how will this directory make money, and how much? A directory that sells featured listings to local businesses, or passes leads to them, is a revenue engine, and the build is worth a share of what it earns. A directory of internal staff or member profiles saves time instead, so price it on that. Either way, price the model, itemize the parts, and quote a monthly plan. Do not price per page.
Claude Code makes the visible part quick to build: search, filters, category pages, listing pages, a submit form. The parts that decide whether the directory works take longer: getting good listing data, keeping it accurate, getting businesses to pay, and structuring the pages so search engines treat them as useful. Those are what the quote should be built around.
Find the money model before you quote
Common directory business models and what to price against
| Model | Who pays | Price the build against |
|---|---|---|
| Paid or featured listings | Listed businesses, one-off or monthly | Expected listing revenue in year one |
| Lead generation | Listed businesses, per lead or per month | What a lead is worth to them, times expected volume |
| Ads or sponsorships | Advertisers | Realistic traffic, which takes time to build |
| Member or paid-access directory | The people searching | Subscription revenue the directory supports |
| Internal directory | Nobody, it saves time | Hours saved across the team each month |
Ask the client which row they are in, and ask how many paying listings or members they expect in the first year and why. If they cannot answer, that is your first finding. A directory with no clear buyer is a content site with a search box, and the honest move is to say so before you build it.
If they plan to charge businesses by card, factor in processing. Stripe's standard US pricing is 2.9% + 30 cents per successful domestic card transaction, with extra fees for international cards and currency conversion. On small monthly listing fees, the fixed part of that fee is a noticeable share, which is one reason annual listing plans are worth suggesting.
The CCC Directory Website Quote
Six parts of a directory website quote
| Part | What it prices | Question to ask the client |
|---|---|---|
| Base build | Search, filters, category pages, listing pages, map if needed | What does a visitor need to find in under a minute? |
| Listing data | Sourcing, importing, cleaning and de-duplicating the first set of listings | Where do the first listings come from, and do you have the right to use them? |
| Business accounts | Submit, claim and edit a listing, with approval | Who checks a new listing before it goes live? |
| Payments | Paid or featured listings, plans and invoices | What does a business pay for, and how often? |
| Search structure | How category and location pages are organized for search engines | Which searches should this directory show up for? |
| Keep plan | Data refresh, moderation, hosting, fixes and small changes | Who notices when a listed business closes? |
Base build. Price it as a fraction of one year of the value from the money model, so the client can see the directory pay for itself. A simple list with search sits at the low end. Maps, many filters, reviews and business dashboards push it higher.
Listing data. This is the line most quotes miss. Fifty listings typed in by the client is a small job. Thousands of listings pulled from spreadsheets, public sources or a scraper, then cleaned and de-duplicated, is a project of its own. Check where the data comes from and whether the client can legally use it, and write that into the scope.
Search structure. Directories rank through their category and location pages, and that is also where they get in trouble. Google's spam policies name doorway abuse, which includes many near-identical pages targeted at different cities that funnel to one place, and scaled content abuse, which includes generating many pages with AI or scraped feeds without adding value for users. A page per city with nothing on it but a swapped place name is that risk. Price the work of making each page useful: real listings, real details, a browsable structure.
Ask these before you quote
- Does an existing directory platform or plugin already do this? If one covers it, a custom build may cost them more to own. Say so. You build custom when they need something the platforms cannot do, and you price that difference.
- Who owns the data? The listing database, the domain, the hosting and the payment account should be in the client's name or clearly handed over.
- What happens when a listing is wrong? A wrong phone number is an annoyance. A closed business listed as open, or a fake review, damages trust in the whole directory. The answer sets how much moderation to price.
- How will the first visitors arrive? Search takes time. If the plan depends on traffic from day one, ask where it comes from.
More questions that prevent a bad quote are in client discovery questions before you quote.
Always quote the Keep plan
A directory's value is its data, and data goes stale. Businesses close, move, change hours and change phone numbers. New submissions need checking. Paid listings need renewing. A directory nobody maintains slowly turns into a list of wrong answers, and visitors notice.
Quote a monthly plan in the original proposal. Say what it covers: a data refresh on a set schedule, approving new submissions, removing spam, hosting if you manage it, security updates, and a set amount of small changes. Say what it does not cover: new features, new cities or categories, and large data imports, which are quoted separately. How to price a maintenance retainer covers the structure.
How to present the directory website quote
- Lead with the money model in their words. One line on how the directory earns or saves, then the price.
- Itemize it. Base build, listing data, business accounts, payments, search structure, then the Keep plan. Itemized quotes get trimmed, not rejected.
- Gate payments on proof. A deposit to start, a payment when the directory works with real listings on a staging site, and the final payment after launch. How to structure milestone payments for an AI project covers the schedule.
- Write the scope down. Which listings, which cities or categories, what businesses can edit, and who owns which account. How to write a statement of work for an AI project has the template.
And skip hourly. Claude Code makes the build fast, so hourly pricing turns that speed into a pay cut. I covered why in why I stopped charging hourly for AI builds.
Short, practical drops on skills, MCP, agents, prompts, and more. No spam, unsubscribe anytime.
Frequently asked questions
How much should I charge for a directory website?
Price it on how the directory makes or saves money: paid listings, leads, ads, member access or time saved. Charge a fraction of one year of that value for the build, add lines for listing data, business accounts, payments and search structure, and quote a monthly plan.
Should I charge extra for the listing data?
Yes. Sourcing, importing, cleaning and de-duplicating listings is separate work from building the site, and it can be the biggest part of the job. Price it as its own line.
Can a directory website get penalized by Google?
It can if it relies on thin pages. Google's spam policies name doorway abuse, such as many near-identical city pages that funnel to one place, and scaled content abuse, such as mass-generated pages from AI or scraped feeds with no added value.
What does it cost to take payments for directory listings?
With Stripe's standard US pricing, a successful domestic card payment costs 2.9% + 30 cents, with extra fees for international cards and currency conversion. Build that into the listing prices you help the client set.
Should I charge a monthly fee for a directory website?
Yes. Listings go stale, new submissions need approving and spam needs removing. Quote a monthly plan that covers data refresh, moderation, hosting and small changes.
Last reviewed by Duncan Rogoff on October 21, 2026

