Skip to content

phpBB SEO Lite 1.1.2

Choose a tag to compare

@meis2m meis2m released this 06 Sep 21:15
· 2 commits to main since this release

⚠️ KNOWN ISSUE: This version can cause severe page load slowdowns (multiple seconds per page) on some production databases due to an unpredictable MySQL query execution plan on the prev_posts COUNT query. Please upgrade directly to v1.1.3 or later.


phpBB SEO Framework Lite 1.1.2

Fixed & Improved

  • Link-Rewriting Performance & N+1 Query Elimination:
    • Added zero-query fast-paths in SlugRepository for topic first posts (prev_posts = 0) and last posts (topic_posts_approved - 1), completely eliminating repetitive COUNT(prev_posts) queries.
    • Implemented batch post position pre-seeding across onViewForumTopics and onDisplayForums, cutting page generation queries by up to 65% and reducing link rewriting overhead to 0.015ms per link with 0 additional queries during template rendering.
  • Canonical Pagination & Deep Links:
    • Fixed silent pagination offset loss on native phpBB topic URLs containing entity-encoded parameters (viewtopic.php?t=X&start=Y and &start=Y), properly preserving target pages during 301 redirects.
    • Fixed direct post URLs (viewtopic.php?p=...) to accurately resolve to multi-page canonical targets (/topic/slug-ID/page/X/#p...) based on approved post positions.
    • Added fail-closed handling for non-existent post IDs, safely returning HTTP 404 instead of malformed -0/ URLs.
    • Cleanly stripped encoded routing parameters from redirect targets while preserving marketing/tracking parameters (utm_*, gclid).
  • Automated XML Sitemap Invalidation:
    • Automatically invalidates sitemap statistics and boundary caches upon new topic creation, topic deletion, and moderation approvals.
    • Added event subscriptions for core.approve_topics_after and core.approve_posts_after to persist topic slugs and refresh sitemap caches when queued topics are approved.
    • Enhanced boundary map cache purging across standard chunk sizes (500 to 50,000) and custom configured values.
    • Maintained zero database queries on the hot path during cache invalidation.

Details & Links