Declare a themed collection, like Pet Friendly or Private Pool, once and get the landing page, the pre-filtered property explorer, the SEO copy, and the redirect from its old URL, all without touching a page builder.
What it does #
Every replatform, and every new amenity or theme collection you want to promote, repeats the same manual pipeline: build a page, nest it under the right parent, embed a filtered property explorer, write SEO copy, set up a redirect from the old URL so the page keeps the search ranking it already earned, and add it to your navigation. Doing that by hand for a dozen collections is slow, and it is easy to skip a step, most often the redirect, which is what costs you the ranking.
Collection Pages turns that pipeline into a row you declare once. Say you want a Pet Friendly collection: give it a title, a URL slug, the parent page it should live under, and the property tag or amenity it should show, in this case pets. Save your declaration and apply it, and the module does the rest:
- Creates the page (or matches it, if one already exists) and embeds a property explorer pre-filtered to that tag or amenity, so guests land on a page already showing the right homes.
- Renders the SEO copy you write for the collection underneath the explorer.
- 301-redirects any old URL you list for that collection straight to its new page, so a guest or search engine still holding the old link lands on the right page instead of a dead one.
- Gives you a
[hrtk_collection_index]shortcode that lists every live collection page, so a hub page or footer menu never falls out of sync with what you have declared.
Applying is safe to repeat. If a collection’s page already exists, only its title, slug, and parent are kept in sync; anything you or a page builder added to the page’s content is left alone. Removing a row later does not delete or unpublish its page either, the page is simply no longer managed by that row.
How to turn it on #
1. Enable the module #
In the HomeRunner Toolkit Hub, switch on Collection Pages.
2. Declare a collection #
Open the Collection Pages panel and click Add Collection. Fill in a title, a URL slug (leave it blank and one is generated from the title), the parent page to nest it under, and the filter, the property tag, amenity, group, type, city, or location, that the page’s explorer should be limited to, along with the term slug or slugs it should match. Add the old URL or URLs you want redirected to this page, one per line, and your SEO copy.
3. Save and apply #
Save persists your declarations without touching any pages, useful while you are still drafting several rows. Save & Apply persists the declarations and then creates or reconciles the pages. After it finishes, a receipt appears for each row (created, updated, unchanged, or an error to fix), and the module automatically runs a redirect check, described below. A property count also appears next to each saved row, showing how many properties match its filter today, so you can catch a typo or an empty match before you rely on the page.
Importing from your old site’s sitemap #
If you are replatforming, you do not have to retype every old collection by hand. In the Collection Pages panel, paste the previous site’s sitemap URL into Import from sitemap, for example https://oldsite.com/sitemap_index.xml, pick the page you want the imported collections nested under, and click Read sitemap.
The module reads the sitemap, and one level into any sitemap index it links to, and reduces what it finds to candidate collections, page-like URLs rather than individual property pages, image files, or WordPress infrastructure paths. Each candidate is checked against the property tags, amenities, groups, types, cities, and locations already on this site. A candidate that matches a term is pre-ticked and shows a live property count; a candidate with no confident match is still listed, unticked, so you can set its filter by hand or skip it.
Tick the candidates you want, click Add selected as rows, and they land in the editor below as new, unsaved rows with their title, slug, filter, and old URL already filled in. Nothing is created, redirected, or saved by the import itself, review the rows, adjust anything that looks off, then Save or Save & Apply when you are ready.
One import reads up to 9 sitemap files and 5,000 URLs, and shows up to 200 candidate collections at a time. A sitemap larger than that, or one whose index lists more child sitemaps than the module follows in a single pass, comes back with a note telling you which child sitemap to import next.
Verifying your old URLs redirect correctly #
After you click Save & Apply, the module automatically requests every old URL you have declared against your live site, the way a guest’s browser or a search engine crawler would, and reports what actually happens. You can also run this anytime with the Verify redirects button.
Each old URL comes back as one of a few outcomes:
- Redirecting correctly: a permanent redirect (301 or 308) lands on the right collection page. This is what you want.
- Temporary redirect: the page is right, but the redirect is a 302, 303, or 307. Search engines will not transfer the old page’s ranking through a temporary redirect, so this is worth changing to a permanent one.
- Still live: the old URL is still serving its own content, so the redirect never gets the chance to fire, it only triggers once a page no longer exists. Remove or unpublish the old page first.
- No redirect: the old URL 404s with nothing catching it. Check that Collection Pages is enabled and that the row has been applied.
- Page missing: this row’s collection page has not been created yet, or is unpublished. Run Save & Apply.
- Wrong target, broken target, off-site, or a loop: the redirect fires but lands somewhere it should not. The report shows both where it landed and where it should have landed.
A rarer few results, too many redirect hops, or the site not answering its own requests, get a plain explanation too, telling you what to check. Old URLs are checked in batches, so a long list does not time out. Once it finishes, you get a summary line: how many were checked, how many are redirecting correctly, and how many need attention.
Settings #
Per-collection fields #
One row per collection, edited in the Collection Pages panel.
| Setting | What it controls |
|---|---|
| Title | The collection’s page title, and its label in the [hrtk_collection_index] list. Required; a row with no title is dropped when you save. |
| Slug | The page’s URL slug. Leave it blank and one is generated from the title. |
| Parent page | Nests the generated page under an existing page. Default: no parent (a top-level page). |
| Filter | Which property attribute pre-filters the explorer: Tag, Amenity, Group, Type, City, Location, or No filter (all properties). A new row starts on Tag; change it or set it to No filter if the page should show every property. |
| Filter value | The term slug the filter matches. Separate more than one with a comma. The property count next to a saved row confirms the filter actually matches something. |
| Old URLs | One path or full URL per line from the previous site. A request to any of these that would otherwise 404 is 301-redirected to this page. The same old URL cannot be declared on two rows. |
| SEO copy | Descriptive text rendered below the property explorer on the generated page. Plain paragraphs work well since line breaks are turned into paragraphs automatically. How it displays is set by SEO copy display below. |
Site-wide settings #
| Setting | What it controls |
|---|---|
| Extra explorer attributes | Space-separated key=value pairs added to every generated collection page’s property explorer, for example hide_filters_btn=1. Default: hide_filters_btn=1. Only lowercase letters, numbers, hyphens, underscores, and commas survive; quotes are stripped, and anything that would change which properties show, like a second tag or a price filter, is dropped, since that belongs on each row’s own filter. |
| SEO copy display | How each page shows its SEO copy below the explorer: Expanded, always visible, or Collapsible, tucked behind a native expander guests can open. Default: Expanded. |
Drop [hrtk_collection_index] into any page, a hub page, a footer block, to render a linked list of every live collection page. Add parent="123" to limit the list to collections nested under one parent page.
Tips #
- Destination Filter builds the same kind of pre-filtered landing page, but for a destination instead of a tag or amenity. Use it alongside Collection Pages if you want both a Beachfront collection and an Islands destination page.
- If a collection page renders with no properties, check two things first: the filter value is a real term slug (the property count next to the row reads 0 or blank if it is not), and your site’s property explorer shortcode is active, since Collection Pages relies on it to show properties.
- Run Verify redirects any time after a bulk change to your old URLs, not just after Apply. It always checks what is actually saved and live, not whatever the editor currently shows unsaved.
- Watch the property count next to each row even after you have applied. A tag or amenity slug that stops matching any property, renamed, removed, or never synced from your PMS, will not throw an error; the page will just quietly show as empty.
- Nest a family of collections under one hub page (set the same Parent page on each row), then put
[hrtk_collection_index parent="123"]on that hub page so it always lists exactly the collections declared under it, with no manual link maintenance.