<?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: Syed Saadullah Shah</title>
    <description>The latest articles on DEV Community by Syed Saadullah Shah (@wpsyed).</description>
    <link>https://dev.to/wpsyed</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F696003%2F4d97a425-d446-4722-a070-77ca00b58996.jpeg</url>
      <title>DEV Community: Syed Saadullah Shah</title>
      <link>https://dev.to/wpsyed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wpsyed"/>
    <language>en</language>
    <item>
      <title>Most WordPress Speed Issues Are Not Plugin Problems — They’re Configuration Problems</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sun, 14 Dec 2025 02:34:08 +0000</pubDate>
      <link>https://dev.to/wpsyed/most-wordpress-speed-issues-are-not-plugin-problems-theyre-configuration-problems-4bfm</link>
      <guid>https://dev.to/wpsyed/most-wordpress-speed-issues-are-not-plugin-problems-theyre-configuration-problems-4bfm</guid>
      <description>&lt;p&gt;Every time someone asks how to speed up a WordPress site, the advice usually sounds the same:&lt;/p&gt;

&lt;p&gt;“Install this plugin.”&lt;br&gt;
“Add another optimization tool.”&lt;br&gt;
“Switch to a different theme.”&lt;/p&gt;

&lt;h2&gt;
  
  
  I used to think that way too.
&lt;/h2&gt;

&lt;p&gt;But after working on real WordPress sites — especially ones that were already using “all the right plugins” — I realized something important:&lt;/p&gt;

&lt;p&gt;Most WordPress speed issues aren’t caused by missing plugins.&lt;br&gt;
They’re caused by poor configuration and heavy architectural decisions.&lt;/p&gt;

&lt;p&gt;This post is a breakdown of how I approach performance today, using a minimal stack and focusing on fundamentals rather than plugin overload.&lt;/p&gt;

&lt;p&gt;The Real Reason Many WordPress Sites Feel Slow&lt;/p&gt;

&lt;p&gt;In most audits I do, the problem is rarely WordPress itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s usually a combination of:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Server misconfiguration&lt;/li&gt;
&lt;li&gt;Too many overlapping performance plugins&lt;/li&gt;
&lt;li&gt;Heavy page builders generating unnecessary markup&lt;/li&gt;
&lt;li&gt;Unoptimized images and fonts&lt;/li&gt;
&lt;li&gt;No clear strategy for asset loading&lt;/li&gt;
&lt;li&gt;Plugins can help — but only after the foundation is right.&lt;/li&gt;
&lt;li&gt;My Performance Stack (Simple on Purpose)&lt;/li&gt;
&lt;li&gt;I intentionally keep things &lt;a href="https://syedsaadullah.com" rel="noopener noreferrer"&gt;minimal&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Performance Plugins I Use
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FlyingPress&lt;/li&gt;
&lt;li&gt;Flying Pages (by Gijo Varghese)&lt;/li&gt;
&lt;li&gt;That’s it.&lt;/li&gt;
&lt;li&gt;No all-in-one “do everything” plugins.&lt;/li&gt;
&lt;li&gt;No multiple caching layers fighting each other.&lt;/li&gt;
&lt;li&gt;Server Comes First: LiteSpeed Web Server&lt;/li&gt;
&lt;li&gt;Before touching WordPress settings, I always look at the server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frb8xyqpd7q4rbb0zjzeh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frb8xyqpd7q4rbb0zjzeh.png" alt=" " width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  With LiteSpeed:
&lt;/h2&gt;

&lt;p&gt;Correct PHP version matters&lt;/p&gt;

&lt;p&gt;OPcache must be enabled&lt;/p&gt;

&lt;p&gt;Compression should happen at server level&lt;/p&gt;

&lt;p&gt;TTFB issues often disappear here&lt;/p&gt;

&lt;p&gt;This is where many sites go wrong — they try to fix server problems using WordPress plugins. That almost never works.&lt;/p&gt;

&lt;p&gt;FlyingPress: Powerful, But Only If You Configure It Properly&lt;/p&gt;

&lt;p&gt;FlyingPress is one of the few performance plugins that respects your setup instead of trying to override everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I focus on:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Clean caching setup&lt;/li&gt;
&lt;li&gt;Careful CSS and JS handling&lt;/li&gt;
&lt;li&gt;Delaying only non-critical scripts&lt;/li&gt;
&lt;li&gt;Avoiding aggressive options that can break layouts&lt;/li&gt;
&lt;li&gt;Turning on every toggle doesn’t make a site faster.&lt;/li&gt;
&lt;li&gt;Understanding what each option does does.&lt;/li&gt;
&lt;li&gt;Flying Pages: Speed Isn’t Only About Metrics&lt;/li&gt;
&lt;li&gt;Flying Pages doesn’t just improve scores — it improves how the site feels.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  By preloading links a user is likely to click:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Navigation feels instant&lt;/li&gt;
&lt;li&gt;Pages appear to load faster&lt;/li&gt;
&lt;li&gt;UX improves without adding bloat&lt;/li&gt;
&lt;li&gt;Perceived performance matters just as much as actual load time.&lt;/li&gt;
&lt;li&gt;Images: WebP, Proper Scaling, No Shortcuts&lt;/li&gt;
&lt;li&gt;Images are often the biggest performance issue hiding in plain sight.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My basic rules:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use WebP format&lt;/li&gt;
&lt;li&gt;Upload correctly sized images (no oversized files)&lt;/li&gt;
&lt;li&gt;Avoid heavy hero images&lt;/li&gt;
&lt;li&gt;Always define width and height to prevent layout shift&lt;/li&gt;
&lt;li&gt;No plugin can fix badly prepared images. This has to be done right at upload time.&lt;/li&gt;
&lt;li&gt;Why I Avoid Page Builders&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Most page builders generate:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Large DOM trees&lt;/li&gt;
&lt;li&gt;Extra CSS and JavaScript&lt;/li&gt;
&lt;li&gt;Layout shift issues&lt;/li&gt;
&lt;li&gt;Instead, I rely on:&lt;/li&gt;
&lt;li&gt;Gutenberg&lt;/li&gt;
&lt;li&gt;GenerateBlocks&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  This combination gives:
&lt;/h2&gt;

