When a server fails to produce data, it returns an HTTP 406 error. When users enter a query and the server fails to provide the requested content or format, it responds with status code 406. For website visitors, the issue can be caused by faulty browser settings, extensions, cookies, or network tools. For developers and website administrators, the error may be caused by strict server rules, content negotiation, security software, or CMS settings.
For everyday internet users, it can cause browsing inconsistencies, while for developers it can damage user experience, SEO rankings, and reduce ongoing traffic. However, a 406 error is rarely permanent. This guide explains how to fix a 406 error from both sides. It also explains how to detect HTTP response code 406, what causes it, and how to prevent it from happening again.
Accurately Detect and Fix 406 Errors With IndeedSEO
What is a 406 Error?
An HTTP 406 Not Acceptable error is a response status code. When a user types a request, your browser sends it to the server. This request contains special instructions called accept headers, which tell the server exactly what you requested. With this information, the server can understand your preferences in language, format, and media. Sometimes a server can’t understand your request or fails to offer you the requested details. At such times, rather than showing you vague information, it displays the error code.
You may see messages such as:
- 406 Not Acceptable
- HTTP Error 406
- Error 406 – Not Acceptable
- HTTP 406 Not Acceptable
- Request Not Acceptable
The requested resource is only capable of generating content not acceptable according to the Accept headers.
What Causes a 406 Error?
An HTTP 406 Not Acceptable error can be caused by multiple content and website issues. Some of the core cases that cause this error are as follows:
Mismatched Accept Headers:
This is when a client requests a specific content type. It can be a code for XML that the server is not programmed to deliver. In such cases, there is no response.
Strict Content Negotiation:
This happens when the server lacks a fallback mechanism. The server strictly rejects requests because it does not match any available format, causing a 406 error.
Web Application Firewall (WAF) Rules:
Security modules like mod_security on Apache suspect any unusual request. When there is any such input, the server can think of it as malicious work. It will block it with a 406 response.
Language or Encoding Mismatches:
This issue arises when any client’s Accept-Language or Accept-Encoding does not align with the server. It fails to produce a response and causes an error.
Browser Extensions or Security Tools:
Certain extensions or VPNs lead to HTTP modification, or they strip request headers. This corrupts the input and stops communication between client and server.
How to Detect HTTP Response Code 406

To detect an HTTP Response Code 406 (Not Acceptable), you need to look for instances where a web server rejects a client’s request. Since it can be caused by multiple issues, the detection methods depend entirely on at what point you are analyzing your issue.
Check the Browser Developer Tools
Most modern browsers include developer tools. To check the response:
- Open the affected webpage.
- Right-click and select Inspect.
- Open the Network tab.
- Reload the page.
- Find the failed request.
- Check its HTTP status code.
- Look for 406 Not Acceptable.
You can also inspect the request and response headers. This is one of the easiest ways for developers to understand what is happening.
Use an HTTP Status Code Checker
An HTTP status code checker can test a URL and show the response returned by the server. This is useful when you want to check whether a page is returning status codes. A status checker can also help identify whether the error affects one URL or multiple pages.
Check Server Logs
Website administrators can review server logs to find 406 responses.
Logs may show:
- Requested URL
- Client IP
- Request method
- HTTP status
- User agent
- Referrer
- Request time
- Security rule triggered
Server logs are particularly useful when the error occurs only under certain conditions.
Test the URL With Different Requests
Developers can test the same URL using different request headers. For example, changing the Accept header can help determine whether content negotiation is responsible for the error.
How to Fix a 406 Error as a Website Visitor or User
As a website visitor or user, the error can be fixed with some troubleshooting. To understand the complete process, here is a simple step-by-step process you can try.
Simple Steps to Fix a 406 Error
Check the URL:
Ensure your website address is correct. If there are any extra characters or typos, your URL will be corrupted. Also check for extra extensions in your standard page link so that it does not confuse the server.
Clear your browser data:
If your server has any old cache and cookies, it affects the request headers. Make sure your browser is optimized, and then refresh the page.
Try another browser:
Recheck your input in other browsers. Make sure to check in an incognito/private window as well. If the page loads normally, your main browser is causing the problem. It can be related to a strict setting or extension issues.
Disable extensions, VPNs, or proxies:
Certain blockers, VPN, or antiviruses alter the request headers. Check the results after you have turned them off to identify the issue.
Use a different device:
Test the same link on multiple devices. Use your mobile phone, PC, or laptop to ensure that the issue is not because of your choice of device.
How to Fix a 406 Error as a Developer or Web Administrator
Developers can inspect the request, server configuration, and application code to find the error. Start your process as follows:
Check the Accept Header
The Accept request header informs the server which type of media can be processed. If the endpoint cannot generate the requested format, it may return a 406 response. Check whether the requested format is supported by the application.
Review Content Negotiation
Content negotiation allows a server to select the best representation of a resource.
Review server rules related to:
- MIME types
- Language
- Character encoding
- Media types
- File extensions
- Accept headers
Incorrect content negotiation rules can cause valid requests to receive 406 responses.
Check Apache Configuration
If the website uses Apache, inspect configuration files such as .htaccess and the main Apache configuration.
Look for rules related to:
- ModSecurity
- Rewrite rules
- MIME types
- Content negotiation
- Request filtering
- Access control
Be careful when editing server configuration. A small change can affect multiple URLs.
Check Nginx Configuration
For Nginx websites, review the server block and related configuration files. Check for custom rules that can block request headers. Assess URL patterns and content types to test the configuration before reloading Nginx.
Review ModSecurity Rules
ModSecurity is commonly used as a web application firewall. It is used to protect websites against malicious traffic. Sometimes these legitimate requests can be blocked by security rules.
Check your ModSecurity audit logs.
If a rule is causing the 406 response, check why it is displaying the error before changing or disabling it. Do not turn off your entire security system for one error. Instead, adjust specific rules to help and protect your site.
Check WordPress Plugins and Themes
If the error occurs on a WordPress website, check recently installed or updated plugins. Security, firewall, caching, SEO, and redirect plugins can sometimes affect requests.
You can troubleshoot by:
- Backing up the website.
- Temporarily disabling recently changed plugins.
- Testing the affected URL.
- Re-enabling plugins one at a time.
- Checking the theme if the issue continues.
If disabling a plugin fixes the problem, investigate its settings before replacing it.
Check API Request Headers
For APIs, compare a working request with the request returning 406.
Review:
- Accept
- Content-Type
- Authorization headers
- Query parameters
- Request method
- API version
- Response format
Make sure the API documentation matches the request being sent by the client.
Accurately Detect and Fix 406 Errors With IndeedSEO
Conclusion
A 406 Not Acceptable error usually means there is a mismatch between a client request and server response. This blog discusses multiple steps to solve the 406 Error for both users and developers to ensure a safe and secure browsing experience. However, if you want to partner with an expert digital marketing agency to manage your site, contact IndeedSEO. Check your website’s HTTP status codes with IndeedSEO and solve technical issues early.
+1 808 999 0096
info@indeedseo.com
