{"id":5600,"date":"2026-04-28T19:07:12","date_gmt":"2026-04-28T19:07:12","guid":{"rendered":"https:\/\/www.cmsgalaxy.com\/blog\/?p=5600"},"modified":"2026-04-28T19:07:12","modified_gmt":"2026-04-28T19:07:12","slug":"wordpress-troubleshooting-checklist-how-to-isolate-the-real-root-cause","status":"publish","type":"post","link":"https:\/\/www.cmsgalaxy.com\/blog\/wordpress-troubleshooting-checklist-how-to-isolate-the-real-root-cause\/","title":{"rendered":"WordPress Troubleshooting Checklist: How to Isolate the Real Root Cause"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">WordPress Troubleshooting Checklist: Areas to Check First, Commands to Run, and How to Isolate the Real Root Cause<\/h1>\n\n\n\n<p>When a WordPress website starts behaving strangely, the biggest mistake is jumping to conclusions too early. A problem that looks like a theme issue may actually be caused by a plugin. A Gutenberg editor issue may be caused by security rules in <code>.htaccess<\/code>. A broken admin area may look like a CSS problem but actually be a blocked <code>load-styles.php<\/code> request.<\/p>\n\n\n\n<p>The only reliable way to solve WordPress problems is to troubleshoot in a structured way.<\/p>\n\n\n\n<p>In this guide, I will walk through a practical troubleshooting framework for WordPress sites, especially for problems like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wp-admin looks broken after login<\/li>\n\n\n\n<li>Gutenberg editor formatting like <strong>Bold<\/strong> does not work<\/li>\n\n\n\n<li>public site is fine but admin\/edit mode is broken<\/li>\n\n\n\n<li>changing theme does not help<\/li>\n\n\n\n<li>disabling browser cache does not solve the issue<\/li>\n\n\n\n<li>plugin conflicts are suspected<\/li>\n\n\n\n<li>security plugins or rewrite rules are interfering<\/li>\n<\/ul>\n\n\n\n<p>This tutorial also includes real commands you can run on a Linux\/XAMPP server using terminal and WP-CLI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Why a structured troubleshooting process matters<\/h2>\n\n\n\n<p>WordPress issues often have overlapping symptoms.<\/p>\n\n\n\n<p>For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a <strong>theme problem<\/strong> can affect styling<\/li>\n\n\n\n<li>a <strong>plugin problem<\/strong> can affect editing<\/li>\n\n\n\n<li>a <strong>security rule<\/strong> can block admin assets<\/li>\n\n\n\n<li>a <strong>cache rule<\/strong> can make the browser show old broken behavior<\/li>\n\n\n\n<li>a <strong>must-use plugin<\/strong> can keep loading even when all plugins appear disabled<\/li>\n<\/ul>\n\n\n\n<p>That is why random trial-and-error wastes time. A clear step-by-step process helps you isolate the real culprit faster.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 1: Observe the scope of the problem<\/h1>\n\n\n\n<p>Before running commands, ask these questions:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Is the public website broken, or only wp-admin?<\/h2>\n\n\n\n<p>This is the first major split.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If <strong>public site is broken<\/strong>, suspect theme, plugins, permissions, or core issues<\/li>\n\n\n\n<li>If <strong>public site is fine but admin is broken<\/strong>, suspect admin CSS\/JS, plugins, security rules, or editor conflicts<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Is the issue only on one post\/page, or everywhere?<\/h2>\n\n\n\n<p>Test:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a <strong>brand new post<\/strong><\/li>\n\n\n\n<li>a <strong>different existing post<\/strong><\/li>\n\n\n\n<li>the <strong>same post in another browser<\/strong><\/li>\n<\/ul>\n\n\n\n<p>If the issue happens only on one post, it may be bad block content or broken markup in that post.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Is the issue visual only, or functionality too?<\/h2>\n\n\n\n<p>Example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>toolbar missing but <code>Cmd+B<\/code> still works \u2192 likely UI\/CSS issue<\/li>\n\n\n\n<li>toolbar missing and <code>Cmd+B<\/code> does not work \u2192 likely plugin\/editor logic issue<\/li>\n<\/ul>\n\n\n\n<p>That distinction is very important.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 2: Check browser-level issues first<\/h1>\n\n\n\n<p>Sometimes the problem is not on the server at all.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Areas to check<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cached CSS\/JS<\/li>\n\n\n\n<li>site storage\/local storage<\/li>\n\n\n\n<li>extensions like Grammarly, ad blockers, dark mode tools<\/li>\n\n\n\n<li>browser-specific editor corruption<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What to do<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Open in Incognito<\/h3>\n\n\n\n<p>If the issue disappears in Incognito, it is likely:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>browser cache<\/li>\n\n\n\n<li>extension conflict<\/li>\n\n\n\n<li>site data corruption<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hard refresh<\/h3>\n\n\n\n<p>On Mac:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cmd + Shift + R\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Clear site data in Chrome<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>open the website<\/li>\n\n\n\n<li>click the icon near the address bar<\/li>\n\n\n\n<li>Site settings<\/li>\n\n\n\n<li>Clear data<\/li>\n<\/ul>\n\n\n\n<p>If the issue still happens in Incognito and another browser, then move on to server-side isolation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 3: Check file ownership and permissions<\/h1>\n\n\n\n<p>If files were manually copied, edited, or moved as <code>root<\/code>, permissions and ownership should be verified.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check WordPress root ownership<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/lampp\/htdocs\/devopsschool\/blog\nls -lrt\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Check ownership of key WordPress folders<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>stat -c '%U:%G %a %n' wp-admin wp-includes wp-content wp-config.php\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Find anything not owned by the correct web user<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>find . \\( ! -user www-data -o ! -group www-data \\) -ls | head -50\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Find any files touched by root<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>find . -user root -ls | head -50\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Normalize ownership and permissions<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R www-data:www-data .\n\nfind . -type d -exec chmod 755 {} \\;\nfind . -type f -exec chmod 644 {} \\;\n\nchmod 640 wp-config.php\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">What good output usually looks like<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>directories: <code>755<\/code><\/li>\n\n\n\n<li>files: <code>644<\/code><\/li>\n\n\n\n<li><code>wp-config.php<\/code>: <code>640<\/code> is fine<\/li>\n\n\n\n<li>owner\/group: <code>www-data:www-data<\/code> or whatever your Apache\/PHP user uses<\/li>\n<\/ul>\n\n\n\n<p>If ownership and permissions are already correct, stop spending time there and move on.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 4: Rule out theme issues<\/h1>\n\n\n\n<p>Many WordPress problems are blamed on themes too early.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">First question<\/h2>\n\n\n\n<p>Does the same problem happen with another theme?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">List installed themes<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp theme list --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Activate a default theme<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp theme activate twentytwentyfour --allow-root\n<\/code><\/pre>\n\n\n\n<p>or<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp theme activate twentytwentythree --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">What the result means<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>if the issue disappears on a default theme, theme or theme-related customization is involved<\/li>\n\n\n\n<li>if the issue remains across multiple themes, the theme is probably not the main problem<\/li>\n<\/ul>\n\n\n\n<p>A very important learning here is this:<\/p>\n\n\n\n<p><strong>If the same issue happens with many themes, stop blaming the theme.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 5: Check if wp-admin assets are loading correctly<\/h1>\n\n\n\n<p>If logged-in admin looks broken but the public site looks fine, this is one of the most important areas to check.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Symptoms<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wp-admin looks like plain HTML<\/li>\n\n\n\n<li>left menu is unstyled<\/li>\n\n\n\n<li>post editor looks broken<\/li>\n\n\n\n<li>buttons or controls are missing<\/li>\n\n\n\n<li>customizer or editor is visually broken<\/li>\n<\/ul>\n\n\n\n<p>This usually means WordPress admin CSS\/JS is not loading.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check <code>.htaccess<\/code><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/lampp\/htdocs\/devopsschool\/blog\nls -la .htaccess wp-admin\/.htaccess\nsed -n '1,200p' .htaccess\n&#91; -f wp-admin\/.htaccess ] &amp;&amp; sed -n '1,200p' wp-admin\/.htaccess\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Real-world example<\/h2>\n\n\n\n<p>A security plugin had written rules into <code>.htaccess<\/code> that blocked:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp-admin\/load-styles.php<\/code><\/li>\n\n\n\n<li><code>wp-admin\/load-scripts.php<\/code><\/li>\n<\/ul>\n\n\n\n<p>That made wp-admin appear broken even though WordPress core and themes were fine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example of a dangerous block<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># BEGIN WP CERBER GROOVE\nRewriteCond %{REQUEST_URI} ^(.*)wp-admin\/+load-scripts\\.php$ &#91;OR,NC]\nRewriteCond %{REQUEST_URI} ^(.*)wp-admin\/+load-styles\\.php$ &#91;NC]\nRewriteCond %{HTTP_COOKIE} !cerber_groove_x_...\nRewriteRule (.*) - &#91;R=403,L]\n# END WP CERBER GROOVE\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Fix by removing the block<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cp .htaccess .htaccess.bak.$(date +%F-%H%M%S)\nsed -i '\/# BEGIN WP CERBER GROOVE\/,\/# END WP CERBER GROOVE\/d' .htaccess\n<\/code><\/pre>\n\n\n\n<p>That kind of rule can break wp-admin even if the public site is fine.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 6: Verify WordPress core integrity<\/h1>\n\n\n\n<p>If you suspect core files are corrupted, do not guess.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify core checksums<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp core verify-checksums --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">What this means<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>if verification passes, WordPress core files are likely intact<\/li>\n\n\n\n<li>if it fails, repair core<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Repair core files without touching themes\/plugins<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp core download --skip-content --force --allow-root\n<\/code><\/pre>\n\n\n\n<p>This is a safe and clean way to restore WordPress core files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 7: Disable all plugins and test again<\/h1>\n\n\n\n<p>This is one of the most powerful steps.<\/p>\n\n\n\n<p>If the issue disappears when all plugins are disabled, then you know with high confidence it is a plugin conflict.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deactivate all plugins<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin deactivate --all --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Test again<\/h2>\n\n\n\n<p>After disabling all plugins:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>open a brand new post<\/li>\n\n\n\n<li>add a Paragraph block<\/li>\n\n\n\n<li>type text<\/li>\n\n\n\n<li>select a word<\/li>\n\n\n\n<li>test <strong>Bold<\/strong><\/li>\n\n\n\n<li>test <strong>Cmd+B<\/strong><\/li>\n<\/ul>\n\n\n\n<p>If the issue disappears, the problem is plugin-related.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 8: Do not forget must-use plugins<\/h1>\n\n\n\n<p>One common mistake is thinking all plugins are disabled when they are not.<\/p>\n\n\n\n<p>Must-use plugins in <code>wp-content\/mu-plugins<\/code> still load even after normal plugins are deactivated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check must-use plugins<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -la wp-content\/mu-plugins\/\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Disable one temporarily<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>mv wp-content\/mu-plugins\/aaa-wp-cerber.php wp-content\/mu-plugins\/aaa-wp-cerber.php.off\n<\/code><\/pre>\n\n\n\n<p>This is extremely important because MU plugins can silently continue affecting admin or editor behavior.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 9: Identify the culprit plugin with binary testing<\/h1>\n\n\n\n<p>Once you know plugins are the issue, do not reactivate everything randomly.<\/p>\n\n\n\n<p>Use a structured process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">List all plugins<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin list --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Reactivate in batches<\/h2>\n\n\n\n<p>Example batch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin activate classic-editor code-block-pro syntax-highlighting-code-block luckywp-table-of-contents pdf-embedder seo-by-rank-math ad-inserter --allow-root\n<\/code><\/pre>\n\n\n\n<p>Another batch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin activate wpdiscuz youtube-embed-plus yotuwp-easy-youtube-embed simple-author-box simple-banner simple-blog-stats wp-rss-aggregator wp-sitemap-page google-sitemap-generator --allow-root\n<\/code><\/pre>\n\n\n\n<p>If one batch causes the issue and another does not, you have narrowed the culprit to one group.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Then activate one by one<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin activate disable-xml-rpc-api --allow-root\nwp plugin activate creame-whatsapp-me --allow-root\nwp plugin activate limit-login-attempts-reloaded --allow-root\nwp plugin activate merpress --allow-root\nwp plugin activate plagiarism-checker-by-sst --allow-root\nwp plugin activate wp-security-audit-log --allow-root\nwp plugin activate wp-fastest-cache --allow-root\nwp plugin activate wp-mail-smtp --allow-root\nwp plugin activate wp-paypal --allow-root\nwp plugin activate wps-hide-login --allow-root\n<\/code><\/pre>\n\n\n\n<p>Test after each activation.<\/p>\n\n\n\n<p>This is exactly how the real culprit can be found.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 10: Example of a real plugin culprit<\/h1>\n\n\n\n<p>In this case, the actual plugin causing the Gutenberg Bold issue was:<\/p>\n\n\n\n<p><strong><code>plagiarism-checker-by-sst<\/code><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Symptom<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bold formatting in Gutenberg did not work<\/li>\n\n\n\n<li>multiple themes were tested<\/li>\n\n\n\n<li>admin styling issue was fixed separately<\/li>\n\n\n\n<li>once all plugins were disabled, Bold started working<\/li>\n\n\n\n<li>when plugins were reactivated one by one, the issue returned when <code>plagiarism-checker-by-sst<\/code> was enabled<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fix<\/h2>\n\n\n\n<p>Keep it disabled:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin deactivate plagiarism-checker-by-sst --allow-root\n<\/code><\/pre>\n\n\n\n<p>This is a classic example of a plugin interfering with Gutenberg rich-text functionality.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 11: Check editor-related code in themes and plugins<\/h1>\n\n\n\n<p>If the problem looks like a Gutenberg\/editor issue, search code for admin\/editor hooks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Search theme\/editor hooks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -RniE \"admin_enqueue_scripts|enqueue_block_editor_assets|enqueue_block_assets|customize_register|admin_head|login_enqueue_scripts|block_editor_settings_all\" wp-content\/themes\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Search plugin\/editor hooks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -RniE \"admin_enqueue_scripts|enqueue_block_editor_assets|wp_enqueue_script|wp_enqueue_style|gutenberg|block_editor|unregisterFormatType|allowedFormats|contenteditable|tinymce|execCommand\" wp-content\/plugins\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Search for suspicious CSS hiding toolbar behavior<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -RniE \"components-toolbar|rich-text|toolbar|display:\\s*none|visibility:\\s*hidden|opacity:\\s*0|pointer-events:\\s*none\" wp-content\n<\/code><\/pre>\n\n\n\n<p>This helps you catch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>editor CSS pollution<\/li>\n\n\n\n<li>hidden toolbar buttons<\/li>\n\n\n\n<li>disabled text formats<\/li>\n\n\n\n<li>scripts injected into admin screens<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 12: Use browser DevTools when necessary<\/h1>\n\n\n\n<p>When the issue is still unclear, browser tools can show exactly what is happening.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Network tab<\/h2>\n\n\n\n<p>Look for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>load-styles.php<\/code><\/li>\n\n\n\n<li><code>load-scripts.php<\/code><\/li>\n\n\n\n<li>failed CSS\/JS requests<\/li>\n\n\n\n<li>403 \/ 404 \/ 500 errors<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Console tab<\/h2>\n\n\n\n<p>Look for red errors involving:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp.richText<\/code><\/li>\n\n\n\n<li><code>wp.blockEditor<\/code><\/li>\n\n\n\n<li><code>format-library<\/code><\/li>\n\n\n\n<li>custom plugin or theme JS files<\/li>\n<\/ul>\n\n\n\n<p>If CSS is not loading or JS errors appear, that often points directly to the cause.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 13: Debug WordPress more safely<\/h1>\n\n\n\n<p>Temporarily add these to <code>wp-config.php<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'CONCATENATE_SCRIPTS', false );\ndefine( 'SCRIPT_DEBUG', true );\ndefine( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Why this helps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>SCRIPT_DEBUG<\/code> loads non-minified JS\/CSS<\/li>\n\n\n\n<li><code>CONCATENATE_SCRIPTS<\/code> can bypass combined loader issues<\/li>\n\n\n\n<li><code>WP_DEBUG_LOG<\/code> captures warnings\/errors to log files<\/li>\n<\/ul>\n\n\n\n<p>This is especially useful when admin assets are failing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Step 14: Suggested troubleshooting order<\/h1>\n\n\n\n<p>Here is the order I recommend for real-world WordPress troubleshooting:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Observe the scope<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>public only?<\/li>\n\n\n\n<li>admin only?<\/li>\n\n\n\n<li>single post only?<\/li>\n\n\n\n<li>browser-specific?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Test browser basics<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>incognito<\/li>\n\n\n\n<li>hard refresh<\/li>\n\n\n\n<li>clear site data<\/li>\n\n\n\n<li>disable extensions<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. Check permissions and ownership<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>owner\/group<\/li>\n\n\n\n<li><code>755<\/code> dirs<\/li>\n\n\n\n<li><code>644<\/code> files<\/li>\n\n\n\n<li>no stray root-owned files<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. Switch to a default theme<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>confirm whether the issue is theme-related<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. Check <code>.htaccess<\/code><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>especially security rules affecting wp-admin<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. Verify core<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>run <code>wp core verify-checksums<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. Disable all plugins<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>test cleanly<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">8. Check MU plugins<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp-content\/mu-plugins<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">9. Reactivate plugins in batches<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>then one by one<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">10. Search code<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>admin\/editor hooks<\/li>\n\n\n\n<li>CSS hiding controls<\/li>\n\n\n\n<li>Gutenberg format restrictions<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">11. Use DevTools<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network<\/li>\n\n\n\n<li>Console<\/li>\n<\/ul>\n\n\n\n<p>This order saves a lot of time.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Final lessons learned<\/h1>\n\n\n\n<p>This troubleshooting journey highlights a few important truths:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. One symptom can hide multiple problems<\/h2>\n\n\n\n<p>There may be more than one issue at the same time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Admin-only problems are not always theme problems<\/h2>\n\n\n\n<p>If public view is fine, look at admin CSS\/JS, plugins, and rewrite rules.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Security plugins can leave rules behind<\/h2>\n\n\n\n<p>Even after disabling them, their <code>.htaccess<\/code> changes may remain active.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. MU plugins are easy to forget<\/h2>\n\n\n\n<p>A must-use plugin can continue affecting the site even when all regular plugins are off.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Plugin conflicts are often the real culprit<\/h2>\n\n\n\n<p>In this case, <code>plagiarism-checker-by-sst<\/code> was the root cause of the Gutenberg Bold problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Structured troubleshooting beats guessing<\/h2>\n\n\n\n<p>The faster you isolate scope, test variables one by one, and observe results, the faster you find the real cause.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Useful command summary<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Theme checks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp theme list --allow-root\nwp theme activate twentytwentyfour --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Plugin checks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp plugin list --allow-root\nwp plugin deactivate --all --allow-root\nwp plugin activate plugin-slug --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">MU plugin checks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -la wp-content\/mu-plugins\/\nmv wp-content\/mu-plugins\/plugin.php wp-content\/mu-plugins\/plugin.php.off\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Core verification<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>wp core verify-checksums --allow-root\nwp core download --skip-content --force --allow-root\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Ownership and permissions<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>stat -c '%U:%G %a %n' wp-admin wp-includes wp-content wp-config.php\nfind . \\( ! -user www-data -o ! -group www-data \\) -ls | head -50\nchown -R www-data:www-data .\nfind . -type d -exec chmod 755 {} \\;\nfind . -type f -exec chmod 644 {} \\;\nchmod 640 wp-config.php\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><code>.htaccess<\/code> inspection<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -n '1,200p' .htaccess\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Search theme\/plugin hooks<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -RniE \"admin_enqueue_scripts|enqueue_block_editor_assets|enqueue_block_assets|customize_register\" wp-content\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p>If you troubleshoot WordPress issues without a checklist, you will often waste hours chasing the wrong cause. But if you follow a structured path \u2014 browser, permissions, themes, <code>.htaccess<\/code>, core, plugins, MU plugins, code hooks, and DevTools \u2014 you can isolate even very tricky issues.<\/p>\n\n\n\n<p>In this case, what looked like a theme\/editor issue turned out to be a combination of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>blocked wp-admin asset loading from security rewrite rules<\/li>\n\n\n\n<li>and a Gutenberg conflict caused by <code>plagiarism-checker-by-sst<\/code><\/li>\n<\/ul>\n\n\n\n<p>That is exactly why systematic troubleshooting matters.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>WordPress Troubleshooting Checklist: Areas to Check First, Commands to Run, and How to Isolate the Real Root Cause When a<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5600","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/comments?post=5600"}],"version-history":[{"count":1,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5600\/revisions"}],"predecessor-version":[{"id":5601,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/posts\/5600\/revisions\/5601"}],"wp:attachment":[{"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/media?parent=5600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/categories?post=5600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cmsgalaxy.com\/blog\/wp-json\/wp\/v2\/tags?post=5600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}