BeverageIndex.com is a programmatic SEO site indexing drink prices across 98 cities and 30 drinks. 3,728 indexable URLs. We launched it in March, submitted the sitemap to Google Search Console, and watched indexing flatline at zero for two full months.
When we finally crawled our own site with a friendly bot, the cause was embarrassingly simple: every drink and city link in our internal navigation pointed to a URL that returned 404.
The setup
bi-engine is a virtual-routing WordPress plugin (no wp_posts ) backed by these tables:
Table Rows What it holds
wp_bi_drinks 30 id=slug; category enum: coffee/beer/wine/spirits/tea/juice/specialty/soft_drinks
wp_bi_cities 98 id=slug, country, currency, lat/lng
wp_bi_prices 2,940 drink × city, USD-normalized
wp_bi_routes 3,727 pre-computed /{drink}/{city}/ paths
The theme is unusual for a pSEO site: a single SPA terminal template ( template-terminal.php ) hydrates from a JSON payload + /wp-json/bi/v1/enriched .…