Independent SiteAuditLint analysis
SiteAuditLint started at notion.so, which redirects in two hops to www.notion.com, and crawled 100 URLs. The 3 critical items are small and specific: a help link with a trailing period that returns 404, and a contact sales page with no title.
| Metric | Result |
|---|---|
| Pages crawled | 100 |
| Crawl time | 31s |
| Health score | 82 / 100 (Good) |
| Issue types detected | 29 |
| Critical / warnings / opportunities / info | 3 / 25 / 413 / 25 |
| Audit date | October 4, 2026 |
What stood out
Overall assessment
www.notion.com returned clean responses across most of the crawl. 66 of 100 URLs passed every check, 75 pages have self-referencing canonicals, 84 carry hreflang, and all nine AI crawlers are allowed.
The critical items are precise. The /product/enterprise-search page links to a help article with a period at the end of the URL, which returns 404, and /contact-sales returned no title, H1, description, canonical or body text in the server response. A check with JavaScript rendering would show whether the form page fills in after load.
Broader items deserve a look next: 64 pages have no structured data, two sets of product pages share titles, and the notion.so domain reaches notion.com through two redirects.
Audit methodology
SiteAuditLint started from the website's homepage and crawled up to 100 URLs by following discoverable internal links and the URLs listed in the XML sitemap. Results represent the URLs reached during the crawl and do not constitute a complete audit of the entire website.
| Starting URL | https://notion.so/ |
|---|---|
| Crawl limit | 100 URLs |
| URLs crawled | 100 (100 HTML) |
| Crawl date | October 4, 2026, 11:14 UTC |
| Crawl duration | 31s |
| Crawl method | Homepage start, internal link and sitemap discovery, robots.txt respected, raw HTML analysis |
| Tool | SiteAuditLint Desktop SEO Crawler |
| Scope | Publicly accessible URLs reached during the crawl |
Technical SEO scorecard
Scores are the category scores SiteAuditLint calculates as part of its Site Health Score.
| Area | Score | Key finding |
|---|---|---|
| Overall health | 82 | Good rating from SiteAuditLint |
| Technical | 87 | 1 broken help link, 2 redirect chains |
| Content | 97 | /contact-sales returned 0 words |
| Performance | 94 | 8 slow responses, 26 pages over 500 KB |
| AEO | 97 | All 9 AI crawlers allowed, llms.txt present |
Major findings
1. Help link with a trailing period
HighFinding: /product/enterprise-search links to /help/enterprise-search-security-and-privacy-practices. (with a trailing period), which returns 404. The same URL without the period returned 200.
Why it matters: A punctuation mark caught inside a link is a common copy error. The page is real, so the fix is a one-character edit. See broken link checker.
| URL | Result |
|---|---|
https://www.notion.com/help/enterprise-search-security-and-privacy-practices. | HTTP 404 |
Recommended fix: Remove the trailing period from the link on /product/enterprise-search.
2. /contact-sales returns an empty shell
HighFinding: https://www.notion.com/contact-sales returned no title, no H1, no meta description, no canonical, no Open Graph tags and 0 words of body text.
Why it matters: A sales contact page with no title in the server response appears untitled to crawlers that do not render JavaScript. See on-page SEO checks.
| URL | Evidence |
|---|---|
https://www.notion.com/contact-sales | No title, 0 words |
Recommended fix: Render the title, heading and canonical server-side on the contact sales route.
3. Two-hop redirect from notion.so
MediumFinding: https://notion.so/ redirects to https://www.notion.so/ and then to https://www.notion.com/. A second chain runs from /help/notion-credits-dashboard through /help/custom-agent-pricing to a category page.
Why it matters: Each hop adds a request. The notion.so entry point is widely linked, so a single redirect to the final host is cleaner.
| URL | Chain |
|---|---|
https://notion.so/ | 2 hops to https://www.notion.com/ |
https://www.notion.com/help/notion-credits-dashboard | 2 hops to /help/category/... |
Recommended fix: Redirect https://notion.so/ directly to https://www.notion.com/, and point the old help URL straight to its final destination.
4. Shared titles across unrelated pages
MediumFinding: /product/projects, /product/wikis, /startups and /trust/privacy-policy share one title. /product/notion-for-engineering and /product/notion-for-product share another, along with a meta description.
Why it matters: When different pages share a title, search results cannot distinguish them. A privacy policy sharing a title with product pages suggests a template default is being used.
| URL | Evidence |
|---|---|
https://www.notion.com/trust/privacy-policy | Title shared with 3 pages |
https://www.notion.com/product/notion-for-engineering | Title and description shared with /product/notion-for-product |
Recommended fix: Set unique titles and descriptions on these 6 pages.
5. No structured data on 64 pages
LowFinding: 64 of 85 analyzed pages have no structured data, including the homepage, /about and localized homepages.
Why it matters: Organization and SoftwareApplication markup describe the company and product to search engines.
Recommended fix: Add Organization markup to the homepage and SoftwareApplication or Product markup to product pages.
6. Slow responses on help articles
LowFinding: 8 URLs took longer than 1,000 ms to respond, mostly help articles. The slowest was 2,385 ms.
Why it matters: Help articles are frequent entry points from search.
| URL | Result |
|---|---|
https://www.notion.com/help/manage-your-usage-allowance-for-notion-ai | 2,385 ms |
https://www.notion.com/help/guides/find-answers-and-generate-reports-with-enterprise-search | 1,870 ms |
Recommended fix: Review caching on the /help/ routes.
What's working well
- 66 of 100 URLs passed every SiteAuditLint check.
- 75 pages have self-referencing canonicals and 84 carry hreflang.
- Uppercase locale URLs such as /en-GB canonicalize to their lowercase versions.
- No 5xx responses across 100 URLs.
- All nine AI crawlers are allowed and an llms.txt file is published.
- No mixed content, missing HSTS or missing viewport tags.
Priority fixes
- Remove the trailing period from the help linkOne-character fix. Pages affected: 1
- Render /contact-sales server-sideTitle, H1 and canonical. Pages affected: 1
- Give 6 pages unique titlesIncludes the privacy policy. Pages affected: 6
- Collapse the notion.so redirect to one hopRoot domain entry point. Pages affected: 2
- Add structured data to key templates64 pages. Pages affected: 64
Crawl data
| Metric | Result |
|---|---|
| URLs crawled | 100 |
| HTML pages | 100 |
| 2xx responses | 85 |
| 3xx redirects | 14 |
| 4xx responses | 1 |
| 5xx responses | 0 |
| Missing titles | 1 |
| Duplicate titles | 6 |
| Missing meta descriptions | 1 |
| Missing H1s | 3 |
| Multiple H1s | 4 |
| Self-referencing canonicals | 75 |
| Pages without structured data | 64 |
| HTML over 500 KB | 26 |
| Slow responses (over 1,000 ms) | 8 |
| AI crawlers allowed | 9 of 9 |
On-page counts (titles, descriptions, headings, canonicals) are measured across the 85 URLs that returned an HTML page with a 200 status.
Audit limitations
The crawl was limited to 100 URLs and started from the homepage, so only URLs discovered through internal links and the XML sitemap are represented. A 100-URL crawl does not represent the entire website. Findings reflect the site at the time of the crawl on October 4, 2026. SiteAuditLint analyzed the HTML returned by the server, so content added later by JavaScript and responses that differ for automated clients may not match what a browser shows. This audit evaluates technical observations, not overall business or search performance.
SiteAuditLint reported no analytics or tag manager in the raw HTML. Tracking loaded by scripts after the initial response would not appear in this check, so that result is not treated as a finding here.
This is an independent SiteAuditLint analysis of publicly accessible pages. It was not requested or endorsed by Notion, and it does not imply that Notion uses SiteAuditLint.