Changelog

Release Notes

Every feature, every improvement, every fix since v1.0.0.

Page 16 of 20 — 576 releases, newest first.

v2.18.15

Media Library: Click-to-Edit Restored, Smarter Alt Text Editing

  • Alt text editing got a live character counter and guidance (ideal ≤125 characters) so image SEO fields are filled properly, not just filled.
  • Clicking an image in the media library opens its detail/edit screen again. The lightbox was capturing every click on image cards, so the screen where alt text, caption and description are edited had become unreachable. Zooming now has its own magnifier button on the card (and clicking the preview on the detail page).
v2.18.14

Ad Placements Standardised Across All Themes, Honest Slot Panel

  • Every theme now renders the standard ad placement set. An audit found the personal and trends themes rendered no ad slots at all, health and recipes only one or two — ad code pasted in the admin simply never appeared. All themes now support: below navigation, above/inside/below the article, between archive cards and above the footer.
  • The ad manager now tells the truth per slot. Each slot card shows whether the active theme actually renders it ("In theme" / "Not in theme" badge), and the four legacy slots that no current theme uses are hidden unless they hold saved code.
v2.18.13

Hotfix: Footer Customizer Save No Longer Rejected

  • The real root cause of the footer customizer's "CSRF token mismatch" was a field-name mismatch, now fixed at the core. The form emits its token as _token while the handler read csrf_token and passed an empty string, which blocked the fallback lookup — so every save was rejected even in a fresh session. The validator now treats an empty token as "not provided" and falls back to all accepted field names; invalid tokens are still rejected.
v2.18.12

Footer Customizer Redesign, Newsletter Styling, Session-Lifetime CSRF

  • The footer customizer got a visual overhaul. Templates are now picked from illustrated layout thumbnails instead of a text list, sections follow a consistent card design, and a sticky save bar keeps the action always in reach.
  • The footer newsletter block is now fully configurable. Besides the title and intro, you can set the input placeholder, the button text and a display style — plain, boxed card or accent-tinted card — with matching styles for dark footers and mobile.
  • "CSRF token mismatch" on save is gone. Security tokens used to hard-expire after one hour, so any admin form left open longer — the footer customizer, a long post edit — died on submit. Tokens are now valid for the whole login session, per the standard per-session pattern.
v2.18.11

One-Click Edit for Every Legal Page

  • Every row in the legal page status table now has an Edit button. For pages still served from the theme's built-in template, clicking Edit creates the page from the ready-made text using your site settings and opens the editor immediately — no detour through the generator form. The explanatory text on the screen was also rewritten in plain language.
v2.18.10

Pages Hub With Inner Navigation, Legal Pages Finally Editable at a Glance

  • The Pages screen is now a proper hub with an inner sidebar — the same pattern as Settings. Modules are grouped under headings: Pages (all pages, new page) and Legal Pages (status & edit, generator). The old single-scroll screen that mixed the generator, a status table and a legacy record list into one confusing page is gone.
  • Every legal page now has a clear path to editing. Pages backed by a CMS record show an Edit button; pages currently served from the theme's built-in template are labelled "theme default" and offer a one-click Create action that jumps to the generator with that page preselected.
  • Hover row actions (Edit | View | Trash) in content lists are left-aligned under the title again. A shared action-cell style had pushed them to the right edge of the title column in posts, categories, tags and quiz lists.
  • The legacy legal-records block was removed from the CMS admin. It edited a marketing-site table that has no effect on a CMS site's public pages, which made the screen genuinely misleading.
v2.18.9

Category Slug Renames Get Automatic 301s, 404 Logging Heals Itself

  • Renaming a category slug now creates a 301 redirect automatically — in both the admin panel and the REST API. Combined with v2.18.8's post-slug redirects, no rename anywhere in jekcms can silently orphan an indexed URL anymore.
  • 404 logging works on every install now. The not-found log table was only created when an admin first opened the Redirects page; on sites where that never happened, every 404 was silently discarded and the "suggest redirect" list stayed empty forever. The logger now creates its own table on first use.
