Virtual & Real Location Pages
How the local page system works, and when a page gets indexed.
Virtual and real location pages
Vibe SEO can serve a dedicated local page for every U.S. city without creating a WordPress page for each one. These are "virtual" pages. They are rendered on demand from a cities table and a single shared template, so you can cover thousands of towns with no extra posts, no database bloat, and no slowdown. When one of those pages earns its place, you review it, index it, and can promote it into a real, permanent WordPress page. This lesson explains how that system works and exactly how you drive it.
The URL structure
Every geo page lives under its state initial, so cities are naturally scoped to their state. A city page looks like this:
/tx/seo-services-in-dallas/is Dallas, Texas/oh/seo-services-in-columbus/and/ga/seo-services-in-columbus/are two different Columbus pages, kept apart by the state initial
Neighborhood pages nest one level deeper, for example /tx/seo-services-in-dallas/seo-services-in-oak-cliff/. The bare state initial, like /tx/, is a hub that redirects to the full state page. If a URL names a place that does not exist, Vibe serves a real 404 rather than a blank shell, so you never accumulate low quality soft-404 pages.
What is on a city page
Each page is built from real data, never invented filler. The Local Search Market section pulls population, households, median income, median home value, and owner-occupancy from the U.S. Census Bureau (ACS 5-year), plus real search demand and cost-per-click from Google Ads Keyword Planner geo-targeted to that city. If a town is too small for Google to report its own numbers, the page clearly borrows the nearest market that has data, names it, and states the distance. If there is no data at all, that section simply does not render.
Neighborhood chips ("Proudly serving ... and nearby") come from real OpenStreetMap neighborhoods, up to twelve shown with a "+ N more" count. A city with no mapped neighborhoods shows none. The page also carries a "cities we serve" block for the state and the site scanner.
Because every virtual page draws from the same shared template, Block Variations rotate the wording of these sections so each city page reads as unique copy rather than a thin duplicate of the last.
Virtual, indexed, and real: the three states
This is the core idea. By default, a virtual city page is set to noindex, so search engines can reach it but will not list it. Neighborhood pages are always noindex. A page moves up only when you decide it is genuinely worth indexing:
- Virtual and noindex. The default. Served live, no post created, kept out of the sitemap.
- Virtual and indexed. You have given the page unique content and flipped it to indexable. It now appears in the cities sitemap. Only these indexed cities are listed there.
- Real page. The city has been promoted into an ordinary published WordPress page at the same URL. It is fully editable, indexable, and always wins over the virtual version.
How to give a city unique content and index it
Use the Edit City tool, found under the Virtual Pages menu.
- In the search field, enter the city as a URL or as
tx/lufkin, then click Load city. The card shows the city, state, population, and a "view page" link so you can open the live page in a new tab. - Fill in any of the content fields: H1 headline, Lede, Intro, and a Custom body. Any field left blank keeps the rotating template default, so you only override what you want to make unique. Intro and Custom body accept HTML.
- Check "Index this page" only once the content is genuinely unique to that city.
- Click Save city content. Vibe stores your overrides, updates the index flag, and clears the page cache so your changes show immediately.
Turning on indexing before the content is truly differentiated is the most common mistake. Thin or near-duplicate city pages that get indexed hurt you. Review first, then index. Note that a site-wide lockdown may still apply before launch, so an indexed flag alone does not override a pre-launch block.
Promoting a city to a real page
Promotion is the step that turns a reviewed virtual city into a permanent, real WordPress page: a published child of its state hub at the same URL, with the layout frozen into the page builder and search indexing switched on. It gets a proper SEO title and meta description, using any custom title you set. This is meant for your bigger markets, the cities worth a first-class hand-built page. Promotion is safe to repeat: if the real page already exists, the system just keeps it rather than creating a duplicate. From then on, the real page always serves and the virtual version steps aside.
What good looks like
A healthy setup covers a wide long tail of towns as lightweight virtual pages, all noindex, ready when someone searches. Your best markets carry reviewed, unique content and are indexed, so only your strongest pages are in the sitemap. The handful of cities that truly matter are promoted to real pages you can edit freely. Every page shows real local numbers or shows nothing at all, which is exactly the quality bar search engines and buyers reward.