Content pages
On this page
A page can be a parent of other pages by specifying it as the parent in the Child Page’s record. A child page can also act as a parent for other pages allowing you to create a hierarchy of pages. You can create links to any page using its path and can also create a list of page links using the featured pages Content Block Template.
| Fields | Usage | Input |
|---|---|---|
| Page Name | The name used to identify the page | Plain Text |
| Store | The store the page belongs to | Stores Lookup |
| Identifier | Unique HTML ID for the page | Plain Text (auto entered but can be changed if needed) |
| Parent Page | The Parent of this page if it has one | Pages Lookup |
| Parent Position | Where this page sits among its siblings under the same parent | Number |
| Path | The path or slug for the page | Plain Text (do not include / at the front) |
| Title | H1 heading for the page | Plain Text |
| Subtitle | Medium sized subtitle for the page | Plain Text |
| Content Body | The main page content | Plain Text, Markdown, HTML |
| Meta Title | Meta Title for SEO | Plain Text |
| Meta Keywords | Meta Keywords for SEO | Plain Text (comma separated) |
| Meta Description | Meta Description for SEO | Plain Text |
| Social Image | The image used when the page is shared on social media. Falls back to the page’s first image | Media Lookup |
| Search Keywords | Extra terms that improve the page’s relevance in on-site search results | Plain Text (one per line) |
| Hide Page from Navigation and Menus | Keeps the page out of automatically generated lists such as the navigation bar and footer, and out of the generated sitemap. The page stays reachable at its path | Checkbox |
| Require Login? | Requires customers to be signed in before they can open the page | Checkbox |
| Preview on Site | A link that opens the page on the storefront | Read only |
Publishing a page
There is no publish step and no publish checkbox. A page goes live as soon as you save it, when it becomes reachable at its store URL path.
:::note Hiding pages from the navigation and menus does not unpublish a page. It removes the page from automatically generated navigation and footer lists, and from the generated sitemap, but the page still works at its path and still appears in on-site search results. To stop a page being reached at all, use Require Login? or delete the page. :::
Add content to your page
Other than Title and Subtitle (which are optional), all of the page content lives in the content body field. You can put your page content directly in there, or using the short code snippet that is there by default, render each of the content blocks related to that page in their specified order.
This is the code you would see in the content body field unless you have replaced it with other content:
{{ content_page | render_content_blocks }}
To add content blocks to the page:
- From the Page Content Blocks related list, click New.
- Search and select the content block you wish to add.
- Specify the position of the content block in relation to the other content blocks on that page.
- Make sure the Usage Type is
Page Content. - Click Save.
Serving alternate content types
By default, pages render as HTML. You can serve a page as a different content type by including a file extension in the page Path field.
| Path example | Content type | Use case |
|---|---|---|
robots.txt |
text/plain |
Robots exclusion file |
llms.txt |
text/plain |
LLM context file |
sitemap.xml |
application/xml |
XML sitemap |
feed.json |
application/json |
JSON feed |
export.csv |
text/csv |
Data export |
When an alternate content type is used:
- The page renders without the standard HTML layout (no header, footer, or theme wrappers)
- The Content Body field is rendered as-is using Liquid, so you can generate dynamic content
- The current_request.content_type Liquid variable returns the MIME type for the current request
Example — generating a plain text robots.txt:
Create a page with Path robots.txt and Content Body:
```liquid
User-agent: * Disallow: /checkout Disallow: /account
Sitemap: https://{{ current_store.domain }}/sitemap.xml ```
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.