v2.18.8

Automatic 301 on Slug Change, Legacy URL Guard, Cleaner Crawl Budget

  • Renaming a published post now creates a 301 redirect automatically. Previously every slug change silently left the old URL as a 404 in Google until someone noticed and added a manual redirect — a across every installation Search Console audit found exactly this pattern in the wild. The redirect is created on save, existing chains pointing at the old slug are re-pointed at the new one, and duplicate sources are never inserted.
  • Built-in guard for legacy WordPress URL families. Retired Turkish tag archives (/etiket/…) now return 410 instead of soft-404 redirects, taxonomy AMP leftovers (/author/…/amp, bare /amp, /amp/page/N) redirect in a single hop, so migrated sites stop accumulating Search Console errors.
  • Crawlers no longer waste budget on write-only endpoints. robots.txt now disallows the analytics beacon (/zt-track) and webhook paths, which previously showed up as "other 4xx" noise in Search Console.
v2.18.7

Search Console Cleanup: Retired Tag URLs Are Now Crawlable (410)

  • Retired /tag/ URLs can now leave Google's index. robots.txt disallowed /tag/ while the pages correctly returned 410 Gone — but a crawler that is blocked can never see the 410, so hundreds of dead tag URLs stayed frozen in Search Console error reports indefinitely. The disallow is removed; Google can now crawl the 410 responses and drop the URLs for good.
v2.18.6

Comprehensive Legal Pages, Unified Footer Credit, Author Card Fix

  • Legal pages are now comprehensive and professional out of the box. The default Privacy Policy, Terms of Service, Cookie Policy and Disclaimer texts were rewritten editorially in both languages: data categories, legal bases, retention periods, Google AdSense/analytics disclosures with opt-out links, a cookie category table, permitted-use and liability sections. Sites that publish their own legal pages are unaffected — defaults apply only when no custom page exists.
  • One footer credit everywhere. The footer bottom bar now reads "Powered by jekcms" in every language — the former Turkish translation of the credit was dropped in favor of a single brand-standard phrase.
  • Legal pages are readable on dark-bodied themes. The universal legal template had no background of its own, so themes with a dark page body rendered near-invisible headings on a dark surface. The template now pins an explicit light panel with fixed text colors, plus proper list and table styling.
  • Author card uses its full width. The author bio in the crypto theme was capped at 480px, wrapping sentences into a cramped column next to the avatar; the cap is removed.
v2.18.5

Crypto Theme: Legacy TOC Cleaner No Longer Swallows Article Bodies

  • Articles no longer render truncated. A legacy WordPress-import cleaner in the single template removed inline tables of contents with overly broad patterns: any H2 merely containing the word "içerik" — e.g. "AI content production" — triggered deletion of everything up to the next list, silently cutting up to 90% of an article at render time (the database content was intact). The cleaner now only scans the first 3000 characters, matches exact TOC phrases, and caps the removal window.
v2.18.4

Crypto Theme: Full-Width Layout and Styled Content Tables

  • Homepage post grid and single articles now align with the header width. The "All Posts" section and the article layout previously used a narrower container, and the article body was additionally capped at 736px — both now follow the site's full 1400px line, so wide screens are actually used.
  • Content tables render properly in articles. Table styling was scoped only to static pages, so tables inside posts appeared bare (no borders, no header background). Article bodies now get the same professional table look, with zebra rows and horizontal scrolling on mobile.
v2.18.3

Winning Content: Traffic Trends on Your Dashboard

  • Winning Content card on the dashboard. Your top 5 posts of the last 30 days with rise/fall indicators, powered by the built-in privacy-first ZeroTrack analytics — no external service, no cookies. Appears automatically once traffic data exists.
  • Content Trend report in ZeroTrack. A rising/falling comparison (last 30 days vs the previous 30) at post level; falling posts are labelled as refresh candidates, so you know exactly which articles need attention before rankings slip further.
