SEO Audit
83
Overall score

https://drgargis.com/blog/is-laser-hair-removal-painful/

Audit #798 · started 4 months ago · 38.78 s · triggered by site_audit
✓ 48 pass ! 14 warn ✗ 5 fail · 74 total checks
meta
100
headings
90
schema
90
technical
95
sitemap
100
ssl security
100
page speed
53
links
88
images
90
content
55
mobile
100
hreflang
100
geo
50
spam security
—
domain security
—
⚠️
19 issues need attention
Open the for prioritised, copy-paste-ready fixes with location and AI-personalised suggestions.

Fix progress

0 of 19 issues fixed · Est. time left: 14h 15m
0%
Severity: | Showing / 19 | PDF CSV
High page speed Fail priority 83/100 −70 pts Medium · ~45m

Largest Contentful Paint

Poor: 5.25s.

Generic best practice

Largest Contentful Paint should load within 2.5s. Optimise the largest above-the-fold element: compress hero images, preload critical assets, and eliminate render-blocking resources.

Code fix
Before:
<img src="hero.jpg">
After:
<link rel="preload" as="image" href="hero.webp">
<img src="hero.webp" fetchpriority="high" width="1200" height="600" alt="...">
AI suggestion (context-aware)
Generating personalised suggestion…
High page speed Fail priority 78/100 −70 pts Easy · ~15m

Cumulative Layout Shift

Poor: 0.521.

Generic best practice

Cumulative Layout Shift should be under 0.1. Set explicit width/height on images, reserve space for embeds and ads, and avoid late-loading fonts that re-flow text.

Code fix
Before:
<img src="photo.jpg">
After:
<img src="photo.jpg" width="800" height="600" alt="...">
AI suggestion (context-aware)
Generating personalised suggestion…
High page speed Fail priority 74/100 −69 pts Medium · ~45m

PageSpeed performance score

Score 31/100 — poor.

Generic best practice

Open Lighthouse in Chrome DevTools or PageSpeed Insights — the report lists specific opportunities ranked by impact.

AI suggestion (context-aware)
Generating personalised suggestion…
High page speed Fail priority 74/100 −70 pts Medium · ~45m

First Contentful Paint

Poor: 3.93s.

Generic best practice

First Contentful Paint should be under 1.8s. Inline critical CSS, defer non-critical CSS/JS, and use a CDN.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium content Warning priority 62/100 −50 pts Medium · ~45m

E-E-A-T: Expertise

Moderate:

Generic best practice

Show expertise: author bio with credentials, citations to reputable sources, in-depth coverage of the topic, technical accuracy.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium content Warning priority 62/100 −50 pts Medium · ~45m

E-E-A-T: Trustworthiness

Moderate:

Generic best practice

Add trust signals: clear contact info, privacy policy, terms of service, customer reviews, security badges, real photos of team/location.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium page speed Warning priority 59/100 −50 pts Easy · ~15m

Compression enabled

No gzip/brotli content-encoding header.

Generic best practice

Enable gzip or Brotli compression on your server. Typically cuts text payload by 70-80% — easy LCP win.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium content Warning priority 58/100 −50 pts Hard · ~120m

E-E-A-T: Experience

Moderate:

Generic best practice

Demonstrate first-hand experience: original photos, personal anecdotes, before/after results, screenshots from the actual product/service.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium content Warning priority 58/100 −50 pts Hard · ~120m

E-E-A-T: Authoritativeness

Moderate:

Generic best practice

Build authoritativeness: links from respected sites in your niche, mentions in industry publications, About page detailing your expertise.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium headings Warning priority 54/100 −50 pts Easy · ~15m

Single H1 tag

Found 2 H1 tags — best practice is exactly one.

Location in HTML
Line 676 · #header-wrapper > section.main-title-section-wrapper > div.main-title-section-container > div.contai...
   675          <div class="container">
>  676              <div class="breadcrumb"><a href="https://drgargis.com/">Home</a><span class="breadcrumb-default-delimiter"></span><a href="https://drgargis.com/blog/category/laser-hair-removal/">Laser Hair Removal</a><span class="breadcrumb-def…
   677          </div>
Generic best practice

Use exactly one <h1> per page. Multiple H1s confuse search engines about the main topic. Demote secondary H1s to H2.

