Structure6 min readReviewed
Listing site architecture for lawful adult platforms: URLs, categories, places and moderation
Listing sites for lawful adult goods, venues, events and creators share one architectural problem: thousands of short-lived pages built by users. This report sets out a structure that search engines can follow and that moderation can keep clean. It does not cover sex-work or escort advertising, which we do not work on.
1Scope of this report
We use "listing site" for platforms where users post lawful offers: second-hand adult products, venue and event listings, or creator directories. Sites whose main trade is advertising sex work or escorting are outside our work, and nothing here is written for them.
2A URL pattern that lasts
| Page | Example | Rule |
|---|---|---|
| Category | /lingerie/ | Short, lowercase, stable |
| Subcategory | /lingerie/bodies/ | One level deeper at most |
| Place within category | /events/amsterdam/ | Only where listings exist |
| Listing | /l/48213-lace-body-size-m/ | Stable ID first, readable slug after |
| Seller | /s/atelier-noord/ | Chosen handle, never a legal name unless the seller wants it |
Examples are illustrative; adapt names to your own categories and languages.
3Places that earn their page
Location pages are useful when a category has enough listings in a city to help a searcher, and when the page adds something: a short introduction, the newest listings, related categories. A page for every town with nothing on it looks like a doorway page and wastes crawl budget. Create place pages from real inventory, and remove them when it disappears.
4Pagination and freshness
- Number the result pages of busy categories, each reachable at its own URL, with next and previous links between them.
- Show newest listings first by default, so crawlers find fresh pages quickly.
- Keep an XML sitemap for live listings, updated as they appear and expire.
5Moderation as architecture
Under the Digital Services Act, hosting platforms must offer an easy electronic way to report illegal content and explain decisions to restrict it. Build reporting, review and removal into the listing lifecycle from the start. A clean index follows a clean platform. Filters on these pages are covered in our report on marketplace filters, and the service side on marketplace SEO.
6A URL scheme that scales
| Page type | Example pattern (illustrative) |
|---|---|
| Category | /events/workshops/ |
| Category in a place | /events/workshops/amsterdam/ |
| Listing | /listing/12345-evening-workshop-amsterdam/ |
| Seller | /seller/studio-name/ |
| English version | /en/ followed by the same pattern |
Keep IDs in listing URLs so titles can change without breaking links, and keep places as a level below categories only where supply justifies it.
7How deep the category tree should go
Shallow trees are easier for buyers and search engines. Two or three levels usually suffice: a broad category, a more specific one, and places where relevant. Every extra level splits supply further and creates pages with too few listings to be useful. Before adding a level, check that each new page would hold enough active listings to stand on its own.
8Breadcrumbs and internal links
Breadcrumbs on every listing show where it sits and link back up the tree. Category pages should link to their most active subcategories and places, and listings to similar listings in the same category. These links help search engines find new listings quickly and help buyers move sideways when a listing is not quite right. Avoid footer link blocks listing every place; they dilute the links that matter.
9Infinite scroll and paginated results
Infinite scroll suits phones but can hide listings from crawlers if later results only load through scripts. Offer numbered pages behind the scenes, each with its own URL and a link to the next, even if users see a continuous scroll. Each page should carry its own canonical rather than pointing to page one, so listings deep in a category can still be found.
10An Amsterdam events platform
Hypothetically. A platform listing lawful adult venues and events in Amsterdam has categories for event types, places for neighbourhoods with enough events, and listings that expire on the event date. It keeps past events visible for a few weeks with a clear "this event has ended" note and links to upcoming ones, then removes them. Venue pages carry the venue's own description and current events. The structure stays small, current and easy to crawl.
11Architecture checklist
- Every page type has a decided index status.
- URLs carry stable IDs and readable slugs.
- No category or place page exists without enough active listings.
- Pagination is crawlable; filters are controlled.
- Removed and expired listings leave the index promptly.
The service behind this report is marketplace SEO; filters are covered in marketplace filters.
12Places outside the Randstad
Most supply on Dutch platforms gathers in the Randstad, but cities such as Eindhoven, Groningen, Nijmegen and Maastricht can have enough listings in some categories. Set a clear threshold, such as a minimum number of active listings over the past month, and create place pages only where it is met. Below the threshold, fold listings into the province, and revisit monthly as supply changes. A page that appears only when it can be useful is far better than hundreds of empty ones.
13Speed at scale
Large listing sites slow down as they grow: heavy category pages, many images and complex filters. Keep listing images compressed and sized for phones, load listings in pages rather than all at once, and cache category pages that change slowly. Test the busiest category and the slowest listing on a phone each month. Slow pages lose visitors and crawl less, which compounds on a site with thousands of pages.
14Accessibility helps everyone
Clear headings, descriptive link text, labelled filters and images with useful alternative text help visitors who use assistive technology and help search engines understand the page. They also make the site easier for everyone on a small screen. Build them into templates, so every new listing and category inherits them automatically. Profile pages are covered in our report on marketplace profile SEO.
15Robots rules and sitemaps together
Robots rules decide what crawlers may request; sitemaps suggest what they should find. Keep them consistent: nothing blocked in robots should appear in a sitemap, and every page in a sitemap should be indexable. Generate both from the same page-type decisions, so a change in one is reflected in the other. Review them after every major release.
16Planning for growth
Design the structure for the platform you expect in two years, not the one you have today. Leave room for new categories, new places and a second language, and keep URL patterns stable as they arrive. Most painful restructures happen because a platform outgrew a structure chosen in a hurry. A short planning session before launch saves months later.
17More on this
The order of work for the whole platform is in Dutch marketplace SEO, languages in Dutch and English search, and model choice in membership versus listings. Membership platforms are covered on membership platform SEO, and promotion on platform marketing.
18In one line
Keep the tree shallow, the URLs stable, the pages earned by supply and the index free of whatever has expired or been removed.
19Background sources
Links to the bodies and studies mentioned, so the facts can be traced back.
QQuestions
Should listing URLs include the title?
A short, readable slug helps, but keep a stable ID in the URL so the address survives when a seller edits the title.
Do we need a page for every town?
Only where there are real listings and something useful to say. Empty town pages are thin and can be treated as doorway pages.
How does moderation affect search?
Directly. Illegal or spam listings that stay live damage trust with users and search engines, and the DSA expects a working way to report them.