v2.18.2

Uniform Row Actions Across All SEO Lists

  • List action buttons follow one clean standard. In Heading Fixer, Content SEO, Content Optimization and Orphan Content, row actions (Preview / Fix / Save / Edit) no longer wrap onto multiple lines or mix button styles — they sit in a single compact row with a consistent look; secondary validator shortcuts (Rich Results, Schema) are now subtle links instead of heavy buttons.
  • Less noise in the Content SEO list. The redundant content-type label before each slug was removed; pages are marked with a small badge only when relevant.
v2.18.1

Advanced SEO Panel v2: One Navigation, Auto-Linked Orphans, Brand-Safe Headings

  • Orphan content fixes itself. The Orphan Content module gained an Auto-Link action: for every post with no inbound internal links, related posts (same category first) are scanned and a natural internal link pointing at the orphan is injected automatically — no manual editing, with the full markup-safety net and at most one new link per source post.
  • SEO Health Check is now tabbed. Identity, AdSense, content, files and HTTP checks each get their own tab with issue-count badges — no more scrolling through long card columns.
  • One navigation, zero duplication. The Advanced SEO panel sidebar is now grouped (Overview, Content, Images, Links, Site) and each optimizer tab is its own module; inside the panel the old duplicate top tab bar is gone, and confusingly-named entries were renamed (Image SEO vs. Featured Images).
  • Redirects & 404 opens clean. The module previously rendered the whole Settings page — including its own settings menu — inside the panel; it now opens as a standalone tool.
  • Year Updater and Content Optimization follow the design line. Cards, tables and buttons match the rest of the admin; action buttons no longer wrap into circle-shaped blobs, and the Edit button got its missing style.
  • Technical terms are no longer "fixed" into broken casing. Heading checks flagged titles like "cPanel Guide" or "iptables and ufw" as lowercase errors, and title-case would mangle them (cPanel → Cpanel). Brand-like words — mixed-case names, terms with digits or dots, and a broad list of lowercase tool names — are now left untouched in both detection and repair; Turkish conjunctions (ve, ile, için…) also stay lowercase in title case, in both languages.
v2.18.0

Advanced SEO Overhaul: Internal Linking Repaired, Turkish-Aware Matching, New Modules

  • Turkish-aware internal linking. On Turkish sites the linker now recognizes inflected forms ("e-posta pazarlamasında" matches "E-posta Pazarlama"), and posts' multi-word tags become anchor candidates — noticeably more natural internal links, with the same markup-safety net that reverts anything suspicious.
  • Orphan Content module. Lists published posts with no inbound internal links and uncategorized posts, with linking-candidate suggestions from the same category.
  • Bulk meta editor. Edit meta title/description inline in the post list with live character counters; scores recompute on save. CSV export is one click away.
  • The panel now surfaces SEO Health Check, Redirects & 404 log and the SERP Identity test — previously hidden in Settings.
  • Posts that matched no links are no longer excluded from future scans. A "processed, no links" marker made such posts invisible to the incremental scan forever and miscounted the panel statistics; they are now retried as your library grows, and the stats distinguish processed, linked and awaiting posts.
  • Internal-linker silence is over. Every skipped, failed or successful on-publish linking attempt is now recorded to a dedicated log, so "why did this post publish without links?" is answerable — a read-only diagnostic page shows settings truth, log distribution and a live dry-run.
  • The SEO panel no longer breaks inside its frame. Saving a form could render a second admin shell inside the panel, and edit links trapped you inside the frame; both fixed.
  • Turkish content scores are measured correctly. Word counting was not UTF-8 aware, so Turkish posts scored artificially low; generated meta titles also respect your title separator and site name now.
  • All SEO tools require administrator rights and use a single heading-hierarchy engine, ending inconsistent results between modules.
v2.17.6

No More Style Flash on Inner Pages, Analytics Beacon Restored

  • Pages no longer flash unstyled for a split second. The Personal theme async-loaded its full stylesheet while the inline critical CSS did not fully cover any page type; navigation briefly rendered bare. The stylesheet now loads normally — it is same-origin, versioned and immutable-cached, so the change costs nothing after the first visit.
  • ZeroTrack page views are recorded again. The tracker posted to a plugin route that 404'd in production; it now uses the standalone /zt-track endpoint that works independently of plugin bootstrap.
  • Cloudflare Insights no longer triggers console CSP errors. Its beacon origin was missing from the Content-Security-Policy script allowlist.
v2.17.5

Zero Validator Errors: noscript Guard & Footer Style Leftovers

  • The font-defer optimizer no longer touches noscript fallbacks. It could wrap the fallback link inside an existing noscript block, producing nested noscript markup and a dead stylesheet for no-JS visitors.
  • Personal footer layouts dropped their duplicate legal bar. All eight variants carried a leftover legal-links block and an in-body stylesheet from before the standard bottom bar; links were doubled and the markup failed validation.
v2.17.4

Three Gaps Caught by the New Live Signal Checks

  • Health theme now emits the WebSite/Organization schema. Its header never called the central schema emitter, so sites on this theme published no structured data — invisible to Google's site-name and rich-result systems.
  • Personal theme search pages are noindexed again. The header skipped the robots-meta helper entirely, leaving search results indexable.
  • News-theme language attribute reads the correct setting. A legacy key left Turkish sites reporting lang="en".
v2.17.3

Theme Integrity: Every Theme File Now Ships From One Source

  • Recipe featured images resolve to the correct URL everywhere. A media-path fix that lived on a single install (cards/hero images could 404 when stored without the uploads prefix) is now part of the core Recipes theme.
  • Theme copies can no longer silently drift. Previously only ~30 hand-picked theme files were integrity-checked; now every theme template and stylesheet is verified against the canonical source, and deliberately customized installs are tracked explicitly instead of being overwritten.
  • Hardened against a class of update crashes. Syncing a theme's function file onto a customized install could remove helpers its templates still call, cutting pages off mid-render. Sync tooling now knows about customized theme sets and never overwrites them.
v2.17.2

Valid Markup, Correct Language Tags & Faster Font Loading

  • Fonts no longer block first paint. Google Fonts and icon stylesheets across all themes now load with the non-blocking preload pattern, improving Core Web Vitals.
  • Turkish search pages are no longer indexable. The /arama route escaped the noindex rule that /search already had, leaving thin search results crawlable — a "low value content" risk for ad-network review.
  • Removed the hidden duplicate H1 from homepages. An old experiment injected an invisible site-name heading on every homepage, producing two H1 elements on themes that render their own. Each page now has a single, visible heading.
  • Article pages no longer break on customized Entertainment installs. A sidebar helper call could crash mid-page on sites with a customized theme copy, cutting the page off before the footer. The sidebar now degrades gracefully.
  • Markup validates cleanly. Headings inside inline wrappers, a mis-scoped ARIA label and the footer bar's in-body stylesheet (now emitted in the head) were the last W3C validator errors.
  • Language attribute now follows your site language. Five themes hard-coded lang="en"; Turkish sites reported the wrong language to browsers and crawlers.
v2.17.1

Your Site Name Now Reaches Google Exactly As You Typed It

  • Google could show your domain instead of your site name in search results. The system auto-generated a spaceless copy of your site name as a schema alternate name, and a Turkish-character comparison bug let this domain-lookalike value slip into the page. Google's site-name algorithm could then fold your brand into the bare domain. The auto-generated alternate name is gone, the comparison now transliterates Turkish characters correctly, and existing installs clean up the stray value automatically — the Site Name setting is now the single source of truth, emitted verbatim.
  • Removed weaker duplicate schema emitters from five themes. Personal, Trends, Recipes, News and Lifestyle carried their own WebSite/OpenGraph generators missing fields Google uses for site-name selection; all themes now use the central, complete emitter.
  • Admin SEO preview now matches the real page output. The preview showed a different homepage title pattern than what the site actually emitted.
