A few weeks ago I praised Uproad’s programmatic SEO strategy: hundreds of templated pages, one for every toll point in their footprint, built specifically to capture searches for a product almost nobody was searching for. I called it ingenious, because it was.
Then in my note on HTML sitemaps, I closed by warning that a sitemap does not launder thin content, and that if you have 200 near-duplicate pages with the town name swapped out, organizing them just gives you a tidy index of a problem.
A sharp reader should be asking how both of those can be true. Hundreds of templated, keyword-targeted pages is the exact thing Google calls doorway abuse. So which is it?
The answer is in the policy, in a sentence almost nobody quotes.
What the Policy Actually Says
Google renamed this section “Doorway abuse” in a 2024 documentation refresh. Here is the current definition, and pay attention to the second sentence:
Doorway abuse is when sites or pages are created to rank for specific, similar search queries. They lead users to intermediate pages that are not as useful as the final destination.
Almost every discussion of doorway pages quotes the first sentence and stops. But the first sentence describes half the internet, including plenty of legitimate work. The second sentence is where the actual violation lives.
Look at Google’s own examples, which all describe the same behavior:
- Multiple domain names or pages targeted at specific regions or cities that funnel users to one page
- Pages generated to funnel visitors into the actual usable or relevant portion of a site
- Substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy
- Multiple websites with slight variations to the URL and home page to maximize reach for a query
The word that keeps appearing is funnel. A doorway page is a waiting room. It catches a query and hands the person off to somewhere else, because the page itself was never meant to answer anything.
There is a sibling policy worth knowing here too: scaled content abuse, which covers generating many pages primarily to manipulate rankings rather than help users. Note the “primarily to manipulate rather than help” framing. It shows up again and again, and it is the actual test.
The Test Everyone Repeats, and Why It Fails
The standard advice is some version of “build pages for users, not search engines,” or “would you build this page if search engines didn’t exist?”
That test is useless, and Uproad proves it.
Those toll pages existed because of search demand. That was the entire point. Nobody at Uproad woke up wanting to publish a page about the Antioch Bridge toll for its own sake. They built those pages because people search for specific tolls, and the app almost nobody searched for could be put in front of exactly those people. If search engines vanished, the pages vanish with them.
By the “would you build it anyway” test, Uproad is guilty. And Uproad was completely legitimate, ranked for years, and I would build the same thing again tomorrow.
So intent to rank is not the violation. Google’s policy does not prohibit creating pages to capture searches. That would prohibit SEO. What it prohibits is pages that are useless to the person once they arrive.
That reframing is the whole thing. Stop asking why the page was built. Ask what happens to the person who lands on it.
The Three Tests That Actually Work
1. The destination test. When someone lands on this page from search, does their question get answered here, or does the page exist to catch them and pass them along?
This is Google’s own language, restated as a question you can answer about your own page. A doorway is an intermediate page. If the value is somewhere else and the page’s job is to route people to it, that is the violation, no matter how the page was produced.
Uproad’s toll pages passed this cleanly. Someone searching “how much is the Antioch Bridge toll” landed on a page with the toll cost, a map, and how to pay it. Question asked, question answered, on that page. The app was offered off to the side as a better way to handle a problem the visitor had just confirmed they had. The page was the destination, and the product was the upsell.
Compare that to a page whose entire body is “We proudly serve Springfield! Contact us today for a free quote.” The query gets caught. Nothing gets answered. The only path forward is a contact form somewhere else. That is a waiting room with a keyword on the door.
2. The substitution test. Swap the variable, the town name, the toll, the industry, the integration, and ask what else changes on the page.
If real substance changes, you have genuinely different pages. Uproad’s toll pages had different toll amounts, different locations, different payment mechanics, different maps. Swapping the toll changed the actual information.
If only the noun changes, you published the same page 200 times. That is precisely Google’s “substantially similar pages” example, and it is where most programmatic SEO dies. The template is not the problem. An empty template is the problem.
This is also the honest test for the “industries we serve” and location pages I discussed in the sitemap note. Twenty industry pages are fine if each one says something true and specific about serving that industry. If they are one page with the industry name find-and-replaced, the count does not matter. You have one page, published twenty times.
3. The hierarchy test. Do these pages live in a real, browsable structure, or are they a flat mass floating outside the site?
Google’s third example calls out pages “closer to search results than a clearly defined, browseable hierarchy,” and there is a well-known tell here: doorway pages typically link out to the main site but receive no internal links from anywhere on it. They exist for crawlers arriving from search, not for humans navigating a site.
Uproad passed this too. The toll pages rolled up into state hubs, the hubs were linked from the footer, and the whole thing formed a navigable structure. This is the same argument as the HTML sitemap note, and now you can see why I ended that note with the caveat I did. Structure is necessary and not sufficient. A hierarchy makes legitimate pages findable. It does not make illegitimate pages legitimate.
Working the Examples
Uproad passes all three. Destination: the query resolves on the page. Substitution: the toll data genuinely differs. Hierarchy: state hubs, footer-linked, browsable. That is why it ranked for years, and why writing about it was never a risk to them.
Bitrix24’s use-case pages pass as well. Their /uses page links north of 100 pages like “Free CRM for Accountants and Bookkeepers” and “CRM System For Insurance Agents.” Templated? Certainly. But each one addresses a real, distinct use case with content specific to it, they resolve the searcher’s question on the page, and they sit in a grouped, browsable hub. Same pattern, different industry.
Zapier’s integration pages are the biggest legitimate example most people know: a page for essentially every app-to-app connection, which is programmatic by definition. They pass because each page documents a genuinely different integration that genuinely exists, and the page does the job the searcher came for.
Now the failures, drawn as archetypes rather than pointing at any particular site:
The 200-city contractor. One service page, replicated for every town within 90 minutes, identical but for the city name and a line about “proudly serving.” Fails substitution outright, and usually fails destination too, since the pages exist to route to one contact form. This is Google’s example number two nearly word for word.
The orphan farm. Thousands of pages generated from a database, reachable only via XML sitemap, receiving no internal links and appearing in no navigation. Fails hierarchy by design, and typically fails substitution as well.
The scraped data mill. This is the case John Mueller was actually responding to when he posted his famous line. Lily Ray had flagged dozens of sites scraping and repurposing other sites’ data into huge numbers of hyper-specific landing pages about songs, maps, schools, and pets. Mueller replied: “programmatic SEO is often a fancy banner for spam.”
That quote gets thrown around as a blanket condemnation of programmatic SEO, which is not what he said. He said “often.” And when someone pushed back that it is not always spam, he replied “Forever the optimist,” which is a wry concession that it can be done right. The distinction he was drawing is exactly the one in this note: repurposing someone else’s data into hyper-specific pages is spam because the pages add nothing; building pages that genuinely answer specific questions is not.
The Gray Zone, Honestly
Local service-area pages and industries-served pages sit closest to the line, and I am not going to pretend otherwise. They can absolutely pass, and here is what passing costs.
It costs substance that actually differs per page. The specific projects you have done in that town. The regulations or requirements particular to that industry. Real service details, real photos, real specifics. Not a paragraph about how you have served the greater metro area for 30 years with the city name dropped in three times.
Scale amplifies whatever you already are. If the pages are genuinely useful, more of them is more coverage. If they are thin, more of them is scaled content abuse, and the volume is what draws attention. Twenty thin pages might go unnoticed for years. Two thousand will not.
And the caveat I keep repeating, because it keeps being true: infrastructure does not launder thin content. Not an HTML sitemap, not a tidy hierarchy, not clean internal linking. Those make good pages findable. They do not make bad pages good.
The Takeaway
The line is not about templates, automation, scale, or whether you built the page for search traffic. Every one of those is compatible with legitimate work, and Uproad, Bitrix24, and Zapier all prove it.
The line is whether the page ends the search.
That connects directly to what I have been writing about keeping visitors on your site. A doorway page is, by definition, a page nobody’s search ends on. It is the pogo-stick in structural form: catch the click, fail to satisfy, send them onward or back to the results. Google’s policy against doorway abuse and Google’s behavioral ranking systems are pointed at the same thing from two directions.
So before you build 300 pages, take one of them and ask: if this is the only page a person ever sees on my site, did they get what they came for? If yes, build the other 299. If no, building 299 more will not fix it, and will make it worse.


