How to Make Custom Pages in Koha Searchable and Useful

Koha's Pages tool creates OPAC pages that aren't crawlable or linked by default. Learn how to make custom Koha pages discoverable, well-structured, and genuinely useful for your patrons.

Koha’s Pages tool lets you create custom OPAC pages, but those pages are not linked anywhere, not indexed by search engines by default, and not easy for patrons to find unless you add them manually to your navigation. This guide explains what the Pages tool can and can’t do, how to surface your pages inside the OPAC, and when you should consider a more capable solution.

For a full overview of Koha customization, see the Koha Customization Guide.


Why Koha Pages Aren’t Discoverable by Default

Every page created with the Pages tool gets a URL in this format:

/cgi-bin/koha/opac-page.pl?page=N

That ?page=N query string creates two problems:

  • Search engine crawlers often avoid indexing query-string-based URLs because they can’t reliably distinguish them from dynamic search results or duplicate content. Google may index them, but you have no control over slugs, canonical URLs, or titles in a way that helps SEO.
  • Patrons can’t find them unless you explicitly link to them. Koha’s OPAC doesn’t show a list of your custom pages anywhere — they are invisible unless linked.

There is no native sitemap integration for Pages. If you want a page to appear in a sitemap submitted to Google Search Console, you’ll need to add it manually to a static sitemap file.


How to Make Pages Discoverable Inside the OPAC

The most reliable way to link your custom pages is through Koha’s OPAC navigation preferences. All of these are managed in Administration → System Preferences → OPAC.

Preference Where it appears Best use
OpacNav Left sidebar on OPAC homepage Primary navigation links
OpacNavBottom Below OpacNav in the left sidebar Secondary or footer-style links
OpacMainUserBlock Main content area of the OPAC homepage Featured links, announcements, banners
opacheader Top of every OPAC page Site-wide navigation bar

To link a page you’ve created, use a standard HTML anchor:

<a href="/cgi-bin/koha/opac-page.pl?page=3">Branch Information</a>

If you want to surface multiple pages as a navigation group, add them as an unordered list in OpacNav or opacheader. See How to Customize Koha Navigation Menus for full examples.


Content That Works Well as Custom Pages

The Pages tool is well-suited for content that is:

  • Stable and long-lived — borrowing policies, library history, contact information, branch addresses and hours
  • Informational and static — subject guides, reading lists, FAQ pages, event recaps (not event calendars)
  • Self-contained — pages that don’t need to link to each other frequently or share a common layout

It is less suitable for:

  • Time-sensitive news — you can update pages manually, but there’s no scheduling or publish/unpublish feature
  • Content requiring visual consistency — each page is an HTML textarea with no shared layout system
  • Content you want patrons to browse — there’s no index or directory of custom pages

How to Structure Content on a Custom Page

Since each page is a raw HTML block, structure it yourself using headings and clear information hierarchy. A pattern that works well for most library pages:

<h2>Branch Name — Location and Hours</h2>
<p>Brief introductory sentence about this branch.</p>

<h3>Hours</h3>
<ul>
  <li>Monday–Friday: 9am–8pm</li>
  <li>Saturday: 10am–5pm</li>
  <li>Sunday: Closed</li>
</ul>

<h3>Contact</h3>
<p>Phone: (555) 123-4567 | Email: <a href="mailto:[email protected]">[email protected]</a></p>

<h3>Getting Here</h3>
<p>Address, parking notes, transit info.</p>

Keep pages focused on one topic. If a page is growing beyond a few screens, consider splitting it or linking to sub-pages.


The Internal Linking Problem

Custom pages in Koha have no automatic relationship to each other. If you create five branch information pages, there is no “next” or “related pages” link generated automatically. You must manually add links between pages inside each page’s HTML — and if you delete or renumber a page, all those manual links break.

This is manageable for a small number of pages (three to five), but it becomes a maintenance burden at scale. There is no redirect system for Pages URLs, so a renumbered page will return a 404 for anyone who bookmarked the old URL.


Limitations and When to Consider Something Else

The Pages tool is a practical workaround, not a content management system. If you find yourself:

  • Creating more than 10 custom pages
  • Needing consistent headers, footers, or navigation inside the pages
  • Wanting clean, memorable URLs
  • Needing patrons to browse or search across your custom content

…then the Pages tool is showing its limits. Some libraries use a separate CMS (WordPress, a static site) alongside Koha and link to it from the OPAC. Others use a theme or plugin system that provides proper page templates.


How Theme Builder Helps

KohaSupport’s Theme Builder supports custom-designed static sections integrated into the OPAC with consistent layouts, navigation, and proper branding — without relying on the Pages tool’s query-string URLs. Pages built through Theme Builder use the OPAC’s full responsive layout and are part of the overall site structure, not isolated textarea islands.

If you’re finding the Pages tool too limited for your content needs, Theme Builder is worth exploring. Start with the Theme Builder Documentation Hub and then How to Create and Style Custom Pages in Theme Builder.


Frequently Asked Questions

Can Google index Koha custom pages? Technically yes, but it requires the page to be linked from somewhere crawlable and the URL (?page=N) to be accessible without login. Many Koha OPACs require patron login or have noindex headers, which prevents indexing entirely. Don’t rely on custom Pages for public SEO.

Can I use a slug-style URL for a custom page? Not natively. Koha’s Pages tool always uses opac-page.pl?page=N. You would need a server-level URL rewrite or a plugin to map a clean URL to that page.

How do I prevent patrons from accessing a page they didn’t navigate to? You can’t lock Pages tool content behind authentication selectively — the visibility depends on your OPAC’s overall login requirement. All custom pages are either publicly visible or all require login, depending on your system preferences.

What’s the difference between a custom page and OpacMainUserBlock? OpacMainUserBlock is a preference that injects HTML into the OPAC homepage — it’s a block of content, not a separate page. Custom pages have their own URL and serve as standalone documents.


Ready to Get More From Your OPAC?

If custom pages are feeling like too much of a workaround, there’s a better path.

Explore Koha Theme Builder™ → See how Theme Builder handles custom content, navigation, and design consistently across your OPAC.

Book a Consultation → Talk to the KohaSupport team about your OPAC customization goals and what approach makes sense for your library.


Related reading: How to Create Custom Pages in Koha · How to Customize Koha Navigation Menus · How to Create and Style Custom Pages in Theme Builder · Theme Builder Documentation Hub · Koha Customization Guide

Next Steps

More in Koha System

Was this article helpful?

Thanks for your feedback!