<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPress Maintenance &#8211; Nitin Rathod</title>
	<atom:link href="https://www.nitinrathod.info/category/wordpress-maintenance/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.nitinrathod.info</link>
	<description>WordPress developer in Surat &#124; Sites, plugins &#38; WooCommerce</description>
	<lastBuildDate>Tue, 13 Oct 2026 04:57:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.nitinrathod.info/wp-content/uploads/2026/10/favicon-n-gradient-512-150x150.png</url>
	<title>WordPress Maintenance &#8211; Nitin Rathod</title>
	<link>https://www.nitinrathod.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How I Increase the WordPress Upload Limit (and Fix File Size Errors)</title>
		<link>https://www.nitinrathod.info/wordpress-upload-limit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-upload-limit</link>
					<comments>https://www.nitinrathod.info/wordpress-upload-limit/#respond</comments>
		
		<dc:creator><![CDATA[Nitin Rathod]]></dc:creator>
		<pubDate>Tue, 13 Oct 2026 04:57:16 +0000</pubDate>
				<category><![CDATA[WordPress Maintenance]]></category>
		<guid isPermaLink="false">https://www.nitinrathod.info/?p=2800</guid>

					<description><![CDATA[<p>The WordPress upload limit is one of the most common small problems I get asked about. You try to add [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.nitinrathod.info/wordpress-upload-limit/">How I Increase the WordPress Upload Limit (and Fix File Size Errors)</a> appeared first on <a rel="nofollow" href="https://www.nitinrathod.info">Nitin Rathod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The WordPress upload limit is one of the most common small problems I get asked about. You try to add a video, a large PDF or a theme zip, and WordPress stops you with a message about file size. Sometimes it is a clear error, sometimes just a vague &#8220;HTTP error&#8221; or &#8220;The link you followed has expired&#8221;. In this post I explain where the WordPress upload limit comes from, how I check it, and the five ways I raise it safely.</p>
<p>I am a freelance WordPress developer in Surat, and I fix this on new client sites almost every month. Most of the time fixing the WordPress upload limit takes a few minutes once you know which setting your server actually reads.</p>
<h2>Where the WordPress upload limit comes from</h2>
<p>WordPress itself does not decide how big a file can be. The WordPress upload limit comes from PHP and the web server. Three PHP settings matter most:</p>
<ul>
<li><strong>upload_max_filesize:</strong> the largest single file PHP will accept.</li>
<li><strong>post_max_size:</strong> the largest whole request, which includes the file plus form data. It must be equal to or bigger than upload_max_filesize.</li>
<li><strong>memory_limit:</strong> how much memory PHP can use. WordPress needs extra memory to process images after upload, so this should be higher than the other two.</li>
</ul>
<p>On top of PHP, the web server can have its own cap. Nginx uses <code>client_max_body_size</code>, and when a file is too big for it you see a &#8220;413 Request Entity Too Large&#8221; page instead of a WordPress message. The PHP settings are described in the official <a href="https://www.php.net/manual/en/ini.core.php" target="_blank" rel="noopener">PHP core settings documentation</a>.</p>
<h2>How I check the current WordPress upload limit</h2>
<p>Before changing anything, I look at what the site is using right now. There are two quick places in wp-admin:</p>
<ul>
<li><strong>Media &gt; Add New:</strong> the line under the upload box says &#8220;Maximum upload file size&#8221; with the current value.</li>
<li><strong>Tools &gt; Site Health &gt; Info:</strong> the Media Handling section shows the max size of an uploaded file, and the Server section shows the upload and post size values PHP reports.</li>
</ul>
<p>The <a href="https://wordpress.org/documentation/article/site-health-screen/" target="_blank" rel="noopener">Site Health screen</a> is the one I trust most, because it shows what PHP really loaded, not what a config file claims. I note the current numbers so I can confirm later that my change worked.</p>
<p><img fetchpriority="high" decoding="async" src="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-1.webp" alt="WordPress upload limit error message and the maximum upload file size shown in wp-admin" width="1000" height="500" class="aligncenter size-full wp-image-2798" srcset="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-1.webp 1000w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-1-300x150.webp 300w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-1-768x384.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></p>
<h2>Pick a sensible size first</h2>
<p>It is tempting to set everything to 1 GB and forget about it. I do not do that. A huge WordPress upload limit lets anyone with an account push very large files to the server, which fills disk space and makes backups slower.</p>
<p>For most business sites, 64 MB is plenty. It covers large PDFs, theme and plugin zips, and short videos. For a site that really needs bigger files, I go to 128 MB or 256 MB. Long videos are better on YouTube or Vimeo and embedded, rather than stored in the media library.</p>
<h2>5 ways I raise the WordPress upload limit</h2>
<p>Which method works depends on how your host runs PHP. I try them in this order, from the cleanest to the last resort.</p>
<h3>1. The hosting control panel</h3>
<p>Most hosts now let you change PHP settings from their dashboard. In cPanel this is usually under Select PHP Version (Options tab) or the MultiPHP INI Editor. Other hosts have a &#8220;PHP settings&#8221; page per site. I set upload_max_filesize and post_max_size to the same value, raise memory_limit if needed, and save. This is the safest way to change the WordPress upload limit because the host writes the setting in the right place for its own setup.</p>
<h3>2. A php.ini or .user.ini file</h3>
<p>If there is no panel option, I add a small ini file in the site root, the same folder as <code>wp-config.php</code>. On many shared hosts that run PHP as FastCGI or PHP-FPM, the file is called <code>.user.ini</code>. On some older setups it is <code>php.ini</code>. The content is the same:</p>
<pre><code>upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300</code></pre>
<p>One thing that catches people: PHP caches <code>.user.ini</code> for a few minutes, so the new value may not show straight away. I wait five minutes and check Site Health again before deciding it did not work.</p>
<h3>3. The .htaccess file (Apache with mod_php only)</h3>
<p>On Apache servers that run PHP as a module, you can set the values in <code>.htaccess</code>:</p>
<pre><code>php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300</code></pre>
<p>Be careful here. On servers that do not run mod_php, these lines cause a 500 Internal Server Error and the whole site goes down. I always keep a copy of the original file and test the homepage right after saving. If you see a 500 error, remove the lines and use the ini file method instead.</p>
<h3>4. Ask the host to raise the server cap</h3>
<p>If PHP shows the new value but large uploads still fail with a 413 error, the limit is at the web server level. On Nginx that is <code>client_max_body_size</code>, which only the host or server admin can change. On a VPS I edit it myself and reload Nginx, as covered in the <a href="https://developer.wordpress.org/advanced-administration/server/web-server/nginx/" target="_blank" rel="noopener">WordPress Nginx guide</a>. On shared hosting I open a support ticket and give the exact value I want.</p>
<h3>5. Multisite network settings</h3>
<p>On a WordPress Multisite network there is one more cap. Under Network Admin &gt; Settings, the &#8220;Max upload file size&#8221; field is set in KB and applies to every site in the network. Even with PHP set to 64 MB, a low number here becomes the real WordPress upload limit and blocks uploads, so I raise it to match.</p>
<p><img decoding="async" src="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-3.webp" alt="PHP settings for the WordPress upload limit: upload_max_filesize, post_max_size and memory_limit" width="1000" height="480" class="aligncenter size-full wp-image-2799" srcset="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-3.webp 1000w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-3-300x144.webp 300w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-3-768x369.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></p>
<h2>What does not work (and why)</h2>
<p>Many tutorials suggest adding <code>@ini_set( 'upload_max_filesize', '64M' );</code> to <code>wp-config.php</code> or the theme&#8217;s functions file. On most servers this does nothing to the WordPress upload limit. PHP only reads upload_max_filesize and post_max_size when the request starts, before WordPress loads, so changing them from inside WordPress is too late. If you added these lines and nothing changed, that is why. I remove them to keep the config clean.</p>
<p>The same goes for random upload plugins that promise to raise the limit. They can only change the number WordPress displays or write to the same files I mention above. They cannot override the server.</p>
<h2>Check the new WordPress upload limit worked</h2>
<p>After any change, I go back to Media &gt; Add New and Site Health and confirm the new value. Then I do a real test: I upload a file slightly smaller than the new limit and make sure it finishes and shows in the media library. For images, I also check that the thumbnails were created, because a low memory_limit can let the upload finish but stop image processing. If that happens, my guide on <a href="https://www.nitinrathod.info/wordpress-memory-limit/">fixing WordPress memory limit errors</a> covers the next step.</p>
<p>If uploads work but files show broken links or permission errors afterwards, the folder permissions on <code>wp-content/uploads</code> are often the cause. I explain the values I use in my post on <a href="https://www.nitinrathod.info/wordpress-file-permissions/">WordPress file permissions</a>.</p>
<h2>Keep uploads lean anyway</h2>
<p>Raising the WordPress upload limit fixes the error, but large files still slow a site down. I resize and compress images before uploading, keep PDFs reasonably sized, and embed videos instead of hosting them. WordPress also scales down very large images automatically, but starting with a sensible size saves disk space and backup time.</p>
<p>If your uploads keep failing and you are not sure which setting your server reads, I can check it and set the right limit for you. Get in touch and tell me which file you are trying to upload and what error you see.</p>
<p>The post <a rel="nofollow" href="https://www.nitinrathod.info/wordpress-upload-limit/">How I Increase the WordPress Upload Limit (and Fix File Size Errors)</a> appeared first on <a rel="nofollow" href="https://www.nitinrathod.info">Nitin Rathod</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.nitinrathod.info/wordpress-upload-limit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress PHP Update: How I Upgrade PHP Without Breaking the Site</title>
		<link>https://www.nitinrathod.info/wordpress-php-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-php-update</link>
					<comments>https://www.nitinrathod.info/wordpress-php-update/#respond</comments>
		
		<dc:creator><![CDATA[Nitin Rathod]]></dc:creator>
		<pubDate>Mon, 12 Oct 2026 04:55:42 +0000</pubDate>
				<category><![CDATA[WordPress Maintenance]]></category>
		<guid isPermaLink="false">https://www.nitinrathod.info/?p=2785</guid>

					<description><![CDATA[<p>A WordPress PHP update is one of those jobs most site owners keep putting off. The host sends an email [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.nitinrathod.info/wordpress-php-update/">WordPress PHP Update: How I Upgrade PHP Without Breaking the Site</a> appeared first on <a rel="nofollow" href="https://www.nitinrathod.info">Nitin Rathod</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A WordPress PHP update is one of those jobs most site owners keep putting off. The host sends an email saying your PHP version is old, Site Health shows a warning, and it feels safer to leave it alone. I understand that, because a rushed update can break a site. But staying on an old PHP version is slower and less secure, and sooner or later the host forces the change anyway. Here is the WordPress PHP update process I follow so the switch happens on my schedule, not the host&#8217;s.</p>
<p>I am a freelance WordPress developer in Surat, and I do a WordPress PHP update for sites of all sizes, from simple blogs to busy WooCommerce stores. The steps are the same every time.</p>
<h2>Why a WordPress PHP update matters</h2>
<p>PHP is the language WordPress runs on. Every page load runs through it, so the version on your server affects speed, security and what your plugins can do.</p>
<ul>
<li><strong>Security:</strong> old PHP versions stop getting security fixes. Once a version is end of life, any new hole in it stays open.</li>
<li><strong>Speed:</strong> newer PHP versions run the same code faster and use less memory. On most sites I see a clear drop in server response time after the switch.</li>
<li><strong>Compatibility:</strong> plugin and theme developers drop support for old versions. If you stay behind, you eventually cannot install updates at all.</li>
<li><strong>Hosting:</strong> hosts retire old versions and move sites up automatically. That forced move is when most breakages happen, because nobody tested first.</li>
</ul>
<p>WordPress publishes its recommended versions on the official <a href="https://wordpress.org/about/requirements/" target="_blank" rel="noopener">WordPress requirements page</a>. I use that as the target, not just &#8220;whatever the host offers&#8221;.</p>
<h2>Step 1: Check what you are running now</h2>
<p>Go to Tools &gt; Site Health &gt; Info in wp-admin and open the Server section. It shows the current PHP version, the memory limit and the main extensions. Your hosting panel (cPanel, Plesk or a custom dashboard) will also show the version and usually lets you change it per site.</p>
<p>I write down the current version before touching anything. If something goes wrong, I want to know exactly what to switch back to.</p>
<h2>Step 2: Back up and use staging for the WordPress PHP update</h2>
<p>Before any WordPress PHP update I take a full backup of files and database, and I make sure I can actually restore it. Then I copy the site to a staging environment where I can test without real visitors or customers seeing errors. I covered that habit in my post on <a href="https://www.nitinrathod.info/wordpress-staging-site-plugin-updates/">using a staging site before plugin updates</a>, and the same logic applies here.</p>
<p>If your host has no staging option, a local copy works too. The point is to see problems on a copy, not on the live site.</p>
<p><img width="1000" height="560" decoding="async" src="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-3.webp" alt="Testing a WordPress PHP update on a staging site before changing the live server" class="aligncenter wp-image-2782" srcset="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-3.webp 1000w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-3-300x168.webp 300w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-1-3-768x430.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></p>
<h2>Step 3: Update WordPress, plugins and theme first</h2>
<p>Most PHP problems come from old plugin or theme code, not from WordPress core. So before the WordPress PHP update itself, I update core, every plugin and the theme on staging. Developers usually fix compatibility issues in newer releases, and getting those fixes in first removes most of the risk.</p>
<p>While doing this I look for plugins that have not been updated in two years or more. Those are the ones most likely to break on a newer PHP version. If a plugin is abandoned, I plan a replacement now rather than after the site goes down.</p>
<h2>Step 4: Check code compatibility</h2>
<p>On bigger sites, or sites with custom code, I scan the plugins and theme for code that newer PHP versions no longer accept. A compatibility checker run on staging gives a quick list of warnings. It is not perfect and it flags some false alarms, but it points me to the files worth reading by hand.</p>
<p>Custom code is where I spend the most time. Things like old <code>create_function()</code> calls, deprecated <code>each()</code> loops, or functions that now throw errors on wrong argument types are common in older child themes and snippets. I fix those directly and keep a note of what changed.</p>
<h2>Step 5: Switch PHP on staging and test properly</h2>
<p>Now I change the PHP version on the staging copy. I usually move up one step at a time on very old sites, because jumping several versions at once makes it harder to tell which change caused a problem.</p>
<p>Then I test the parts of the site that make money or bring in leads:</p>
<ul>
<li>The homepage, a few inner pages and blog posts.</li>
<li>Contact forms, including whether the email actually arrives.</li>
<li>For stores: product pages, cart, checkout and a test payment.</li>
<li>Logging in, the editor, and saving a post.</li>
<li>Any custom features, like booking, membership or delivery options.</li>
</ul>
<p>I also turn on debug logging on staging so I can read warnings in the log file instead of guessing. A clean log after clicking through the site is a good sign the WordPress PHP update is safe.</p>
<p>If something breaks, it is usually one plugin. I disable it to confirm, then update it, replace it or fix the code. If you are not sure which one is at fault, my guide on <a href="https://www.nitinrathod.info/wordpress-plugin-conflict/">finding a WordPress plugin conflict</a> walks through the same process.</p>
<p><img loading="lazy" width="1000" height="560" decoding="async" src="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-2.webp" alt="Checking pages, forms and checkout after a WordPress PHP update" class="aligncenter wp-image-2783" srcset="https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-2.webp 1000w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-2-300x168.webp 300w, https://www.nitinrathod.info/wp-content/uploads/2026/10/inline-2-2-768x430.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></p>
<h2>Step 6: Run the WordPress PHP update on the live site</h2>
<p>Once staging is clean, I repeat the same updates on live: core, plugins and theme first, then the PHP version. I pick a quiet time, usually early morning in the client&#8217;s time zone, and I stay on the site for the next hour to watch for errors.</p>
<p>Right after the switch I clear every cache: the caching plugin, any server cache and the CDN. Old cached pages can hide problems, or make it look like something broke when it did not.</p>
<h2>Step 7: Know how to roll back</h2>
<p>Even with a well-tested WordPress PHP update, I always keep a way back. In most hosting panels you can switch the PHP version back in a minute, so if a critical page breaks, I switch back first and debug second. Since I noted the old version in step 1, there is no guessing.</p>
<p>Rolling back is a short-term fix only. The old version still needs to go, so I fix the cause and try again within a few days.</p>
<h2>Common problems after a WordPress PHP update</h2>
<p>These are the issues I see most often:</p>
<ul>
<li><strong>White screen or &#8220;critical error&#8221; message:</strong> almost always a plugin or theme function that the new PHP version does not accept. The error log names the file.</li>
<li><strong>Missing PHP extensions:</strong> the new version on the server may not have the same extensions enabled, such as <code>imagick</code>, <code>intl</code> or <code>mbstring</code>. Ask the host to enable them.</li>
<li><strong>Memory limit reset:</strong> some hosts store settings per PHP version, so a custom memory limit can drop back to the default.</li>
<li><strong>Deprecated notices on screen:</strong> these are warnings, not errors, but they should never show to visitors. Turn off display of errors on live and fix them over time.</li>
</ul>
<p>The official <a href="https://developer.wordpress.org/advanced-administration/upgrade/php/" target="_blank" rel="noopener">WordPress guide to updating PHP</a> is a good extra reference if you want to understand the background.</p>
<h2>How often should you do this?</h2>
<p>I check the PHP version on every site I support a few times a year, and I plan the next WordPress PHP update well before the current version reaches end of life. Done that way, it is a calm, planned job instead of an emergency after the host flips a switch.</p>
<p>If you would rather not deal with it yourself, I can check your site, test the new version on staging and handle the switch for you. Get in touch and tell me a bit about your site.</p>
<p>The post <a rel="nofollow" href="https://www.nitinrathod.info/wordpress-php-update/">WordPress PHP Update: How I Upgrade PHP Without Breaking the Site</a> appeared first on <a rel="nofollow" href="https://www.nitinrathod.info">Nitin Rathod</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.nitinrathod.info/wordpress-php-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
