laravel-freelancer-nl/laravel-index-now
Instantly notify search engines about new and updated content in your Laravel app using the IndexNow protocol. Submit URLs to Bing, Yandex, and other IndexNow-enabled engines with a simple, fluent API and automatic integration.
SEO / content-freshness roadmap bets. This package implements IndexNow in Laravel, letting the app notify participating search engines (Bing, Yandex, Seznam, Naver) the moment a URL is created, updated, or deleted. It supports decisions like "can we improve time-to-index without a crawl-budget project?" and "is freshness a differentiator for our content?"
Build vs. buy for a small, well-defined protocol. IndexNow submission is a narrow concern: host a key file, POST URL batches to one endpoint, handle responses. This package removes that undifferentiated plumbing (key management, batching, Laravel wiring) from your backlog. Decision framing: buy the 200 lines, own the integration.
Prioritizing which surfaces get instant indexing. Because submission is per-URL, PMs can be deliberate: publish-triggered submission for blog posts, job listings, marketplace inventory, real-estate listings, docs, or news — and explicitly not for low-value or frequently-thrashing pages. That makes "index freshness by content type" a scoped, tunable roadmap item rather than a monolithic "do SEO" epic.
Feature-level use cases that justify the work:
Setting expectations with data. IndexNow does not cover Google, which typically dominates organic traffic for most consumer products. This decision is therefore about marginal, low-cost index speed in the non-Google long tail, not about replacing Google Search Console workflows or an indexing-API strategy. PMs should model the channel mix before committing roadmap credit.
v2.1.0 changes the risk calculus modestly but meaningfully. Earlier releases had defects in exactly the two areas that determine whether this integration is safe and useful: production-only submit gating (INDEXNOW_PRODUCTION_ENV=false couldn't fully disable it) and bulk submission payloads (host/urlList were malformed, so batching — the primary value prop at scale — may not have worked as documented). Both are fixed in 2.1.0, along with keyLocation derivation from APP_URL and the facade alias registration. Practical implication: treat 2.1.0 as the first version worth evaluating, and do not rely on prior behavior when scoping effort or writing acceptance criteria.
Consider adoption when:
Look elsewhere or defer when:
Version-specific guidance (post-v2.1.0):
>=2.1.0. Prior versions carry the production-gating and bulk-payload bugs; anything you evaluate or ship should be on the fixed release, and lockfiles should exclude the older ones.INDEXNOW_PRODUCTION_ENV and INDEXNOW_LOG_FAILED_SUBMITS, and how INDEXNOW_KEY_LOCATION maps to the public keyLocation URL. If a past spike concluded "config is confusing / gating doesn't work," that conclusion is now stale — revisit it rather than carrying the objection forward.APP_URL correctly. keyLocation is now derived from APP_URL with a https://<host> fallback when empty. An empty or wrong APP_URL silently changes the URL advertised to search engines, which can invalidate key verification — worth an explicit deployment checklist item.For executives (one paragraph): "This is a small, free, open-source add-on for our Laravel stack that tells search engines the moment a page changes, so new and updated content can be indexed faster. It's a low-cost, low-risk improvement to our organic acquisition engine with roughly a day of engineering effort and no licensing fees. A recent release fixed real defects in the batching and environment-gating logic and added support for the newest Laravel, so the version we'd adopt is the first genuinely production-ready one. The important caveat is scope: it works with Bing, Yandex, and several other engines, but not Google. So we should frame it as a cheap, incremental win for content freshness on secondary channels — useful for time-sensitive pages like listings and job posts — and not as a replacement for our Google-focused SEO work or a reason to defer it."
For engineering leads (summary):
INDEXNOW_PRODUCTION_ENV=false so production-only submit gating can be fully disabled; keyLocation now derived from APP_URL with an https://<host> fallback; corrected bulk submission payload (host + urlList); fixed IndexNow facade alias registration; and clarified docs for the gating and key-location settings. Bottom line: batching now actually works, and the "don't submit from staging" safety switch now actually works.>=2.1.0 and read the updated config docs before wiring.IndexNotifier interface so we can swap implementations if the package goes stale; (3) exclude non-public, noindex, and non-production URLs by default — and add a test asserting the gating flag works, since that was a shipped bug; (4) validate APP_URL in deploy config so keyLocation resolves correctly; (5) add basic logging/metrics on submission success and response codes so we can prove value.How can I help you explore Laravel packages today?