<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jay Malhotra</title>
    <description>The latest articles on DEV Community by Jay Malhotra (@jaymalhotra).</description>
    <link>https://dev.to/jaymalhotra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4245747%2F53cd7273-c2ae-4770-b89a-1cd72ea3ee02.png</url>
      <title>DEV Community: Jay Malhotra</title>
      <link>https://dev.to/jaymalhotra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jaymalhotra"/>
    <language>en</language>
    <item>
      <title>5 WordPress Speed Fixes That Actually Move Core Web Vitals</title>
      <dc:creator>Jay Malhotra</dc:creator>
      <pubDate>Sun, 15 Nov 2026 10:20:38 +0000</pubDate>
      <link>https://dev.to/jaymalhotra/5-wordpress-speed-fixes-that-actually-move-core-web-vitals-2c7m</link>
      <guid>https://dev.to/jaymalhotra/5-wordpress-speed-fixes-that-actually-move-core-web-vitals-2c7m</guid>
      <description>&lt;p&gt;A slow WordPress site hurts user experience, conversions and search visibility. After years of building and tuning WordPress and WooCommerce sites, these are the five fixes I reach for first, in order of impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Fix the Largest Contentful Paint (LCP) element
&lt;/h2&gt;

&lt;p&gt;On most pages the LCP element is a hero image. Serve it in a modern format (WebP or AVIF), size it correctly for the viewport, and never lazy-load it. Add &lt;code&gt;fetchpriority="high"&lt;/code&gt; so the browser fetches it early.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero.webp"&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"1200"&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"600"&lt;/span&gt;
     &lt;span class="na"&gt;fetchpriority&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"high"&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hero image"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Audit plugins before adding caching
&lt;/h2&gt;

&lt;p&gt;Caching masks a heavy site, it does not fix it. Deactivate plugins one by one and measure. Replace multi-purpose plugins that load scripts on every page with lighter alternatives, or load their assets only where needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'wp_enqueue_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nf"&gt;is_page&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'contact'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;wp_dequeue_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'contact-form-7'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nf"&gt;wp_dequeue_style&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'contact-form-7'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Reduce layout shift (CLS)
&lt;/h2&gt;

&lt;p&gt;Always set &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; on images and embeds, and reserve space for ads, banners and cookie notices. Preload key web fonts and use &lt;code&gt;font-display: swap&lt;/code&gt; to avoid text jumping.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Defer non-critical JavaScript
&lt;/h2&gt;

&lt;p&gt;Third-party scripts such as chat widgets, analytics and trackers often block rendering. Load them with &lt;code&gt;defer&lt;/code&gt; or after user interaction, and remove any you no longer use.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Use proper caching and a CDN
&lt;/h2&gt;

&lt;p&gt;Page caching, object caching (Redis or Memcached) and a CDN cut server response time (TTFB) dramatically, especially for WooCommerce stores where uncached pages are expensive. Exclude cart, checkout and account pages from page caching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Measure, then fix
&lt;/h2&gt;

&lt;p&gt;Test with PageSpeed Insights and the Chrome DevTools Performance panel, and check field data in Search Console. Fix the biggest bottleneck first, re-measure, and repeat.&lt;/p&gt;

&lt;p&gt;What is the biggest performance problem you have run into on a WordPress site? Share it in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Want the long version? I keep a full &lt;a href="https://jaymalhotra.in/blog/wordpress-speed-checklist" rel="noopener noreferrer"&gt;WordPress speed checklist&lt;/a&gt; on my site — more of my work is at &lt;a href="https://jaymalhotra.in" rel="noopener noreferrer"&gt;jaymalhotra.in&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>webdev</category>
      <category>performance</category>
      <category>php</category>
    </item>
    <item>
      <title>Use AI Like a Teammate, Not a Search Engine</title>
      <dc:creator>Jay Malhotra</dc:creator>
      <pubDate>Sun, 15 Nov 2026 10:20:03 +0000</pubDate>
      <link>https://dev.to/jaymalhotra/use-ai-like-a-teammate-not-a-search-engine-4cce</link>
      <guid>https://dev.to/jaymalhotra/use-ai-like-a-teammate-not-a-search-engine-4cce</guid>
      <description>&lt;p&gt;Most people use AI like a search engine: ask a question, get an answer, close the tab. That works for quick lookups, but it leaves most of the value on the table.&lt;/p&gt;

&lt;p&gt;The developers getting the most out of AI treat it like a teammate. Here is the approach I use after completing Anthropic's courses on AI Fluency, Claude Code and Agent Skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Give it a goal, not a prompt
&lt;/h2&gt;

&lt;p&gt;"Write a function that validates emails" is a prompt. "Our signup form accepts invalid emails and support is getting complaints; find where validation happens and fix it" is a goal. The second gives the AI context, a problem and a definition of done.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Let it plan the steps
&lt;/h2&gt;

