CBD shop directories: one URL per row of your data
Keep the data in a Google Sheet, a CSV or JSON file, a REST endpoint or a Notion database and let SleekRank serve each row at its own URL, filled into one base page through mappings.
One base page, one URL per row
Put the data for CBD shop directories in a source SleekRank reads: a Google Sheet shared by link, a CSV or JSON file in your theme, a CSV or JSON URL, a REST endpoint or a Notion database. Every row needs a slug (Notion rows can derive it from the title), and the page group’s URL pattern, such as /cbd-shops/{slug}/, turns it into an address.
Design one base page in WordPress, with Gutenberg, a page builder or your theme, and point tag, selector and meta mappings at the elements each row should fill with values from columns such as shop, city and categories; list mappings take array fields from JSON or REST sources. Rows are cached in one indexed table, so no WordPress post is created per row.
Features
Seven data source types
Any of seven source types can feed a page group: JSON URLs, JSON files, CSV URLs, CSV files, REST APIs, Google Sheets, and Notion databases.
Four mapping types
Tag, selector, list, and meta mappings write each row’s values into the base page’s rendered HTML; list mappings fill existing list items from array fields.
Sitemap entries
When a published group’s sitemap option is on, its URLs join the sitemap of The SEO Framework, Yoast SEO, Rank Math, All in One SEO, or WordPress core.
Who it suits
Publishers
Turn a reference dataset into consistent pages that follow the source after each cache refresh.
Directory operators
Keep one row per listing in a sheet and let SleekRank serve each listing at its own URL.
Agencies
Ship one page per row for a client from a Google Sheet the client maintains and shares by link, without creating a post per page.
From data to pages
Build the base page
Design one WordPress page with the layout every generated URL shares.
Connect the source
Add a Google Sheet, CSV, JSON file, REST endpoint, or Notion database to a page group, with a slug in every row.
Map the fields
Point tag, selector, and meta mappings at the elements each row’s values should fill, and list mappings at list placeholders for array fields.
Reload and publish
Reload the data, set the group to Published, and check a few URLs and the sitemap.
Why programmatic pages
Long-tail searches are specific, and a page for the exact entity answers them better than a generic one. Building those pages by hand does not scale; filling one base page from a dataset does, and a fix to the base page or the data reaches every URL.
Frequently asked questions
How quickly do source edits show up?
Rows refresh in the background shortly after a source’s cache duration expires (0 keeps them until you reload), or right away when you click Reload Data or run wp sleek rank reload.
Is the base page itself indexed?
No. While its group is published, SleekRank marks the base page noindex and keeps it out of the core and The SEO Framework sitemaps.
What do the URLs look like?
Each page group has one URL pattern with a single {slug} placeholder, such as /services/{slug}/, filled from each row’s slug.
Does SleekRank write the copy for each page?
No. Each page shows the values in its row, so the text comes from your data and your base page.
Does each page get its own canonical URL?
Yes. A generated page points its canonical link and og:url at its own URL instead of the base page’s, also when Yoast SEO, Rank Math, The SEO Framework or All in One SEO prints them.
Does SleekRank create a WordPress post for every row?
No. Rows are cached in one indexed table, and each URL renders through the base page when it is requested.
Which data sources can feed the pages?
JSON URLs, CSV URLs, JSON and CSV files in the active theme, REST APIs, Google Sheets shared by link, and Notion databases.
Do the generated pages appear in the sitemap?
Yes, when the group is published and its sitemap option is on: SleekRank adds them to the first active of The SEO Framework, Yoast SEO, Rank Math, or All in One SEO, else the WordPress core sitemap. SEOPress and Slim SEO sitemaps are not supported.
Pricing
Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.
…or get the Bundle Deal
and save €250
The Bundle (unlimited sites)
Pay once, own it forever
Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.
What’s included
SleekAI
SleekByte
SleekMotion
SleekPixel
SleekView
SleekRank
SleekTrack