v2.17.0

Content Rendering, Performance & AdSense-Ready Theme Pass

  • Faster pages with responsive images. Article cards and thumbnails now load an appropriately sized image variant instead of the full-resolution original, cutting page weight significantly.
  • Navigation and footers are data-driven. Menus, category bars and footer links now come from your real categories, so a fresh site never shows dead example links — better for visitors and for ad-network review.
  • Dark mode stays correct with custom colors. Setting brand colors no longer overrides the dark theme; dark mode renders reliably regardless of customization.
  • Cleaner article intros. The first paragraph is auto-capitalized at publish, so content never starts lowercase.
  • Markdown headings no longer leak as raw “###” text. Content that mixed HTML with Markdown could print literal “### Heading” or merge a heading and its first paragraph into one oversized block. Headings are now correctly separated and rendered, both at publish time and on render — across every theme.
  • Queued articles that silently failed to publish now go out reliably. A session-cookie error during manual publishing could leave items stuck as “failed”. The underlying call is now guarded, so publishing completes instead of aborting mid-way.
  • Removed placeholder/demo content from themes. Sample authors, demo article bodies, fabricated statistics and dead example links could appear on real pages; these are gone, so only your real content is shown.
  • Legal links now appear in the Personal theme footer. The standard bottom bar (copyright · legal links · credit) was missing from all Personal footer layouts, so privacy/terms pages existed but were unreachable from the footer. Every footer variant now renders the shared bottom bar.
  • Theme stylesheets update reliably after an upgrade. Tech, Entertainment and Pets linked their CSS without a version stamp, so browsers could keep serving a cached stylesheet indefinitely; the link is now stamped per file change.
v2.16.37

No More Dead-End Update Banner on Centrally Managed Sites

  • The “Update available / Update Now” banner no longer appears on centrally managed sites. On these installations self-update is disabled and new versions are delivered by operator deployment, so the banner, the header update icon and the sidebar update badge were a dead end — clicking “Update Now” did nothing. They are now hidden whenever the install is centrally managed, matching the System Updates page which already showed “Central deployment ready”.
v2.16.36

Professional Single-Bar Footer & Permanent CSS Cache Fix

  • The footer bottom is now a single clean bar — copyright, legal links and the credit line share one row instead of a separate, duplicated legal strip below the copyright. Legal links used to render twice (in the footer columns and again in an injected bar); the redundant strip is removed across all themes.
  • Theme CSS no longer serves a stale cached copy after an update — the stylesheet is cache-busted by its file modification time, so visitors get the current styles without a hard refresh.
v2.16.35

Canonical Cleanup: /page Redirects, Alias Consolidation & AdSense Readiness

  • robots.txt is now AdSense- and Google-safe — the Googlebot group mirrors the base disallow rules (a crawler obeys only its most-specific group, so admin/api paths were previously left crawlable), and the AdSense crawler Mediapartners-Google is now explicitly allowed.
  • The site now serves a valid ads.txt declaring the authorised AdSense publisher, resolving the “authorised sellers” warning that appears when the ad code is present but ads.txt is missing.
  • The duplicate /page/{slug} URL now 301-redirects to the clean /{slug} and is no longer emitted in the sitemap — previously every static page was reachable at two URLs (a soft-duplicate that dilutes ranking signals and trips content-quality audits). The clean slug is now the single canonical address.
  • Legal, about and contact aliases consolidate onto one canonical URL with a 301 — language and spelling variants (e.g. /privacy, /privacy-policy, /gizlilik) used to each return 200 with their own canonical, signalling duplicate pages. They now redirect to the page’s real address and the canonical tag matches the redirect target.
  • About/Contact pages that have no content now return 404 instead of an empty soft-200 — an alias with no template and no published page no longer renders a blank page whose canonical pointed at the homepage.
v2.16.34

Image SEO: In-Content Images in Schema & Sitemap

  • Article structured data now lists every image, not just the featured one — the Article/BlogPosting image property is now an array of ImageObjects covering the featured image plus the images embedded in the article body, each resolved with width, height and caption from the media library. This gives the in-content images a real shot at ranking in Google Images.
  • The image sitemap now includes in-content images — previously only the featured (and gallery) image of each post was submitted; the images inside the article body are now listed too, so Google can discover and index them.
  • Fixed a silent bug where the featured image carried no dimensions in structured data — the media lookup queried a non-existent column, so width/height/caption were always dropped. Image objects now include their real dimensions.
v2.16.33

SEO: Archive Canonicals, Unique Titles & Schema Fixes

  • The homepage FAQ is now eligible for rich results — FAQPage structured data is emitted from the marketing site’s FAQ section.
  • Category, tag and author pages now point their canonical to themselves — in the travel theme these archive pages were inheriting the homepage’s canonical, title and description, which told search engines they were duplicates of the home page and effectively dropped them from the index. They now emit their own canonical URL, a unique title and description, and correct rel=prev/next for pagination.
  • Every page now has a unique title and meta description — the recipes and finance themes were falling back to the site name on all pages (and recipes single posts had no meta description at all). Titles and descriptions now come from the page’s own content.
  • The finance theme showed a hard-coded “FinancePro” heading regardless of the site’s real name, and rendered a second H1 on article pages — both fixed (real site name, single H1 per page). The news theme’s duplicate H1 was also resolved.
  • News article structured data is now generated by the central engine — replacing an older version that referenced a missing logo file and could emit an invalid date, so news articles now carry correct Article/NewsArticle schema with the configured logo.
v2.16.32

PageSpeed: Responsive Images, Accessibility & Security Headers

  • Content-Security-Policy now declares script-src and a Cross-Origin-Opener-Policy header is sent — script sources are restricted to the site itself plus the required Google advertising, analytics and font origins, closing the “missing script-src / COOP” findings without affecting ads.
  • Images now download at the size they are displayed — the responsive image engine was emitting wrong width descriptors, so browsers fetched the 1600px version into ~800px slots. Descriptors now match the real variants (800/1600) and the size hint reflects the actual layout, cutting roughly 500 KiB from a typical page. Tip-card and recipe-card covers, which shipped a single full-size source, now serve responsive variants; continent illustrations were resized to their display size and the footer logo serves AVIF/WebP.
  • Accessibility fixes across the travel theme and marketing site — section labels, hero chips and the newsletter button use an accent that meets WCAG AA contrast; decorative continent images no longer repeat adjacent link text; tip “Read” links carry the article title for screen readers; footer headings follow proper heading order.
  • Smoother homepage animation — the step progress bar animates with a compositor-friendly transform instead of width, and the FAQ accordion no longer triggers a forced reflow on open.
v2.16.31

Security Hardening from a Full Code Audit

  • Hardened the content scheduler's status filter — it now uses a strict allow-list and a parameterized query.
  • The post listing helper now enforces a column allow-list — sort field, direction and limits are validated and type-cast before they touch the query.
  • The automation webhook secret falls back to an installation-unique key — when no webhook secret is configured it is now derived from the per-install security key instead of a guessable time-based value.

Go live today

Setup, content management, SEO and image optimization — all in one platform. Get started in 30 minutes.

View Pricing
  • Setup and live in 30 minutes
  • 14 ready-made themes
  • AVIF/WebP image optimization
  • Automatic SEO — Sitemap, Schema.org
  • Cookieless built-in analytics (ZeroTrack)

Be the first to know

New features, release notes & CMS guides — a couple of emails a month, no spam.