Catalog / qphoto.co.za
62

SEO audit for qphoto.co.za

Photo Books | Canvas Printing | Order Prints Online - QPhoto

other

Health 62/100 (fair) · 42 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

QPhoto, your trusted memory merchant since 1984. You can trust QPhoto with your special moments, the "Q" in our name is for "Quality" and we have a proud tradition of delivering beautifully crafted pr…

42
pages crawled
39
indexable pages
4
errors
299
warnings
545
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Crawlability 95 2 1 21
Sitemap 95 2 0 1
Budget 30 0 98 0
Links 36 0 90 39
Agent Readiness 72 0 39 39
Performance 72 0 39 158
Duplicate 80 0 28 23
Headings 99 0 2 0
Images 99 0 1 41
Structured Data 99 0 1 38
Cache 100 0 0 39
Content 100 0 0 77
Meta Description 100 0 0 3
Security 100 0 0 44
Social 100 0 0 7
Titles 100 0 0 15
Findings

Errors (2 rules)

error Non-200 URL listed in sitemap

Rule sitemap.not_200 · Sitemap · 2 occurrence(s)

error Client error (4xx) response

Rule status.4xx · Crawlability · 2 occurrence(s)

Warnings (10 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 39 occurrence(s)

warning robots.txt-disallowed URL receives internal links (crawl-budget leak)

Rule budget.disallow_linked · Budget · 98 occurrence(s)

  • https://www.qphoto.co.za/checkout/cart/ — internal links point to https://www.qphoto.co.za/checkout/cart/, 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.qphoto.co.za/, https://www.qphoto.co.za/photo-books, https://www.qphoto.co.za/canvas.
  • https://www.qphoto.co.za/customer/account/ — internal links point to https://www.qphoto.co.za/customer/account/, 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.qphoto.co.za/, https://www.qphoto.co.za/photo-books, https://www.qphoto.co.za/canvas.
  • https://www.qphoto.co.za/customer/account/create/ — internal links point to https://www.qphoto.co.za/customer/account/create/, 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.qphoto.co.za/, https://www.qphoto.co.za/photo-books, https://www.qphoto.co.za/canvas.
  • https://www.qphoto.co.za/customer/account/login — internal links point to https://www.qphoto.co.za/customer/account/login, 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.qphoto.co.za/, https://www.qphoto.co.za/photo-books, https://www.qphoto.co.za/canvas.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2NhbnZhcw~~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2NhbnZhcw~~/, 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.qphoto.co.za/canvas, https://www.qphoto.co.za/single-image-with-white-border, https://www.qphoto.co.za/single-image-image-wrap.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2dpZnRpbmctdm91Y2hlcnM~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2dpZnRpbmctdm91Y2hlcnM~/, 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.qphoto.co.za/gifting-vouchers.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2hvbWUtZGVjb3Ivd2FsbC1hcnQvcG9zdGVyLXByaW50cw~~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2hvbWUtZGVjb3Ivd2FsbC1hcnQvcG9zdGVyLXByaW50cw~~/, 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.qphoto.co.za/home-decor/wall-art/poster-prints.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2hvbWUtZGVjb3I~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL2hvbWUtZGVjb3I~/, 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.qphoto.co.za/home-decor.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWJvb2tz/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWJvb2tz/, 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.qphoto.co.za/photo-books.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWdpZnRz/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWdpZnRz/, 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.qphoto.co.za/photo-gifts.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWdpZnRzL3Bob3RvLW11Z3M~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Bob3RvLWdpZnRzL3Bob3RvLW11Z3M~/, 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.qphoto.co.za/photo-gifts/photo-mugs.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3ByaW50cw~~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3ByaW50cw~~/, 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.qphoto.co.za/prints.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3ByaW50cy9nZW5lcmFsLXByaW50cy9waG90b2dyYXBoaWMtcHJpbnRzL3N0YW5kYXJkLXBob3RvLXByaW50cw~~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3ByaW50cy9nZW5lcmFsLXByaW50cy9waG90b2dyYXBoaWMtcHJpbnRzL3N0YW5kYXJkLXBob3RvLXByaW50cw~~/, 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.qphoto.co.za/prints/general-prints/standard-photo-prints.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3NhbGU~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3NhbGU~/, 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.qphoto.co.za/gifting-vouchers/sale.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Nob3AtYnktcHJpY2U~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphL3Nob3AtYnktcHJpY2U~/, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphLw~~/ — internal links point to https://www.qphoto.co.za/customer/account/login/referer/aHR0cHM6Ly93d3cucXBob3RvLmNvLnphLw~~/, 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.qphoto.co.za/.
  • https://www.qphoto.co.za/shop-by-price?occasion=287 — internal links point to https://www.qphoto.co.za/shop-by-price?occasion=287, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?occasion=340 — internal links point to https://www.qphoto.co.za/shop-by-price?occasion=340, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?p=2 — internal links point to https://www.qphoto.co.za/shop-by-price?p=2, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?p=3 — internal links point to https://www.qphoto.co.za/shop-by-price?p=3, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?p=4 — internal links point to https://www.qphoto.co.za/shop-by-price?p=4, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?p=5 — internal links point to https://www.qphoto.co.za/shop-by-price?p=5, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?price=0-1000 — internal links point to https://www.qphoto.co.za/shop-by-price?price=0-1000, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?price=1000-2000 — internal links point to https://www.qphoto.co.za/shop-by-price?price=1000-2000, 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.qphoto.co.za/shop-by-price.
  • https://www.qphoto.co.za/shop-by-price?price=3000-4000 — internal links point to https://www.qphoto.co.za/shop-by-price?price=3000-4000, 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.qphoto.co.za/shop-by-price.

warning Duplicate page content

Rule duplicate.content · Duplicate · 14 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 14 occurrence(s)

warning Incomplete/empty response after retries (likely transient — re-crawl)

Rule fetch.incomplete · Crawlability · 1 occurrence(s)

warning Missing <h1>

Rule h1.missing · Headings · 2 occurrence(s)

warning Images missing alt text

Rule images.missing_alt · Images · 1 occurrence(s)

warning Internal link points to a redirect

Rule links.redirect_target · Links · 90 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 39 occurrence(s)

warning Rich-result schema missing required properties

Rule schema.invalid · Structured Data · 1 occurrence(s)

Notices (25 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 38 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 39 occurrence(s)

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 24 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 14 occurrence(s)

  • https://www.qphoto.co.za/all-things-wedding — this page reads as difficult (Flesch Reading Ease 40, 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.qphoto.co.za/cameras — this page reads as difficult (Flesch Reading Ease 45, 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.qphoto.co.za/cameras/instax-cameras — this page reads as difficult (Flesch Reading Ease 44, 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.qphoto.co.za/home-decor — 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.qphoto.co.za/home-decor/wall-art — 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.qphoto.co.za/home-decor/wall-art/poster-prints — 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.qphoto.co.za/photo-gifts — 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.qphoto.co.za/photo-gifts/photo-mugs — this page reads as difficult (Flesch Reading Ease 41, 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.qphoto.co.za/prints — this page reads as difficult (Flesch Reading Ease 45, 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.qphoto.co.za/prints/general-prints — this page reads as difficult (Flesch Reading Ease 45, 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.qphoto.co.za/prints/general-prints/standard-photo-prints — this page reads as difficult (Flesch Reading Ease 46, 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.qphoto.co.za/shop-by-occasion — this page reads as difficult (Flesch Reading Ease 39, 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.qphoto.co.za/shop-by-occasion/motherhood — this page reads as difficult (Flesch Reading Ease 41, 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.qphoto.co.za/shop-by-occasion/motherhood/announcements — 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.

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 23 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

Rule images.generic_filename · Images · 2 occurrence(s)

  • https://www.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor — 3 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.
  • https://www.qphoto.co.za/shop-by-price — 1 image(s) use a generic/auto-generated filename (e.g. IMG_1234.jpg, photo1.png, a bare UUID). Google reads the filename as a signal of image content, so rename files descriptively (hyphen-separated words) before upload.

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 39 occurrence(s)

  • https://www.qphoto.co.za/ — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/all-things-wedding — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/all-things-wedding/simple — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/all-things-wedding/wedding-party-invitations/engagement — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/browse-latest — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/cameras — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/cameras/instax-cameras — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/canvas — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/canvas/rectangle-canvas — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/gifting-vouchers/sale — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/home-decor — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/home-decor/wall-art — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/home-decor/wall-art/poster-prints — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/most-popular — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/photo-books — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/photo-gifts — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/photo-gifts/photo-mugs — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/prints — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/prints/general-prints — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/prints/general-prints/standard-photo-prints — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/shop-by-occasion — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/shop-by-occasion/motherhood — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/shop-by-occasion/motherhood/announcements — the likely hero/LCP image (mylslogo_white.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.qphoto.co.za/shop-by-price — the likely hero/LCP image (mylslogo_white.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 · 39 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 39 occurrence(s)

notice Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 39 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 2 occurrence(s)

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 1 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 39 occurrence(s)

  • https://www.qphoto.co.za/ — 21 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/all-things-wedding — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/all-things-wedding/simple — 31 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/all-things-wedding/wedding-party-invitations/engagement — 25 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/browse-latest — 31 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/cameras — 9 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/cameras/instax-cameras — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/canvas — 13 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/canvas/rectangle-canvas — 30 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/gifting-vouchers/sale — 8 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/home-decor — 24 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/home-decor/wall-art — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/home-decor/wall-art/poster-prints — 8 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/most-popular — 30 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/photo-books — 27 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/photo-gifts — 33 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor — 30 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/photo-gifts/photo-mugs — 10 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/prints — 21 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/prints/general-prints — 8 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/prints/general-prints/standard-photo-prints — 10 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/shop-by-occasion — 19 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/shop-by-occasion/motherhood — 14 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/shop-by-occasion/motherhood/announcements — 6 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://www.qphoto.co.za/shop-by-price — 31 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 39 occurrence(s)

  • https://www.qphoto.co.za/ — 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://www.qphoto.co.za/all-things-wedding — 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://www.qphoto.co.za/all-things-wedding/simple — 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://www.qphoto.co.za/all-things-wedding/wedding-party-invitations/engagement — 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://www.qphoto.co.za/browse-latest — 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://www.qphoto.co.za/cameras — 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://www.qphoto.co.za/cameras/instax-cameras — 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://www.qphoto.co.za/canvas — 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://www.qphoto.co.za/canvas/rectangle-canvas — 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://www.qphoto.co.za/gifting-vouchers/sale — 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://www.qphoto.co.za/home-decor — 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://www.qphoto.co.za/home-decor/wall-art — 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://www.qphoto.co.za/home-decor/wall-art/poster-prints — 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://www.qphoto.co.za/most-popular — 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://www.qphoto.co.za/photo-books — 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://www.qphoto.co.za/photo-gifts — 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://www.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor — 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://www.qphoto.co.za/photo-gifts/photo-mugs — 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://www.qphoto.co.za/prints — 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://www.qphoto.co.za/prints/general-prints — 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://www.qphoto.co.za/prints/general-prints/standard-photo-prints — 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://www.qphoto.co.za/shop-by-occasion — 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://www.qphoto.co.za/shop-by-occasion/motherhood — 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://www.qphoto.co.za/shop-by-occasion/motherhood/announcements — 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://www.qphoto.co.za/shop-by-price — 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 · 39 occurrence(s)

  • https://www.qphoto.co.za/ — 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.qphoto.co.za/all-things-wedding — 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.qphoto.co.za/all-things-wedding/simple — 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.qphoto.co.za/all-things-wedding/wedding-party-invitations/engagement — 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.qphoto.co.za/browse-latest — 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.qphoto.co.za/cameras — 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.qphoto.co.za/cameras/instax-cameras — 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.qphoto.co.za/canvas — 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.qphoto.co.za/canvas/rectangle-canvas — 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.qphoto.co.za/gifting-vouchers/sale — 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.qphoto.co.za/home-decor — 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.qphoto.co.za/home-decor/wall-art — 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.qphoto.co.za/home-decor/wall-art/poster-prints — 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.qphoto.co.za/most-popular — 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.qphoto.co.za/photo-books — 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.qphoto.co.za/photo-gifts — 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.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor — 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.qphoto.co.za/photo-gifts/photo-mugs — 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.qphoto.co.za/prints — 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.qphoto.co.za/prints/general-prints — 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.qphoto.co.za/prints/general-prints/standard-photo-prints — 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.qphoto.co.za/shop-by-occasion — 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.qphoto.co.za/shop-by-occasion/motherhood — 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.qphoto.co.za/shop-by-occasion/motherhood/announcements — 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.qphoto.co.za/shop-by-price — 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 Slow server response

Rule perf.slow_response · Performance · 2 occurrence(s)

notice URL redirects to another URL

Rule redirect.single · Crawlability · 21 occurrence(s)

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 3 occurrence(s)

  • https://www.qphoto.co.za/home-decor — 2 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.qphoto.co.za/photo-books — 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.qphoto.co.za/photo-gifts — 1 external link(s) use target="_blank" without rel="noopener" — the opened page can hijack your tab (reverse tab-napping). Add rel="noopener noreferrer".

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 1 occurrence(s)

notice Title tag is identical to the H1 (missed keyword variation)

Rule title.same_as_h1 · Titles · 10 occurrence(s)

Pages (showing 42 of 42)
URLStatusIndexableWordsIn-links
https://www.qphoto.co.za/canvas
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 41
https://www.qphoto.co.za/gifting-vouchers/sale
Special Offers | Promotions and Deals | Q-Photo
200 yes 409 82
https://www.qphoto.co.za/home-decor
Personalised Home Décor | Custom Décor Printing
200 yes 499 41
https://www.qphoto.co.za/photo-books
Photo Books | Coffee Table Books | Picture Books
200 yes 564 41
https://www.qphoto.co.za/photo-gifts
Photo Gifts | Create Personalised Gifts Online | Custom Gifts
200 yes 549 41
https://www.qphoto.co.za/prints
Order Digital Prints Online
200 yes 542 41
https://www.qphoto.co.za/
Photo Books | Canvas Printing | Order Prints Online - QPhoto
200 yes 388 40
https://www.qphoto.co.za/photo-gifts/personalised-decor/christmas-decor
Christmas Decor
200 yes 437 2
https://www.qphoto.co.za/canvas/rectangle-canvas
Rectangle Canvas
200 yes 514 14
https://www.qphoto.co.za/prints/general-prints/standard-photo-prints
Photographic Prints
200 yes 307 1
https://www.qphoto.co.za/photo-gifts/photo-mugs
Personalised Mugs
200 yes 246 1
https://www.qphoto.co.za/prints/general-prints
Prints | Q-Photo
200 yes 239 1
https://www.qphoto.co.za/all-things-wedding
All Things Wedding | Q-Photo
200 yes 245 2
https://www.qphoto.co.za/shop-by-occasion/motherhood
Motherhood
200 yes 267 2
https://www.qphoto.co.za/all-things-wedding/simple
Simple | Q-Photo
200 yes 533 1
https://www.qphoto.co.za/shop-by-occasion/motherhood/announcements
ANNOUNCEMENTS
200 yes 280 1
https://www.qphoto.co.za/cameras
Q-Photo | Cameras
200 yes 267 1
https://www.qphoto.co.za/cameras/instax-cameras
Instax Cameras
200 yes 245 1
https://www.qphoto.co.za/shop-by-occasion
Shop By Occasion
200 yes 255 1
https://www.qphoto.co.za/home-decor/wall-art
Q-Photo | Wall Art
200 yes 265 1
https://www.qphoto.co.za/all-things-wedding/wedding-party-invitations/engagement
Engagement | Q-Photo
200 yes 434 0
https://www.qphoto.co.za/baby-collage-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/blue-grey-camoflague-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/browse-latest
Browse Our Latest Products
200 yes 474 0
https://www.qphoto.co.za/butterflies-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/calendars-stationery/holiday-cards
Holiday Cards
200 yes 470 0
https://www.qphoto.co.za/diamonds-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/flowers-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/heart-of-memories-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/home-decor/wall-art/poster-prints
Poster Prints | Wall Art | Décor
200 yes 296 0
https://www.qphoto.co.za/love-joy-hope-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/most-popular
Browse Our Most Popular Products
200 yes 430 0
https://www.qphoto.co.za/pink-flowers-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/polka-dot-pink-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/shop-by-price
Shop By Price
200 yes 571 0
https://www.qphoto.co.za/single-image-black-border
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/single-image-image-wrap
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/single-image-with-white-border
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/turquoise-raise-canvas-print-and-stretch
Canvas Printing | Stretched Canvas Prints | Q-Photo
200 yes 612 0
https://www.qphoto.co.za/gifting-vouchers
404 Not Found
404 no 329 0
https://www.qphoto.co.za/love-dad-canvas-print-and-stretch 0 no 0 0
https://www.qphoto.co.za/novelty-gifts
404 Not Found
404 no 329 0

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →