🤔 What Is Happening?
When OTTO crawls your site, it may detect two versions of the same page as separate URLs — for example, /blog and /blog/ (with and without a trailing slash). Even if one version has a canonical tag pointing to the other, OTTO treats both URLs as crawlable pages and generates on-page suggestions — such as H1 length warnings or missing alt text — for each one independently.
This is not a canonical tag error. OTTO is working as designed: it crawls every URL it discovers and audits the content it finds at that address. The duplicate suggestions appear because both URL versions are being crawled and evaluated, not because your canonical tags are broken.
🕷️ Why OTTO Crawls Both URL Versions
OTTO's crawler follows links found in your sitemap, internal links, and server responses. If your server returns a valid page at both /blog and /blog/ — even with a canonical tag on one — the crawler logs both as live URLs and audits both for content issues. The canonical tag tells search engines which version to index, but it does not prevent OTTO from reaching and auditing the non-canonical version.
Common reasons both versions are reachable include:
- Your server does not redirect one version to the other (for example, /blog does not 301-redirect to /blog/).
- Both versions appear in your XML sitemap.
- Internal links on your site point to both variants.
- A CDN or caching layer serves content at both paths without enforcing a redirect.
✅ The Recommended Fix: Enforce a Server-Side Redirect
The most reliable way to stop OTTO — and search engines — from treating both versions as separate pages is to redirect one version permanently to the other at the server level.
- Decide on your preferred URL format: trailing slash (/blog/) or no trailing slash (/blog). Be consistent across your entire site.
- Configure a 301 redirect on your server or CDN so the non-preferred version automatically redirects to the preferred one. For example, redirect /blog → /blog/.
- Remove the non-preferred version from your XML sitemap.
- Update any internal links that point to the non-preferred version.
- Re-run the OTTO crawl after changes are saved. Once the redirect is in place, OTTO will follow it and only audit the canonical version.
After the redirect is live, the duplicate suggestions for the non-canonical URL will no longer appear in future crawls.
🚫 Cannot Implement a Redirect Right Now?
If a server-side redirect is not immediately possible, OTTO does support URL exclusion configuration so it can be instructed to skip specific URL patterns during a crawl. Because the exact steps for configuring crawl exclusions depend on your account setup and the version of OTTO you are using, we recommend reaching out to our team directly so they can walk you through the correct settings for your project. When you contact us, please have the following ready:
- Your project name and the site domain being crawled.
- The specific URL pattern causing duplicate suggestions (for example, /blog vs /blog/).
- Whether you have already attempted a server-side redirect and what result you observed.
If you need further assistance, open the chat widget in the bottom-right corner of the platform and type human teammate to be connected with a member of our team.