&lt;p&gt;Ask for a plan before any code is written. Reviewing a five-line plan is far cheaper than reviewing a wrong 500-line change, and it surfaces misunderstandings early.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Give it the right tools and skills
&lt;/h2&gt;

&lt;p&gt;An assistant that can read your project, run tests and follow your team's conventions beats one working from a pasted snippet. Agent skills are a good way to package repeatable instructions, such as your code style or deployment checklist, so you do not re-explain them every session.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Review the output, do not just accept it
&lt;/h2&gt;

&lt;p&gt;AI can be confidently wrong. Read the diff, run the tests and check edge cases. You stay responsible for what ships.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;AI does not replace your judgment, it multiplies it. The better you define the problem, the better the result.&lt;/p&gt;

&lt;p&gt;How are you using AI in your workflow: search engine or teammate? Let me know in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I build WordPress, Next.js and Laravel products with AI where it genuinely helps — see my work and certifications at &lt;a href="https://jaymalhotra.in/about" rel="noopener noreferrer"&gt;jaymalhotra.in&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>claude</category>
    </item>
    <item>
      <title>The WordPress speed checklist I use on every client site</title>
      <dc:creator>Jay Malhotra</dc:creator>
      <pubDate>Sun, 15 Nov 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/jaymalhotra/the-wordpress-speed-checklist-i-use-on-every-client-site-a9j</link>
      <guid>https://dev.to/jaymalhotra/the-wordpress-speed-checklist-i-use-on-every-client-site-a9j</guid>
      <description>&lt;p&gt;A slow website quietly costs you leads, sales and rankings. The good news: most WordPress speed problems come from the same handful of causes. This is the checklist I work through on client sites, roughly in order of impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Measure first
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run the page through &lt;strong&gt;PageSpeed Insights&lt;/strong&gt; and note LCP, INP and CLS for mobile.&lt;/li&gt;
&lt;li&gt;Check real-user data in Google Search Console → Core Web Vitals.&lt;/li&gt;
&lt;li&gt;Use a waterfall tool (WebPageTest or browser DevTools) to see what actually loads and in what order.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Always test the mobile result — that is what Google uses for ranking.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Hosting and server
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use a current PHP version (8.2+) and enough memory for your traffic.&lt;/li&gt;
&lt;li&gt;Enable server-level or object caching (Redis/Memcached) where the host supports it.&lt;/li&gt;
&lt;li&gt;Put a CDN in front of the site — Cloudflare's free plan alone is a big win for global visitors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Page caching
&lt;/h2&gt;

