SEO audit for toolswift.ca
ToolSwift | DTC & B2B eCommerce Platform for Building Suppliers
Health 65/100 (fair) · 37 pages crawled · generated 2026-07-29
Download Markdown report (feed to ChatGPT / Claude / Cursor)Get an ultimate eCommerce platform for lumber, home, and building supply stores. Seamlessly integrate POS, manage multiple locations, and entirely headless CMS.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Performance | 76 | 0 | 30 | 43 |
| Titles | 94 | 0 | 7 | 0 |
| Links | 97 | 0 | 4 | 14 |
| Content | 98 | 0 | 3 | 93 |
| Budget | 98 | 0 | 2 | 0 |
| Agent Readiness | 99 | 0 | 1 | 2 |
| Canonical | 99 | 0 | 1 | 1 |
| Indexability | 99 | 0 | 1 | 0 |
| Structured Data | 99 | 0 | 1 | 35 |
| Cache | 100 | 0 | 0 | 1 |
| Crawlability | 100 | 0 | 0 | 1 |
| Images | 100 | 0 | 0 | 46 |
| Meta Description | 100 | 0 | 0 | 14 |
| Security | 100 | 0 | 0 | 72 |
| Social | 100 | 0 | 0 | 13 |
Warnings (10 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 1 occurrence(s)
- https://www.toolswift.ca/ — 6 button/link(s) with no text or aria-label — an agent can't target them
warning robots.txt-disallowed URL receives internal links (crawl-budget leak)
Rule budget.disallow_linked · Budget · 1 occurrence(s)
- https://www.toolswift.ca/customer-portal — internal links point to https://www.toolswift.ca/customer-portal, which robots.txt disallows for Googlebot — Googlebot discovers the URL, checks robots, then rejects it without indexing, wasting crawl budget and losing the link equity. Remove the internal links, or use noindex instead of Disallow if the page should be fetchable. Linked from: https://www.toolswift.ca/, https://www.toolswift.ca/features/dashboard, https://www.toolswift.ca/blogs.
warning Noindex page receives internal links (crawl-budget waste)
Rule budget.noindex_linked · Budget · 1 occurrence(s)
- https://www.toolswift.ca/blogs/xrjqymdugra3qo4bmgldb7gy — this noindex page has 1 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://www.toolswift.ca/blogs/how-to-configure-smtp-in-toolswift-for-email-notifications.
warning Interior page canonicalizes to the homepage
Rule canonical.points_to_homepage · Canonical · 1 occurrence(s)
- https://www.toolswift.ca/privacy-policy — this interior page canonicalizes to the homepage (https://www.toolswift.ca/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
warning Thin content (low word count)
Rule content.thin · Content · 3 occurrence(s)
- https://www.toolswift.ca/contact — 191 words
- https://www.toolswift.ca/features/messages — 180 words
- https://www.toolswift.ca/help-center — 178 words
warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)
Rule images.no_lazy_lcp_candidate · Performance · 30 occurrence(s)
- https://www.toolswift.ca/ — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-configure-smtp-in-toolswift-for-email-notifications — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-integrate-versa-pay-payment-with-toolswift-for-b2-b-e-commerce — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/how-to-sync-toolswift-products-to-google-merchant-center — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/contact — the likely hero/LCP image (ca.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/analytics — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/customers — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/dashboard — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/integrations — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/marketing — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/messages — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/orders — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/payments — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/policies — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/pro-account — the likely hero/LCP image (1.85f2811b.svg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/products — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/quotes — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/shipping — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/features/store-locations — the likely hero/LCP image (image) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
- https://www.toolswift.ca/help-center — the likely hero/LCP image (ca.webp) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
warning Page is noindex
Rule index.noindex · Indexability · 1 occurrence(s)
- https://www.toolswift.ca/blogs/xrjqymdugra3qo4bmgldb7gy — meta/X-Robots: meta=noindex, follow
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 4 occurrence(s)
- https://www.toolswift.ca/features/ai-powered — no internal links point here
- https://www.toolswift.ca/features/pro-account — no internal links point here
- https://www.toolswift.ca/features/product-catalog — no internal links point here
- https://www.toolswift.ca/pricing — no internal links point here
warning BreadcrumbList present but structurally incomplete
Rule schema.breadcrumb_incomplete · Structured Data · 1 occurrence(s)
- https://www.toolswift.ca/ — a BreadcrumbList is present but structurally incomplete — missing required itemListElement. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
warning Title likely truncated in SERP (too wide)
Rule title.too_long · Titles · 7 occurrence(s)
- https://www.toolswift.ca/blogs/connect-shipstation-toolswift — 84 chars, ~648px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-stripe — 76 chars, ~592px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay — 78 chars, ~619px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — 76 chars, ~596px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-integrate-versa-pay-payment-with-toolswift-for-b2-b-e-commerce — 78 chars, ~625px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center — 79 chars, ~632px (limit ~580px)
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — 87 chars, ~693px (limit ~580px)
Notices (21 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 2 occurrence(s)
- https://www.toolswift.ca/blogs — h3 follows h1 — skips h2
- https://www.toolswift.ca/pricing — h3 follows h1 — skips h2
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 1 occurrence(s)
- https://www.toolswift.ca/blogs — Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate · vercel: MISS
notice Canonical points to a different URL
Rule canonical.non_self · Canonical · 1 occurrence(s)
- https://www.toolswift.ca/privacy-policy — canonical=https://www.toolswift.ca/
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 23 occurrence(s)
- https://www.toolswift.ca/blogs — 2.3%
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-stripe — 4.3%
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay — 4.5%
- https://www.toolswift.ca/blogs/how-to-sync-toolswift-products-to-google-merchant-center — 4.5%
- https://www.toolswift.ca/contact — 1.2%
- https://www.toolswift.ca/features/ai-powered — 4.7%
- https://www.toolswift.ca/features/analytics — 3.2%
- https://www.toolswift.ca/features/customers — 2.3%
- https://www.toolswift.ca/features/dashboard — 2.2%
- https://www.toolswift.ca/features/integrations — 2.4%
- https://www.toolswift.ca/features/marketing — 2.4%
- https://www.toolswift.ca/features/messages — 2.1%
- https://www.toolswift.ca/features/orders — 2.5%
- https://www.toolswift.ca/features/payments — 2.7%
- https://www.toolswift.ca/features/policies — 2.4%
- https://www.toolswift.ca/features/pro-account — 3.9%
- https://www.toolswift.ca/features/product-catalog — 3.0%
- https://www.toolswift.ca/features/products — 2.8%
- https://www.toolswift.ca/features/quotes — 2.5%
- https://www.toolswift.ca/features/shipping — 2.2%
- https://www.toolswift.ca/features/store-locations — 2.3%
- https://www.toolswift.ca/help-center — 1.2%
- https://www.toolswift.ca/pricing — 2.0%
notice Main text is hard to read (low Flesch Reading Ease)
Rule content.readability_poor · Content · 34 occurrence(s)
- https://www.toolswift.ca/ — this page reads as difficult (Flesch Reading Ease 33, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/blogs — this page reads as very difficult (Flesch Reading Ease 21, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center — this page reads as very difficult (Flesch Reading Ease 6, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — this page reads as very difficult (Flesch Reading Ease 19, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — this page reads as very difficult (Flesch Reading Ease 29, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/contact — this page reads as very difficult (Flesch Reading Ease 22, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/ai-powered — this page reads as very difficult (Flesch Reading Ease -0, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/analytics — this page reads as very difficult (Flesch Reading Ease -7, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/customers — this page reads as very difficult (Flesch Reading Ease -1, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/dashboard — this page reads as very difficult (Flesch Reading Ease 28, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/integrations — this page reads as very difficult (Flesch Reading Ease 6, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/marketing — this page reads as very difficult (Flesch Reading Ease 3, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/messages — this page reads as very difficult (Flesch Reading Ease 9, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/orders — this page reads as very difficult (Flesch Reading Ease 19, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/payments — this page reads as very difficult (Flesch Reading Ease 20, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/policies — this page reads as very difficult (Flesch Reading Ease 2, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/pro-account — this page reads as very difficult (Flesch Reading Ease 15, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/product-catalog — this page reads as very difficult (Flesch Reading Ease 10, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/products — this page reads as very difficult (Flesch Reading Ease 9, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/quotes — this page reads as difficult (Flesch Reading Ease 42, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/shipping — this page reads as very difficult (Flesch Reading Ease 11, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/features/store-locations — this page reads as very difficult (Flesch Reading Ease 2, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/help-center — this page reads as very difficult (Flesch Reading Ease 21, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://www.toolswift.ca/pricing — this page reads as very difficult (Flesch Reading Ease 17, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
notice Image alt text is keyword-stuffed (repetition / low variety)
Rule images.alt_stuffed · Images · 3 occurrence(s)
- https://www.toolswift.ca/blogs/connect-shipstation-toolswift — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.
- https://www.toolswift.ca/features/policies — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.
- https://www.toolswift.ca/features/shipping — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.
notice Image alt text is very long (possible keyword stuffing)
Rule images.alt_too_long · Images · 7 occurrence(s)
- https://www.toolswift.ca/ — 1 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/blogs/connect-shipstation-toolswift — 2 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/features/marketing — 2 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/features/policies — 3 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/features/products — 2 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/features/shipping — 1 image(s) with alt text over 100 chars — shorten it to a concise description
- https://www.toolswift.ca/features/store-locations — 3 image(s) with alt text over 100 chars — shorten it to a concise description
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 6 occurrence(s)
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay — the likely hero/LCP image (orangelogo.7904e568.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://www.toolswift.ca/blogs/xrjqymdugra3qo4bmgldb7gy — the likely hero/LCP image (orangelogo.7904e568.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://www.toolswift.ca/features/ai-powered — the likely hero/LCP image (1.157be0aa.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://www.toolswift.ca/features/product-catalog — the likely hero/LCP image (1.4428d501.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://www.toolswift.ca/pricing — the likely hero/LCP image (orangelogo.7904e568.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
- https://www.toolswift.ca/privacy-policy — the likely hero/LCP image (orangelogo.7904e568.svg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
notice Images without width/height (layout shift / CLS)
Rule images.missing_dimensions · Images · 36 occurrence(s)
- https://www.toolswift.ca/ — 2 of 43 images without width/height
- https://www.toolswift.ca/blogs — 2 of 22 images without width/height
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — 2 of 11 images without width/height
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — 2 of 13 images without width/height
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — 2 of 11 images without width/height
- https://www.toolswift.ca/contact — 3 of 10 images without width/height
- https://www.toolswift.ca/features/ai-powered — 2 of 16 images without width/height
- https://www.toolswift.ca/features/analytics — 2 of 16 images without width/height
- https://www.toolswift.ca/features/customers — 2 of 12 images without width/height
- https://www.toolswift.ca/features/dashboard — 2 of 12 images without width/height
- https://www.toolswift.ca/features/integrations — 2 of 16 images without width/height
- https://www.toolswift.ca/features/marketing — 2 of 12 images without width/height
- https://www.toolswift.ca/features/messages — 2 of 12 images without width/height
- https://www.toolswift.ca/features/orders — 2 of 12 images without width/height
- https://www.toolswift.ca/features/payments — 2 of 14 images without width/height
- https://www.toolswift.ca/features/policies — 2 of 13 images without width/height
- https://www.toolswift.ca/features/pro-account — 2 of 20 images without width/height
- https://www.toolswift.ca/features/product-catalog — 2 of 13 images without width/height
- https://www.toolswift.ca/features/products — 2 of 18 images without width/height
- https://www.toolswift.ca/features/quotes — 2 of 15 images without width/height
- https://www.toolswift.ca/features/shipping — 2 of 12 images without width/height
- https://www.toolswift.ca/features/store-locations — 2 of 12 images without width/height
- https://www.toolswift.ca/help-center — 3 of 10 images without width/height
- https://www.toolswift.ca/pricing — 2 of 9 images without width/height
- https://www.toolswift.ca/privacy-policy — 2 of 9 images without width/height
notice Internal link has no anchor text / accessible name
Rule links.no_anchor_text · Links · 1 occurrence(s)
- https://www.toolswift.ca/ — 3 internal link(s) have no anchor text, aria-label, or image alt — they pass no keyword signal and are unusable to screen readers. Add descriptive text or an aria-label.
notice Page has only one internal inlink (fragile crawl path)
Rule links.single_inlink · Links · 13 occurrence(s)
- https://www.toolswift.ca/blogs/ai-transforming-b2b-ecommerce — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/connect-shipstation-toolswift — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-configure-smtp-in-toolswift-for-email-notifications — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-customize-automated-email-templates-in-toolswift — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-stripe — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-integrate-versa-pay-payment-with-toolswift-for-b2-b-e-commerce — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/how-to-sync-toolswift-products-to-google-merchant-center — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://www.toolswift.ca/blogs/toolswift-customer-dashboard-complete-guide-2026 — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
notice Legacy <meta name=keywords> tag present (Google ignores it)
Rule meta.keywords_present · Content · 36 occurrence(s)
- https://www.toolswift.ca/ — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/blogs — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/contact — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/ai-powered — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/analytics — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/customers — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/dashboard — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/integrations — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/marketing — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/messages — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/orders — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/payments — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/policies — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/pro-account — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/product-catalog — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/products — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/quotes — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/shipping — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/features/store-locations — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/help-center — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/pricing — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://www.toolswift.ca/privacy-policy — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 14 occurrence(s)
- https://www.toolswift.ca/blogs/ai-transforming-b2b-ecommerce — 712 chars
- https://www.toolswift.ca/blogs/connect-shipstation-toolswift — 449 chars
- https://www.toolswift.ca/blogs/how-to-configure-smtp-in-toolswift-for-email-notifications — 409 chars
- https://www.toolswift.ca/blogs/how-to-customize-automated-email-templates-in-toolswift — 584 chars
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-stripe — 411 chars
- https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay — 426 chars
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — 409 chars
- https://www.toolswift.ca/blogs/how-to-integrate-versa-pay-payment-with-toolswift-for-b2-b-e-commerce — 438 chars
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center — 307 chars
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — 778 chars
- https://www.toolswift.ca/blogs/how-to-sync-toolswift-products-to-google-merchant-center — 646 chars
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — 405 chars
- https://www.toolswift.ca/blogs/toolswift-customer-dashboard-complete-guide-2026 — 247 chars
- https://www.toolswift.ca/privacy-policy — 188 chars
notice Missing Open Graph tags
Rule og.missing · Social · 13 occurrence(s)
- https://www.toolswift.ca/blogs — og:image
- https://www.toolswift.ca/features/ai-powered — og:image
- https://www.toolswift.ca/features/analytics — og:image
- https://www.toolswift.ca/features/customers — og:image
- https://www.toolswift.ca/features/dashboard — og:image
- https://www.toolswift.ca/features/marketing — og:image
- https://www.toolswift.ca/features/messages — og:image
- https://www.toolswift.ca/features/orders — og:image
- https://www.toolswift.ca/features/policies — og:image
- https://www.toolswift.ca/features/pro-account — og:image
- https://www.toolswift.ca/features/product-catalog — og:image
- https://www.toolswift.ca/features/store-locations — og:image
- https://www.toolswift.ca/help-center — og:image
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 1 occurrence(s)
- https://www.toolswift.ca/blogs — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
notice No Last-Modified header (no conditional GET for unchanged pages)
Rule perf.no_last_modified · Performance · 36 occurrence(s)
- https://www.toolswift.ca/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/blogs — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/contact — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/ai-powered — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/analytics — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/customers — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/dashboard — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/integrations — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/marketing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/messages — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/orders — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/payments — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/policies — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/pro-account — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/product-catalog — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/products — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/quotes — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/shipping — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/features/store-locations — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/help-center — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/pricing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://www.toolswift.ca/privacy-policy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
notice Blocked by robots.txt
Rule robots.blocked · Crawlability · 1 occurrence(s)
- https://www.toolswift.ca/customer-portal — Disallowed by robots.txt; not fetched
notice FAQPage structured data (rich result removed May 2026)
Rule schema.faq_deprecated · Structured Data · 1 occurrence(s)
- https://www.toolswift.ca/ — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
notice No structured data detected
Rule schema.none · Structured Data · 34 occurrence(s)
- https://www.toolswift.ca/blogs
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce
- https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore
- https://www.toolswift.ca/contact
- https://www.toolswift.ca/features/ai-powered
- https://www.toolswift.ca/features/analytics
- https://www.toolswift.ca/features/customers
- https://www.toolswift.ca/features/dashboard
- https://www.toolswift.ca/features/integrations
- https://www.toolswift.ca/features/marketing
- https://www.toolswift.ca/features/messages
- https://www.toolswift.ca/features/orders
- https://www.toolswift.ca/features/payments
- https://www.toolswift.ca/features/policies
- https://www.toolswift.ca/features/pro-account
- https://www.toolswift.ca/features/product-catalog
- https://www.toolswift.ca/features/products
- https://www.toolswift.ca/features/quotes
- https://www.toolswift.ca/features/shipping
- https://www.toolswift.ca/features/store-locations
- https://www.toolswift.ca/help-center
- https://www.toolswift.ca/pricing
- https://www.toolswift.ca/privacy-policy
notice Missing recommended security headers
Rule security.missing_headers · Security · 36 occurrence(s)
- https://www.toolswift.ca/ — CSP, X-Content-Type-Options
- https://www.toolswift.ca/blogs — CSP, X-Content-Type-Options
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — CSP, X-Content-Type-Options
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — X-Content-Type-Options, CSP
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — CSP, X-Content-Type-Options
- https://www.toolswift.ca/contact — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/ai-powered — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/analytics — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/customers — X-Content-Type-Options, CSP
- https://www.toolswift.ca/features/dashboard — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/integrations — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/marketing — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/messages — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/orders — X-Content-Type-Options, CSP
- https://www.toolswift.ca/features/payments — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/policies — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/pro-account — X-Content-Type-Options, CSP
- https://www.toolswift.ca/features/product-catalog — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/products — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/quotes — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/shipping — CSP, X-Content-Type-Options
- https://www.toolswift.ca/features/store-locations — CSP, X-Content-Type-Options
- https://www.toolswift.ca/help-center — CSP, X-Content-Type-Options
- https://www.toolswift.ca/pricing — CSP, X-Content-Type-Options
- https://www.toolswift.ca/privacy-policy — CSP, X-Content-Type-Options
notice target=_blank link without rel=noopener (tab-napping)
Rule security.unsafe_cross_origin_links · Security · 36 occurrence(s)
- https://www.toolswift.ca/ — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/blogs — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/contact — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/ai-powered — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/analytics — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/customers — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/dashboard — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/integrations — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/marketing — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/messages — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/orders — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/payments — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/policies — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/pro-account — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/product-catalog — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/products — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/quotes — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/shipping — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/features/store-locations — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/help-center — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/pricing — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
- https://www.toolswift.ca/privacy-policy — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://www.toolswift.ca/ ToolSwift | DTC & B2B eCommerce Platform for Building Suppliers |
200 | yes | 945 | 36 |
| https://www.toolswift.ca/blogs Blog | ToolSwift |
200 | yes | 1366 | 36 |
| https://www.toolswift.ca/contact Contact Us | ToolSwift |
200 | yes | 191 | 36 |
| https://www.toolswift.ca/features/analytics Analytics & Reporting | ToolSwift |
200 | yes | 430 | 36 |
| https://www.toolswift.ca/features/customers Customer Accounts | ToolSwift |
200 | yes | 215 | 36 |
| https://www.toolswift.ca/features/dashboard B2B Dashboard | ToolSwift |
200 | yes | 218 | 36 |
| https://www.toolswift.ca/features/integrations Integrations | ToolSwift |
200 | yes | 246 | 36 |
| https://www.toolswift.ca/features/marketing Marketing Campaigns | ToolSwift |
200 | yes | 227 | 36 |
| https://www.toolswift.ca/features/messages B2B Messaging | ToolSwift |
200 | yes | 180 | 36 |
| https://www.toolswift.ca/features/orders Order Management | ToolSwift |
200 | yes | 234 | 36 |
| https://www.toolswift.ca/features/payments B2B Payments | ToolSwift |
200 | yes | 288 | 36 |
| https://www.toolswift.ca/features/policies Policies & Permissions | ToolSwift |
200 | yes | 266 | 36 |
| https://www.toolswift.ca/features/products Product Management | ToolSwift |
200 | yes | 337 | 36 |
| https://www.toolswift.ca/features/quotes B2B Quotes | ToolSwift |
200 | yes | 280 | 36 |
| https://www.toolswift.ca/features/shipping Shipping Automation | ToolSwift |
200 | yes | 212 | 36 |
| https://www.toolswift.ca/features/store-locations Store Locations | ToolSwift |
200 | yes | 222 | 36 |
| https://www.toolswift.ca/help-center Help Center | ToolSwift |
200 | yes | 178 | 36 |
| https://www.toolswift.ca/privacy-policy ToolSwift | B2B eCommerce Platform for Distributors & Building Suppliers |
200 | yes | 1300 | 36 |
| https://www.toolswift.ca/blogs/ai-transforming-b2b-ecommerce How AI is Transforming B2B eCommerce Operations | ToolSwift |
200 | yes | 1186 | 1 |
| https://www.toolswift.ca/blogs/connect-shipstation-toolswift How to Connect ShipStation to ToolSwift in Minutes (No Developer Needed) | ToolSwift |
200 | yes | 1162 | 1 |
| https://www.toolswift.ca/blogs/how-to-configure-smtp-in-toolswift-for-email-notifications How to Configure SMTP in ToolSwift for Email Notifications | ToolSwift |
200 | yes | 687 | 1 |
| https://www.toolswift.ca/blogs/how-to-customize-automated-email-templates-in-toolswift How to Customize Automated Email Templates in ToolSwift | ToolSwift |
200 | yes | 995 | 1 |
| https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-stripe How to Enable Apple Pay and Google Pay on ToolSwift Using Stripe | ToolSwift |
200 | yes | 625 | 1 |
| https://www.toolswift.ca/blogs/how-to-enable-apple-pay-and-google-pay-on-toolswift-using-versapay How to Enable Apple Pay and Google Pay on ToolSwift Using Versapay | ToolSwift |
200 | yes | 570 | 1 |
| https://www.toolswift.ca/blogs/how-to-integrate-stripe-payment-with-tool-swift-for-b2-b-e-commerce How to Integrate Stripe Payment with ToolSwift for B2B eCommerce | ToolSwift |
200 | yes | 908 | 1 |
| https://www.toolswift.ca/blogs/how-to-integrate-versa-pay-payment-with-toolswift-for-b2-b-e-commerce How to Integrate VersaPay Payment with ToolSwift for B2B eCommerce | ToolSwift |
200 | yes | 965 | 1 |
| https://www.toolswift.ca/blogs/how-to-integrate-your-e-commerce-website-with-google-merchant-center How to Integrate Your eCommerce Website with Google Merchant Center | ToolSwift |
200 | yes | 1483 | 1 |
| https://www.toolswift.ca/blogs/how-to-integrate-your-website-with-google-merchant-center-for-b2-b-e-commerce How to Integrate Your Website with Google Merchant Center for B2B eCommerce | ToolSwift |
200 | yes | 1441 | 1 |
| https://www.toolswift.ca/blogs/how-to-sync-toolswift-products-to-google-merchant-center How to Sync ToolSwift Products to Google Merchant Center | ToolSwift |
200 | yes | 763 | 1 |
| https://www.toolswift.ca/blogs/lumber-yard-crm-why-it-s-not-enough-anymore Lumber Yard CRM: Why It’s Not Enough Anymore | ToolSwift |
200 | yes | 798 | 1 |
| https://www.toolswift.ca/blogs/toolswift-customer-dashboard-complete-guide-2026 ToolSwift Customer Dashboard: Complete Guide (2026) | ToolSwift |
200 | yes | 1098 | 1 |
| https://www.toolswift.ca/blogs/xrjqymdugra3qo4bmgldb7gy Blog post not found | ToolSwift |
200 | no | 129 | 1 |
| https://www.toolswift.ca/features/ai-powered AI-Powered eCommerce | ToolSwift |
200 | yes | 367 | 0 |
| https://www.toolswift.ca/features/pro-account Pro Accounts | ToolSwift |
200 | yes | 339 | 0 |
| https://www.toolswift.ca/features/product-catalog Product Catalog | ToolSwift |
200 | yes | 238 | 0 |
| https://www.toolswift.ca/pricing Pricing | ToolSwift |
200 | yes | 210 | 0 |
| https://www.toolswift.ca/customer-portal | 0 | no | 0 | 36 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.