{"title":"Content pages","slug":"content-pages","url":"https://support.storeconnect.com/articles/content-pages","url_markdown":"https://support.storeconnect.com/articles/content-pages.md","subtitle":null,"summary":"Create web pages with titles, SEO metadata, and content bodies. Pages support parent-child hierarchies, alternate content types (plain text, XML, JSON, CSV), and can render content blocks using Liquid or custom HTML and Markdown.","type":"Help_Documentation","video_url":"","keywords":"content pages, web pages, page hierarchy, parent page, child page, seo metadata, meta title, meta description, content body, liquid templates, content blocks, html markdown, page path, slug, featured pages","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"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](content-block-templates).\n\n| Fields           | Usage                                 | Input                                                  |\n|------------------|---------------------------------------|--------------------------------------------------------|\n| Page Name        | The name used to identify the page    | Plain Text                                             |\n| Store            | The store the page belongs to         | Stores Lookup                                          |\n| Identifier       | Unique HTML ID for the page           | Plain Text (auto entered but can be changed if needed) |\n| Parent Page      | The Parent of this page if it has one | Pages Lookup                                           |\n| Parent Position  | Where this page sits among its siblings under the same parent | Number                          |\n| Path             | The path or slug for the page         | Plain Text (do not include / at the front)             |\n| Title            | H1 heading for the page               | Plain Text                                             |\n| Subtitle         | Medium sized subtitle for the page    | Plain Text                                             |\n| Content Body     | The main page content                 | Plain Text, Markdown, HTML                             |\n| Meta Title       | Meta Title for SEO                    | Plain Text                                             |\n| Meta Keywords    | Meta Keywords for SEO                 | Plain Text (comma separated)                           |\n| Meta Description | Meta Description for SEO              | Plain Text                                             |\n| Social Image     | The image used when the page is shared on social media. Falls back to the page's first image | Media Lookup |\n| Search Keywords  | Extra terms that improve the page's relevance in on-site search results | Plain Text (one per line)     |\n| 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 |\n| Require Login?   | Requires customers to be signed in before they can open the page | Checkbox                            |\n| Preview on Site  | A link that opens the page on the storefront                     | Read only                           |\n\n## Publishing a page\n\nThere 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.\n\n:::note\n**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.\n:::\n\n## Add content to your page\n\nOther 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.\n\nThis is the code you would see in the content body field unless you have replaced it with other content:\n\n\n```\n    {{ content_page | render_content_blocks }}\n```\n\n\nTo add content blocks to the page:\n\n1. From the **Page Content Blocks** related list, click **New**.\n2. Search and select the content block you wish to add.\n3. Specify the position of the content block in relation to the other content blocks on that page.\n4. Make sure the Usage Type is `Page Content`.\n5. Click **Save**.\n\n## Serving alternate content types\n\nBy 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.\n\n| Path example | Content type | Use case |\n|-------------|--------------|----------|\n| `robots.txt` | `text/plain` | Robots exclusion file |\n| `llms.txt` | `text/plain` | LLM context file |\n| `sitemap.xml` | `application/xml` | XML sitemap |\n| `feed.json` | `application/json` | JSON feed |\n| `export.csv` | `text/csv` | Data export |\n\nWhen an alternate content type is used:\n- The page renders without the standard HTML layout (no header, footer, or theme wrappers)\n- The **Content Body** field is rendered as-is using Liquid, so you can generate dynamic content\n- The `current_request.content_type` Liquid variable returns the MIME type for the current request\n\n**Example — generating a plain text robots.txt:**\n\nCreate a page with Path `robots.txt` and Content Body:\n\n\n```liquid\n\nUser-agent: *\nDisallow: /checkout\nDisallow: /account\n\nSitemap: https://{{ current_store.domain }}/sitemap.xml\n```\n"}