&lt;p&gt;Serve cached HTML to anonymous visitors. A good caching plugin (or the host's built-in cache) can cut server response time from a second to a few milliseconds. Exclude cart, checkout and account pages on WooCommerce sites.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Images (usually the biggest win)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Serve modern formats — WebP or AVIF.&lt;/li&gt;
&lt;li&gt;Resize images to the size they are displayed; never upload a 4000px photo for a 600px slot.&lt;/li&gt;
&lt;li&gt;Lazy-load images below the fold, but &lt;strong&gt;never&lt;/strong&gt; lazy-load the hero/LCP image — preload it instead.&lt;/li&gt;
&lt;li&gt;Always set width and height to prevent layout shift (CLS).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Theme and page builder
&lt;/h2&gt;

&lt;p&gt;Heavy multipurpose themes and page builders load a lot of CSS and JavaScript on every page. If a site is slow, this is often the root cause. Options: switch to a lightweight theme, use the builder's performance settings (load assets only where used), or rebuild key templates in native blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Plugins and third-party scripts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Audit every plugin — deactivate anything unused and replace heavy ones with lighter alternatives.&lt;/li&gt;
&lt;li&gt;Delay non-critical scripts (chat widgets, heatmaps, social embeds) until user interaction.&lt;/li&gt;
&lt;li&gt;Load analytics and tag managers efficiently; each extra tag adds main-thread work that hurts INP.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. CSS, JavaScript and fonts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Minify and combine where it helps, and remove unused CSS.&lt;/li&gt;
&lt;li&gt;Defer non-critical JavaScript.&lt;/li&gt;
&lt;li&gt;Self-host fonts or limit families and weights; use &lt;code&gt;font-display: swap&lt;/code&gt; and preload the main font file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. Database housekeeping
&lt;/h2&gt;

&lt;p&gt;Clean up post revisions, expired transients, spam comments and orphaned plugin tables. Large, bloated &lt;code&gt;wp_options&lt;/code&gt; autoload data is a common hidden cause of slow back ends.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Re-test and monitor
&lt;/h2&gt;

&lt;p&gt;After each change, re-run your measurements so you know what actually helped. Then keep an eye on Core Web Vitals monthly — new plugins and marketing scripts tend to creep back in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Need a hand?
&lt;/h2&gt;

&lt;p&gt;If your WordPress or WooCommerce site feels sluggish, I offer focused speed and Core Web Vitals work. &lt;a href="https://jaymalhotra.in/contact" rel="noopener noreferrer"&gt;Send me the URL&lt;/a&gt; and I'll tell you where the biggest wins are.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jaymalhotra.in/blog/wordpress-speed-checklist" rel="noopener noreferrer"&gt;jaymalhotra.in&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>performance</category>
      <category>webdev</category>
      <category>seo</category>
    </item>
    <item>
      <title>WordPress vs Next.js for a business website: how to actually choose</title>
      <dc:creator>Jay Malhotra</dc:creator>
      <pubDate>Sun, 15 Nov 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/jaymalhotra/wordpress-vs-nextjs-for-a-business-website-how-to-actually-choose-4g2e</link>
      <guid>https://dev.to/jaymalhotra/wordpress-vs-nextjs-for-a-business-website-how-to-actually-choose-4g2e</guid>
      <description>&lt;p&gt;“Should we build on WordPress or Next.js?” is one of the most common questions I get from clients. Both are excellent. Both are also the wrong answer for some projects. Here is how I think about the decision after years of shipping sites on each.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose WordPress&lt;/strong&gt; when non-technical people will publish content often, you need a mature plugin ecosystem (forms, SEO, WooCommerce, memberships), and budget matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose Next.js&lt;/strong&gt; when the site behaves more like an application — dashboards, logins, custom data, heavy interactivity — or when you need top-tier performance at scale and have developers to maintain it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider both&lt;/strong&gt; (headless WordPress + Next.js front end) when you want WordPress editing with a fully custom, very fast front end — and can afford the extra complexity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Who edits the site?
&lt;/h2&gt;

&lt;p&gt;This is the question that decides most projects. WordPress gives editors a familiar admin, a visual block editor, revisions, roles and scheduling out of the box. With a Next.js site, content usually lives in a headless CMS (Sanity, Contentful, Strapi or headless WordPress) — powerful, but it is another system to set up and pay for.&lt;/p&gt;

&lt;p&gt;If your marketing team publishes weekly and doesn't want to call a developer for every landing page, WordPress is hard to beat.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Performance
&lt;/h2&gt;

&lt;p&gt;Next.js has an edge out of the box: static generation, image optimisation, code-splitting and edge rendering are built in. But a well-built WordPress site — lean theme, no page-builder bloat, proper caching and a CDN — comfortably passes Core Web Vitals too. Most slow WordPress sites are slow because of heavy themes and too many plugins, not because of WordPress itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. SEO
&lt;/h2&gt;

&lt;p&gt;Both can rank equally well. WordPress makes on-page SEO easy for editors with plugins like Yoast or Rank Math. Next.js gives developers fine-grained control over metadata, structured data and rendering. What matters far more than the framework: content quality, internal linking, page speed and backlinks.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Cost — build and ongoing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build:&lt;/strong&gt; a marketing site on WordPress is usually faster and cheaper to deliver, because so much exists already (forms, SEO, caching, eCommerce).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting:&lt;/strong&gt; both can be inexpensive. Next.js runs well on Vercel, Netlify or Cloudflare; WordPress needs PHP hosting with good caching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance:&lt;/strong&gt; WordPress needs regular core, theme and plugin updates and security hardening. Next.js has fewer moving parts in production, but changes nearly always need a developer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. eCommerce
&lt;/h2&gt;

&lt;p&gt;For most small and mid-sized stores, WooCommerce (WordPress) or Shopify is the pragmatic choice — payments, tax, shipping and inventory are solved problems. A custom Next.js storefront makes sense for brands with unusual product logic or very high traffic, usually on top of Shopify or another commerce API.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Custom features and integrations
&lt;/h2&gt;

&lt;p&gt;If the project involves user accounts, dashboards, complex forms, third-party APIs or AI features, Next.js (often with a Laravel or Node back end) gives you a cleaner foundation. WordPress can do a lot of this with custom plugins, but past a certain point you are fighting the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick decision checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Will non-developers publish or edit content every week? → lean WordPress.&lt;/li&gt;
&lt;li&gt;Is it primarily a marketing or content site? → lean WordPress.&lt;/li&gt;
&lt;li&gt;Does it need logins, dashboards or app-like interactivity? → lean Next.js.&lt;/li&gt;
&lt;li&gt;Is raw performance at scale a business requirement? → lean Next.js (or headless).&lt;/li&gt;
&lt;li&gt;Do you have ongoing developer support? → if not, WordPress is easier to own.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My take
&lt;/h2&gt;

&lt;p&gt;Pick the platform that fits how your team works and where the product is going — not the one that is trending. I build on both, and I'm happy to recommend against the more expensive option when it isn't needed. If you're weighing this decision for your own project, &lt;a href="https://jaymalhotra.in/contact" rel="noopener noreferrer"&gt;tell me what you're building&lt;/a&gt; and I'll give you a straight answer.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jaymalhotra.in/blog/wordpress-vs-nextjs-for-business-websites" rel="noopener noreferrer"&gt;jaymalhotra.in&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>nextjs</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
