Changelog

Release Notes

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

Page 1 of 23 - 684 releases, newest first.

v2.150.2

v2.150.2

  • Posts with a wide table no longer cut text off on phones. A table with several columns could not shrink below its content, so it widened the whole article column beyond the screen and every paragraph lost its last words on the right. The table now stays inside the column and scrolls sideways on its own; on a wide screen it still fills the column.
v2.150.1

v2.150.1

  • A new cookie consent card, on by default. It looks the same in all 16 themes: a compact card in the corner on desktop and at the bottom on phones, with a dark version for visitors who use dark mode. Reject and Accept are equal buttons, the choice is kept for 180 days, and the card links to your cookie or privacy page when you have one. The text follows the language of each page (Turkish, English, German, French, Spanish, Italian, Portuguese, Dutch, Russian and Arabic), so a bilingual site shows the right language on every page. You can still turn it off or write your own text under Settings, Analytics.
  • The up-next card and the percent bubble no longer cover the text on phones. The up-next card used to open over the middle of the article once 70 percent was read, and both it and the percent bubble sat well above the bottom edge of the screen, right over the lines being read. The card now appears when the reader reaches the end of the post and closes again when they scroll back up. On phones it is a full-width strip at the very bottom, the percent bubble sits low in the corner, and the bubble steps aside while the card is open.
  • Less server load on shared hosting. Ready page copies are now served for an hour instead of five minutes. On a site with few visitors, most search engine and bot visits used to find the copy expired and built the page from scratch; that work counts against the hosting plan's resource limit. Saving a post, page, menu or setting still refreshes the copies at once, so visitors never see an old version. The duration is under Settings, Advanced, Cache.
  • Fewer pages built for nothing. One in ten visits that had a ready copy was sent through the full page build so scheduled tasks could run on hosts without a cron job. That now happens only when a scheduled task is actually due, and never when the host runs the real cron.
  • Google Analytics counts your visitors again. With the cookie banner on, every visitor started with analytics refused until they clicked a button. Most people never click, so Google received only anonymous signals that do not show in reports: the tracking code was on the site but Analytics showed almost no one. Refusal by default now applies only where Google requires prior consent (the European Economic Area, the United Kingdom and Switzerland). Everywhere else measuring starts at once, and a visitor who clicks Reject is still not tracked.
v2.150.0

v2.150.0

  • Indexing: a step-by-step assistant inside Advanced SEO. It is the first screen of the SEO plugin and tells you, in order, what your pages need to get into Google, Bing and Yandex: connecting Search Console, keeping the sitemap fresh in Google, Bing Webmaster Tools, Yandex Webmaster, addresses where Google gets "not found" and posts hidden from search. Every step is measured live and has one button.
  • Today's 10 pages for Google. Google accepts about ten manual indexing requests a day, so the assistant lists the ten most important pages that are not in Google's index yet, with Google's own status for each. One click opens that page in Search Console, where you press "Request indexing"; a sent page stays off the list for a week. With Search Console connected, 150 pages are checked with Google every day.
  • Automatic notification to Google. Google stopped accepting sitemap pings in 2023; the only way left to make it read the sitemap again is to submit it in Search Console. With your permission jekcms now does that on its own whenever posts are added or changed, and removes sitemap entries left over from a previous system.
  • Bing and Yandex hear about every page. New and changed pages are reported through IndexNow every hour, including posts that arrive through the API, an import or a schedule. On the first run the whole site is reported.
  • Old addresses from a previous system now redirect on their own. When a site moves to jekcms from WordPress or another script, Google keeps visiting the old addresses for weeks; each "not found" tells it that the content was deleted. jekcms now resolves these before showing a 404: Yoast, Rank Math and WordPress sitemap addresses lead to the new sitemap, WordPress feed addresses (/comments/feed, /category/.../feed) lead to the feed, and old post addresses with a date, a folder such as /review/ or /blog/, an /index.php/ prefix or a different year in the slug lead to the post with the same address. Each match is saved as a permanent 301 redirect you can see under Redirects.
  • Post addresses with special characters open again. A slug sent through the API or an import could keep a percent-encoded dash or an emoji (for example step%e2%80%91by-step). Such a post appeared in the sitemap but returned "not found" at its own address. Slugs given from outside now pass through the same cleaning as slugs made from a title, and the old form redirects to the clean address.
v2.149.1

v2.149.1

  • The dark logo now shows in dark mode in the News and Newspaper themes. Both themes ignored the Dark Theme Logo setting: in dark mode the header kept the light logo, and a dark wordmark disappeared against the dark background. The header and the newspaper footer now switch to your dark logo, and footer designs that use the site logo pick it up too.
  • Post titles fit the search result line in the News, Newspaper and Pets themes. These themes added "| Site name" to every title, so a 70-character headline became 90 characters and Google cut it before the site name ever showed. Like the other themes, they now leave the site name out when the title would not fit in 60 characters. The headline itself is never shortened.
v2.149.0

v2.149.0

  • Choose where your pins lead: the post or the store. Social Auto-Publish has a new Pin link setting. With "Store", the pin for a product review goes straight to the product's store page with your affiliate tag, and posts without a product still link to the post. The link is sent exactly as your store address, with no campaign tag and no redirect, and the pin description starts with an affiliate disclosure (#CommissionsEarned), as Amazon asks for social posts. Works with the Product Reviews add-on.
v2.148.5

v2.148.5

  • The dashboard tells you when your site cannot send email. On a server without mail set up, every message fails quietly: newsletter confirmations never reach subscribers and contact form notifications never reach you. When the last messages have all failed, the dashboard now shows a warning with the server's reason and a link to the email settings.
  • The dashboard shows the real time of your last IndexNow submission. The traffic card read an old value that is no longer updated, so it could show a date months in the past even though new posts were being submitted normally.
  • Fewer false entries in the database error log. Feeds, the admin menu and social hashtags looked up tables belonging to add-ons that were not installed. The page worked, but each lookup added a line to the error log. These checks now look before they ask.
v2.148.4

v2.148.4

  • Pinterest can now read the links your pins point to. The generated robots.txt closed every address with a query string to crawlers, including links carrying campaign tags (?utm_source=...). Pinterest's crawler follows robots.txt, so it could not open the page a pin pointed to. Tagged addresses are now open to crawlers; other query strings stay closed and the canonical tag still names the clean address.
v2.148.3

v2.148.3

  • Every shared link is checked before it is sent. Social Auto-Publish now follows the link to its final address and shares that address, so no network receives a redirect. A page that no longer exists (404 or 410) is not shared at all and the queue shows why.
  • A spam rejection pauses the channel instead of retrying. The queue used to resend a rejected link up to six times, which lowers the account's standing further. Now the item fails at once, the channel pauses for 72 hours and Queue & Logs explains what happened, with a button to resume early once the network lifts the block.
  • Automatic Pinterest publishing no longer stops with "We blocked this link because it may lead to spam". Social Auto-Publish adds campaign tags (utm_source and friends) to every shared link, while the site redirected any address carrying those tags to the clean address. Every pin therefore pointed at a redirecting link, and Pinterest treats redirecting links as spam. Tagged addresses now open directly; search engines still see a single page because the canonical tag never includes the tags.
  • Social traffic reports finally see campaign tags. The same redirect removed the tags before the page loaded, so ZeroTrack could not tell which network or campaign a visitor came from. Visits from shared links are now attributed correctly.
v2.148.2

v2.148.2

  • A maintenance page that looks like your site. The maintenance and coming-soon page now uses your logo, your theme's heading and body fonts and its colours, with a clear status label, the expected return time, and your social links and contact address in the footer. The dark, light and brand-colour styles are still available under Customize.
  • Posts prepared on a local computer no longer point Google back to it. Content built on a local copy and moved to the live site could keep a canonical address such as http://localhost/..., which tells search engines the real page lives on a machine they cannot reach. Such addresses are now ignored and every page names itself; a canonical you set on purpose to another real site still works.
  • The Media Library grid fills every row. A full page of files used to leave empty squares on the last row on wide screens. The page now shows 48 files and the grid only uses 2, 3, 4, 6 or 8 columns, so full pages always end on a complete row.
v2.148.1

v2.148.1

  • Every plugin has its own menu item again. Plugin pages were folded into tabs at the top of a shared page, so an installed plugin such as AdSense Readiness was hard to find. Each plugin now sits in the menu under its own name. Only closely related core pages, such as Categories and Tags, still share a menu item with tabs.
  • A clearer Comments screen. Each comment shows who wrote it, when, on which post and, for replies, which comment it answers. Pending and spam comments carry a clear label, the spam score appears only when it matters, and the actions are proper buttons. Replying to a pending comment approves it, so your reply never sits under a hidden comment. Click a post title to see only that post's comments.
  • A tidier Media Library. Every file card now has the same shape, with the name, type, size and dimensions under the thumbnail, so the grid no longer leaves gaps. The list view, which was broken, now shows one clean row per file with its thumbnail, details, date and actions. The page header is a single summary line that points out images missing alt text.
  • AI images and voice-overs follow the newest model. The AI Images and Social Studio voice-over settings used to keep the model name they were installed with. They now follow the built-in model list, so an update that moves to a newer model reaches them too; a model you picked yourself stays as it is.
  • Money Pages counts cleaner. The same visitor clicking the same link again within 30 minutes counts once, and clicks on an A/B test goal button now appear in the report as well.
  • Long post titles are shown in full. Posts created through the content API or an import could carry a copy of the title cut at 70 characters, so the browser tab and the search result ended mid-word. The full title is used again, and new posts no longer store the cut copy.
  • Every site has a share image. A site whose logo exists only as SVG and that has no default share image was shared on social networks as a bare link. It now gets a 1200x630 card with the site name and tagline, drawn once by the built-in card maker. Choosing your own share image replaces it.
  • Product ratings stay honest. A visitor could add a new star rating to a product every day; now each visitor has one rating and can only change it. Ratings and price alerts are accepted only from your own pages.
  • Post votes on the Crypto theme. Vote messages follow the site language, votes are accepted only for published posts and from your own pages, and the visitor's IP address is no longer stored.
  • Download e-mails in your site's language. The buyer's download e-mail and the new-order notice were half Turkish, half English. File names with accented letters now download with the right name.
v2.148.0

v2.148.0

  • Money Pages: see which posts actually earn. A new tab under Analytics counts affiliate link clicks, newsletter and push signups, form submissions and downloads, and ties each one to the page it happened on and the page the visitor entered the site from, together with the source that sent them. No cookies are used. When Google Console is connected, each page also shows its average Google position, and the report points out the quickest win: a page that already converts but sits between positions 4 and 20. It also names the most-read post that brings nothing yet, so you know where a product link or a newsletter call belongs.
  • A calmer admin panel. Every page now opens with a one-line title and a one-line description. The explanations that sat under each field as two or three lines of text moved into a small ? next to the field name: hover or tap it when you need it, and the form stays readable when you do not.
  • A shorter menu. Pages that belong together now share one menu item with tabs at the top: Analytics holds ZeroTrack, Google Console and AI Visibility; Ads holds AdSense readiness; Categories holds Tags; Import holds Backups. Recipe cards, quizzes, stories and other content types sit in their own group that starts folded. Nothing was removed; every page is still one click away and in the Ctrl+K search.
  • A dashboard that starts simple. A new account sees the essentials first. Charts, status cards and repeat lists are one click away under Customize this screen, and your own choice always wins.
  • Warnings where they matter. The update, license and SEO signal notices no longer stack on top of every page; each shows on the page it concerns.
  • Tidier forms. The affiliate link form lines fields up in logical rows and uses the same on/off switch as the rest of the panel. Membership and payment settings moved out of Site Information into their own card. In the post editor, Structured Data and Editorial Details start folded until you use them.
  • Dark mode no longer shows white boxes. The revenue settings and A/B test cards on the Ads page, and the notices on the Horoscope page, kept light colours in dark mode.
  • Pages no longer jump while loading. The Customize and Import pages rebuilt their layout a moment after opening, pushing the content down; they now appear in place.
  • The menu highlights the right page. On several plugin pages the menu marked Dashboard as the current page and the breadcrumb showed only Dashboard.
  • Ad slots show their status in your language. The badge read Disabled in English on Turkish sites.
  • The automatic stories bubble uses your site’s language. On some new Turkish sites it was created as Latest Posts; it now shows Son İçerikler unless you renamed it.
v2.147.1

v2.147.1

  • A malformed search link no longer takes the search page down. A link such as /search?q[]=x sends the search term as a list instead of text. Every theme expected text, so the page answered with a server error. Bots probe addresses like this all the time, which filled the error log and showed search engines a broken page. Values that must be a single piece of text (search, page number, sort order and a few others) are now checked before any page code runs; a list in their place is simply ignored and the page opens normally. The admin panel is not affected.
v2.147.0

v2.147.0

  • Forgot your password? Now there is a way back in. The sign-in screen carries a recovery link: enter the account email and a link arrives that is valid for one hour and works only once. Until now there was no way back at all - someone who forgot the admin password had to edit the database by hand, and with two-step verification switched on they were locked out for good. The reset link never switches off an authenticator, because recovery must not become the way around a second factor. Requesting a link shows the same confirmation whether or not the address belongs to an account, so the form cannot be used to find out who is registered on your site. Setting a new password also signs out the “remember me” sessions on other devices. If the site cannot send email yet, the screen says so up front instead of letting you wait for a message that will never arrive.
  • Emails now speak your site’s language. Every message the CMS sends - password reset, account activation, welcome, order, invoice, support ticket - was written in Turkish no matter what language the site ran in, while the licence email was English-only in the other direction. Readers of an English site received Turkish instructions they could not follow. Subjects and bodies are now written in both languages and picked to match the recipient, and the diagnostics on the mail test screen follow the same rule.
  • The sign-in screen no longer prints the version number. Anyone who could load the page - no account needed - could read exactly which release a site was on. After a security release that turns the open internet into a list of which installs are still behind. The version stays where it is useful: on the dashboard and the Updates screen, once you are signed in.
v2.146.1

v2.146.1

  • Setting up a program shows you the result before you save. As you type the tag or the network address, a sample link appears underneath showing exactly how your links will go out. The link form tells you whether the address you pasted matches a program and where the visitor will actually be sent, and the link list marks every tagged link with its program. Pasting a full address with a path into the domain field now works too.
  • Links you add by hand now pick up your program tag too. The programs feature promised that every link to a store domain gets the tag, but only the buy buttons on product reviews did. A link you added yourself, or a plain store address inside a post, went out untagged and the sale was never credited to you. The tag is now applied at the moment of redirect, and to plain store links inside your posts, so every link honours the program you defined.
  • Saving Product Reviews settings no longer wipes your Amazon tag. With Affiliate Links switched on, the settings form hides the old tag boxes. Saving that form still wrote the missing boxes back as empty, so a tag that had not been moved to a program yet was lost. The old tag is now left untouched, and the move to programs also runs on any admin visit rather than only when you open the Affiliate Links screen.
v2.146.0

v2.146.0

  • Affiliate programs: set your tag once, every link gets it. Until now the tag was an Amazon-only field buried in Product Reviews settings. If you worked with anything else - a local marketplace, a network, a shop’s own scheme - you pasted a tagged address by hand for every single product. Now you define the program on the Affiliate Links screen: the store domain, and either the tag it adds to the link or the redirect address your network gave you. From then on every link to that domain picks it up automatically, including the buy buttons on product reviews. Amazon is preconfigured with its 21 marketplaces, and a tag you already had is moved across on the first visit - nothing to re-enter.
v2.145.28

What owners report, and a tidier product header

  • A new “What owners report” section on product reviews. A review page tells people what a product does; it rarely tells them what living with it is like after a few months. This field holds three to five sentences on what long-term owners consistently say - the complaint that keeps coming back, the workaround everyone finds, the thing that surprises people. It appears after the verdict, and it is labelled as a summary of owner feedback, not as a test we ran. Write it in your own words: copying review text from a shop breaks that shop’s terms and copied text earns nothing in search.
  • Affiliate theme: the score line is aligned again. The label under the stars carried a divider and an indent left over from an older layout, where it sat beside the score rather than below it. That left a stray vertical line and pushed the text out of line with the stars.
  • Affiliate theme: the product header no longer leaves a tall gap under the image. The byline and share row now sit under the product photo instead of at the bottom of the much longer right-hand column, so the two sides finish closer together.
  • Affiliate theme: the “Pin this” block moved up to just after the reader rating. It used to sit below the related reviews, by which point the reader had already moved on.
v2.145.27

Two admin banners that would not go away

  • “Sample content is installed” no longer forces you to delete it. The only button on that strip removed the posts, so anyone who had rewritten the sample articles and made them their own was stuck choosing between deleting their work and seeing the notice on every page. There is now a second button that keeps everything and simply stops the reminder. The non-destructive choice comes first, and the wording no longer assumes you want the content gone.
  • The SEO watch stops talking once the change has settled. Its notice sat at the top of every admin page until you dismissed it by hand - fixing the thing it reported, or putting it back, changed nothing, because a clean measurement never cleared the old notice. From now on, a measurement that finds nothing changed clears it. The history stays in the system log; only the banner goes quiet. A run that could not reach the site at all does not count as clean, so a network problem cannot silence a real warning.
v2.145.26

The channel card's dropdown stays inside the card

  • The Pinterest mode selector fits its card. The two options spelled out when to use each one - “Sandbox (test - before Standard approval)” - which ran past the edge of the narrow channel card and squeezed the dropdown arrow off the end. They now read Test (sandbox) and Live (production); the explanation already sits in the setup notes above, where there is room for it.
v2.145.25

The English admin speaks English

  • Social connection fields no longer spill out of their card. In the narrow channel cards the App ID and secret boxes could not shrink below their default width, so they ran past the card edge.
  • Turkish no longer shows up in the English admin. A number of screens still printed Turkish whatever language you had chosen: the billing details page in full, ticket status labels, the legal page generator link, a couple of buttons and one screen-reader label. They now follow the panel language. Our own leak detector had missed them because it only looked for letters unique to Turkish, and a word like “kaydet” has none - it now also checks words visible on screen that are Turkish without those letters.
  • The error and maintenance pages pick one language instead of printing two. When the database is unreachable the site cannot read its own language setting, so these pages used to print an English paragraph followed by a Turkish one. They now choose: the site language when it can be read, otherwise the visitor’s browser language, otherwise English - and the page’s lang attribute finally matches what is written on it.
v2.145.24

Hashnode connects for real

  • Hashnode can now actually be connected. It was listed as a channel in the previous release but never reached the code that publishes: a platform has to be declared in three places, and one of them was missed, so the connection simply returned nothing. All three now agree, and the release gate checks that they keep agreeing - a channel that is advertised but silently does nothing is worse than one that is not offered at all.
v2.145.23

Hashtags on every channel, and Hashnode joins the list

  • Hashnode is now available as a publishing channel. The full article is syndicated with a canonical link pointing back to your own site, so search engines still treat you as the original source. Connect it with a personal access token and your publication address under Social → Connections.
  • Every social post now goes out with hashtags, not just Pinterest ones. A post with no tags of its own used to reach Pinterest with a made-up hashtag and reach every other network with none at all. There is now one rule for all of them: the post’s own tags come first, then the product’s brand, then its category, aiming for three to five tags. Nothing is invented - if those sources run out, the post simply goes out with fewer. A new Default hashtags box under Social settings lets you supply a short list that tops up what the post cannot fill.
  • Each network gets the number of hashtags it actually wants. Five was applied everywhere. Reddit, Discord, Tumblr and Dev.to now get none in the body, because a hashtag there either does nothing or means something else entirely (in Discord it is a channel link, and Tumblr and Dev.to have their own tag field we were already filling). Pinterest, X and Bluesky get three, where the character budget is tight or a wall of tags reads as spam. Mastodon, LinkedIn, Instagram, Threads and the rest get up to five.
v2.145.22

Pin hashtags are terms again, not squashed headlines

  • Pinterest pins no longer carry a hashtag made out of the whole headline. When a post had no tags of its own, the pin description fell back to the post’s focus keyword and title - both of which are sentences. Spaces are not allowed in a hashtag, so they were pressed into one word and the pin went out with something like #furminatordesheddingtoolreview: thirty characters nobody has ever typed into a search box. The fallback now proposes short terms only - the product’s brand and the post’s categories - and anything longer than three words is dropped rather than mashed. Pins also carry at most three hashtags instead of eight, because a wall of tags reads as spam on Pinterest.
v2.145.21

The end-of-article pin block fits the page

  • Affiliate theme: the “Pin this” block at the end of an article now sits inside the page, not across it. The block was printed without the wrapper every other full-width section uses, so it ran to the edge of the browser window while its text stayed pinned to the left, leaving a wide empty gap on the right. It also borrowed the styling of the small in-article save box, which was drawn for the narrow article column. It now has its own layout - image, text and button across three columns - and folds down sensibly on a laptop and a phone.
v2.145.20

Images carry their own alt text, and the pin button saves the right picture

  • Affiliate theme: a “Pin this” block at the end of an article. A vertical 2:3 image with the article’s own sentence already written into the pin description, so a reader who saves it does not land on an empty description field. The product photographs on the page are marked as not pinnable, so the save button can no longer pick the wrong one.
  • Every image can now carry its own alt text, and the site uses it. The media library has had an alt text field for a long time, but the themes ignored it: a featured image, a product photo and a related-article thumbnail on the same page all printed the article title. For a reader using a screen reader that is three images described identically, and for Google Images it is three pictures with nothing to tell them apart. Alt text is now read from the library entry, and the title is only the fallback when the entry has none. Nothing to switch on - fill in the alt text on an image and every place that image appears starts using it.
  • Social preview images describe the picture, not the headline. The og:image:alt tag repeated the post title, which told a reader who could not see the image nothing they were not already reading next to it. It now uses the image’s own alt text. twitter:image:alt was never sent at all and now is.
  • “Save to Pinterest” now saves the image you designed for it. On a product review the save button picked up the plain product photograph on its white background, because that was the image sitting next to the button. Pinned to a board it became an unreadable square. The button now saves the article’s featured image, and the box that previews it is shaped 2:3 - the proportion Pinterest actually shows - instead of 3:4.
v2.145.19

Your affiliate tag is read from settings, not baked into old links

  • Changing your affiliate tag now applies to links that already exist. The tag was written into each store link at the moment the product was saved, and only a save on the plugin’s settings screen refreshed those links. So if the tag changed any other way - a new Amazon account, a restored backup, an import, a change made outside the settings form - every link kept pointing at the old tag. Nothing looked broken: the page worked, the redirect worked, and the sale was simply credited to an account that no longer existed. The tag is now read from your settings at the moment a visitor clicks, so the current tag always wins. A marketplace you have no tag for is left untouched, because sending a visitor there with someone else’s tag earns nothing.
v2.145.18

List pages do far less work to draw the same screen

  • List pages now run close to half the database queries. A list of posts asked the database about each card separately - this card’s author, this card’s categories, this card’s reaction counts - so a twenty-two card home page could run seventy-nine queries, most of them fetching the same few authors over and over. Lists now ask once for everything the page needs. Measured on identical content: the Personal theme’s home page went from 79 queries to 40, Entertainment from 82 to 50. Nothing on the page changes; it simply takes less work to draw.
  • The author’s title now appears on the Personal and Trends themes. Both themes carried their own copy of the author lookup and neither copy returned the job title, so what you typed into the profile page never reached the author card. There is now a single lookup for the whole product, and it returns every field.
  • A setting saved while a page is being built is now seen by the rest of that page. Settings are read from the database once per page load and kept in memory for speed. Saving one wrote to the database but left that in-memory copy untouched, so any step that saved a value and then read it back in the same page still saw the old one - no error, no warning, the value simply appeared not to have been saved. Activating a theme had the same shape: the remainder of that request kept using the previous theme’s layout. Both the settings and the active theme now refresh the moment they change.
  • Best-of lists no longer link to posts you kept private. The affiliate theme’s list section looked up a product’s review page by id and checked only that it was published, missing the visibility filter every other list query applies - so a review set to private or written in another site language could surface as a card on the home page.
  • Two image frames in the affiliate theme could collapse. The card image is a link, and a link is inline by default, which makes the fixed aspect ratio have no effect: the frame did not reserve its space, so the layout could jump while images loaded. The score table and article cards now declare the frame properly.
v2.145.17

Internal links now use anchor text that means something

  • Automatic internal links sometimes used meaningless anchor text. Phrases were taken from the whole title, including the sentence after the colon, so a link could read “people buy” or “stop thinking” and point at a product review. The title before the colon names the subject; the part after it is a sentence about it, and sentences make poor links. Phrases now come from the subject, so anchors read like “Apple Watch” or “air fryer”. Measured on a 39-post site: four of seventeen links were of the bad kind.
v2.145.16

Confirmed price alerts, faster first paint and titles that fit

  • Price alerts now require confirmation. The form accepted any address, so someone could have put another person’s email on a product without their knowledge. A confirmation link is sent first and alerts go only to addresses that clicked it; requests nobody confirms are deleted after seven days.
  • Round-up pages no longer claim to be someone else’s review. Putting a best-of list or a comparison inside an article printed full review markup for every product listed, each pointing at a different address - the page was telling search engines it was the review page for products it only mentioned. Those pages now publish a proper list instead, with each entry linking to its own review.
  • Fonts no longer hold up the page. The font stylesheet was loaded in a way that blocks drawing, so when Google’s font service was slow or unreachable the page waited for it: we measured a page taking 15 seconds to show while the server itself answered in half a second. Text now appears immediately and the font swaps in when it arrives.
  • Long titles keep their words instead of the site name. Search results cut the title at about sixty characters, and “| Site name” was always appended - on a long headline the suffix was never visible anyway but it ate the space. The site name is now added only when it fits; search engines still read it from the page’s structured data.
v2.145.15

A fresher update date for reviews, and a readable robots.txt notice

  • Editing a product did not refresh the review’s update date. Product details live apart from the article, so changing a price, a specification or a question changed what the page shows while search engines were still told the page had not been touched since the article itself was last saved. The date now follows whichever was edited last.
  • The SEO watch could not show what changed in robots.txt. It printed the before and after values, but robots.txt repeats the same rules for every crawler it names, so the part that fitted on screen read “allow: / | allow: / | allow: /” on both sides - identical, and no help at all. The notice now names the rules that were added or removed.
v2.145.14

Clickable cards, a sectioned product form and a warning for posts hidden from search

  • The product editing screen is a workspace now. Sixty-five fields ran down one long column and the width was capped, which left the screen half empty and the fields cramped. The form now uses the full width and is split into named sections, each with a line explaining what belongs there; a sticky list on the right jumps to any section, marks the one you are reading, shows how many fields each one holds, and keeps Save within reach. Ctrl+S saves.
  • Questions and answers are readable by answer engines. The FAQ on a review page is now published as structured data when it is visible on the page. Google has limited FAQ rich results to official and health sites since 2023, so this is not about a search result box: question and answer pairs are the form AI answers quote most readily.
  • The author archive report says what you are missing. It only said that author archives are noindex by default. It now also says how many of your authors pass the threshold, and why the page matters on a review site: a reader and a search engine both want to see who tested the product.
  • Card bodies still did not open the article. The overlay that was supposed to make the whole card clickable sat on the heading rather than on the heading’s link, so it covered the card without being a link: it swallowed the click and disabled the cover photo’s own link underneath. Blog cards, review cards, score cards and best-of cards now open from anywhere on the card.
  • The home page carried two H1 headings. The site name in the header became an H1 on the home page while the headline section printed one as well, so the page’s main heading announced the brand instead of the subject. The site name is now an H1 only when the headline section is absent, so the page always has exactly one.
  • Nine published guides were hidden from Google. Sample content ships marked “noindex” on purpose; when those posts are turned into real articles the mark stays behind and nothing says so. The SEO report now lists every published post that carries it, with a link to each.
  • Affiliate redirects were open to crawlers. Every store button goes through a counted redirect; those addresses are now closed in robots.txt, so crawl budget is spent on your pages rather than on redirects.
  • The affiliate disclosure was only in the footer. On a review page the first store button appears long before it, so a reader could click without ever being told the link earns a commission. A single line now sits under the buy buttons, and it can be switched off in the customiser if you disclose elsewhere.
  • Footer links to your legal pages went through a redirect. Two parts of the system disagreed about the canonical address of a privacy or terms page when you have not written your own: the router served one address and the footer linked to another, so every one of those links took a 301. Both now read the same list.

Get your site live

The setup wizard gets a site live in about 30 minutes. See the prices and the free edition.

View Pricing
  • Setup and live in 30 minutes
  • 15 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 and CMS guides. We send a couple of emails a month.