flectar / waterhole-sitemap
A comprehensive XML sitemap generator for Waterhole.
Package info
github.com/flectar/waterhole-ext-sitemap
Type:waterhole-extension
pkg:composer/flectar/waterhole-sitemap
Fund package maintenance!
Requires
- waterhole/core: ^0.6.0 || ^0.7.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Sitemap for Waterhole
A comprehensive, high-performance XML sitemap generator for Waterhole. This extension automatically generates SEO-compliant sitemaps for your community, helping search engines (Google, Bing...) discover and index your content faster.
🚀 Features
- Zero configuration: Works out of the box.
- Performance: 24-hour caching prevents database load, even with thousands of posts.
- Segmented sitemaps: Separate endpoints for Posts, Channels, Pages, and Users.
- SEO optimized: Includes
lastmod,changefreq, andprioritytags. - Safe: Read-only operation. Does not modify your database.
📦 Installation
Install via Composer. Run the following command in your Waterhole root directory:
composer require flectar/waterhole-sitemap
♻️ Updating
To update the extension, simply run:
composer update flectar/waterhole-sitemap:"*"
php artisan cache:clear
⚙️ Usage
Once installed, the sitemap is automatically available at:
https://your-domain.com/sitemap(Sitemap index)https://your-domain.com/sitemap/pages(Home page and pages)https://your-domain.com/sitemap/channelshttps://your-domain.com/sitemap/postshttps://your-domain.com/sitemap/users
Posts and users are split into sitemaps of 5,000 URLs each (/sitemap/posts/2, /sitemap/posts/3, ...). All of them are listed in the sitemap index.
Only content that guests can see and that is listed in your forum structure is included. Private channels, unlisted channels and pages, unapproved posts and deleted posts are left out. Users are included only if they have at least one public post.
Robots.txt
To ensure search engines find your sitemap, add the following line to your public/robots.txt:
Sitemap: https://your-domain.com/sitemap
🔧 Configuration
The sitemap is cached for 24 hours by default to ensure optimal performance. To force a refresh (e.g., after a large content import), run:
php artisan optimize php artisan cache:clear
📄 License
- Open-sourced under the MIT License.