How to Create Custom Pages in the Koha OPAC

Learn how to create custom pages in the Koha OPAC using the built-in Pages tool. Covers URL structure, library scoping, linking from navigation, and when to use Theme Builder instead.

Koha includes a built-in Pages tool that lets you create standalone content pages — opening hours, library policies, staff picks lists, event information — and publish them directly in the OPAC. You don’t need to edit any server files or write Koha templates. Find it in the staff interface under More > Pages.

Each page gets a unique URL in the format /cgi-bin/koha/opac-page.pl?page=N. You can link to these pages from OPAC navigation preferences (OpacNav, OpacNavBottom) so patrons can find them. The tool is straightforward for basic content, but it has real design limitations — pages inherit Koha’s default OPAC chrome and there’s no way to make them look like anything other than a Koha page.

How the Koha Pages Tool Works

Creating a Page

  1. In the staff interface, click More in the top navigation bar.
  2. Select Pages from the dropdown.
  3. Click New page.
  4. Fill in:
    • Page title — displayed as the HTML <title> and as an <h1> on the page
    • Content — an HTML editor (a basic TinyMCE instance in most Koha versions)
    • Library — scope the page to a specific branch, or leave as “All libraries” to show it everywhere
    • Language — for multilingual libraries, you can create separate page entries per language
  5. Click Save. The page is published immediately.

Finding the Page URL

After saving, note the page ID in the URL bar (e.g., page=3). The public OPAC URL for that page is:

https://yourlibrary.koha-ptfs.co.uk/cgi-bin/koha/opac-page.pl?page=3

Use this URL whenever you link to the page from nav preferences or from other pages.

Library Scoping

If you set a page’s Library to a specific branch, it will only be visible to patrons who are browsing under that branch’s OPAC (when OpacAddMastheadLibraryPulldown is enabled and a branch is selected). Pages scoped to “All libraries” are always visible.

Multilingual Support

Create one page entry per language and assign the same page number grouping in Koha’s internationalisation system. Koha serves the appropriate language version based on the patron’s selected interface language.

Practical Examples

Use Case Page Title Notes
Opening hours Library Hours Include a simple HTML table per branch
Policy pages Borrowing Policy, Internet Use Policy Plain prose with headings
Staff picks Staff Picks – Spring 2025 Manually link to catalogue records
Room booking info Book a Study Room Include a link or form embed
Library news Latest Library News Updated manually each month
Event details Storytime Thursdays Seasonal; delete when event ends

How Pages Appear in the OPAC

A page created with the Pages tool does not appear in the OPAC automatically — you must link to it. The standard approach is to add a link in one of Koha’s navigation preferences:

  • OpacNav — left sidebar, visible on the homepage and most OPAC pages
  • OpacNavBottom — below the left nav; typically used for secondary or footer-style links

Example: adding a “Library Hours” link to OpacNav:

<ul>
  <li><a href="/cgi-bin/koha/opac-page.pl?page=3">Library Hours</a></li>
  <li><a href="/cgi-bin/koha/opac-page.pl?page=4">Borrowing Policy</a></li>
  <li><a href="/cgi-bin/koha/opac-page.pl?page=5">Contact Us</a></li>
</ul>

See How to Customize Navigation Menus in Koha for the full breakdown of OpacNav and OpacNavBottom.

You can also link to Pages from OpacMainUserBlock (the homepage center panel), from within other pages, or from opacheader.

Limitations of the Koha Pages Tool

  • Basic HTML editor only. TinyMCE gives you bold, italics, links, and tables — but no custom layout, no CSS component library, and no image management. Anything beyond simple prose requires switching to source view and writing raw HTML.
  • No design consistency. Pages use Koha’s default OPAC template. You cannot change the header, footer, sidebar layout, or overall visual style of a page without modifying Koha’s core templates (which breaks on upgrades) or using heavy OPACUserCSS overrides applied globally.
  • No drag-and-drop layout. You cannot create a two-column layout, a card grid, or a hero section without writing HTML and CSS from scratch.
  • No version history or drafts. Saving overwrites the previous version. There is no “restore to yesterday’s version” option and no draft/preview workflow.
  • URL is not human-readable. /cgi-bin/koha/opac-page.pl?page=3 is not memorable or meaningful to patrons. You cannot set a custom slug.
  • Not indexed by Koha search. Pages created with the Pages tool do not appear in OPAC keyword searches. If a patron searches for “borrowing policy”, your borrowing policy page will not appear in results. See How to Make Koha Custom Pages Searchable for workarounds.

When Theme Builder Is the Better Option

If your library needs custom pages that:

  • Match the visual style of the rest of your OPAC (consistent header, typography, color scheme)
  • Include structured layout sections (hero, two-column, card grid)
  • Are easy for non-technical staff to update without touching HTML
  • Benefit from a consistent design language across homepage, search results, and static pages

…then the Koha Pages tool will quickly feel limiting. KohaSupport Theme Builder builds custom page templates as part of the theme system, so every page — whether it’s the homepage, a search result, or a “Library Hours” content page — uses the same design tokens and responsive layout components.

See Koha Themes vs OPACUserCSS Hacks for a broader comparison of native customization vs. a dedicated theme approach. For a librarian-friendly workflow, continue with How to Create and Style Custom Pages in Theme Builder from the Theme Builder Documentation Hub.

Frequently Asked Questions

Can I delete a page I no longer need? Yes. In the Pages tool (More > Pages), find the page in the list and click Delete. Confirm deletion. Any links pointing to that page’s URL will result in a Koha error page, so remove links from OpacNav or other preferences first.

Can I have different pages for different library branches? Yes — that’s what the Library scoping field is for. Create one version of the page scoped to each branch. Each version can have different content and will only appear when that branch is the active OPAC context.

Is there a limit to how many pages I can create? There is no hard limit enforced by Koha. In practice, managing a large number of pages (20+) through the basic UI becomes cumbersome since there is no folder structure, tagging, or search within the Pages tool itself.

Can patrons find my custom pages through Google? Yes, if your OPAC is publicly accessible. Google will crawl opac-page.pl?page=N URLs provided you link to them from somewhere Googlebot can reach. Consider how to customize the Koha OPAC homepage to ensure your pages are linked from a crawlable location.


For the full landscape of Koha customization options, see the Koha Customization Guide.

Related: How to Customize Koha Navigation Menus · How to Make Koha Custom Pages Searchable · How to Create and Style Custom Pages in Theme Builder · Theme Builder Documentation Hub


Build a Better Koha Experience

Custom pages that actually look like your library — not a default Koha install.
Theme Builder brings consistent design, structured content blocks, and responsive layouts to every page of your OPAC, including your custom content pages.

Explore Koha Theme Builder™   Book a consultation

Next Steps

More in Koha System

Was this article helpful?

Thanks for your feedback!