WordPress links not working broken chain illustration

How to Fix WordPress Links Not Working

Last updated on September 18th, 2026 at 09:49 am

When WordPress links are not working, first determine whether the problem affects one link, one content type, or the entire site. The cause is usually an incorrect URL, stale permalink rules, a redirect conflict, JavaScript, caching, or server configuration.

Identify Which Links Fail

Test the link in a private window and copy its destination. Record whether it returns a 404, redirects incorrectly, does nothing, or opens the wrong page. Test internal links, menu links, buttons, and plain text links separately.

Correct the URL

Edit the link and confirm the full destination. Look for missing protocols, duplicated domains, smart quotes, spaces, tracking parameters, and links pointing to staging. Relative links can also break after a migration or directory change.

Refresh WordPress Permalinks

Go to Settings > Permalinks and click Save Changes without changing the structure. This refreshes rewrite rules. If pages return 404 errors afterward, follow my WordPress 404 error guide.

Check Redirect Rules

Review Rank Math, Redirection, hosting redirects, CDN rules, and the server configuration. Remove redirect chains and conflicting rules. Avoid managing the same redirect in several places because troubleshooting becomes unnecessarily difficult.

Check HTTP and HTTPS

A site migrated to HTTPS may still contain old HTTP links or incorrect canonical URLs. Update internal URLs and verify the WordPress Address and Site Address under Settings > General.

Rule Out Plugin and Theme Conflicts

Security plugins, membership tools, link trackers, page builders, and optimization plugins can intercept clicks or rewrite URLs. Test on staging with plugins disabled, then reactivate them one at a time. Temporarily switch to a default theme if needed.

Check JavaScript Errors

If a button does nothing, open the browser developer console and click it again. A JavaScript error, invisible overlay, or disabled pointer event may block the action. Temporarily disable script delay, combination, and minification to identify optimization conflicts.

Clear Every Cache Layer

Clear browser, WordPress, host, object, and CDN caches. Test while logged out. A cached menu or page template can continue serving an old URL after you correct it.

Inspect Menus, Templates and Shortcodes

The visible link may come from a navigation menu, widget, reusable section, shortcode, custom field, or theme template rather than the page editor. Update the real source and check mobile navigation separately.

Check Server Rewrite Rules

Apache sites depend on .htaccess, while Nginx uses server configuration. Compare the rules with the host’s recommended WordPress configuration. Back up the current file before changing anything and avoid copying random rewrite rules from unrelated servers.

Fast Troubleshooting Order

  1. Copy and verify the exact URL.
  2. Test in a private window.
  3. Refresh permalinks.
  4. Review redirects and HTTPS settings.
  5. Clear all caches.
  6. Test plugins, the theme, JavaScript, and server rules.

For more common fixes, visit my WordPress SEO troubleshooting hub.

Published by
JL Faverio

JL Faverio is a Technical SEO Consultant specializing in WordPress, technical SEO, and website maintenance. I help businesses and agencies fix technical SEO issues, maintain WordPress websites, improve site speed, and solve problems that other developers can't. With years of experience managing hundreds of WordPress websites, I focus on practical solutions that improve search visibility and long-term website health.