Doorway pages and city listings: what actually gets a classifieds directory's pages pulled from Google

An operator checks their directory's search visibility eighteen months after launch and finds that half the city pages have quietly stopped showing up. Nothing dramatic happened. No manual action notice landed in Search Console, no warning email, no sudden crash in overall traffic that would make the cause obvious. City by city, page by page, the listings that used to rank for "escorts in [city]" or "massage in [city]" just stopped being the ones Google shows. The natural read is that a competitor out-optimized the site. That is rarely what happened. What actually happened is that the exact structure a classifieds directory is built around, one page per city crossed with one page per category, is the same structure Google's own spam policies name directly, and an operator who has never read those policies has no way to tell the difference between a page that is working as designed and a page that reads, to an automated system, as something built to game a query.
This is not a theoretical risk picked out of a policy document that never gets enforced. Google ran three confirmed spam updates through 2026, in March, June, and August, and named cloaking, doorway pages, hidden text, and scaled content abuse as explicit targets each time. Search visibility for a classifieds directory is not optional the way it might be for a business with other channels open to it: paid advertising on Google and Meta is closed to this industry by policy, not by budget, which makes organic search close to the only door in. Losing city pages to a structural problem, rather than a content problem, means the fix is not better copy or more backlinks. It is understanding what the policy actually targets, because "more content" alone does not reliably fix it.
What Google actually calls a doorway page
Google's spam policy defines doorway abuse as pages created to rank for specific, similar search queries that lead users to an intermediate page rather than the actual destination they were looking for. The examples the policy lists are specific enough to read directly against a classifieds directory's own sitemap: "having multiple domain names or pages targeted at specific regions or cities that funnel users to one page," and "creating substantially similar pages that are closer to search results than a clearly defined, browsable hierarchy." A separate line in the same policy, under keyword stuffing, calls out "blocks of text that list cities and regions that a web page is trying to rank for" by name.
This is not a new or experimental reading of the policy. Google's own search team has treated city and region page networks as a doorway pattern since at least 2008, and it has said so again publicly at multiple points since: in December 2019, Google's John Mueller was shown a plan for roughly 1,300 city-based landing pages and called it a doorway setup on the spot, before any of the pages had even been built with content. The policy is not new to 2026. What is new is that the last three spam updates made enforcement against it visibly active again, after a period where many directory-style sites had stopped worrying about it.
The mechanism worth understanding is not "pages about cities are against the rules." A directory that lists real, current advertisers in Milan and a separate, real set of advertisers in Turin is not doing anything Google's policy describes. The mechanism is pages that exist only to catch a search query and then move the visitor toward the same thing regardless of which query brought them there: the same generic sign-up form, the same undifferentiated list, the same content with the city name swapped and nothing else. A search engine has no way to read intent from the page's HTML. It reads the pattern: hundreds of near-identical pages, each optimized for one geographic term, is either the natural shape of a real local directory or the natural shape of a doorway scheme, and from the outside those two things can look the same.
Most of the time this shows up as an algorithmic demotion, not a manual action, which is exactly why it is hard to diagnose from the inside. A manual action comes with a message in Search Console naming the problem and a path to fix it. An algorithmic reassessment of a page pattern comes with nothing: rankings for one template quietly drift down over weeks, the pages stay live and technically indexed, and the first thing an operator usually notices is a revenue number, not a warning. The signal being evaluated is the shape of the whole template across every city, not any single page read in isolation.
Why unique text per city is not the whole test
The fix operators reach for first is usually "write more unique text for each city page," on the assumption that thin, templated content is the only thing the policy is actually checking for. That is part of it, but treating it as the whole test has already failed people who tried it. In 2022, a wave of location pages across several hundred service-area sites was swept out of Google's index in what search industry reporting at the time traced to a spam-focused update; the sites that kept their pages were not simply the ones with the most unique text per page, they were disproportionately the sites with stronger domain-wide trust and authority. Content uniqueness reduced the risk. It did not eliminate it on its own.
The reason traces back to the funnel language in the doorway policy itself: a page counts as a doorway if it funnels users toward one page, and that test is about where the click leads, not only about what the page says before the click. A city page with genuinely different paragraph text but a "contact us" button that goes to the exact same generic inquiry form as every other city page is still structurally a doorway, because the thing the visitor was actually looking for, meaning real, current listings specific to that city, is not what they land on. For a classifieds directory the practical version of this is straightforward: a city page has to actually contain that city's advertisers, visibly and specifically, not a paragraph of local color sitting on top of a list that is really just "browse everything" with a filter nobody used.
The second, harder-to-fix factor is that this whole policy is evaluated with an eye to the site's overall trust, not page by page in isolation. A newer directory generating a thousand city and category combinations on day one, before it has advertisers in most of those cities, presents Google with exactly the pattern the policy describes regardless of how carefully each page is worded, because there is nothing behind most of the pages yet. The same explicit-content rules that decide whether Googlebot can even reach a page in the first place apply on top of this, not instead of it: a directory can pass one check and still fail the other.
The simplest version of this test an operator can run without any tool: open a city page and its neighbor from a different city side by side. If the only thing that changes between them is the city name in the heading and a few sentences of scene-setting text sitting above an identical "browse all listings" grid, that is functionally one page rendered many times, whatever the word count says. If the grid itself is different, meaning it shows that city's actual current advertisers and nobody else's, the pages are functionally distinct even if the surrounding copy is short. Google's systems are evaluating the second kind of difference far more than the first.
Index bloat, and the crawl budget nobody explains
The operational name for this problem, separate from doorway abuse specifically, is index bloat: a site accumulates far more indexed pages than it has real content to justify, and search engines spend a shrinking share of their attention on pages that are actually worth ranking. A directory that auto-generates a page for every possible city and category pairing the moment the site launches, regardless of whether any advertiser exists yet in that combination, is building index bloat by design. An empty "category X in city Y" page with no listings is not a doorway in the policy's technical sense, but it is exactly the kind of low-value page that drags down how Google evaluates the rest of the domain, and it is also, on a literal reading, the kind of substantially similar template page the doorway policy already names.
Google Search Console has a specific, free way to watch this happen before it becomes a crisis: the Page Indexing report breaks pages down by status, including a "Crawled, currently not indexed" bucket that is the earliest visible signal a template is being deprioritized at scale. Most operators only look at total clicks and total impressions, which average away exactly the pattern that matters here. A city-by-category directory should be checking indexing status grouped by URL pattern, not just overall traffic, because a template-wide problem shows up as a slow leak in that report months before it shows up as a visible traffic drop.
The fix is not to build fewer city pages forever. It is to stop building them ahead of the content that justifies them, and to keep a page with zero current listings out of the index until it has some.
This also argues against launching every city and category combination at once on a new domain. A directory that opens with real advertiser supply in twenty cities and builds pages for those twenty has a site that matches what it claims to be. The same directory generating five hundred city pages on day one, most of them empty, is asking a search engine to trust a domain it has no track record with while also handing it the doorway pattern to check against. Building the page list out gradually, in step with where advertisers actually sign up, costs nothing extra and removes the exact mismatch the policy is built to catch.
What to actually change
Publish a city or category page only once there is something in it that a visitor cannot get from any other page on the site: real, current listings, not placeholder text waiting for advertisers to sign up. Until that threshold is met, keep the combination out of the sitemap and set it to noindex rather than letting it sit live and empty; a thin page that used to exist and later gets real content is a much smaller problem than thousands of thin pages accumulating from day one.
Route city pages toward something that is actually specific to that city. If every page's real call to action is the same generic contact form or the same site-wide sign-up link regardless of which city the visitor arrived through, that is the funnel pattern the doorway policy names directly, no matter how different the surrounding paragraph text reads. The click-through destination has to differ as much as the page does.
Keep a real, browsable path between pages, rather than relying on search traffic to be the only way anyone finds a given city page. A visitor should be able to get from the homepage to any city through category and region links that make sense to a human, not only through a search result: Google's own doorway definition explicitly contrasts a clearly defined, browsable hierarchy against a page that exists mainly to be found by search and nothing else.
Do not build blocks of city and region names for the sake of covering more search terms, in navigation, footers, or filler paragraphs. That practice is named directly under keyword stuffing, separately from doorway abuse, and it is one of the easiest patterns for an automated system to flag because it has no other plausible purpose.
Check the Search Console Page Indexing report by URL pattern after any expansion into new cities, not just overall traffic. A rising "Crawled, currently not indexed" count on the city-page template is the warning that arrives weeks before the ranking loss does.


