1. Home
  2. XML Sitemap Generator + AI Feed JSON + IndexNow PRO
  3. Changelog — v3.5.6 to v3.6.0

Changelog — v3.5.6 to v3.6.0

Version 3.6.0 is a major release. Below is a complete list of new features, enhancements, and fixes compared to version 3.5.6.

Upgrading from v3.5.6? Your existing settings and custom links are fully preserved. No manual database changes are needed.


New Features

IndexNow Integration (Entirely New)

  • Full IndexNow queue system with database-backed tracking per entity, store, and language
  • Automatic event hooks — products, categories, manufacturers, and information pages are queued automatically on add, edit, and delete in the OpenCart admin
  • Cron-based async submission — up to 100 URLs per cron run, grouped by store and language
  • IndexNow Queue Manager — dedicated page to view, filter, force-retry, and delete queue entries
  • Auto-disable protection — cron is automatically disabled when consecutive failures or failure rate exceeds configurable thresholds
  • Auto-disable email alert — store admin receives an email when the cron is auto-disabled
  • Key management — generate API keys and cron keys from the admin; validate key file accessibility with one click
  • Automatic key file management — extension writes the key file to your web root during cron processing
  • Bulk Sync All — queue all existing products, categories, manufacturers, and information pages for initial submission
  • Force IndexNow — trigger immediate submission for any specific queue row from the Queue Manager
  • 24-hour activity chart and success/failed totals on the dashboard
  • Individual hook enable/disable — disable specific event hooks (e.g., product-add only) without disabling IndexNow entirely
  • Configurable retry limit, queue retention, log retention, and failure rate threshold

AI JSON Feed (Entirely New)

  • Paginated JSON product feed at /ai_feed_index.json (with .htaccess) or route URL
  • Feed index provides a manifest of all feed pages across all languages
  • Each feed page includes: product_id, URL, name, cleaned description, price, special, currency, manufacturer, category_hierarchy array, stock_status, last_updated
  • importance_score field (0.7–1.0) when Smart SEO Mode is enabled — same formula as sitemap priority
  • Multi-language support with ?hbxmllang= parameter
  • Dedicated AI feed file cache with separate directory, TTL, and purge control
  • ETag and Last-Modified HTTP headers for efficient 304 Not Modified handling
  • Backward compatibility: legacy ?page=N AI feed URLs continue to work

Static File Cache (New for Both Sitemaps and AI Feed)

  • Sitemap XML files cached in system/storage/cache/hbseo_sitemap/
  • AI feed JSON files cached in system/storage/cache/hbseo_ai_feed/
  • Atomic file writes (write to temp + rename) prevent partial reads during regeneration
  • ETag, Last-Modified, and Cache-Control headers on cached responses
  • 304 Not Modified support for both If-None-Match and If-Modified-Since conditional requests
  • X-Feed-Cache: HIT / MISS header for debugging
  • Configurable TTL per cache type (minimum 60 seconds)
  • Separate purge buttons for sitemap cache and AI feed cache in admin

Enhancements

Sitemap Generation

  • Sitemap and child sitemaps now respond with proper 503 Service Unavailable when disabled (previously echoed plain text)
  • All sitemaps served with ETag and Cache-Control headers
  • Smart SEO Mode importance score is now consistent between XML sitemap priority and AI feed importance_score
  • Request-scope caches for max_sales and log_denominator — avoids redundant queries within one page generation
  • Improved product image dimension detection — auto-detects theme popup image size per store; falls back to 1200×1200
  • Image dimensions can be manually overridden with Quick Preset buttons

.htaccess Management

  • htaccess management moved entirely to the model layer (syncHbseoHtaccessRules() / removeHbseoHtaccessRules())
  • Automatic .htaccess.sitemap.BACKUP created before any write
  • Rule detection now uses regex matching (RewriteRule.*extension/hbseo/) — more reliable than simple string search
  • Remove button now reports how many lines were removed
  • htaccess rules updated to include AI feed routes alongside sitemap routes

Admin Panel UX

  • Extension renamed to “XML Sitemap + AI Feed + IndexNow”
  • New AI Feed tab and IndexNow tab added
  • Dashboard now shows AI feed pagination summary and IndexNow statistics
  • Invalid date warnings now show separate counts for products and categories
  • Bulk import now reports added count and duplicate-skipped count separately (no longer silently skips duplicates)
  • Fix Dates action now validates permissions before running

Settings Validation

  • Cache TTL validated: must be numeric and ≥ 60 seconds
  • IndexNow numeric settings validated with min/max constraints
  • Log retention days enforced to be ≥ queue retention days
  • Failure rate threshold validated as 0.0–1.0 float
  • IndexNow API key required when IndexNow is enabled (enforced on save)

Bug Fixes

  • Fixed: store_id not correctly passed to getSitemapImageDimensions() — image sizes could use the wrong store’s theme settings on multi-store setups
  • Fixed: add_link and delete_link AJAX actions now validate URL scheme (only http/https allowed)
  • Fixed: import_bulk reported misleading success when all links were duplicates — now correctly tracks and reports duplicate count separately
  • Fixed: Four near-identical extractEntityIdFromEvent() methods consolidated into one, fixing inconsistent ID extraction
  • Fixed: indexnow_sync_all() now uses the shared queueIndexNowEntity() wrapper, correctly resolving language IDs
  • Fixed: Cache purge endpoints now share a single doPurgeCache() private method, eliminating duplicated permission-check logic

Database Changes

TableChange
oc_hb_indexnow_queueNew — stores the IndexNow submission queue
oc_hb_indexnow_logsNew — stores IndexNow submission history
oc_sitemap_linksUnchanged — existing custom links preserved