SEO
· 14 checks — Canonical, meta, content depth, internal links, image SEO, and hreflang rolled into one auditable list.Cross-tab audit — SEO, performance, crawlability, mobile, structured data
FContent DepthAction252 words, EasyFIX
Thin content
Reading level
Grade 8
Text-to-HTML Ratio
2 KB / 50 KB
Most well-ranking pages have 300+ words of substantive content.
Thin content (<300 words) rarely ranks — Google quality guidelines explicitly call out thin pages.
Source: Google Search Quality Guidelines
Very low ratio suggests heavy framework overhead or boilerplate.
Informational: ratio of visible text bytes to total HTML bytes. Very low ratios suggest excessive markup overhead.
BCanonical URLMinor issuesREVIEW
Search engines will determine the canonical URL themselves, which may cause duplicate content issues.
Without a canonical, Google may treat each URL variant (with/without slash, with tracking params, http/https) as duplicate content and split ranking.
Learn more ▾ ▴
A canonical link tells Google which URL is the 'real' one when multiple URLs serve identical content. Without it, link equity gets split across variants and none of them rank as well as a single canonical version would. One <link rel="canonical"> tag in <head> covers it.
Source: Google Search Central
BImage SEO76 images, 4 descriptive filenamesREVIEW
| Filename | Quality | Alt | Issues |
|---|---|---|---|
| 3955 | generic | ✓ | 1 |
Current: 3955 Suggested: image.jpg | |||
| 41862 | generic | ✓ | 1 |
Current: 41862 Suggested: image.jpg | |||
| 105842 | generic | ✓ | 1 |
Current: 105842 Suggested: image.jpg | |||
| 105845 | generic | ✓ | 1 |
Current: 105845 Suggested: image.jpg | |||
| 3976 | generic | ✓ | 1 |
Current: 3976 Suggested: image.jpg | |||
| 71090 | generic | ✓ | 1 |
Current: 71090 Suggested: image.jpg | |||
| 3974 | generic | ✓ | 1 |
Current: 3974 Suggested: image.jpg | |||
| 53114 | generic | ✓ | 1 |
Current: 53114 Suggested: image.jpg | |||
| 79489 | generic | ✓ | 1 |
Current: 79489 Suggested: image.jpg | |||
| 79490 | generic | ✓ | 1 |
Current: 79490 Suggested: image.jpg | |||
| 79492 | generic | ✓ | 1 |
Current: 79492 Suggested: image.jpg | |||
| 71442 | generic | ✓ | 1 |
Current: 71442 Suggested: image.jpg | |||
| 3964 | generic | ✓ | 1 |
Current: 3964 Suggested: image.jpg | |||
| 144336 | generic | ✓ | 1 |
Current: 144336 Suggested: image.jpg | |||
| 3975 | generic | ✓ | 1 |
Current: 3975 Suggested: image.jpg | |||
| 3963 | generic | ✓ | 1 |
Current: 3963 Suggested: image.jpg | |||
| 71092 | generic | ✓ | 1 |
Current: 71092 Suggested: image.jpg | |||
| 3962 | generic | ✓ | 1 |
Current: 3962 Suggested: image.jpg | |||
| 164083 | generic | ✓ | 1 |
Current: 164083 Suggested: image.jpg | |||
| 79487 | generic | ✓ | 1 |
Current: 79487 Suggested: image.jpg | |||
| 79488 | generic | ✓ | 1 |
Current: 79488 Suggested: image.jpg | |||
| 3972 | generic | ✓ | 1 |
Current: 3972 Suggested: image.jpg | |||
| 3959 | generic | ✓ | 1 |
Current: 3959 Suggested: image.jpg | |||
| 3961 | generic | ✓ | 1 |
Current: 3961 Suggested: image.jpg | |||
| 36559 | generic | ✓ | 1 |
Current: 36559 Suggested: image.jpg | |||
| 3956 | generic | ✓ | 1 |
Current: 3956 Suggested: image.jpg | |||
| 3968 | generic | ✓ | 1 |
Current: 3968 Suggested: image.jpg | |||
| 3969 | generic | ✓ | 1 |
Current: 3969 Suggested: image.jpg | |||
| 3970 | generic | ✓ | 1 |
Current: 3970 Suggested: image.jpg | |||
| 79491 | generic | ✓ | 1 |
Current: 79491 Suggested: image.jpg | |||
| 144331 | generic | ✓ | 1 |
Current: 144331 Suggested: image.jpg | |||
| 144339 | generic | ✓ | 1 |
Current: 144339 Suggested: image.jpg | |||
| 144338 | generic | ✓ | 1 |
Current: 144338 Suggested: image.jpg | |||
| 144335 | generic | ✓ | 1 |
Current: 144335 Suggested: image.jpg | |||
| 144333 | generic | ✓ | 1 |
Current: 144333 Suggested: image.jpg | |||
| 3733 | generic | ✓ | 1 |
Current: 3733 Suggested: image.jpg | |||
| 3696 | generic | ✓ | 1 |
Current: 3696 Suggested: image.jpg | |||
| 3697 | generic | ✓ | 1 |
Current: 3697 Suggested: image.jpg | |||
| 3698 | generic | ✓ | 1 |
Current: 3698 Suggested: image.jpg | |||
| 3699 | generic | ✓ | 1 |
Current: 3699 Suggested: image.jpg | |||
| 3700 | generic | ✓ | 1 |
Current: 3700 Suggested: image.jpg | |||
| 3701 | generic | ✓ | 1 |
Current: 3701 Suggested: image.jpg | |||
| 3702 | generic | ✓ | 1 |
Current: 3702 Suggested: image.jpg | |||
| 3729 | generic | ✓ | 1 |
Current: 3729 Suggested: image.jpg | |||
| 3704 | generic | ✓ | 1 |
Current: 3704 Suggested: image.jpg | |||
| 3705 | generic | ✓ | 1 |
Current: 3705 Suggested: image.jpg | |||
| 3706 | generic | ✓ | 1 |
Current: 3706 Suggested: image.jpg | |||
| 3707 | generic | ✓ | 1 |
Current: 3707 Suggested: image.jpg | |||
| 3708 | generic | ✓ | 1 |
Current: 3708 Suggested: image.jpg | |||
| 3709 | generic | ✓ | 1 |
Current: 3709 Suggested: image.jpg | |||
| 3710 | generic | ✓ | 1 |
Current: 3710 Suggested: image.jpg | |||
| 3711 | generic | ✓ | 1 |
Current: 3711 Suggested: image.jpg | |||
| 3712 | generic | ✓ | 1 |
Current: 3712 Suggested: image.jpg | |||
| 3713 | generic | ✓ | 1 |
Current: 3713 Suggested: image.jpg | |||
| 3714 | generic | ✓ | 1 |
Current: 3714 Suggested: image.jpg | |||
| 3715 | generic | ✓ | 1 |
Current: 3715 Suggested: image.jpg | |||
| 3716 | generic | ✓ | 1 |
Current: 3716 Suggested: image.jpg | |||
| 3717 | generic | ✓ | 1 |
Current: 3717 Suggested: image.jpg | |||
| 3718 | generic | ✓ | 1 |
Current: 3718 Suggested: image.jpg | |||
| 3734 | generic | ✓ | 1 |
Current: 3734 Suggested: image.jpg | |||
| 3719 | generic | ✓ | 1 |
Current: 3719 Suggested: image.jpg | |||
| 3720 | generic | ✓ | 1 |
Current: 3720 Suggested: image.jpg | |||
| 3721 | generic | ✓ | 1 |
Current: 3721 Suggested: image.jpg | |||
| 3730 | generic | ✓ | 1 |
Current: 3730 Suggested: image.jpg | |||
| 3723 | generic | ✓ | 1 |
Current: 3723 Suggested: image.jpg | |||
| 3724 | generic | ✓ | 1 |
Current: 3724 Suggested: image.jpg | |||
| 3725 | generic | ✓ | 1 |
Current: 3725 Suggested: image.jpg | |||
| 3726 | generic | ✓ | 1 |
Current: 3726 Suggested: image.jpg | |||
| 3727 | generic | ✓ | 1 |
Current: 3727 Suggested: image.jpg | |||
| 3728 | generic | ✓ | 1 |
Current: 3728 Suggested: image.jpg | |||
| 3735 | generic | ✓ | 1 |
Current: 3735 Suggested: image.jpg | |||
| 3737 | generic | ✓ | 1 |
Current: 3737 Suggested: image.jpg | |||
See Accessibility tab for detailed alt text quality analysis.
Search engines use filenames as a signal. Rename to descriptive names like 'team-photo.jpg'.
Most image filenames are non-descriptive (hash/IMG_X) — small SEO miss for Image Search ranking.
Source: Google Image SEO
AMeta TagsTitle optimizedPASS
"OfficeOx - 辦公室用品供應 Office Supplies"
Without a meta description, Google auto-generates a snippet from page content -- usually less click-attractive than a hand-written summary. Add `<meta name="description" content="...">` with a 70-160 char summary.
No meta description -- Google auto-generates a SERP snippet from page content, usually less click-attractive than a hand-written summary.
Learn more ▾ ▴
Meta description is shown as the snippet under the title in search results. A well-written description significantly improves click-through rate. Add `<meta name="description" content="...">` with a 70-160 character summary.
Source: Google Search Central
Consider differentiating — the title is for search results, the H1 is for the page.
Title and H1 match exactly — internally consistent but misses an opportunity to optimize each for its audience (Title for SERP CTR, H1 for on-page).
Learn more ▾ ▴
Title and H1 don't have to be identical — and often shouldn't be. The Title competes for SERP click-through (lead with keyword + value prop), while the H1 confirms to the visitor they're on the right page (more conversational is fine). Differentiating gains both surfaces.
Source: Google Search Central / on-page SEO
A+Title Style DepthTitle style is clean -- consistent separator, no stale year, no keyword stuffingPASS
A+Internal Links23 internal, 71 externalPASS
Link Distribution
Anchor Text Quality
Most Linked Internal Pages
| # | URL | Links |
|---|---|---|
| 1 | /page/stamp | 4 |
| 2 | / | 3 |
| 3 | /livechat/ | 3 |
| 4 | /blog/1 | 2 |
| 5 | /shop | 2 |
| 6 | /shop/category/93 | 1 |
| 7 | /page/shipping | 1 |
| 8 | /page/post-sales-support | 1 |
| 9 | /page/website.contactus | 1 |
| 10 | mailto:?body=https%3A%2F%2Fwww.officeox.com%2F&subject=OfficeOx%20-%20%E8%BE%A6%E5%85%AC%E5%AE%A4%E7%94%A8%E5%93%81%E4%BE%9B%E6%87%89%20Office%20Supplies | 1 |
Top External Domains
| Domain | Links |
|---|---|
| www.officeox.com | 65 |
| twitter.com | 2 |
| www.linkedin.com | 1 |
| plus.google.com | 1 |
| facebook.com | 1 |
| www.facebook.com | 1 |
A+Hreflang URL QualityNo hreflang tags on the pagePASS
A+Hreflang CompletenessNo hreflang tags on this page -- check is N/A (single-language site or unannotated)PASS
A+Sitemap FreshnessSitemap updated within 90 days (114/2620 URLs have lastmod)PASS
A+Sitemap × Robots ConsistencyNo sitemap-vs-robots conflicts detectedPASS
A+Sitemap HygieneSitemap structure / size look healthy (2620 URLs, 254 KB)PASS
AMarkup Quality1 markup-quality issue(s) detectedPASS
A+Schema Markup AuditPer-type completeness vs Schema.org requirements + rich-result eligibilityPASS
No structured data detected
Without JSON-LD or microdata, this page can't qualify for any of Google's rich result formats. Even basic Organization or WebSite schema is a quick win.
Hreflang0 hreflang tagsINFO
No hreflang tags detected.
Hreflang tags are only needed for multilingual or multi-regional sites.