Code fix
Before:
<h1>Main Title</h1>
<h1>Secondary Title</h1>
After:
<h1>Main Title</h1>
<h2>Secondary Title</h2>
AI suggestion (context-aware)
Generating personalised suggestion…
Medium links Warning priority 53/100 −50 pts Easy · ~15m

External links safe

1 external _blank links missing rel=noopener.

Generic best practice

Add rel="noopener noreferrer" to target="_blank" links. Without noopener, the linked page can manipulate your window object — security + perf risk.

Code fix
Before:
<a href="https://other.com" target="_blank">External</a>
After:
<a href="https://other.com" target="_blank" rel="noopener noreferrer">External</a>
AI suggestion (context-aware)
Generating personalised suggestion…
Medium content Fail priority 53/100 −70 pts Medium · ~45m

Readable prose

Flesch reading ease 2.7 — very difficult.

Generic best practice

Simplify your prose. Shorter sentences (15-20 words), smaller words (1-2 syllables), more paragraph breaks. Target 8th-grade reading level for a general audience.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium geo Warning priority 48/100 −50 pts Medium · ~45m

Content provides clear answers

Moderate (5/10).

Generic best practice

Lead each section with a direct, citable answer to the question users would ask. AI engines (ChatGPT, Perplexity) cite the clearest, most specific sentences.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium geo Warning priority 48/100 −50 pts Medium · ~45m

High factual density

Moderate (5/10).

Generic best practice

Add concrete facts — numbers, dates, percentages, named sources. Vague prose doesn't get cited; specific data does.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium geo Warning priority 48/100 −50 pts Medium · ~45m

Structured for AI extraction

Moderate (5/10).

Generic best practice

Add bulleted lists, sub-headings, definitions, and TL;DR sections. AI engines prefer clearly structured content for extraction.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium geo Warning priority 48/100 −50 pts Medium · ~45m

Cites authoritative sources

Moderate (5/10).

Generic best practice

Cite authoritative external sources (links, references). Pages that cite reputable sources are themselves cited more often.

AI suggestion (context-aware)
Generating personalised suggestion…
Medium schema Warning priority 47/100 −50 pts Easy · ~15m

No restricted schema types

Restricted types in use: FAQPage.

Generic best practice

Restricted schema types (e.g., FAQPage) are now reserved for government/health sites. Using them on other sites does nothing useful and may flag as spam.

AI suggestion (context-aware)
Generating personalised suggestion…
Low technical Warning priority 52/100 −40 pts Medium · ~45m

Response time acceptable

Fetched in 1201 ms — acceptable but slow.

Generic best practice

Server is slow. Investigate: enable a CDN, add page caching, optimise database queries, upgrade hosting. TTFB > 800ms hurts every Core Web Vital.

AI suggestion (context-aware)
Generating personalised suggestion…
Low images Warning priority 49/100 −40 pts Medium · ~45m

Modern image formats

4/5 images use modern formats.

Generic best practice

Convert images to WebP or AVIF — typically 25-50% smaller than JPEG/PNG with no visible quality loss. Use <picture> for fallback.

Code fix
Before:
<img src="photo.jpg">
After:
<picture>
  <source type="image/avif" srcset="photo.avif">
  <source type="image/webp" srcset="photo.webp">
  <img src="photo.jpg" alt="...">
