puretoutch.com
Pure Touch Cleaning | A Clean Home. A Better Life.
1 failed · 9 warnings · 19 passed
Audited Sat, 18 Jul 2026 06:15:18 GMT · https://puretoutch.com/
Meta & Head
20.1/25
Title, description, canonical, social tags — what search engines read first.
Meta descriptionhigh impactlow effort
Meta description is "Professional residential and commercial cleaning in King County, WA. Deep cleaning, move-in/move-out, post-construction, and recurring housekeeping — reliable, detail-oriented, eco-friendly." (190 characters)
Search engines truncate descriptions past roughly 160 characters, and very short ones waste the snippet space that persuades searchers to pick your listing over the next one. Rewrite it to 70–160 characters: state what the page offers, work the primary keyword in naturally (matching words get bolded in results), and end with a benefit or call to action. Don't cram in keywords — the description influences clicks, not rankings, so write it for humans.
Canonical URLmedium impactlow effort
No <link rel="canonical"> found
When the same page is reachable at several URLs — tracking parameters, trailing-slash variants, http vs https — search engines may split ranking signals across the duplicates. A canonical tag names the one version that should get all the credit. Add <link rel="canonical" href="https://www.example.com/page/"> to the <head>, pointing at the page's preferred absolute URL. Double-check it's self-referencing on the primary version: a canonical that points at the wrong page can quietly de-index the right one.
Open Graph tagsmedium impactlow effort
Missing Open Graph tags: og:image, og:url
Your Open Graph markup is incomplete, so social platforms fall back to guessed text or drop the preview image entirely when this page is shared — a broken card gets far fewer clicks than a complete one. Add the missing og:image, og:url tags to <head>. For og:image, use an absolute https:// URL to an image around 1200x630 pixels; relative paths are the usual reason previews break. Re-check with a platform's sharing debugger afterwards, since preview cards are cached.
6 passing checks
- Title tag<title> is "Pure Touch Cleaning | A Clean Home. A Better Life." (50 characters)
- Viewport meta tagViewport is "width=device-width, initial-scale=1"
- Character encoding declaredCharacter encoding is declared
- FaviconA <link rel="icon"> is present
- Twitter card tagtwitter:card is "summary_large_image"
- Page allows indexingNo restrictive robots meta tag
Content & Structure
14.8/25
Headings, copy depth, images, structured data, internal linking.
Word counthigh impactlow effort
295 words of visible text
Under 300 words, search engines typically classify a page as thin content, and thin pages rarely rank for anything competitive. Decide which query this page should answer, then write substantive copy — aim for 600+ words covering what it is, how it works, common questions, and concrete examples. If the page genuinely has nothing more to say, merge it into a stronger related page with a 301 redirect rather than padding it with filler that helps no one.
Single H1 headinghigh impactlow effort
2 h1 headings found: "A clean home.", "A better life."
Multiple h1s split the page's main-topic signal, leaving search engines to guess which headline actually defines the page. Keep the one h1 that best states the primary topic and demote the rest to h2 or h3, so the outline reads as a single subject with subtopics. A frequent culprit is a site logo or blog title wrapped in an h1 inside the shared header template — change that to a <div> or <p> and reserve h1 for the page's own content.
Image alt textmedium impactlow effort
8 of 10 images have alt text
Alt text is how search engines understand what an image shows — it feeds image-search rankings and is what screen readers announce to blind visitors. Add a short, specific alt attribute to every meaningful image, describing the content rather than listing keywords: alt="Golden retriever puppy playing in snow" beats alt="dog puppy pet animal". Give purely decorative images an empty alt="" instead of omitting the attribute, so assistive technology knows to skip them rather than reading out the filename.
Structured data (JSON-LD)medium impactmedium effort
No JSON-LD structured data blocks found
Structured data makes your listing eligible for rich results — star ratings, FAQs, breadcrumbs, product prices — which occupy more space on the results page and draw more clicks than plain blue links. Add a <script type="application/ld+json"> block with a schema.org type that matches the page: Organization or WebSite for a homepage, Article for posts, Product for product pages. Only mark up content actually visible on the page — markup for invisible content violates Google's guidelines and can earn a manual action.
4 passing checks
- Heading hierarchy13 headings in order without skipped levels
- HTML lang attribute<html lang="en">
- JavaScript-dependent contentvisible text ~2342 chars in the initial HTML
- Internal linking9 internal, 6 external links
Technical
22.2/25
HTTPS, redirects, robots, sitemap, speed, crawlability.
HTTP redirects to HTTPSmedium impactlow effort
http:// version serves content without redirecting
Your http:// URLs serve content instead of redirecting, so search engines can crawl and index two parallel copies of every page and split ranking signals between them. Add a permanent 301 redirect from http to https at the server or CDN level — in nginx, "return 301 https://$host$request_uri;" in the port-80 server block; in Apache, a RewriteRule in .htaccess; on Cloudflare, enable "Always Use HTTPS". Use a 301, not a 302 — temporary redirects don't consolidate ranking signals — and preserve the full path in the redirect target.
XML sitemap availablemedium impactlow effort
sitemap.xml is valid but robots.txt does not reference it
Your sitemap is valid, but robots.txt never mentions it, so crawlers you haven't manually notified may never find it — the robots.txt reference is the universal discovery mechanism. Add one line to robots.txt: "Sitemap: https://www.example.com/sitemap.xml", using the full absolute URL (a relative path is invalid here). The line can go anywhere in the file, and you can list several sitemaps. Also submit it in Google Search Console to get indexing-coverage reporting on top of discovery.
Response compression enabledlow impactlow effort
no content-encoding header
This HTML is served uncompressed, so every visitor downloads far more bytes than necessary — text compresses extremely well, and the savings directly speed up first render on slow connections. Enable Brotli or gzip on your server or CDN: in nginx it's "gzip on;" (or the brotli module), in Apache it's mod_deflate via .htaccess, and on most CDNs it's a single toggle. Make sure compression covers all text types (HTML, CSS, JS, JSON, SVG), but skip already-compressed images — recompressing them wastes CPU for no gain.
9 passing checks
- Served over HTTPSfinal URL uses https://
- No mixed content0 http:// subresource references
- Short redirect chainno redirects; URL resolves directly
- robots.txt present and permissiverobots.txt exists and allows crawling
- Fast time to first byte234 ms
- Reasonable HTML size43.8 KB
- Missing pages return 404missing paths return HTTP 404/410
- www and non-www resolve consistentlywww and non-www converge on the same host
- HTML5 doctype<!DOCTYPE html> present
Performance
Core Web Vitals scoring via Google PageSpeed is coming soon.
Share your score
Embed this live badge on your site — it updates whenever the audit is re-run.