Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Oc Sitemap Plugin Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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.

  • Archived upstream (headline risk). The repository is archived: no future bug fixes, no security patches, no compatibility work against newer October/Winter releases. Any defect becomes ours to patch. This is the dominant risk and must be owned explicitly, not assumed away.
  • Empty changelog on 2.4.0. Release notes are a 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.
  • SEO-critical surface. A broken or malformed sitemap.xml is a search-visibility incident, not a cosmetic bug.
  • Adoption signal. Five stars is a very low adoption signal, which compounds the archived status: a small user base means fewer eyes on regressions and a thin pool of practitioners to lean on.
  • Licensing. GPL-2.0 — fine for internal use and serving a website, but copyleft obligations attach to any distribution of modified versions. If we fork to patch, that fork inherits GPL-2.0; legal should co-sign before we distribute anything.
  • Dependency drift against whichever October core version we pin, now with no upstream to align it.

Key questions.

  • Given the archive, who is the named maintainer of this component, and do we have a fork-and-patch plan and budget?
  • What actually changed between 2.3.0 and 2.4.0? We need the diff read, not inferred.
  • Does 2.4.0 declare minimum October CMS / PHP versions, and does it still cover the versions we run?
  • Are there database migrations or settings-key changes requiring a deploy step, or is it a drop-in?
  • Does it touch URL generation, localization, or <lastmod> semantics — i.e. output-visible changes?
  • Is there a supported extension point for custom content types we own (custom item types/generators), so we don't fork to add a source?
  • Who owns sitemap correctness — engineering or marketing/search ops — and what does the validation check look like?

Integration Approach

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.

  1. Read the 2.3.0→2.4.0 diff and extract actual changes; the release note is insufficient data.
  2. Confirm October core and PHP compatibility against our pinned versions.
  3. Decide the regeneration strategy up front (on request vs. model-event on publish vs. scheduled command) and define the cache key + invalidation points.
  4. Upgrade in staging with production-like content; capture pre- and post-upgrade sitemap output.
  5. Diff output; validate XML against the sitemap schema; spot-check URL coverage, canonical/trailing-slash consistency, and status codes.
  6. Add feature tests with positive and negative assertions (drafts, soft-deleted, noindex pages must be absent).
  7. Promote during a low-traffic window; verify fetch and re-submit to search consoles if output changed.
  8. Hold rollback to 2.3.0 for one release cycle before declaring stable.
  9. In parallel, stand up the fork/replace contingency: document the patch path and the trigger conditions for replacing the plugin outright.

Operational Impact

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.

  • Malformed or truncated sitemap.xml after an upgrade, silently degrading crawl coverage.
  • Stale sitemap because cache invalidation or the regeneration trigger did not fire on publish.
  • 404s or redirect chains if URL generation changes and old routes leak into output.
  • Schema-invalid output (missing/invalid <lastmod>), tolerated by validators but penalized by crawlers.
  • noindex leakage from scopes that don't exclude drafts, soft-deleted records, or flagged pages.
  • Absolute URLs sourced from the site definition rather than APP_URL — wrong host in output almost always means the October site/host config is wrong, not the plugin.
  • A missing or stale sitemap taking down the whole discovery path at scale, since search engines rely on it more than internal links.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource