Hi,
I will forward this to our developers, and they will check it out.
Also, I want to let us know that using a mobile page/template will still load teh tagDiv Composer and cloud library (because those are used to create those pages and cloud templates for the mobile version). Normally, this option should be used when you need to have different content on mobile pages and mobile templates, maybe a smaller page with fewer elements, blocks, and for a different layout. Having the same layout and content will be better to use the responsive version, instead of the mobile page/template.
Here are a few additional recommendations you can try. For some users, all themes work without issues, while for others, only certain ones function properly. This can vary depending on the extra plugins in use, as well as any caching or optimization plugins installed.
-> Footer delayed load https://prnt.sc/FS34hBno40sx (under the theme panel > footer > footer delayed load)
-> MINIFY INLINE CSS and AGGREGATE INLINE CSS – https://prnt.sc/en14t6CQChM- (under the theme panel > block settings> inline css)
-> Don’t load on mobile/desktop, this option is only on the cloud header for HEADER MENU https://prnt.sc/udlAW4icvSPP on HEADER MENU STICKY https://prnt.sc/9pKnilQdWyex on MOBILE MENU https://prnt.sc/ff7fRQvTnaXt and on MOBILE MENU STICKY https://prnt.sc/Mm-4mbC4WB68
-> Flex Blocks cache – https://forum.tagdiv.com/use-flex-blocks-cache-option/
Also, it is recommended to use a good cache plugin and even Cloudflare (CDN)
Thank you!
Hi,
The demo you are using is the Downtown Magazine PRO and in that demo the block titles have been set using the tagDiv Composer with teh element Inline text, so you can edit it by editing the pages/templates with tagDiv Composer, selecting the elements that create the block title, for example thetxt, button and the inner row is the one that has in css tab the border https://prnt.sc/Zso5OkrfRAgc
Thank you!
Hello @Calin
I am writing to you after a deep technical audit that lasted two days, conducted by a Senior Infrastructure Engineer and Web Performance Specialist. We had to take this measure because our PageSpeed scores are stuck between 31% and 41% on mobile, despite running on a high-end VPS with persistent cache (Redis/Object Cache) and every possible server-side optimization.
Google has officially notified us regarding this poor performance, stating that our site is no longer a priority in search rankings due to failing Core Web Vitals. After a thorough investigation of the source code and database, we have pinpointed the root cause: The Newspaper theme is loading both Desktop and Mobile assets simultaneously on mobile devices.
Even with dedicated mobile pages (separate IDs), the theme “stacks” the entire desktop framework on top of the mobile one. This redundancy is killing our performance.
I need you to take this diagnostic to the tagDiv development team immediately. We need to know if and when a fix will be released. If this architectural flaw is not resolved, I will be forced to migrate to another theme or develop a custom one, as I cannot afford to lose my SEO ranking due to theme bloat.
Technical Diagnostic:
Problem: Mobile pages heavier than desktop pages
Date: 03/05/2026
Theme: Newspaper 12.7.5
Plugin: td-composer
Server: VPS Ubuntu — CyberPanel — LiteSpeed
CONTEXT
The site glostv.com uses the Newspaper 12.7.5 theme with the td-composer plugin and has a system of separate pages for mobile and desktop, where each version was built individually in the Newspaper visual editor (tagDiv Composer). The site owner reported that pages on mobile are significantly heavier than on desktop, even though there are separate and optimized mobile pages already built.
MOBILE SYSTEM ARCHITECTURE
The following pages were created as mobile templates inside the tagDiv Composer itself and are marked in the database with the flag tdc_is_mobile_template = 1:
ID 7584 — tv ao vivo Brasil (mobile version)
ID 7617 — POPULARES TOP (mobile version)
ID 8700 — Estados (mobile version)
ID 8872 — Homepage (mobile version)
ID 9944 — Política de Privacidade (mobile version)
ID 9948 — Termos de Uso (mobile version)
ID 10581 — Sobre Nós (mobile version)
ID 10597 — Política de Cookies (mobile version)
TECHNICAL PROBLEM IDENTIFIED
Problem 1 — td-composer loads assets WITHOUT any device distinction
Confirmed directly in the file:
wp-content/plugins/td-composer/legacy/common/wp_booster/td_wp_booster_functions.php
Line 362 — Composer JS loads for ALL devices:
add_action(‘wp_enqueue_scripts’, ‘load_js_composer_front’, 1000);
Line 430 — Full Newspaper CSS loads for ALL devices:
add_action(‘wp_enqueue_scripts’, ‘load_front_css’, 1001);
Line 744 — Full theme JS loads for ALL devices:
add_action(‘wp_enqueue_scripts’, ‘load_front_js’);
None of these functions have any device check. They load for both desktop and mobile equally, without any condition whatsoever.
Problem 2 — The mobile engine loads ON TOP of the desktop engine
Confirmed in the file:
wp-content/plugins/td-composer/mobile/functions.php
Line 149 — Mobile CSS loads ON TOP of the desktop CSS already loaded:
add_action(‘wp_enqueue_scripts’, ‘tdm_load_front_css’);
Line 173 — Mobile JS loads ON TOP of the desktop JS already loaded:
add_action(‘wp_enqueue_scripts’, ‘load_front_js’);
Line 184 — Mobile specific script loads ON TOP of all previous ones:
wp_enqueue_script(‘td-site’, TDC_URL.’/mobile/js/tagdiv_theme.min.js’);
Problem 3 — The flag tdc_is_mobile_template does NOT remove desktop assets
Confirmed in the file:
wp-content/plugins/td-composer/includes/tdc_state.php
Line 42:
private static $is_mobile_template = false;
Line 202:
public static function set_is_mobile_template($is_mobile_template) {
self::$is_mobile_template = $is_mobile_template;
}
This flag only serves to let the visual editor know it is on a mobile page. It does not execute any removal of desktop CSS or JS. It is purely an internal state variable with no effect on asset loading.
Problem 4 — Proof: Zero wp_dequeue for mobile anywhere in td-composer
I ran the following command directly on the server via terminal:
grep -r “wp_dequeue|deregister” wp-content/plugins/td-composer/ -n | grep -i “mobile|desktop|css|js”
The only result found was the removal of Visual Composer scripts in the backend administrative editor, not in the frontend. Throughout the entire td-composer codebase, there is not a single wp_dequeue_style() or wp_dequeue_script() instruction conditioned on mobile device detection in the frontend.
WHAT THE MOBILE BROWSER IS ACTUALLY DOWNLOADING
When a user accesses the site from a mobile device, the browser downloads all of this before rendering the mobile page:
From the desktop engine (which should NOT load on mobile):
Full legacy CSS of Newspaper
td-composer frontend JS (desktop visual engine)
tagdiv_theme.min.js desktop version
td-cloud-library CSS
td-standard-pack CSS
td-multi-purpose/style.css
Desktop version fonts
From the mobile engine (which loads ON TOP of the desktop):
Newspaper mobile CSS
tagdiv_theme.min.js mobile version
Mobile specific scripts
Fonts loaded again
The mobile browser is downloading the complete Newspaper framework twice. Once for the desktop layout that is discarded and once for the mobile layout that is actually used. This directly explains why mobile pages feel heavier and slower than desktop pages. DIRECT QUESTION TO SUPPORT
Does td-composer 12.7.5 have any native mechanism to remove desktop engine assets—specifically the functions load_front_css, load_js_composer_front, and load_front_js located in td_wp_booster_functions.php—when the page being served is already marked with tdc_is_mobile_template = 1 in the database?
If yes, in which file and on which line does this asset cleanup occur?
If no, when is the development team going to release an update to fix this? It is unacceptable that a high-end theme like Newspaper forces a mobile device to download the entire desktop framework AND the mobile framework simultaneously. My server-side analysis confirms that even when using dedicated mobile pages, the theme simply “stacks” assets instead of “swapping” them.
This redundancy is causing a massive performance overhead and killing our Core Web Vitals. We have separate pages for a reason, and the theme should NOT be loading desktop junk on a mobile-dedicated template. We need a clear position on when this will be resolved so that tdc_is_mobile_template = 1 actually triggers a wp_dequeue of unnecessary desktop resources.
Hello, my anti malvare plugin says that there is a vunlerability in wp-content/plugins/td-composer/css-live/includes/td_live_css_ajax.php
I updated it to the newest version 5.4.4, but it shows, that the vunlerability is still there… When would this be fixed?
Best regards,
Rafał.
Hi,
To display the text under the image, please replace your current CSS with the following:
body .mfp-title,
body .mfp-counter {
color: #000;
background: #fff;
text-align: center;
}
body .mfp-bottom-bar {
margin-bottom: 0;
}
Regarding the caption text in the modal, I’ve performed additional tests and it appears to be a bug. The caption is displayed on the image itself, but it is no longer shown in the popup.
I’ve added this issue to our bug list, and our developers will investigate and provide a fix.
Thank you for your understanding!
Hi,
The caching option is available only for Flex Blocks. For standard blocks (from the tagDiv Standard Pack), this option is not available.
From what I can see, your website is currently using an older demo (not a PRO demo). This means it relies on standard templates rather than cloud templates, which comes with both advantages and limitations.
One of the main drawbacks is that these templates offer fewer customization options. Additionally, the CSS and JavaScript files are loaded across the entire website, even if certain elements are not actively used—simply having the plugin enabled is enough for them to load.
Hi,
Here are a few additional recommendations you can try. For some users, all themes work without issues, while for others, only certain ones function properly. This can vary depending on the extra plugins in use, as well as any caching or optimization plugins installed.
-> Footer delayed load https://prnt.sc/FS34hBno40sx (under the theme panel > footer > footer delayed load)
-> MINIFY INLINE CSS and AGGREGATE INLINE CSS – https://prnt.sc/en14t6CQChM- (under the theme panel > block settings> inline css)
-> Don’t load on mobile/desktop, this option is only on the cloud header for HEADER MENU https://prnt.sc/udlAW4icvSPP on HEADER MENU STICKY https://prnt.sc/9pKnilQdWyex on MOBILE MENU https://prnt.sc/ff7fRQvTnaXt and on MOBILE MENU STICKY https://prnt.sc/Mm-4mbC4WB68
-> Flex Blocks cache – https://forum.tagdiv.com/use-flex-blocks-cache-option/
Also, it is recommended to use a good cache plugin and even Cloudflare (CDN)
Thank you!
Hi,
For that, it will need to use a css like this one:
body .tdb_header_menu .tdb-menu>li>a:after {
margin-left: 0;
}
the results will be – https://i.imgur.com/01uYiuP.png
Hi,
Normally, this CSS should do the adjustments:
body .mfp-title,
body .mfp-counter{
color: #000;
background: #fff;
}
Unfortunately, I didn’t find an image on the site with a caption, only the count of images.
Thank you!
Hello,
“Performance Optimization
Among the most anticipated features are options to minify and aggregate inline CSS of blocks, accessible directly from the Theme Panel. Additionally, you can now hide the mobile menu and mobile search functions, offering a cleaner user experience on mobile devices.” – here is how you can enable those options:
-> Footer delayed load https://prnt.sc/FS34hBno40sx (under the theme panel > footer > footer delayed load)
-> MINIFY INLINE CSS and AGGREGATE INLINE CSS – https://prnt.sc/en14t6CQChM- (under the theme panel > block settings> inline css)
-> Don’t load on mobile/desktop, this option is only on the cloud header for HEADER MENU https://prnt.sc/udlAW4icvSPP on HEADER MENU STICKY https://prnt.sc/9pKnilQdWyex on MOBILE MENU https://prnt.sc/ff7fRQvTnaXt and on MOBILE MENU STICKY https://prnt.sc/Mm-4mbC4WB68
-> Flex Blocks cache – https://forum.tagdiv.com/use-flex-blocks-cache-option/
“The Newspaper Theme has leveled up its performance by optimizing the Theme Panel’s color settings through CSS variables. Moreover, JavaScript files will only be loaded when they are needed, which should noticeably improve the website’s speed.” – yest this is apply as long you are using cloud tenmplates, so if you do not have the tagDiv STandard pack plugin in used (this is loading all css and js even if is not need), then it will load only the js and css that will be used on that page/template.
Also, it is recommended to use a good cache plugin and even Cloudflare (CDN)
Thank you!
My site is abysmally slow – but I’d like to work on the actual issues before I add a caching plugin. I’ve come across many speed articles and supposed Newspaper Optimization – but I can’t figure out what is current, or where any of things mentioned are.
https://tagdiv.com/newspaper-theme-unveils-comprehensive-update-v-12-6-what-you-need-to-know/
Performance Optimization
Among the most anticipated features are options to minify and aggregate inline CSS of blocks, accessible directly from the Theme Panel. Additionally, you can now hide the mobile menu and mobile search functions, offering a cleaner user experience on mobile devices.
The Newspaper Theme has leveled up its performance by optimizing the Theme Panel’s color settings through CSS variables. Moreover, JavaScript files will only be loaded when they are needed, which should noticeably improve the website’s speed.
What are the instructions for this? I have no clue where to click or what to do – AI lies constantly and makes things up. What is a step by step guide to gain the advantages claimed above?
https://tagdiv.com/how-to-increase-page-loading-speed/ – is this still accurate?
I’d love an updated step by step list on how to speed up newspaper before I add a plugin to do so.
Hi,
There are several ways to achieve this. You can use custom HTML and CSS (for example, generated based on your design) and place it inside a Raw HTML element, or you can build it using the theme’s elements.
The simplest and fastest approach would be to use an Inner Row, along with Title and Column Text elements. Here’s how you can do it:
– Start by adding a main row.
– Inside that row, insert an Inner Row.
– For the inner row, set the background color and adjust the width as needed (you can customize this per device if required).
– Add a Title element, then set your text, choose a style, and adjust the color and font size.
– Finally, add a Column Text element. Within it, you can insert an image and text—using a two-column format if needed.
https://prnt.sc/Gkp16IfbjjhZ – https://prnt.sc/NgiKItHsi85F
https://prnt.sc/pm61hKIsMaz7 – https://prnt.sc/3xJg-2eEpaTJ
Hi,
I do not need to use css Just follow my example,s or if it is necessary, provide a temporary access via email at contact@tagdiv.com
Thank you so much for your email. But I have a problem: I don’t know how to use CSS. Thanks!
Hi,
In this case, you can edit the footer using tagDiv Composer. Switch to the mobile viewport, then select each footer column and review its CSS settings (you can also check in the layout, as there are 2 places where the width can be set). Adjust the column width from 30–35% to 100% to ensure proper display on mobile devices.
If you need any further assistance, feel free to reach out https://i.imgur.com/CFVHWqA.png
I hope this will help you!
UPDATE — April 25, 2026
Significant new findings after deeper DOM inspection. The block is no longer empty, but articles are rendered offscreen.
What changed since my last report:
Yesterday: the block container appeared completely empty — no child modules in the DOM.
Today (verified via browser DevTools): the container #tdi_96 now contains 5 .td_module_flex elements with correct titles, dates, categories, and links pointing to the right posts.
However, the articles are rendered at top: -4729px on the public frontend — far outside the viewport, which is why they remain invisible to users despite being present in the DOM.
Detailed observations from the frontend (incognito, logged out):
Articles ARE in the DOM: confirmed via document.querySelectorAll(‘#tdi_96 .td_module_flex’) returning 5 elements with valid content.
Articles positioned offscreen: getBoundingClientRect() returns top: -4729, left: 20 for the first article. Parent #tdi_96 itself sits at normal page position with height: 234px.
Computed CSS does not explain the offset: position: relative, top: 0px, marginTop: 0px, transform: none, translate: none, inset: 0px — no positioning rule should push the elements offscreen.
No transform on any ancestor: walked up the DOM from .td_module_flex to #tdi_96 — no element has a transform or non-default position.
In tagDiv Composer editor, the block displays correctly — all 5 articles visible with normal layout. The issue manifests only on the public frontend rendering.
Block class on frontend: td_block_inner td-mc1-wrap with el_class=”td-week-slider” set in shortcode.
Image container has display: none (intentional — image_floated=”hidden” in config).
Editor still throws 8x “model does not match content” errors when opening the Homepage in tdc. These persist from yesterday and have not cleared.
Hypothesis:
The block appears to enter a ticker/slider rendering mode on the frontend (consistent with the td-week-slider class), where articles are positioned offscreen waiting for a JS animation that never executes. The editor renders the block correctly because it bypasses this ticker behavior, but the frontend runtime applies it and fails. This may be linked to the persistent “model does not match content” errors.
Concrete questions:
(a) How can I force this block to render as a standard vertical flex list (no ticker behavior) without entering Composer to edit it (since opening the Homepage in tdc shows the model errors)?
(b) Is there a way to clear the model-content mismatch from the database directly (wp_options, wp_postmeta) without going through the editor?
(c) Does the td-week-slider el_class trigger specific JS that could fail silently and leave articles parked offscreen?
I can provide additional diagnostic output from DevTools console if helpful.
Hi tagDiv team,
I have a Flex Block 1 (configured as “Latest news” widget in the homepage left column)
that renders empty in the frontend but displays posts correctly in the Composer editor preview.
DETAILS:
– Theme: Newspaper v12.7.5 (REGISTERED)
– Demo installed: Newsweek PRO
– Site: https://eurowaypoint.com
– WordPress: 6.9.4
– PHP: 8.2.30
THE PROBLEM:
– In Composer editor: the Flex Block 1 shows the latest 5 published posts correctly
– In frontend (incognito browser, logged out): the block container is generated
(div id=”tdi_96″ class=”td_block_inner td-mc1-wrap”) but completely empty —
no child modules are rendered inside
– 24 published posts exist in the database
– Other blocks on the same homepage (Big Grid Flex 1, other Flex Block 1 instances)
work correctly and display posts
– No JavaScript errors in browser Console
– The block has no special filters configured (Category: All, all filter fields empty)
WHAT I’VE ALREADY TRIED:
– Cleared all caches (SiteGround, WP Super Cache disabled, browser hard reload)
– Restored Homepage from a 3-day-old revision (no improvement)
– Disabled all third-party plugins one by one (Wordfence, SG Optimizer, etc.)
– Verified block configuration in Composer (Filter tab, Layout tab — all default/empty)
– Forced re-save of the block (changed limit number and saved)
– Removed custom CSS that contained :has() selectors
WHAT I NOTICED:
The block was working until I made some modifications today (changed page slug from
/plans/ to /newsletter/, edited some HTML custom blocks for Subscribe links).
The Latest block stopped rendering at some point during these changes.
Restoring an older Homepage revision did NOT fix it.
Could this be a corrupted block state in the database? Is there a way to reset
the block’s internal cache or regenerate its configuration?
Thank you for your help.
Hi,
I see that a custom css has been used to hide the footer https://prnt.sc/Ebuor66ByiN5
look for this cutsom css:
.single-3d-flip-book .td-header-template-wrap, .td-footer-template-wrap { and edit it to be like this
display: none!important;
}
.single-3d-flip-book .td-header-template-wrap {
display: none!important;
}
Hi,
Ok, if you want to use the multi-purpose icon, then please replace the above css with this one:
body .mfp-figure:after {
box-shadow:none;
}
body .mfp-bottom-bar {
padding: 0;
}
body .mfp-counter {
text-align: center;
position: relative;
padding-right: 0px;
}
body .mfp-arrow-left:before,
body .mfp-arrow-right:before {
font-family: td-multipurpose;
font-size: 60px;
}
body .mfp-arrow-left:before {
content: "\e960";
display: inline-block;
transform: rotate(180deg);
}
body .mfp-arrow-right:before {
content: "\e960";
}
Clear the cache and check the results.
Hi,
Please try this custom css:
body .mfp-figure:after {
box-shadow:none;
}
body .mfp-bottom-bar {
padding: 0;
}
body .mfp-counter {
text-align: center;
position: relative;
padding-right: 0px;
}
body .mfp-arrow-left:before,
body .mfp-arrow-right:before {
font-family: FontAwesome;
font-size: 60px;
}
body .mfp-arrow-left:before {
content: "\f104";
}
body .mfp-arrow-right:before {
content: "\f105";
}
Set the code in the theme panel > custom code > custom css and it should look like this – https://prnt.sc/DN8c7yBm07MK
Thank you!
Hi Calin,
I’m sorry. I’ve now disabled the right-click function.
The CSS code you sent me isn’t doing what I wanted. Please try again.
Bettina
Hi,
Unfortunately, there isn’t a built-in option to achieve what you’re looking for, so you’ll need to use CSS. I couldn’t inspect the elements directly because your site has right-click protection enabled, but the solution should look something like this:
body .mfp-bg {
background-color: #0000004a;
}
Hi,
1. For the font issue, you can try the OMGF plugin https://wordpress.org/plugins/host-webfonts-local/. It helps host Google Fonts locally and often improves performance. Also, check whether your caching plugin includes any optimization settings for Google Fonts, as that can make a difference.
2. I understand the concern. I recommend adding a custom class https://prnt.sc/5AtT-epD1137 to the element where you want to apply custom CSS. This approach helps you avoid conflicts like the one mentioned earlier. Keep in mind that on each page, template IDs such as tdi_1 are generated dynamically, starting from 1 and incrementing based on the number of elements—so they may change and aren’t reliable for targeting.
Thank you!
Hello,
Thank you for your previous help. I need assistance with two issues in the Newspaper theme / TagDiv Composer.
1. Google Fonts and local fonts
The theme is loading fonts from Google, and this is heavily affecting the site’s performance because of render-blocking requests. The theme does not properly use local fonts by default.
I tried using local fonts inside TagDiv Composer, but I had to do a workaround, and that is not the correct solution. I also created a Newspaper-child theme and managed to load local fonts from there, but the result was not good because the fonts do not look exactly the same as the original Google Fonts.
What I need is a proper solution that makes the theme use local fonts, while still allowing me to select the fonts normally in TagDiv Composer. In other words, I want the theme to keep the same visual appearance, but load the font files locally instead of requesting them from Google.
What is the correct way to do this?
2. Hiding the “Most Watched” section title
I am trying to hide the title of the “Most Watched” section shown here:
https://ibb.co/6cmh3VH8
This section appears in this post:
https://glostv.com/tv-ao-vivo/tv-cultura
and also in all other posts.
I used the following CSS:
CSS
.tdi_54 .entry-title,
.tdi_54 .td-module-title,
.tdi_54 .td-module-title a {
display: none !important;
}
The problem is that this is also hiding titles on the Popular page:
https://glostv.com/populares
This should not happen. These elements should not be sharing the same .tdi_54 behavior for this case, or at least I need a more specific way to target only the “Most Watched” section inside posts.
How can I hide that title only in the post section, without affecting the Popular page?
Thank you.
Hi,
Since that css is set inline on the ads code, I believe this situation is related to teh ad code. I suggest asking the code provider about this.
There are codes that have 2 parts, the first part needs to be set only once on the page, and the second part is the one that should be set in the place where you want to have the ad displayed.
I hope this will help you!