&lt;p&gt;Clean HTML output&lt;/p&gt;

&lt;p&gt;Minimal assets&lt;/p&gt;

&lt;p&gt;Full layout control without &lt;a href="https://syedsaadullah.com" rel="noopener noreferrer"&gt;performance &lt;/a&gt;penalties&lt;/p&gt;

&lt;p&gt;The difference in page weight is noticeable immediately.&lt;/p&gt;

&lt;p&gt;Using Premade Templates the Right Way (Otter Blocks)&lt;/p&gt;

&lt;p&gt;For the front page, I used Otter Blocks premade templates.&lt;/p&gt;

&lt;p&gt;Premade templates aren’t the problem — poor implementation is.&lt;/p&gt;

&lt;h2&gt;
  
  
  I make sure:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Structure stays clean&lt;/li&gt;
&lt;li&gt;Styling is minimal&lt;/li&gt;
&lt;li&gt;No unnecessary scripts are loaded&lt;/li&gt;
&lt;li&gt;Used carefully, they save time without hurting performance.&lt;/li&gt;
&lt;li&gt;Fonts: Either Local or Not at All&lt;/li&gt;
&lt;li&gt;Fonts are another common performance trap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My approach:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prefer system fonts&lt;/li&gt;
&lt;li&gt;If custom fonts are required → host them locally&lt;/li&gt;
&lt;li&gt;Load only the font weights actually used&lt;/li&gt;
&lt;li&gt;Avoid render-blocking font requests&lt;/li&gt;
&lt;li&gt;This alone can significantly improve first paint and CLS.&lt;/li&gt;
&lt;li&gt;Cloudflare: Fixing Network-Level Issues&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloudflare helps with things WordPress can’t:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;CDN delivery&lt;/li&gt;
&lt;li&gt;DNS speed&lt;/li&gt;
&lt;li&gt;Global latency&lt;/li&gt;
&lt;li&gt;Configured properly, it works smoothly with LiteSpeed and adds a strong performance layer without extra plugins.&lt;/li&gt;
&lt;li&gt;Again — configuration matters more than tools.&lt;/li&gt;
&lt;li&gt;Why This Approach Works Long-Term&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  This setup consistently delivers:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Fast real-world load times&lt;/li&gt;
&lt;li&gt;Low layout shift&lt;/li&gt;
&lt;li&gt;Stable performance after updates&lt;/li&gt;
&lt;li&gt;Sites that don’t break every few months&lt;/li&gt;
&lt;li&gt;Most importantly, the site stays fast because it’s built on solid fundamentals.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzflaiolik5sa3iz5pfyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzflaiolik5sa3iz5pfyg.png" alt=" " width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are above my own portfolio sites. Many people ask me if you are expert of that level why you don't show your own site's speed test. So added realtime speed test.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;h2&gt;
  
  
  WordPress performance isn’t about:
&lt;/h2&gt;

&lt;p&gt;❌ Installing more plugins&lt;br&gt;
❌ Chasing perfect Lighthouse scores&lt;br&gt;
❌ Switching tools every time something feels slow&lt;/p&gt;

&lt;h2&gt;
  
  
  It’s about:
&lt;/h2&gt;

&lt;p&gt;✅ Understanding the stack&lt;br&gt;
✅ Making clean architectural choices&lt;br&gt;
✅ Configuring what you already have properly&lt;/p&gt;

&lt;p&gt;Once configuration is right, plugins become helpers — not bandaids.&lt;/p&gt;

&lt;h2&gt;
  
  
  Author Note
&lt;/h2&gt;

&lt;p&gt;I regularly work with WordPress performance optimization, clean block-based builds, and server-level tuning.&lt;br&gt;
Some real-world workflows and case studies are available on my portfolio: &lt;a href="https://syedsaadullah.com" rel="noopener noreferrer"&gt;https://syedsaadullah.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>How to override shortcode in WordPress</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sun, 28 May 2023 01:23:31 +0000</pubDate>
      <link>https://dev.to/wpsyed/how-to-override-shortcode-in-wordpress-3b69</link>
      <guid>https://dev.to/wpsyed/how-to-override-shortcode-in-wordpress-3b69</guid>
      <description>&lt;p&gt;You need to follow a series of steps to override a shortcode in WordPress. Here's a definitive guide to help you override a shortcode:&lt;/p&gt;

&lt;p&gt;Identify the shortcode you want to override: Determine the name of the shortcode you want to modify or replace. &lt;a href="https://ssdgeeks.com" rel="noopener noreferrer"&gt;Plugins&lt;/a&gt;, themes, or custom code snippets usually define shortcodes.&lt;/p&gt;

&lt;p&gt;Create a child theme (optional): It is recommended to use a child theme to ensure that your changes are not lost when the parent theme is updated. If you're already using a child theme, skip this step.&lt;/p&gt;