</picture>
AI suggestion (context-aware)
Generating personalised suggestion…
Pass Title tag present
title_present
Title tag found.
Actual: Is Laser Hair Removal Painful? Expert Guide by Dermatologist
Pass Title length
title_length
Title length 60 chars — within recommended range.
Actual: 60 chars
Pass Title is descriptive
title_unique_words
9 words — descriptive enough.
Pass Meta description present
meta_description_present
Meta description present.
Actual: Wondering if laser hair removal is painful? Learn about pain levels, sensations,...
Pass Meta description length
meta_description_length
Description 144 chars — within range.
Actual: 144 chars
Pass OpenGraph title present
og_title_present
Og title present present.
Actual: Is Laser Hair Removal Painful? Expert Guide by Dermatologist
Pass OpenGraph description present
og_description_present
Og description present present.
Actual: Wondering if laser hair removal is painful? Learn about pain levels, sensations,...
Pass OpenGraph image present
og_image_present
Og image present present.
Actual: https://drgargis.com/wp-content/uploads/2026/01/Dr-Gargi_1-1024x683.webp
Pass Twitter card present
twitter_card_present
Twitter card present present.
Actual: summary_large_image
Pass Viewport meta tag present
meta_viewport_present
Viewport meta tag present.
Actual: width=device-width, initial-scale=1
Pass Charset meta tag present
meta_charset_present
Charset declared.
Pass H1 tag present
h1_present
Found 2 H1.
Actual: 2 H1
Warning Single H1 tag
h1_count
Found 2 H1 tags — best practice is exactly one.
Fix: Reduce to a single H1 per page; demote secondary H1s to H2.
Actual: 2
Expected: 1
Pass H1 has reasonable length
h1_length
H1 length 30 chars.
Actual: 30 chars
Pass Sufficient H2 tags
h2_count
9 H2 tags — good content structure.
Actual: 9
Pass Heading hierarchy
heading_hierarchy
Heading levels descend logically.
Actual: 1 skips
Pass JSON-LD structured data present
schema_json_ld_present
2 JSON-LD blocks present.
Actual: 2 scripts
Pass JSON-LD is valid JSON
schema_valid_json
All JSON-LD blocks parse cleanly.
Pass Recommended schema types used
schema_recommended_types
Recommended schema types found.
Actual: Organization, WebSite
Pass No deprecated schema types
schema_no_deprecated
No deprecated schema types.
Warning No restricted schema types
schema_no_restricted
Restricted types in use: FAQPage.
Fix: FAQPage now restricted to government/health sites.
Actual: FAQPage
Info Microdata or RDFa present
schema_microdata_present
No microdata. JSON-LD is preferred — this is informational only.
Actual: 0
Pass Canonical URL present
canonical_present
Canonical link found.
Actual: https://drgargis.com/blog/is-laser-hair-removal-painful/
Pass Canonical self-references
canonical_self_referencing
Canonical points to this page.
Actual: https://drgargis.com/blog/is-laser-hair-removal-painful/
Pass Page is indexable
robots_meta_indexable
No noindex directive.
Actual: index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large
Pass HTML lang attribute
lang_attribute_present
<html lang="en-US"> declared.
Actual: en-US
Pass HTML5 doctype
doctype_html5
HTML5 doctype declared.
Pass Favicon present
favicon_present
Favicon declared.
Pass HTTP status 2xx
http_status_ok
Server returned 200.
Actual: 200
Warning Response time acceptable
response_time_ok
Fetched in 1201 ms — acceptable but slow.
Fix: Aim for under 800 ms TTFB.
Actual: 1201 ms
Expected: < 800 ms
Pass robots.txt accessible
robots_txt_found
robots.txt found.
Pass robots.txt does not block
robots_txt_no_block
robots.txt does not block this page.
Pass sitemap.xml accessible
sitemap_xml_found
Sitemap found at https://drgargis.com/sitemap_index.xml.
Actual: https://drgargis.com/sitemap_index.xml
Pass Sitemap referenced
sitemap_referenced
Sitemap referenced from robots.txt.
Pass Page served over HTTPS
ssl_https
Served over HTTPS.
Actual: https
Pass TLS handshake succeeds
ssl_valid
TLS handshake succeeded.
Actual: drgargis.com
Pass HTTP redirects to HTTPS
http_redirects_to_https
HTTP requests redirect to HTTPS.
Pass HSTS header present
hsts_header_present
strict-transport-security header present.
Actual: max-age=31536000; includeSubDomains
Pass CSP header present
csp_header_present
content-security-policy header present.
Actual: upgrade-insecure-requests
Pass X-Content-Type-Options
x_content_type_options
x-content-type-options header present.
Actual: nosniff
Fail PageSpeed performance score
pagespeed_score
Score 31/100 — poor.
Fix: Major performance work required.
Actual: 31/100
Expected: ≥ 80
Fail Largest Contentful Paint
lcp_within_threshold
Poor: 5.25s.
Fix: Improve to ≤ 2.5s.
Actual: 5.25s
Expected: ≤ 2.5s
Fail Cumulative Layout Shift
cls_within_threshold
Poor: 0.521.
Fix: Improve to ≤ 0.1.
Actual: 0.521
Expected: ≤ 0.1
Fail First Contentful Paint
fcp_within_threshold
Poor: 3.93s.
Fix: Improve to ≤ 1.8s.
Actual: 3.93s
Expected: ≤ 1.8s
Pass Time To First Byte
ttfb_within_threshold
Within good threshold (0.02s).
Actual: 0.02s
Info Interaction to Next Paint
inp_within_threshold
INP is a field-only metric — not measured here.
Actual: field-only
Pass Few render-blocking resources
render_blocking_resources
No render-blocking resources detected.
Warning Compression enabled
gzip_or_brotli
No gzip/brotli content-encoding header.
Fix: Enable gzip or Brotli on your server.
Pass Healthy internal link count
internal_link_count
73 unique internal links.
Actual: 73
Pass No broken internal links
no_broken_internal_links
All 10 sampled internal links return success.
Actual: 0/10
Warning External links safe
external_links_safe
1 external _blank links missing rel=noopener.
Fix: Add rel="noopener noreferrer" to target="_blank" links for security.
Actual: 1 unsafe
Pass Descriptive anchor text
descriptive_anchor_text
Anchor texts are descriptive.
Actual: 21/160 generic
Pass Images have alt text
images_alt_present
All 5 images have alt attribute (empty alt OK for decorative).
Actual: 0/5 missing
Pass Below-fold images lazy
images_lazy_loaded
2/5 images use loading="lazy".
Actual: 2 lazy
Warning Modern image formats
images_modern_formats
4/5 images use modern formats.
Fix: Convert remaining images to WebP or AVIF for smaller payload.
Pass Images have dimensions
images_have_dimensions
All images have width/height set.
Pass Sufficient word count
word_count
2603 words — substantive content.
Actual: 2603 words
Fail Readable prose
readability
Flesch reading ease 2.7 — very difficult.
Fix: Aggressively simplify prose for general audience.
Actual: 2.7
Expected: ≥ 60
Warning E-E-A-T: Experience
eeat_experience
Moderate:
Fix: Strengthen Experience signals on this page.
Actual: 5/10
Expected: ≥ 7
Warning E-E-A-T: Expertise
eeat_expertise
Moderate:
Fix: Strengthen Expertise signals on this page.
Actual: 5/10
Expected: ≥ 7
Warning E-E-A-T: Authoritativeness
eeat_authority
Moderate:
Fix: Strengthen Authoritativeness signals on this page.
Actual: 5/10
Expected: ≥ 7
Warning E-E-A-T: Trustworthiness
eeat_trust
Moderate:
Fix: Strengthen Trustworthiness signals on this page.
Actual: 5/10
Expected: ≥ 7
Pass Viewport set for mobile
mobile_viewport
Responsive viewport configured.
Actual: width=device-width, initial-scale=1
Pass Tap targets reasonable
mobile_tap_targets
No obvious tap-target sizing problems.
Info Legible font sizes
mobile_font_size
No inline body font-size — relying on stylesheet defaults.
Actual: unknown
Pass No Flash/legacy plugins
mobile_no_flash
No legacy plugin elements.
Info hreflang tags present (if i18n)
hreflang_present
No hreflang tags. OK for monolingual sites.
Actual: 0
Skipped hreflang codes valid
hreflang_valid_codes
No hreflang to evaluate.
Skipped hreflang self-reference
hreflang_self_ref
No hreflang to evaluate.
Skipped hreflang x-default present
hreflang_x_default
No hreflang to evaluate.
Warning Content provides clear answers
geo_clear_answers
Moderate (5/10).
Fix: Improve to lift this dimension.
Actual: 5/10
Expected: ≥ 7
Warning High factual density
geo_factual_density
Moderate (5/10).
Fix: Improve to lift this dimension.
Actual: 5/10
Expected: ≥ 7
Warning Structured for AI extraction
geo_structured_for_ai
Moderate (5/10).
Fix: Improve to lift this dimension.
Actual: 5/10
Expected: ≥ 7
Warning Cites authoritative sources
geo_authoritative_sources
Moderate (5/10).
Fix: Improve to lift this dimension.
Actual: 5/10
Expected: ≥ 7