vdlp/oc-sitemap-plugin
Generate XML sitemaps for October CMS sites with this plugin, helping search engines discover and index your pages. Simple to install and configure, it keeps your sitemap current so your content ranks better.
Framing correction — package identity. vdlp/oc-sitemap-plugin is an October CMS plugin (the oc- prefix and the vendor's portfolio confirm it), with Winter CMS parity. October runs on Laravel components, so this is Laravel-adjacent, but it is not installable into a vanilla Laravel application via composer require and does not expose a standard Laravel service provider or publishable config. Every downstream decision depends on which need we are actually solving: sitemap generation inside an October/Winter site, or sitemap generation inside a plain Laravel app. Only the former is served here.
Architecture fit. Strong and idiomatic for an October CMS front end: the plugin generates sitemaps from CMS pages and registered Eloquent sources, registers its own backend settings surface, supports multilingual output and hreflang, and integrates at the theme/component layer rather than requiring bespoke application code. Fit degrades sharply for a Laravel-first architecture — API-driven front end, headless CMS elsewhere, or a Laravel app with an October instance bolted on. It is a leaf feature of an October installation, not a component in a broader Laravel service architecture.
Integration feasibility. Low effort within scope, high effort outside it. Installing on a supported October build is a routine Composer/Plugin Manager operation with backend configuration and no application code changes. The real cost is not installation but verification: confirming the sitemap reflects the routes, localized URLs, and content types we actually publish, and confirming caching/regeneration behaviour matches our publishing cadence.
Technical risk.
compare URL only — no entries, migrations, or deprecations. October plugin versioning is not consistently semver-strict, so confidence that 2.4.0 is non-breaking rests on a naming convention, not evidence.sitemap.xml is a search-visibility incident, not a cosmetic bug.Key questions.
<lastmod> semantics — i.e. output-visible changes?Stack fit. Suitable where October CMS is the serving layer and sitemap output should be driven by CMS content and plugin routes. Not suitable as a dependency of a standalone Laravel application, and not suitable if we intend to consolidate sitemap generation across multiple properties — there we want a framework-agnostic generator invoked from a scheduled job, and this package becomes the wrong abstraction boundary.
Migration path. From 2.3.0, the expected path is a version pin bump and cache clear, with no data migration. Because the changelog is empty, treat that as an assumption to validate, not a plan: stage the upgrade, diff the generated sitemap.xml before and after, and promote only if output is equivalent or intentionally changed. Critically, sitemap item definitions live in October's settings table, not in version control — a fresh environment migrates to a valid but nearly empty sitemap. Plan a seed/migration that reproduces the item set per environment, or drive items from code where possible.
Compatibility. Confirm two axes: (1) October CMS core version supported by 2.4.0 versus the version we run; (2) PHP version floor. Both are typically declared in plugin.yaml/composer.json. If we are on an older October LTS, staying on 2.3.0 is a legitimate, low-cost decision — a minor feature release is rarely worth an unplanned platform upgrade, especially when the upstream is archived and cannot follow us forward.
Sequencing.
noindex pages must be absent).Maintenance. Low ongoing engineering — the plugin is configuration-driven — with a frozen-upstream caveat. Every future upgrade carries a manual read-the-diff cost, and that cost compounds across a plugin inventory. With the repo archived, there is no upstream to absorb October/Winter compatibility work: budget a named owner and a periodic compatibility check against our October core version.
Support. Community/upstream only, and effectively none now that the project is archived — no SLA, no issue triage, no security response. Sitemap failures are SEO-visible to the business but invisible to infrastructure monitoring unless we instrument for them, so the support burden lands on whoever owns search visibility, usually marketing operations. Clarify that ownership and the escalation path before onboarding.
Scaling. Amortized: sitemaps are generated per publish/schedule cycle, not per request, provided caching is configured. On large content sets (tens of thousands of URLs) generation time and memory become non-trivial and must be pushed to a scheduled job, not triggered synchronously by an editor save. Unbounded get() calls over large models are the classic blow-up; constrain by a published_at window and chunk. Multi-site and multi-locale October installations multiply output and are the most likely place to hit limits — test each site explicitly, since a sitemap that is correct on the primary domain and wrong on the second is the most common failure mode.
Failure modes.
sitemap.xml after an upgrade, silently degrading crawl coverage.<lastmod>), tolerated by validators but penalized by crawlers.noindex leakage from scopes that don't exclude drafts, soft-deleted records, or flagged pages.APP_URL — wrong host in output almost always means the October site/host config is wrong, not the plugin.Mitigations are cheap: scheduled fetch-and-validate of the live sitemap, URL-count and status-code assertions in CI or a cron, and an alert on file-size or entry-count discontinuity. Debugging tip for the runbook: when a URL is missing, test the underlying query in php artisan tinker first — most of the time the item definition is fine and the scope returns zero rows.
Ramp-up. Small for an October-experienced developer — hours to a working local install and content-driven sitemap. The real ramp-up is organizational: establishing who owns sitemap correctness, what the validation check looks like, and what the rollback and fork procedures are. One engineer-day of setup plus a recurring automated validation check is a reasonable investment estimate.
Standing recommendation. Adopt only for existing October/Winter sites that need content-driven sitemaps, and only with the archived-upstream risk accepted in writing — a named owner, a fork/patch contingency, and a validation monitor in place. Do not adopt for greenfield builds, Laravel-native applications, or a multi-property sitemap strategy. Approve the 2.4.0 upgrade only after the diff has been read and staging output diffed against 2.3.0; a changelog-free release of an SEO-critical, now-unmaintained component does not carry enough information to sign off on a production bump.
How can I help you explore Laravel packages today?