Appearance
SEO Store Pages
Give each location its own crawlable, search-friendly page with structured data.
Overview
Every active location automatically gets its own public detail page, server-rendered so search engines can crawl it, complete with LocalBusiness structured data (name, address, phone, hours, and coordinates). SEO settings control the shared locator page's own title/description, plus each location's own.
Important: the title and meta description you set in this app only appear on the live page after you add a small snippet to your theme (one-time setup) - see Add the SEO snippet to your theme below. This is a Shopify platform limitation, not something this app can skip: the store locator page is served through an app proxy, and Shopify does not let apps set <title>/meta description tags on an app proxy page directly.
Benefits
- Each location is independently indexable by search engines, with no extra work per location
- Structured data helps search engines understand your locations as real businesses with hours and addresses
- A sitemap lists every active location's page automatically
Where to Find It
Apps → BRIX: Store Locator & Maps → Settings → SEO
How to Use
- Open Settings → SEO.
- Set a Page Title and Meta Description for the shared locator page (shown at the Store Locator URL field near the top of this page - copy it any time with the Copy button).
- Optionally add tracking Scripts to run on the locator page.
- For each individual location, set its own Page Title and Meta Description under the location's own SEO section - see Adding & Editing a Location. The URL Key you set there (or the one auto-generated from the name) becomes that location's page URL.
- Add the SEO snippet to your theme (see below) - required once, otherwise none of the title/description text you set in steps 2 and 4 will actually appear on the live page.
Add the SEO snippet to your theme
This is the one manual setup step every merchant needs to do once. Without it, your Page Title/Meta Description settings are saved but never actually reach the live page.
- In the app, go to Settings → SEO and scroll to the Theme snippet section near the bottom of the page.
- Click Copy snippet, or copy the code block below - they're identical. If the two ever disagree, trust the in-app Copy snippet button; it's generated live from the app's own code, and this doc is a manual copy of it.
- In Shopify Admin, go to Online Store → Themes, find your live/published theme, and choose Edit code.
- Open layout/theme.liquid.
- In
<head>, find your theme's existing<title>tag and any<meta name="description">tag. - Paste the snippet in their place. It includes a fallback branch for every other page on your store (marked with a comment) - move your theme's own original
<title>code into that marked spot first, so your theme's normal page titles elsewhere on the store keep working exactly as before. - Save.
If you're not comfortable editing theme code yourself, ask your theme developer, or contact support, and share this page with them - the snippet and instructions below are self-contained.
This one snippet covers both the shared locator page and every individual location's own page - you only need to add it once, not per location.
liquid
{%- comment -%}
Store Locator SEO tags - renders the meta title/description set in this app's SEO settings
(and each location's own SEO fields) as real <title>/<meta name="description"> tags, since
an App Proxy page cannot set <head> tags on its own.
{%- endcomment -%}
{% assign brix_sl_seo_config = shop.metafields['brix-store-locator-apps']['seo_config'].value %}
{% assign brix_sl_location_slug = request.path | split: '/' | last %}
{% assign brix_sl_location_seo = shop.metaobjects['brix_location_seo'][brix_sl_location_slug] %}
{% if request.path contains 'apps/store-locator/location/' and brix_sl_location_seo.meta_title.value != blank %}
<title>{{ brix_sl_location_seo.meta_title.value | escape }}</title>
{% elsif request.path contains 'apps/store-locator' and brix_sl_seo_config.metaTitle != blank %}
<title>{{ brix_sl_seo_config.metaTitle | escape }}</title>
{% else %}
{%- comment -%}
↓ Replace this with YOUR THEME'S OWN existing <title> tag - the lines below are only an
example (a common Dawn-based pattern). Find whatever <title>...</title> code already exists
higher up in your theme.liquid and move it down here instead of deleting it.
{%- endcomment -%}
<title>
{{ page_title }}
{%- if current_tags %} – tagged "{{ current_tags | join: ', ' }}"{% endif -%}
{%- if current_page != 1 %} – Page {{ current_page }}{% endif -%}
{%- unless page_title contains shop.name %} – {{ shop.name }}{% endunless -%}
</title>
{% endif %}
{% if request.path contains 'apps/store-locator/location/' and brix_sl_location_seo.meta_description.value != blank %}
<meta name="description" content="{{ brix_sl_location_seo.meta_description.value | escape }}">
{% elsif request.path contains 'apps/store-locator' and brix_sl_seo_config.metaDescription != blank %}
<meta name="description" content="{{ brix_sl_seo_config.metaDescription | escape }}">
{% elsif page_description %}
<meta name="description" content="{{ page_description | escape }}">
{% endif %}Available Settings
| Setting | Description |
|---|---|
| Store Locator URL | The live, fixed URL of your store locator page - read-only, with a Copy button. This is the page your Page Title/Meta Description below apply to. |
| Page Title / Meta Description | SEO tags for the shared locator page |
| Scripts (Tracking code) | Custom scripts added to the locator page |
| Per-location Page Title / Meta Description | SEO tags for each location's own public page (set on the location form) |
| Per-location URL Key | This location's page URL segment; auto-generated from its name if left blank |
| Theme snippet | The exact Liquid code to add to your theme (see above) - generated for your store, with a Copy button |
Best Practices
- Write a distinct Page Title and Meta Description for locations in the same city, so search engines don't treat them as duplicates.
- Keep URL Keys short and readable if you set them manually instead of relying on the auto-generated one.
- Reference the app's sitemap from your theme's robots.txt, or submit it directly in your search console, for faster indexing.
Notes
- Individual location pages include LocalBusiness structured data (address, phone, hours, coordinates) automatically - there's nothing to turn on separately. This structured data does not require the theme snippet - it's already part of the location page's own content today.
- The per-location "Scripts" field on the location form itself is not currently used on the public page - only this SEO settings page's Scripts field runs there.
- The app publishes its own sitemap listing every active location's page; it's separate from Shopify's native sitemap.
- The old "Page URL key" setting has been retired - the store locator page now always lives at one fixed URL (shown as Store Locator URL on this page), so there's nothing to configure there anymore.
Troubleshooting
I set a Page Title/Meta Description but the live page still shows my theme's default title. This is almost always the theme snippet step above not having been done yet (or not saved) - add it to layout/theme.liquid as described in Add the SEO snippet to your theme.
A location's page doesn't show up when I search Google. New pages take time to be crawled and indexed - confirm the location is Active, and consider submitting the app's sitemap to your search console.
My meta description looks generic on a location's page. Set a specific Meta Description for that location under its own SEO section - otherwise it falls back to the location's description text. Also confirm the theme snippet has been added (see above) - without it, no meta description reaches the live page at all, generic or otherwise.
