Directories
Escort directory site architecture: a crawl-first blueprint
The structure of a directory decides which pages Google reaches and how much each one is trusted. A blueprint for the hierarchy, URLs, links, pagination and sitemaps.
By the CompanionRanker team · 6 minute read · Updated
The short answer
A good escort directory is shaped like a tree: a small number of strong city hubs near the top, areas and chosen categories under them, and profiles at the edges, every one reachable in a few clicks. Profile URLs stay the same when advertisers move. Pagination is crawlable. Sitemaps are split by page type. Everything else, including filters and sort orders, stays out of the index.
The shape of the site
Search engines judge how important a page is partly by where it sits and how many internal links point to it. A directory that links to everything from everywhere flattens that signal. One with a clear hierarchy tells Google which pages matter most.
- Homepage: links to every city hub you want to rank, and to regional pages if you cover the whole country.
- City hubs, such as
/manchester/: the pages most searches land on. Written for the city, linking down to its areas and categories. - Areas and chosen categories, such as
/manchester/northern-quarter/: only where people search for them and there are enough live listings. - Profiles: linked from the city and area pages where the advertiser works, and linking back up to them.
Every live profile should be reachable in three or four clicks from the homepage without using search or filters. If the only route to a profile is a filter, Google may never find it.
URLs that survive change
Directories change constantly, so the URL pattern has to cope with that. Three rules prevent most of the damage we see.
First, keep cities and areas in subfolders rather than subdomains. /leeds/ clearly belongs to the main site, while leeds.example.com is more often treated as a separate site that has to build trust of its own.
Second, give profiles a stable address that does not include the city, for example /profile/name-1234/. Advertisers move and tour. A profile URL with a city in it has to change when they do, and every change leaves a redirect behind.
Third, pick one pattern for everything and never support two. If /manchester/ and /city/manchester both work, you have two copies of every city page.
Internal links that carry weight
The most common mistake is a site-wide menu or footer that links to every city and category on every page. It looks helpful, but it spreads link value thinly across hundreds of pages, including ones that should not rank.
A better pattern: link the main cities from the homepage and top navigation, link smaller cities from regional pages, and link areas and categories only from their own city hub. Nearby cities can link to each other, which helps both. Profiles link up to their cities, never sideways to dozens of other profiles.
Breadcrumbs reinforce the same shape for visitors and search engines alike, and BreadcrumbList structured data lets Google show the path in results.
Pagination and infinite scroll
A busy city hub may list hundreds of profiles across many pages. How those pages are built decides whether the profiles on page nine are ever found.
Google's current guidance for paginated lists is straightforward. Give each page its own URL and let it be indexed with a canonical tag pointing to itself. Do not point every page's canonical at page one, because that tells Google the later pages are duplicates of it, and the profiles listed only there can drop out of view. Link the pages to each other in order, and link back to the first page from each one. The old rel="next" and rel="prev" tags are no longer used as an indexing signal, so they do not replace real links.
Infinite scroll needs the same underneath. Search engines do not scroll, so every listing that loads as a visitor scrolls must also exist on a normal paginated URL.
Sitemaps split by page type
A single sitemap listing every URL tells you very little. Split them instead: one for city hubs, one for areas and categories, and several for profiles. A single sitemap file can hold up to 50,000 URLs, and a sitemap index ties them together.
Two rules matter more than the split. Only list URLs you want indexed, never filters or expired listings. And keep the last-modified date honest, changing it only when the page really changes, so Google can trust it when deciding what to recrawl.
Search Console reports indexing per sitemap. With profiles in their own files, you can see at a glance what share of live profiles are actually indexed, which is the number that matters most on a directory.
Verification as part of the structure
On an escort directory, the pages that matter most for safety are the ones visitors rarely see: advertiser sign-up, age and identity checks, and the moderation queue. Build them into the architecture from the start. A listing should only become a public, indexable page after checks are complete, and it should leave the index promptly when it is suspended or removed. That keeps search engines away from content that has not been checked, and it supports the illegal content duties directories have under the Online Safety Act.
Page types and their safety role
| Page type | Safety role |
|---|---|
| Advertiser profile | Public only after verification; removed promptly on report |
| City and category hubs | Link only to verified, active listings |
| Report and help pages | Easy to find from every listing |
| Policy pages | State the rules on age, consent and prohibited content clearly |
Wording the site never uses
Category names, filters and page titles must never use language suggesting youth, such as "young" or "teen", or anything implying a lack of consent. Beyond being wrong, such wording attracts the kind of attention that leads to removal from search and to regulatory action. Write the rule into the content guidelines and block those terms in internal search and advertiser text.
Sitemaps for verified content only
Sitemaps should list only verified, active listings and the hub pages that link to them. Listings waiting for checks, suspended or removed should never appear. Generate sitemaps automatically from the same status field that controls whether a listing is public, so the two can never disagree.
Removal that actually removes
When an advertiser asks to leave or a listing is removed for breaking the rules, the page should return a not-found or gone response, drop out of sitemaps and lose its internal links the same day. Cached copies and images should be cleared too. Slow removal is one of the most common complaints about directories.
Where to start
Draw the tree as it is today, from your own crawl rather than from memory. Mark every page type that sits outside it, such as filter pages, old listings and search results. That list is the start of the rules that decide what gets crawled and indexed, which we cover in our faceted navigation guide and our directory SEO service. City hubs follow the same rules as any local SEO page, and package prices are on the pricing page.
Sources
Each link opens the body's own website. Rules change, so confirm the current version there.
Questions we are asked
Should each city be on its own subdomain?
We would not. Subfolders such as /manchester/ keep every city clearly part of one site. Subdomains are more often treated as separate sites, so each city may have to build trust on its own.
Should profile URLs include the city?
Usually not. Advertisers move and tour, and a URL that contains a city has to change when they do. A stable profile URL with the cities shown on the page avoids redirect chains.
Is infinite scroll a problem for SEO?
It can be. Search engines do not scroll, so every listing that loads as you scroll also needs to be reachable through normal paginated URLs with links between them.