ShoutMeLoud

WordPress Internal Link and Permalink Not Working Problem solution

While working on a WordPress client, the client blog was migrated from Bluehost to SiteGround web hosting.

After the migration Blog homepage was working fine, but the internal pages were not working. Instead of showing any error, it was giving a blank link.

I searched into the WordPress support forum, and many users are facing this problem. The problem usually occurs in Two cases:

  1. WordPress blog migration
  2. After upgrading WordPress

[Solution] WordPress Inner Pages links Not working:

In my case, this issue came after migration, but such issue can come at any point on a WordPress blog. First, let me share the solution that worked for me, and I will also share some of the alternate solutions to the inner pages link not working in WordPress problem. 

The solution is pretty simple and I have one of these two solutions that should work for you as well. If not, just let me know more about your issue in the comment section below:

Flush cache and Create + Delete a new page:

If you are using any cache plugin, you should empty the cache. A good idea is to re-install the cache plugin. Do remember, you need to uninstall the plugin properly, and simply disabling the plugin will not help.

In my client case, it was WP super cache plugin, and emptying the cache worked.

Go to Settings > Super cache and empty the cache. Once done,  create a new page from your WordPress admin page.   Publish the page and verify if its loading or not loading. In most of the cases, it loads else you need to check with your hosting and with your .htaccess file.

If the new page load successfully, go back to edit pages and delete that page.

.htaccess error:

Another issue that usually creates issues with the internal link showing a 404 error or not working at all is due to an improper or non-existence of WordPress .htaccess file.

Simply log in to your server FTP, and look for the .htacess file at the root of your WordPress installation. Make sure hidden files are shown. Now check the content of the .htaccess file.

Here is the default content for WordPress .htaccess file:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Check your blog now and check a few internal links. If everything works fine. ( Buy me a Pizza ) . 🙂

This workaround worked for me and I hope it will be helpful for others who get into a similar problem.

Leave a Comment

Your email address will not be published. Required fields are marked *