Pages are created and stored in the website workspace. The Pages app displays the contents of the website workspace as a site hierarchy. Here you can add pages and move them around.

Site hierarchy

Pages on a site are displayed in a hierarchical tree. Each site tree has a root page (home page) and child pages.


  • Page: Name of the JCR node. JCR character restrictions apply to the name, meaning some characters are not allowed in page names. Invalid characters are automatically substituted with a hyphen. The page name is used in the URL. The convention is to use lower-case words separated by hyphens, for example standard-article and news-and-events.
  • Title: Displayed to visitors. It may be different from the page name and can contain any character. The title string is used in the HTML title element, in the h1 heading on the page and in the navigation title.
  • Template: Template assigned to the page.
  • Status: Shows whether the page has been published , modified since publishing  or is unpublished .
  • Modification date: Timestamp showing when the page was last modified.


Although strictly speaking there is no limit on the number of pages in a website, depending on the back-end you use, there could be limitations regarding website structure and total size.

JackRabbit page/node limit - The extensive use of nodes dramatically increases the number of SQL statements necessary to retrieve referenced nodes. This has a serious impact on overall repository performance. With JackRabbit the absolute maximum number of pages permitted at any single level in the site hierarchy is 1000. However, the recommended total is no more more than 100 pages at a single level.

Content size - The total size of content in the repository should not exceed 2 TB. Note that several Magnolia clients have successfully run repositories sized 50-200 GB in production over an extended period of time.

SEO - For search engine optimization (.pdf) keep the hierarchy as flat as possible. If editors find a deeper site hierarchy easier to manage, elevate pages to higher levels using URI mapping.

Page moves - A page's position in the site hierarchy determines its URL. When the page moves, the URL changes. This can have a negative SEO impact. Use a permanent redirect to tell search engines that the page was moved.

Character restrictions

Website content, asset, configuration and everything else is stored in the content repository. Each item is stored in a node. The node name is generally displayed in the first column in AdminCentral, for example the page name in the website workspace and asset name in the dam workspace. Besides being an internal reference to the node, the name is also used for various purposes such to create a page URL.

Character restrictions apply only to node names and not to other user-entered content. For example, you can only use certain characters in a page name but any character in the page title. When a disallowed character is used it is automatically substituted with a hyphen ( - ).

The  Path  Java class governs character restrictions. All alphanumeric characters (a-z, A-Z, 0-9), the hyphen ( - ) and the unscore ( _ ) are safe to use in node names. We recommend that you use lowercase letters separated by a hyphen.

Invalid characters

JCR 2.0 specification defines the following invalid characters in a local name.








Forward slash (solidus)






Left square bracket



Right square bracket



Vertical line (pipe)





Node names are used to create URLs and cannot contain characters that are disallowed or have special meaning in URLs. These conventions are established by the Internet Engineering Task Force (IETF)Network Working Group on URLs.








Solidus (forward slash)



Question mark



Plus sign



Percent sign



Exclamation mark



Number sign (pound, hash)



Circumflex accent


Characters disallowed by Magnolia.





Commercial at






Equals sign


Apart from the exceptions above, Magnolia allows you to use the full UTF-8 character set for node names and other properties, but UTF-8 encoding is disabled by default. See Language  for instructions on how to enable it. When enabled, all special characters and notations covered by the Unicode specification can also be used.

The dot character (full stop, Unicode 2E) can be used in node names with the single limitation that it cannot be the first character. You can create a user john.smith, a page, a document Magnolia-Flyer-4.0.pdf, a configuration node or a JavaScript file jquery.tabtree.

Assigning a template to a page

All pages are based on Templates. The template assigned to a page is displayed in the Template column. The template determines what content is displayed and how. The Standard Templating Kit includes templates for common use cases.

When you add a new page, a template is assigned to it automatically. By default:

  • Home template is assigned to root level pages.
  • Section template is assigned to page at level 2.
  • Same template as on the parent page is assigned at level 3 and below.

Template availability defines what template you can assign to a page. Availability is a combination of configurable and hard-coded rules. The rules determine whether a given template is allowed to be used on the page.

You can change a page template. However, the new template may not be able to render content entered using the previous template. If content cannot be rendered, you cannot edit it. The original content exists in the repository, however. If you change the template back to the original, the content is rendered again.

If a template is able to render a component that was originally entered with a different template, the component will be displayed even if the current template does not offer it in the corresponding area. For example, if you enter a Text & Image component on an stkArticle page and change the page template to stkSection, the component is still displayed. stkSection does not permit you to add new Text & Image components, however.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))