Skip to content
New: Customize your theme with an AI assistant. Read the guide

Pages

Skill level: Beginner to edit, light code to add a page made of sections

Every Page And Its File

The route file decides which sections a page shows. The content file holds the page’s title, SEO fields, page header, and named blocks. Paths below are for English; French uses the same files in french/, served under /fr/.

PageURLRoute (src/pages/[...lang]/)Content (src/content/)
Main homepage/index.astrohomepage/english/-index.md
Corporate consulting/corporate-consulting/corporate-consulting.astrohomepage/english/corporate-consulting.md
Tax and accounting/tax-accounting/tax-accounting.astrohomepage/english/tax-accounting.md
One-page homepages/landing/home/, /landing/corporate-consulting/, /landing/tax-accounting/landing/Same as the homepages above
About/about/about/index.astroabout/english/-index.md
About, style 2/about/style-02/about/style-02.astrofaq/english/-index.md (faqSection)
Company/company/company.astrosections/english/company-page.md
Awards/awards/awards.astroawards/english/-index.md
People/people/, /people/<name>/people/people/english/
Careers/careers/, /careers/<role>/careers/careers/english/
Solutions/solutions/, /solutions/<solution>/solutions/index.astro, solutions/[single].astrosolutions/english/
Solution layouts/solutions/style-01/, /solutions/style-02/solutions/solution-style-01/, solution-style-02/
Industries/industries/, /industries/<industry>/industries/index.astro, industries/[single].astroindustries/english/
Industry layouts/industries/style-01/, /industries/style-02/industries/industry-style-01/, industry-style-02/
Portfolio/portfolio/, /portfolio/<project>/, /portfolio/category/<name>/portfolio/portfolio/english/
Case studies/case-study/, /case-study/<case>/case-study/case-study-page/english/
Blog/blog/, /blog/standard/, /blog/style-01/, /blog/style-02/, posts, /blog/category/<name>/, /blog/tag/<name>/, /blog/rss.xmlblog/blog/english/, authors in author/english/
Pricing/pricing/pricing.astropricing/english/-index.md
FAQ/faq/faq.astrofaq/english/-index.md
Contact/contact/contact.astrocontact/english/-index.md
Webinar and event/webinar-event/webinar-event.astropages/english/webinar-event.md
Search/search/search.astrosections/english/search-section.md
Privacy policy, terms/privacy-policy/, /terms-conditions/[page].astropages/english/privacy-policy.md, terms-conditions.md
Shortcode demo/components/[page].astropages/english/components.mdx
404any missing URLsrc/pages/404.astro, src/pages/[lang]/404.astronotFound in src/i18n/en.json

Each collection (solutions, people, blog, and the others) is explained in Collections.

The Page Header

Inner pages start with a page header: breadcrumb, title, and description, often over a background image. It reads the page’s own fields:

src/content/pricing/english/-index.md
title: "Pricing Plan"
description: "..."
image: "/images/contact/breadcrumb-bg6.webp" # background image
breadcrumbLabel: "Pricing" # breadcrumb text, where the page uses it

title and description accept <br /> for a line break. The same image is used as the page’s social preview image.

Fields Every Page Accepts

These frontmatter fields work on page and entry files. src/content/_file_format.md explains each one; the full list is the page schema in src/content.config.ts.

FieldWhat it does
title, descriptionThe page title and summary
metaTitle, metaDescriptionReplace the title and description in search results only
imageSocial preview image (and header background where the page has one)
drafttrue hides the page from the built site (it still shows in npm run dev). On a -index.md, it hides the whole collection
customSlugA different URL segment than the file name. Use the same value in every language
canonical, robots, keywordsSEO overrides
excludeFromSitemapLeaves the page out of the sitemap
excludeFromCollectionLeaves an entry out of the results of the /search/ page
excludeFromAiLeaves the page out of llms.txt and its Markdown copy
disableTaglineDon’t add the site tagline to this page’s title
weightSort order in lists (lower numbers first)

Add A Page

For a policy, a guide, or any page of text. Every file in src/content/pages/ becomes a page.

  1. Create a new file, for example src/content/pages/english/our-approach.md. The file name becomes the URL: /our-approach/.

  2. Add a title, a description, and the Markdown body:

    ---
    title: "Our approach"
    description: "How we work with clients, from first call to final report."
    ---
    ## How we start
    Text of the page...
  3. Create the French version in src/content/pages/french/ with the same file name.

  4. Add a link to it in src/config/menu.en.json and menu.fr.json.

A text page shows the page header, the body, and the features and call to action sections (featuresSection and ctaSection blocks). For a legal page in the style of the privacy policy, copy privacy-policy.md: its legalPage block holds the sections, the “last updated” line, and the contact box.

Remove A Page

  1. Delete its route file in src/pages/[...lang]/ and its content (file or folder) in src/content/, in every language.
  2. Remove its links from src/config/menu.en.json, menu.fr.json, src/content/sections/*/footer-newsletter-grid.md, and any content file that links to it (search the project for the URL).
  3. Run npm run astro-check, then npm run build, to make sure nothing still points to it.

To hide a page without deleting it, set draft: true in its content file.

Type something to search...