&lt;p&gt;Create a new folder in the /wp-content/themes/ directory and name it as your child theme (e.g., my-child-theme).&lt;/p&gt;

&lt;p&gt;Inside the child theme folder, create a new file named style.css. Add the following code to the style.css file to create a basic child theme:&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;css&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/*
Theme Name: My Child Theme
Template: parent-theme-folder-name
*/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace parent-theme-folder-name with the name of the parent theme's folder.&lt;/p&gt;

&lt;p&gt;Create another file in the child theme folder named functions.php.&lt;/p&gt;

&lt;p&gt;Add code to the child theme's functions.php file: Open the functions.php file in your child theme folder and add the following code:&lt;/p&gt;

&lt;p&gt;php&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function override_shortcode_function_name($atts) {
    // Your custom shortcode functionality here
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;add_shortcode('shortcode_name', 'override_shortcode_function_name');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace override_shortcode_function_name with a unique name for your custom function, and replace shortcode_name with the actual name of the shortcode you want to override.&lt;/p&gt;

&lt;p&gt;Customize the shortcode functionality: Inside the override_shortcode_function_name function, you can write your custom code to override the shortcode's functionality. You have full control over the output and behavior of the shortcode.&lt;/p&gt;

&lt;p&gt;For example, you can modify the shortcode's output, retrieve additional data, or integrate it with other plugins or functions.&lt;/p&gt;

&lt;p&gt;Save and upload the child theme: Save the changes to the functions.php file in your child theme folder. Then, upload the entire child theme folder to the /wp-content/themes/ directory of your WordPress installation.&lt;/p&gt;

&lt;p&gt;Activate the child theme: Log in to your WordPress dashboard, navigate to "Appearance" -&amp;gt; "Themes," and activate your child theme. This ensures that your custom code is loaded and overrides the parent theme's shortcode.&lt;/p&gt;

&lt;p&gt;Test the overridden shortcode: Insert the overridden shortcode into a post, page, or widget to verify that it's functioning as expected. Make sure to use the new functionality defined in your custom shortcode function.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>shortcode</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Run VS Code Terminal as Administrator</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Fri, 29 Jul 2022 11:50:00 +0000</pubDate>
      <link>https://dev.to/wpsyed/how-to-run-vs-code-terminal-as-administrator-28h3</link>
      <guid>https://dev.to/wpsyed/how-to-run-vs-code-terminal-as-administrator-28h3</guid>
      <description>&lt;p&gt;Visual Studio Code (VS Code) is a powerful and flexible code editor widely used by developers. Sometimes, you might need to run commands in the terminal with administrative privileges. &lt;/p&gt;

&lt;p&gt;Whether you're managing system files, installing packages globally, or performing tasks that require elevated permissions, running the VS Code terminal as an administrator ensures you have the necessary access.&lt;/p&gt;

&lt;p&gt;In this blog post, I’ll walk you through simple, step-by-step instructions on how to run VS Code’s terminal as an administrator on both Windows and macOS systems.&lt;/p&gt;

&lt;p&gt;Why You Might Need to Run VS Code as Administrator&lt;br&gt;
Running VS Code’s terminal with administrative privileges is essential when:&lt;/p&gt;

&lt;p&gt;Installing or updating global dependencies (e.g., Node.js packages).&lt;br&gt;
Accessing system-protected files.&lt;/p&gt;

&lt;p&gt;Running scripts that need elevated permissions (like editing /etc/hosts on macOS or installing software on Windows).&lt;/p&gt;

&lt;p&gt;Note: Be cautious when running commands as an administrator since they can impact your system more deeply. Always ensure you trust the source of the commands you're executing.&lt;/p&gt;

&lt;p&gt;Running VS Code Terminal as Administrator on Windows&lt;br&gt;
Method 1: Open VS Code as Administrator&lt;br&gt;
Close VS Code if it’s currently running.&lt;/p&gt;

&lt;p&gt;Right-click the VS Code icon on your desktop or in the Start menu.&lt;/p&gt;

&lt;p&gt;Select Run as administrator from the context menu.&lt;/p&gt;

&lt;p&gt;Once VS Code opens, any command you run in the integrated terminal will now have administrator privileges.&lt;/p&gt;

&lt;p&gt;Method 2: Open Terminal as Administrator from VS Code&lt;br&gt;
If you're already in VS Code and want to run the terminal as an administrator:&lt;/p&gt;

&lt;p&gt;Press Ctrl + Shift + P to open the Command Palette.&lt;br&gt;
Type Terminal: Create New Integrated Terminal and select it from the list.&lt;/p&gt;

&lt;p&gt;Open the Windows Start Menu, search for "Command Prompt" or "Powershell" depending on your terminal, right-click, and choose Run as administrator.&lt;br&gt;
Once your terminal window opens with administrative privileges, you can manually start VS Code with the command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bash&lt;br&gt;
Copy code&lt;br&gt;
code .&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
The terminal that opens inside VS Code will now inherit the administrator privileges.&lt;/p&gt;

&lt;p&gt;Running VS Code Terminal as Administrator on macOS&lt;br&gt;
macOS handles administrative privileges differently from Windows. Here’s how to achieve the same result:&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Open VS Code normally.&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Open a terminal in VS Code by navigating to Terminal &amp;gt; New Terminal or by using the shortcut &lt;code&gt;Ctrl +&lt;/code&gt;&lt;code&gt;.&lt;br&gt;
Once the terminal is open, prepend any command that requires elevated privileges with sudo. For example, if you're editing a system file, you might use:&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
bash&lt;br&gt;
Copy code&lt;br&gt;
sudo nano /etc/hosts`&lt;/p&gt;

&lt;p&gt;You’ll be prompted to enter your system password. Once entered, the command will run with administrator privileges.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Note About Security
&lt;/h2&gt;

&lt;p&gt;It’s important to remember that running your terminal as an administrator gives you greater control over your system, but it also comes with risks. Be mindful of the commands you run with administrative rights to avoid unintentional damage to your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Running the VS Code terminal as an administrator is simple and necessary for certain tasks, whether you're using Windows or macOS. Following these methods will allow you to perform actions that require elevated permissions, while also maintaining system security by only granting such privileges when absolutely necessary.&lt;/p&gt;

&lt;p&gt;Now that you know how to run the VS Code terminal as an administrator, you can confidently manage your system and complete tasks that require this level of access!&lt;/p&gt;

&lt;p&gt;Feel free to share this post if you found it helpful or have any questions in the comments below. Happy coding!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Secure Javascript Form Validation with Mootools
</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sun, 10 Oct 2021 08:03:07 +0000</pubDate>
      <link>https://dev.to/wpsyed/secure-javascript-form-validation-with-mootools-835</link>
      <guid>https://dev.to/wpsyed/secure-javascript-form-validation-with-mootools-835</guid>
      <description>&lt;p&gt;Did I get you with the title? &lt;/p&gt;

&lt;p&gt;That's right, it's not possible to securely validate a form with Javascript. That is, you can't prevent invalid data from being submitted to the server by using Javascript for validation. We've all seen Javascript-based form validation classes (and classes for Javascript libraries like Mootools, which is my favourite, so I'll be making reference to it here), but it's all too often not made clear enough to those who might use such classes that javascript validation alone provides no security against invalid data being sent to your back-end processing script and making it into your database.&lt;/p&gt;

&lt;p&gt;Javascript is executed by the browser, not the server. It allows for all kinds of user-experience enhancements that would not be possible with server-side languages like PHP. &lt;/p&gt;

&lt;p&gt;In the context of form validation, javascript allows you to alert the user to an error in his or her input without sending all the data to the form, and presenting a list of errors to the user. This is not only a great thing in terms of convenience to the user, but it can also save you bandwidth in a significant way if you have a high-volume site. &lt;/p&gt;

&lt;p&gt;The problem with javascript validation is that it can be circumvented, which means that just as you should never trust user input without validation, you should never rely on client-side validation alone.&lt;/p&gt;

&lt;p&gt;The logical approach to validation then is to validate all your content on the server before saving it to the database. What does this mean for you if you want to also have subtle validation messages presented to the user as they fill out the form, not only at the end?&lt;/p&gt;

&lt;p&gt;Why duplicate those efforts by writing two sets of functions, one for PHP and one for Javascript?&lt;/p&gt;

&lt;p&gt;Personally I prefer to use a single set of validation functions in PHP, and modify my back-end script slightly to call them not only on a full form submit, but on individual XHR requests as well.&lt;/p&gt;

&lt;p&gt;This brief tutorial focuses on how you might structure your Javascript and PHP to create two layers of validation that rely on only one set of validation functions, allowing for the security of server-side validation with the convenience and beauty of client-side validation. &lt;/p&gt;

&lt;p&gt;Technically the validation is all happening on the back-end, we're simply adding an attractive front-end interface to it, that our users will appreciate. We're not attempting to provide complete code for form validation, instead we're offering an approach for you to build on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: build our form, and PHP validation
&lt;/h2&gt;

&lt;p&gt;HTML&lt;br&gt;
For the purpose of this demo, we use a very simple form with one text input.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"&amp;lt;form action="&amp;lt;? echo $_SERVER['PHP_SELF']; ?&amp;gt;" method="get" id="myform"&amp;gt;
    Please tell us something you like:
    &amp;lt;input type="text" name="mytext" id="mytext" value="&amp;lt;?=$form['mytext']?&amp;gt;" class="formElement &amp;lt;? if(isset($message['mytext'])){ echo "incorrect"; }; ?&amp;gt;" /&amp;gt;&amp;lt;?PHP echo '&amp;lt;span id="msg"&amp;gt;'.$message['mytext'].'&amp;lt;/span&amp;gt;'; ?&amp;gt; 
    &amp;lt;input type="submit" name="save" id="save" value="Submit" /&amp;gt;
&amp;lt;/form&amp;gt;
CSS
Two simple classes for the form element to indicate correct or incorrect status. This can be greatly beautified.

&amp;lt;style type="text/css"&amp;gt;
    .correct {
        background-color: #b3d483;
    }
    .incorrect {
        background-color: #c76760;
    }
&amp;lt;/style&amp;gt;
PHP
Very simple PHP to capture the form submit, and validate it. Since we're using one field, this is extremely basic code. In our example, it sits at the top of the same file as the form.

&amp;lt;?php
//set a default: the form is not complete
$complete = false;

if(isset($_GET['save'])){
    $form = $_GET;
    $message = validate($form);
    if(!$message['error']){
        // if no error, process the form and present a thank you message
        // set "complete" flag to true;
        $complete = true;
    }
}

function validate($form){
    $message = array();
    $message['error'] = false;
    foreach($form as $key=&amp;gt;$value){
        if($key=="mytext"){
            if(strtolower($value) != "peas"){ $message['error'] = true; $message[$key] = "&amp;amp;lt;&amp;amp;lt; Please say \"peas\""; }
            elseif(empty($value)){ $message['error'] = true; $message[$key] = "&amp;amp;lt;&amp;amp;lt; You forgot to tell us what you like!"; }
        }
    }
    return $message;
}
?&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is pretty vanilla stuff. We have a form on our page that submits to itself, runs the value of the "mytext" field through a basic validation function, and either processes the input or displays an error. If we add more fields to this, we will obviously have to add to this code to validate each one, and show a list of errors (if any) to the user when the page refreshes.&lt;/p&gt;

&lt;p&gt;Now that we have this foundation in place, we can add a little Javascript layer to run this validation on each field asynchronously when its value is changed (tab off the field, or click outside of it). Here we show each code block again, but notice the few extra lines in the HTML, PHP, and the new Javascript added.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: add the Mootools (Javascript) Layer
&lt;/h2&gt;

&lt;p&gt;This chunk loops through each element of class "formElement," and adds a change event which triggers the asynchronous call to our PHP script. It then interprets the result of the validation and displays a message to the user, or none if there is no error.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&amp;lt;script type="text/javascript" src="mootools-1.2.2-core.js"&amp;gt;&amp;lt;/script&amp;gt;
var Demo = {
    start: function(){
        $$('.formElement').each(function(el){
            el.addEvent('change',function(e) {
                e.stop();
                var msg = new Element('span').injectAfter(this);
                var request = new Request({
                    url: 'demo.php',
                    link: 'chain',
                    method: 'get',
                    data: {
                        field: this.name,
                        value: this.value,
                        ajax: 1,
                        save: 1
                    },
                    onSuccess: function(response) {
                        var response = JSON.decode(response);
                        if(response.error==false){
                            $('msg').setStyle('visibility','hidden');
                            el.setProperty('class', 'formElement correct' );
                        }else{
                            $('myform').setStyle('visibility','visible');
                            $('msg').set('html',response.mytext);
                            el.setProperty('class', 'formElement incorrect' );
                        }
                    }
                }).send();
            });
        });
    }
}

window.addEvent("domready", function(){
    Demo.start();
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the same as the previous example, except that we add a hidden field called "ajax" (though this is a misnomer.. AJAX stands for "Asynchronous Javascript and XML", which is almost right except for the XML part... our PHP script will return JSON instead. The "ajax" value tells php whether or not it's receiving the input as an asynchronous individual field, or the whole form.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;form action="&amp;lt;? echo $_SERVER['PHP_SELF']; ?&amp;gt;" method="get" id="myform"&amp;gt;
    &amp;lt;input type="hidden" name="ajax" id="ajax" value="0" /&amp;gt;
    Please tell us something you like:
    &amp;lt;input type="text" name="mytext" id="mytext" value="&amp;lt;?=$form['mytext']?&amp;gt;" class="formElement &amp;lt;? if(isset($message['mytext'])){ echo "incorrect"; }; ?&amp;gt;" /&amp;gt;&amp;lt;?PHP echo '&amp;lt;span id="msg"&amp;gt;'.$message['mytext'].'&amp;lt;/span&amp;gt;'; ?&amp;gt; 
    &amp;lt;input type="submit" name="save" id="save" value="Submit" /&amp;gt;
&amp;lt;/form&amp;gt;
CSS
This is the same as step 1

&amp;lt;style type="text/css"&amp;gt;
    .correct {
        background-color: #b3d483;
    }
    .incorrect {
        background-color: #c76760;
    }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we have added a check for the value of "ajax" which tells the script how to process the input (if it's the whole form, or one field passed asynchronously. All the script needs to do if ajax=1, is output a JSON array and then stop processing, so that it doesn't also return the rest of the HTML on the page. &lt;/p&gt;

&lt;p&gt;You might choose to have your forms submit to a separate script, in which case killing the script at this point would be unneccessary. If ajax=1, the validate field now also reorganizes the submitted key and value into an array the same as a form submit would generate so that we don't have to process the input differently. You don't have to do this like this, of course.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?PHP
$complete = false;

if(isset($_GET['save'])){
    $form = $_GET;
    $message = validate($form);
    if($form['ajax']==1){
        echo json_encode($message);
        die;
    }
    if(!$message['error']){
        // if no error, process the form and present a thank you message
        $complete = true;
    }
}

function validate($form){
    $message = array();
    $message['error'] = false;
    $form = $form['ajax']==1 ? array($form['field']=&amp;gt;$form['value']) : $form;
    foreach($form as $key=&amp;gt;$value){
        if($key=="mytext"){
            if(strtolower($value) != "peas"){ $message['error'] = true; $message[$key] = "&amp;amp;lt;&amp;amp;lt; Please say \"peas\""; }
            elseif(empty($value)){ $message['error'] = true; $message[$key] = "&amp;amp;lt;&amp;amp;lt; You forgot to tell us what you like!"; }
        }
        //other fields we're validating
    }
    return $message;
}
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://inflact.com/downloader/facebook/"&gt;FB Video Downloader&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it! With a very small amount of Mootools JS and the addition of 5 or 6 lines to the HTML and PHP, we have a smooth second layer on our validation that saves the user time and frustration if they are having trouble getting their input right.&lt;/p&gt;

&lt;p&gt;Now you a trendy front-end without sacrificing security.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>devops</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to run JavaScript in Visual Studio Code</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sat, 25 Sep 2021 07:06:34 +0000</pubDate>
      <link>https://dev.to/wpsyed/how-to-run-javascript-in-visual-studio-code-51l1</link>
      <guid>https://dev.to/wpsyed/how-to-run-javascript-in-visual-studio-code-51l1</guid>
      <description>&lt;p&gt;VS code is a text editor made by Microsoft and it is an open-source project. It has extensions and other features for debugging your javascript, which we will talk about in this post.&lt;/p&gt;

&lt;p&gt;Installing vs code is easy, just visit vs code's website and get the installer here: &lt;a href="https://code.visualstudio.com/download"&gt;https://code.visualstudio.com/download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you install vs code, you can create a new file (ctrl+n), name it something like "test". For this example we use test.js. You can also click on the folder icon and add the javascript there:&lt;/p&gt;

&lt;p&gt;Are you Using VS code on your &lt;a href="https://laptopsea.com"&gt;laptop or pc?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comment Below !&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;html &amp;gt; &amp;lt; body &amp;gt; &amp;lt;!-- // --&amp;gt;&amp;lt;!-- Placeholder for VS Code generated HTML / --&amp;gt; &amp;lt; script src = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &amp;gt;&amp;lt;/ script &amp;gt; &amp;lt;/ body &amp;gt; &amp;lt;/ html&amp;gt;
&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that's done, put "console.log('hello world')" in your javascript file! The console will pop up automatically when you click on the vs code's running tab. In the vs code window, you'll see something that says "Attach". Once you click on attach, a new vs code window will pop up and it will run your javascript file!&lt;/p&gt;

&lt;p&gt;VS code also has extensions so you can debug your javascript better. Such as debugging multiple browsers at once or have a debugger tell vs code what to do when an exception is thrown. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.javascript"&gt;To view, a list of some vs code extensions visit:&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Web Server in VS Code
&lt;/h2&gt;

&lt;p&gt;Now that's over with let's get into how to create a web server with vs code! You're going to want to drag and drop 2 files into vs code they are index.html and app.js. Open vs code's "settings" by right-clicking on the file name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://laptopsok.com/"&gt;Desktops&lt;/a&gt; :&lt;/p&gt;

&lt;p&gt;Click on settings, then go to "ignored files" and add ".git":&lt;/p&gt;

&lt;p&gt;Then you want to click on "open vs editor window here", so vs code knows how to run your program:&lt;/p&gt;

&lt;p&gt;Now you can edit your index.html file! You can also see that vs code has already added some stuff for us since it opens automatically:(but we're not going to use this yet)&lt;/p&gt;

&lt;p&gt;VS code will try to help you out with minimal errors by telling you that vs code has attached itself to your app.js file, it also tells you that vs code's &lt;a href="https://laptopsea.com"&gt;debugger is running&lt;/a&gt; on port 9229.&lt;/p&gt;

&lt;p&gt;To run vs code, click on the vs code running tab and click "F5" or hit "F5". To debug HTML files, go under &lt;a href="https://letsrideabike.com/"&gt;Tools&lt;/a&gt;/HTML sub vs sub ctrl+p sub debug or hit F5 :&lt;/p&gt;

&lt;p&gt;You can edit index.html, app.js, and any other files in there! Also if you want vs code to automatically open this folder after closing it just do:&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://inflact.com/downloader/facebook/"&gt;download facebook&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Right Click-&amp;gt; Open Folder Here &lt;a href="https://laptopsok.com/"&gt;Laptops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The end! Enjoy javascript debugging with vs code!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vscode</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Nginx VS Apache for WordPress which is perfect?</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sat, 25 Sep 2021 06:29:27 +0000</pubDate>
      <link>https://dev.to/wpsyed/nginx-vs-apache-for-wordpress-which-is-perfect-kbm</link>
      <guid>https://dev.to/wpsyed/nginx-vs-apache-for-wordpress-which-is-perfect-kbm</guid>
      <description>&lt;h3&gt;&lt;strong&gt; Apache&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;The Apache web server, first released in 1995 and now the most popular of its kind worldwide, has a lot to be proud of. &lt;/p&gt;

&lt;p&gt;The work done by this software is responsible for up to 80% or more internet traffic on any given day. &lt;/p&gt;

&lt;p&gt;In my opinion none of them is best for wordpress only &lt;a href="//steampunktheme.com"&gt;LiteSpeed web servers are efficient and fastest then these&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developed and maintained by an independent foundation with detailed licensing information available through their website (www.apache foundation).&lt;/p&gt;

&lt;p&gt;it still remains as one of the world’s leading offerings when compared against other options like Microsoft's IIS or Netscape Enterprise Server 2 - but that doesn't mean people are satisfied! Improved versions continue to receive updates from time to time while there have been some who disagree about how best they should handle "legacy."&lt;/p&gt;

&lt;p&gt;Apache’s name originates from the Native American heritage, but some people believe that it is a pun on “a patchy server.” Apache has been around for more than 20 years and since its beginning in 1995, there have been over 18 million downloads of their free web server software!&lt;/p&gt;

&lt;p&gt;When you hear about Apache these days or see an icon with two feathers above what looks like an eye near your computer mouse cursor; don't worry…it's just another program trying to protect us while we surf online.&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Short info about nginx......&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Nginx was created by the Russian developer Igor Sysoev in 2004. It came about for scaling purposes after he successfully scaled website rambler.ru with it previously, which provided him with a new lucrative business venture that has since expanded to include Nginx Plus and open source versions of both licenses available on their site today!&lt;/p&gt;

&lt;p&gt;Nginx is an alternative webserver to Apache written specifically as a response/counterbalance against its performance limitations (such as slowness). As project manager Owen Garrett said: "Ngnix was written specifically to address the performance limitations of Apache web servers."&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Which one is best for [WordPress](https://www.powertechware.com)?&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Apache or Nginx as the most robust and feature-abundant servers for running WordPress, but any server that supports PHP and MySQL will do. &lt;/p&gt;

&lt;p&gt;A quick side note: if you only have older versions of either Apache (2) or MySQL 5.0+, then your site may not run well with WordPress on it because they don't work as efficiently when newer technologies come out; upgrade them!&lt;/p&gt;

&lt;p&gt;Apache is a powerful, free web hosting service that can host many sites at once while still being fast enough to keep up with traffic spikes--incidentally, this also makes it one of the best hosts for managing multiple blogs in networks like WPEngine's BlogKing plan.&lt;/p&gt;

&lt;p&gt;I always prefer LiteSpeed webserver because it is ultra-fast to deliver my content as compare to Nginx or Apache.&lt;/p&gt;

&lt;p&gt;LiteSpeed is the perfect solution for businesses, companies, or individuals with websites that receive heavy traffic. &lt;/p&gt;

&lt;p&gt;The software can be used to serve high volumes of content without taxing your system's resources such as memory and CPU. No other web server comes close when it comes to serving static content quickly!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--McEIvMNz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://wpsyed.com/wp-content/uploads/2021/08/march2016chart2-10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--McEIvMNz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://wpsyed.com/wp-content/uploads/2021/08/march2016chart2-10.png" alt="" width="479" height="341"&gt;&lt;/a&gt;Litespeed vs Nginx vs apache&lt;/p&gt;



</description>
      <category>nginx</category>
      <category>apache</category>
      <category>wordpress</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Move Files From Server to Server Via wget Command</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Sun, 12 Sep 2021 10:01:58 +0000</pubDate>
      <link>https://dev.to/wpsyed/move-files-from-server-to-server-via-wget-command-118d</link>
      <guid>https://dev.to/wpsyed/move-files-from-server-to-server-via-wget-command-118d</guid>
      <description>&lt;p&gt;The fastest (easiest) way to move files from server-to-server.&lt;/p&gt;

&lt;p&gt;Uploading an entire directory of files can take a long time with the traditional method, but if you have SSH access into your server and use SCP instead it will be faster. You'll need to know where on file system(s) or network connection “remote” machine (the one receiving directories/files) has been saved in so as not to overwrite any other stashed data from there like source code for instance! &lt;/p&gt;

&lt;p&gt;This way requires more technical skills which may deter some people given how often nowadays we are using these tools intuitively without thinking about their complexity…but at least this procedure allows us do our jobs efficiently while staying ahead by utilizing all available resources such that wasted hours aren't spent waiting around&lt;/p&gt;

&lt;p&gt;It would take you hours to download a 20GB file if we were using FTP. But with wget, the downloading and uploading can be done in just minutes!&lt;/p&gt;

&lt;p&gt;Steps to using WGET:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make file publicly available on source server&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Which means placing somewhere within public_html (RHEL/Centos) or www (Debian/Ubuntu).&lt;/p&gt;

&lt;p&gt;Placing it in a public directory makes it available from frontend url (e.g. &lt;a href="https://domain.com/backup.tar.gz"&gt;https://domain.com/backup.tar.gz&lt;/a&gt;).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download file from destination server.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From receiving server, navigate to the directory you’d like to download it to.&lt;/p&gt;

&lt;p&gt;Type wget &lt;a href="https://domain.com/backup.tar.gz"&gt;https://domain.com/backup.tar.gz&lt;/a&gt; – to download external file to your current directory.&lt;/p&gt;

&lt;p&gt;(Of course, your file path and filename may vary.)&lt;br&gt;
Wait for it to finish transferring. Should be super quick.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Change file ownership to match correct USER:GROUP.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Type ls -la to see what what other files are owned by. You’ll probably see other files listed as jimbob:jimbob or jimbob:nobody, while the one you just downloaded was probably root:root (or whatever linux sudo user you had).&lt;/p&gt;

&lt;p&gt;Type chown YOURuser:YOURgroup backup.tar.gz – using the correct user, group, and filename.&lt;/p&gt;

&lt;p&gt;Don’t forget to do this. Otherwise, you won’t be able to extra the archive later!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://laptopsea.com"&gt;Other tips and tricks &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use wget 123.123.123.123/wp-content/backup.tar.gz --header "Host: domain.com – nice little trick to download specifically from a certain IP. Useful during DNS changes that haven’t propagated.&lt;/p&gt;

&lt;p&gt;If you're unable to compress files on the source server, use rsync instead. I have two guides that will help get your downloads going:&lt;/p&gt;

&lt;p&gt;-Rsync Guide #1  -How To Compress Files Using Rsync For Downloading Large Amounts Of Data In Seconds (Without Losing Speed)slow and even disconnect before you download the whole file. You can try rate-limiting your wget.&lt;/p&gt;

</description>
      <category>wgetcommand</category>
      <category>filetransfer</category>
      <category>serverless</category>
    </item>
    <item>
      <title>How to Serve images in next Gen Formats?</title>
      <dc:creator>Syed Saadullah Shah</dc:creator>
      <pubDate>Mon, 30 Aug 2021 10:16:19 +0000</pubDate>
      <link>https://dev.to/wpsyed/how-to-serve-images-into-next-gen-formats-p9f</link>
      <guid>https://dev.to/wpsyed/how-to-serve-images-into-next-gen-formats-p9f</guid>
      <description>&lt;p&gt;Google do recommend converting images from png, jpeg to webp formats that’s why serve images in next gen formats suggestion comes in Google page speed insights. If you don’t know how to fix this issue in your worpdress website then stay here. I will go over a little bit about serving images to next gen formats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    * [What is Webp]
    * [Use webp plugin]
    * [Convert images to webp by using free tools]
    * [ShortPixe]
    * [Imagify]
    * [Optimole]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Webp is the latest gen formats for images like png, jpeg images. Google prefer smaller size of images that you should use on your web pages. To serve your images in webp formats you simply need to use free tools that we are going to cover later.&lt;/p&gt;

&lt;p&gt;Webp images are 26% smaller in size compare to jpeg and png files. On the other hand you can server your high quality images to webp format without losing the quality. This will result in both faster speeds and better PSI reports.&lt;/p&gt;

&lt;p&gt;Average webp file size compare to jpeg and png. img source&lt;br&gt;
Here is an example of both webp and jpeg file images and you can see there is no difference at all however webp file is almost 10% smaller than jpeg.&lt;/p&gt;

&lt;h1&gt;
  
  
  Use webp plugin
&lt;/h1&gt;

&lt;p&gt;Using a third party webp plugin will save you some time and increase page load time by making a copy of your original images and making the file size smaller.&lt;/p&gt;

&lt;p&gt;If you are getting this error down to the google page speed insights report:&lt;/p&gt;

&lt;p&gt;Serve images in next gen formats&lt;br&gt;
then you simply need to use some of these free WordPress tools that I have listed down below.&lt;/p&gt;

&lt;p&gt;1.Shortpixel (free/paid)&lt;br&gt;
2.Imagify (free/paid)&lt;br&gt;
3.optimole (free)&lt;br&gt;
4.EWWW Image optimizer (free/paid)&lt;br&gt;
5.Wpsmush (Free/paid)&lt;/p&gt;

&lt;p&gt;The one I recommend for you is webp converter for media. This plugin is super fast and lightweight and less bloated then others. The developer is well skilled and he coded the plugin in his own way.&lt;/p&gt;

&lt;p&gt;Belive me after actiavating this plugin the issue was completely resolved on google page speed insights. I will show you how you can do the same.&lt;/p&gt;

&lt;p&gt;Go Over to WordPress dashboard and Add New Plugin.&lt;/p&gt;

&lt;p&gt;Webp converter for media optimize your images&lt;/p&gt;

&lt;p&gt;After installing and activating the plugin you have to go to setting of this plugin. Now if your server/web host allows htaccess files than it’s fine if does not then you have to select the second option to continue the conversion process.&lt;/p&gt;

&lt;h1&gt;
  
  
  webp converter for media plugin settings
&lt;/h1&gt;

&lt;p&gt;But via htaccess files method is recommended by default in this plugin. After all go to bottom of the setting and click on force regenerate all images.&lt;/p&gt;

&lt;p&gt;You can also select the quality of your images but, I prefer selecting 85% because it is the perfect for high quality images so you will never lose the quality of your images.&lt;/p&gt;

&lt;p&gt;force convert all images from jpeg to webp&lt;br&gt;
This plugin will create copies of your original images and serve them into next gen formats. Now let me show you how I solved this issue quickly at google page speed insights.&lt;/p&gt;

&lt;p&gt;To convert your images from jpeg to webp files install webp converter for media.&lt;/p&gt;

&lt;h3&gt;
  
  
  serve images in next gen formats
&lt;/h3&gt;

&lt;h1&gt;
  
  
  Convert Images To WebP Using Free Online Tools
&lt;/h1&gt;

&lt;p&gt;if you hate installing third party plugins. Then there are some free tools that you can use to server your iamges in next gen formats. One of my favourite one is CloudConvert’s WebP Converter also a popular choice.&lt;/p&gt;

&lt;p&gt;convert images to next gen formats with cloudconvert webp converter&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techchatter.net/"&gt;for more pc speed up guides&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Shortpixel
&lt;/h1&gt;

&lt;p&gt;Shortpixel is a great plugin and it has more than 300,000+ Active Installations. The plugin allows you to optimize your images and help you to make your website faster by lazy loading your images.&lt;/p&gt;

&lt;p&gt;You can check this option if you want Shortpixel to serve your images in next gen formats.&lt;/p&gt;

&lt;h1&gt;
  
  
  Imagify
&lt;/h1&gt;

&lt;p&gt;Imagify is again by far the best plugin but it is limited. If you have tons of images on your website then you have to buy extra credit from imagify. Otherwise I recommend you to stick around with webp converter for media.&lt;/p&gt;

&lt;p&gt;Imagify has more than 500,000+ Active Installations in WordPress.&lt;/p&gt;

&lt;p&gt;imagify image optimization plugin for wordpress&lt;/p&gt;

&lt;h1&gt;
  
  
  Optimole
&lt;/h1&gt;

&lt;p&gt;You can replace any image optimization plugin with optimole after installing optimole you have to get an API key to activate it. After that your all images will be compressed and converted to webp or serve scaled from Cloudfront CDN.&lt;/p&gt;

&lt;p&gt;All over this plugin has more than 5 starts rating so you can read more reviews. I don’t comment on this plugin because I don’t personally used it for a while.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;All right wrapping up this tutorial was all about images optimization and serve images in next gen formats which clearly means that it can improve your web page load time if you follow this guide step by step. And google do like fast websites. If you have any question related to speed security and performance then please let me know in the comment box. I will be happy to hear from you guys.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>wordpress</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
