SEO audit for wavelaps.com
Wavelaps | The Leading AR/VR Agency
Health 65/100 (fair) · 36 pages crawled · generated 2026-07-29
Download Markdown report (feed to ChatGPT / Claude / Cursor)Wavelaps is a leading AR/VR agency building immersive augmented reality, virtual reality, and interactive 3D experiences for global brands.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Structured Data | 70 | 0 | 36 | 1 |
| Content | 71 | 0 | 35 | 35 |
| Links | 98 | 0 | 3 | 29 |
| Titles | 99 | 0 | 1 | 1 |
| Video | 99 | 0 | 1 | 0 |
| Agent Readiness | 100 | 0 | 0 | 24 |
| Cache | 100 | 0 | 0 | 36 |
| Meta Description | 100 | 0 | 0 | 1 |
| Performance | 100 | 0 | 0 | 72 |
| Security | 100 | 0 | 0 | 36 |
Warnings (5 rules)
warning Thin content (low word count)
Rule content.thin · Content · 35 occurrence(s)
- https://wavelaps.com/ — 50 words
- https://wavelaps.com/blog — 180 words
- https://wavelaps.com/blog/ar-brand-activations — 72 words
- https://wavelaps.com/blog/ar-for-kids-family-brands — 74 words
- https://wavelaps.com/blog/ar-for-malls-retail-destinations — 75 words
- https://wavelaps.com/blog/ar-for-retail — 76 words
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — 80 words
- https://wavelaps.com/blog/gen-ai-photo-ops — 88 words
- https://wavelaps.com/blog/what-is-webar — 78 words
- https://wavelaps.com/blog/xr-creator-hackathon-recap — 85 words
- https://wavelaps.com/blog/xr-use-cases-by-sector — 73 words
- https://wavelaps.com/case-study — 51 words
- https://wavelaps.com/case-study/ai-casino — 39 words
- https://wavelaps.com/case-study/festive-ar — 39 words
- https://wavelaps.com/case-study/gabbydollhouse — 39 words
- https://wavelaps.com/case-study/harrypotter — 39 words
- https://wavelaps.com/case-study/itchsunsrise — 39 words
- https://wavelaps.com/case-study/southwest — 36 words
- https://wavelaps.com/case-study/thecollective-grandescape — 45 words
- https://wavelaps.com/case-study/thecollectivestylequest — 45 words
- https://wavelaps.com/case-study/tradingcard — 39 words
- https://wavelaps.com/case-study/wwecasestudy — 42 words
- https://wavelaps.com/privacy-policy — 23 words
- https://wavelaps.com/services — 52 words
- https://wavelaps.com/xrsecond — 29 words
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 3 occurrence(s)
- https://wavelaps.com/privacy-policy — no internal links point here
- https://wavelaps.com/xrcreatorhackathon — no internal links point here
- https://wavelaps.com/xrsecond — no internal links point here
warning LocalBusiness schema missing required properties (name/address)
Rule schema.localbusiness_incomplete · Structured Data · 36 occurrence(s)
- https://wavelaps.com/ — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/ar-brand-activations — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/ar-for-kids-family-brands — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/ar-for-retail — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/gen-ai-photo-ops — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/what-is-webar — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/xr-creator-hackathon-recap — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/blog/xr-use-cases-by-sector — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/ai-casino — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/festive-ar — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/gabbydollhouse — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/harrypotter — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/itchsunsrise — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/southwest — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/thecollective-grandescape — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/thecollectivestylequest — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/tradingcard — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/case-study/wwecasestudy — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/privacy-policy — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/services — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/xrcreatorhackathon — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
- https://wavelaps.com/xrsecond — LocalBusiness structured data is missing required property (address) — without them Google won't generate the rich result. Add each field (and validate with the Rich Results Test). It is also missing recommended properties (openingHoursSpecification, geo, priceRange), which enrich the result.
warning Title likely truncated in SERP (too wide)
Rule title.too_long · Titles · 1 occurrence(s)
- https://wavelaps.com/blog/what-is-webar — 72 chars, ~599px (limit ~580px)
warning VideoObject declared but no player element on page
Rule video.no_player · Video · 1 occurrence(s)
- https://wavelaps.com/case-study — VideoObject in schema but no <video>/<iframe> player found in the HTML
Notices (11 rules)
notice No main landmark for AI agents
Rule agent.no_main_landmark · Agent Readiness · 24 occurrence(s)
- https://wavelaps.com/ — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-advertising — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-ar-filters — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-ar-glasses — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-goggles-smart-glasses — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-personalized-campaigns — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ai-plus-ar — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ar-brand-activations — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ar-for-kids-family-brands — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ar-for-malls-retail-destinations — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ar-for-retail — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/gen-ai-photo-ops — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/generative-ai-for-marketing — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/how-ai-photo-generation-works — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/how-generative-ai-works — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/what-are-ai-agents — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/what-is-webar — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/xr-creator-hackathon-recap — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/blog/xr-use-cases-by-sector — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/case-study — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/services — add a <main> element (or role=main) around the primary content
- https://wavelaps.com/xrcreatorhackathon — add a <main> element (or role=main) around the primary content
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 36 occurrence(s)
- https://wavelaps.com/ — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/ar-brand-activations — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/ar-for-kids-family-brands — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/ar-for-retail — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/gen-ai-photo-ops — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/what-is-webar — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/xr-creator-hackathon-recap — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/blog/xr-use-cases-by-sector — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/ai-casino — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/festive-ar — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/gabbydollhouse — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/harrypotter — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/itchsunsrise — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/southwest — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/thecollective-grandescape — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/thecollectivestylequest — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/tradingcard — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/case-study/wwecasestudy — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/privacy-policy — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/services — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/xrcreatorhackathon — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
- https://wavelaps.com/xrsecond — Cache-Control: public, max-age=0, must-revalidate · cloudflare: DYNAMIC
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 34 occurrence(s)
- https://wavelaps.com/ — 4.1%
- https://wavelaps.com/blog/ar-brand-activations — 4.4%
- https://wavelaps.com/blog/ar-for-kids-family-brands — 4.1%
- https://wavelaps.com/blog/ar-for-malls-retail-destinations — 4.2%
- https://wavelaps.com/blog/ar-for-retail — 4.6%
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — 4.3%
- https://wavelaps.com/blog/gen-ai-photo-ops — 4.5%
- https://wavelaps.com/blog/how-generative-ai-works — 4.2%
- https://wavelaps.com/blog/what-is-webar — 4.1%
- https://wavelaps.com/blog/xr-creator-hackathon-recap — 4.7%
- https://wavelaps.com/blog/xr-use-cases-by-sector — 4.1%
- https://wavelaps.com/case-study — 2.9%
- https://wavelaps.com/case-study/ai-casino — 2.4%
- https://wavelaps.com/case-study/festive-ar — 2.4%
- https://wavelaps.com/case-study/gabbydollhouse — 2.6%
- https://wavelaps.com/case-study/harrypotter — 2.5%
- https://wavelaps.com/case-study/itchsunsrise — 2.5%
- https://wavelaps.com/case-study/southwest — 2.4%
- https://wavelaps.com/case-study/thecollective-grandescape — 2.9%
- https://wavelaps.com/case-study/thecollectivestylequest — 2.8%
- https://wavelaps.com/case-study/tradingcard — 2.5%
- https://wavelaps.com/case-study/wwecasestudy — 2.5%
- https://wavelaps.com/privacy-policy — 1.6%
- https://wavelaps.com/services — 3.8%
- https://wavelaps.com/xrsecond — 1.9%
notice Main text is hard to read (low Flesch Reading Ease)
Rule content.readability_poor · Content · 1 occurrence(s)
- https://wavelaps.com/blog — 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.
notice Page has only one internal inlink (fragile crawl path)
Rule links.single_inlink · Links · 29 occurrence(s)
- https://wavelaps.com/blog/ai-advertising — 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://wavelaps.com/blog/ai-personalized-campaigns — 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://wavelaps.com/blog/ar-brand-activations — 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://wavelaps.com/blog/ar-for-kids-family-brands — 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://wavelaps.com/blog/ar-for-malls-retail-destinations — 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://wavelaps.com/blog/ar-for-retail — 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://wavelaps.com/blog/ar-gifting-festive-campaigns — 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://wavelaps.com/blog/gen-ai-photo-ops — 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://wavelaps.com/blog/generative-ai-for-marketing — 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://wavelaps.com/blog/how-ai-photo-generation-works — 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://wavelaps.com/blog/how-generative-ai-works — 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://wavelaps.com/blog/what-are-ai-agents — 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://wavelaps.com/blog/what-is-webar — 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://wavelaps.com/blog/xr-creator-hackathon-recap — 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://wavelaps.com/blog/xr-use-cases-by-sector — 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://wavelaps.com/case-study/ai-casino — 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://wavelaps.com/case-study/festive-ar — 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://wavelaps.com/case-study/gabbydollhouse — 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://wavelaps.com/case-study/harrypotter — 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://wavelaps.com/case-study/itchsunsrise — 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://wavelaps.com/case-study/southwest — 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://wavelaps.com/case-study/thecollective-grandescape — 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://wavelaps.com/case-study/thecollectivestylequest — 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://wavelaps.com/case-study/tradingcard — 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://wavelaps.com/case-study/wwecasestudy — 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 Meta description too long
Rule meta_desc.too_long · Meta Description · 1 occurrence(s)
- https://wavelaps.com/services — 176 chars
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 36 occurrence(s)
- https://wavelaps.com/ — 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.
- https://wavelaps.com/blog — 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.
- https://wavelaps.com/blog/ar-brand-activations — 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.
- https://wavelaps.com/blog/ar-for-kids-family-brands — 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.
- https://wavelaps.com/blog/ar-for-retail — 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.
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — 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.
- https://wavelaps.com/blog/gen-ai-photo-ops — 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.
- https://wavelaps.com/blog/what-is-webar — 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.
- https://wavelaps.com/blog/xr-creator-hackathon-recap — 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.
- https://wavelaps.com/blog/xr-use-cases-by-sector — 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.
- https://wavelaps.com/case-study — 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.
- https://wavelaps.com/case-study/ai-casino — 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.
- https://wavelaps.com/case-study/festive-ar — 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.
- https://wavelaps.com/case-study/gabbydollhouse — 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.
- https://wavelaps.com/case-study/harrypotter — 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.
- https://wavelaps.com/case-study/itchsunsrise — 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.
- https://wavelaps.com/case-study/southwest — 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.
- https://wavelaps.com/case-study/thecollective-grandescape — 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.
- https://wavelaps.com/case-study/thecollectivestylequest — 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.
- https://wavelaps.com/case-study/tradingcard — 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.
- https://wavelaps.com/case-study/wwecasestudy — 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.
- https://wavelaps.com/privacy-policy — 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.
- https://wavelaps.com/services — 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.
- https://wavelaps.com/xrcreatorhackathon — 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.
- https://wavelaps.com/xrsecond — 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://wavelaps.com/ — 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://wavelaps.com/blog — 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://wavelaps.com/blog/ar-brand-activations — 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://wavelaps.com/blog/ar-for-kids-family-brands — 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://wavelaps.com/blog/ar-for-retail — 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://wavelaps.com/blog/ar-gifting-festive-campaigns — 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://wavelaps.com/blog/gen-ai-photo-ops — 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://wavelaps.com/blog/what-is-webar — 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://wavelaps.com/blog/xr-creator-hackathon-recap — 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://wavelaps.com/blog/xr-use-cases-by-sector — 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://wavelaps.com/case-study — 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://wavelaps.com/case-study/ai-casino — 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://wavelaps.com/case-study/festive-ar — 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://wavelaps.com/case-study/gabbydollhouse — 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://wavelaps.com/case-study/harrypotter — 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://wavelaps.com/case-study/itchsunsrise — 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://wavelaps.com/case-study/southwest — 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://wavelaps.com/case-study/thecollective-grandescape — 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://wavelaps.com/case-study/thecollectivestylequest — 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://wavelaps.com/case-study/tradingcard — 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://wavelaps.com/case-study/wwecasestudy — 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://wavelaps.com/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.
- https://wavelaps.com/services — 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://wavelaps.com/xrcreatorhackathon — 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://wavelaps.com/xrsecond — 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 FAQPage structured data (rich result removed May 2026)
Rule schema.faq_deprecated · Structured Data · 1 occurrence(s)
- https://wavelaps.com/xrcreatorhackathon — 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 Missing recommended security headers
Rule security.missing_headers · Security · 36 occurrence(s)
- https://wavelaps.com/ — CSP, HSTS
- https://wavelaps.com/blog — HSTS, CSP
- https://wavelaps.com/blog/ar-brand-activations — HSTS, CSP
- https://wavelaps.com/blog/ar-for-kids-family-brands — CSP, HSTS
- https://wavelaps.com/blog/ar-for-retail — HSTS, CSP
- https://wavelaps.com/blog/ar-gifting-festive-campaigns — HSTS, CSP
- https://wavelaps.com/blog/gen-ai-photo-ops — CSP, HSTS
- https://wavelaps.com/blog/what-is-webar — HSTS, CSP
- https://wavelaps.com/blog/xr-creator-hackathon-recap — HSTS, CSP
- https://wavelaps.com/blog/xr-use-cases-by-sector — HSTS, CSP
- https://wavelaps.com/case-study — HSTS, CSP
- https://wavelaps.com/case-study/ai-casino — HSTS, CSP
- https://wavelaps.com/case-study/festive-ar — HSTS, CSP
- https://wavelaps.com/case-study/gabbydollhouse — HSTS, CSP
- https://wavelaps.com/case-study/harrypotter — HSTS, CSP
- https://wavelaps.com/case-study/itchsunsrise — HSTS, CSP
- https://wavelaps.com/case-study/southwest — HSTS, CSP
- https://wavelaps.com/case-study/thecollective-grandescape — HSTS, CSP
- https://wavelaps.com/case-study/thecollectivestylequest — HSTS, CSP
- https://wavelaps.com/case-study/tradingcard — HSTS, CSP
- https://wavelaps.com/case-study/wwecasestudy — HSTS, CSP
- https://wavelaps.com/privacy-policy — HSTS, CSP
- https://wavelaps.com/services — HSTS, CSP
- https://wavelaps.com/xrcreatorhackathon — HSTS, CSP
- https://wavelaps.com/xrsecond — HSTS, CSP
notice Title tag is identical to the H1 (missed keyword variation)
Rule title.same_as_h1 · Titles · 1 occurrence(s)
- https://wavelaps.com/blog — the <title> and the H1 are identical — differentiate them to cover more query variation
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://wavelaps.com/ Wavelaps | The Leading AR/VR Agency |
200 | yes | 50 | 36 |
| https://wavelaps.com/blog Wavelaps Blog — AR/VR & Immersive Tech Insights |
200 | yes | 180 | 36 |
| https://wavelaps.com/case-study Case Studies | Wavelaps AR/VR Agency |
200 | yes | 51 | 36 |
| https://wavelaps.com/services AR/VR Development Services | Wavelaps AR/VR Agency |
200 | yes | 52 | 36 |
| https://wavelaps.com/case-study/ai-casino AI Casino | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/festive-ar Festive AR | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/gabbydollhouse Gabby's Dollhouse | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/harrypotter Harry Potter | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/itchsunsrise Itch Sunrise | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/southwest Southwest | Wavelaps AR/VR Case Study |
200 | yes | 36 | 1 |
| https://wavelaps.com/case-study/thecollective-grandescape The Collective Grand Escape | Wavelaps AR/VR Case Study |
200 | yes | 45 | 1 |
| https://wavelaps.com/case-study/thecollectivestylequest The Collective Style Quest | Wavelaps AR/VR Case Study |
200 | yes | 45 | 1 |
| https://wavelaps.com/case-study/tradingcard Trading Card | Wavelaps AR/VR Case Study |
200 | yes | 39 | 1 |
| https://wavelaps.com/case-study/wwecasestudy WWE Case Study | Wavelaps AR/VR Case Study |
200 | yes | 42 | 1 |
| https://wavelaps.com/blog/ai-advertising AI Advertising: How Brands Create Ads with AI | Wavelaps |
200 | yes | 74 | 1 |
| https://wavelaps.com/blog/ai-ar-filters How AI Makes AR Filters Smarter | Wavelaps |
200 | yes | 74 | 1 |
| https://wavelaps.com/blog/ai-ar-glasses How AI Powers Next-Gen AR Glasses | Wavelaps |
200 | yes | 69 | 1 |
| https://wavelaps.com/blog/ai-goggles-smart-glasses AI Goggles & Smart Glasses: The Next Computing Platform | Wavelaps |
200 | yes | 82 | 1 |
| https://wavelaps.com/blog/ai-personalized-campaigns AI-Personalized Campaigns at Scale | Wavelaps |
200 | yes | 66 | 1 |
| https://wavelaps.com/blog/ai-plus-ar AI + AR: The Next Wave of Immersive Experiences | Wavelaps |
200 | yes | 71 | 1 |
| https://wavelaps.com/blog/ar-brand-activations AR Brand Activations: Turning Audiences Into Participants | Wavelaps |
200 | yes | 72 | 1 |
| https://wavelaps.com/blog/ar-for-kids-family-brands AR for Kids' & Family Brands | Wavelaps |
200 | yes | 74 | 1 |
| https://wavelaps.com/blog/ar-for-malls-retail-destinations AR Experiences for Malls & Retail Destinations | Wavelaps |
200 | yes | 75 | 1 |
| https://wavelaps.com/blog/ar-for-retail AR for Retail: How Brands Use Augmented Reality to Sell More | Wavelaps |
200 | yes | 76 | 1 |
| https://wavelaps.com/blog/ar-gifting-festive-campaigns Augmented Reality for Festive & Gifting Campaigns | Wavelaps |
200 | yes | 80 | 1 |
| https://wavelaps.com/blog/gen-ai-photo-ops Gen AI Photo-Ops: How Brands Turn Guests Into the Story | Wavelaps |
200 | yes | 88 | 1 |
| https://wavelaps.com/blog/generative-ai-for-marketing Generative AI for Marketing: Practical Use Cases | Wavelaps |
200 | yes | 72 | 1 |
| https://wavelaps.com/blog/how-ai-photo-generation-works How AI Photo & Avatar Generation Works | Wavelaps |
200 | yes | 80 | 1 |
| https://wavelaps.com/blog/how-generative-ai-works How Generative AI Actually Works (Without the Jargon) | Wavelaps |
200 | yes | 75 | 1 |
| https://wavelaps.com/blog/what-are-ai-agents What Are AI Agents? A Brand's Guide | Wavelaps |
200 | yes | 73 | 1 |
| https://wavelaps.com/blog/what-is-webar What Is WebAR? A Brand's Guide to Web-Based Augmented Reality | Wavelaps |
200 | yes | 78 | 1 |
| https://wavelaps.com/blog/xr-creator-hackathon-recap Inside the XR Creator Hackathon: India's Biggest XR Challenge | Wavelaps |
200 | yes | 85 | 1 |
| https://wavelaps.com/blog/xr-use-cases-by-sector 5 Sectors XR Is Transforming | Wavelaps |
200 | yes | 73 | 1 |
| https://wavelaps.com/privacy-policy Privacy Policy | Wavelaps |
200 | yes | 23 | 0 |
| https://wavelaps.com/xrcreatorhackathon XR Creator Hackathon | Wavelaps |
200 | yes | 215 | 0 |
| https://wavelaps.com/xrsecond XR Creator Hackathon Season 2 | Wavelaps |
200 | yes | 29 | 0 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.