Bud Authority — Sentinel
Monthly Deep Audit · Unified Command Center

Apex Sentinel — JK Precision Cleaning Monthly Audit

URL: https://jkprecisioncleaning.com/

Platform: wordpress

Archetype: agency

Run ID: 2026-04-19T06-18-18-831Z

Scanned: 2026-04-19T07:13:13.539Z

Duration: 789s

This is a monthly deep audit. The crawler performed a full-site scan including

Lighthouse performance, axe-core accessibility (WCAG 2.2 AA), cross-browser compatibility,

security headers, schema markup validation, and SEO best-practice checks.

Because this site is not a repository we control, Apex Sentinel **cannot automatically

apply fixes** — instead, each finding below includes an AI-generated plain-English

explanation + step-by-step recommended fix you can hand to a developer or execute

in your CMS directly.


Executive Summary

Overall grade: F

DimensionCountMeaning
Pages crawled45Full sitemap + linked pages
P0 (critical)2Site-down or compliance-breaking
P1 (urgent)5Significant revenue / SEO / UX impact
P2 (high)20Quality / ranking / trust degradation
P3 (medium)128Polish + optimization
"Do first" items4AI-flagged top priorities
Quick wins (< 30 min)48Fastest ROI items

Top 10 Actions (Ranked)

If you only have time for ten things this month, do these — in this order.

  1. [P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-config.php — _Exposed credentials could lead to unauthorized access to your website, data theft, ransomware deployment, or complete site takeover—any of which would halt business operations and damage client trust._

Page: https://jkprecisioncleaning.com/wp-config.php

Effort: Quick win (< 30 min)

  1. [P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-login.php — _Exposed login pages are the #1 entry point for ransomware, data theft, and site defacement — all of which would shut down your ability to serve clients and destroy trust in your business._

Page: https://jkprecisioncleaning.com/wp-login.php

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Elements must meet minimum color contrast ratio thresholds — _Visitors with visual impairments cannot easily read or click your Instagram link, reducing engagement and potentially violating accessibility laws (ADA in the US) that apply to websites. This also signals to search engines that your site may not meet modern quality standards._

Page: https://jkprecisioncleaning.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Links must have discernible text (×26) — _You're at legal risk under WCAG 2.1 AA (which many jurisdictions now enforce), and you're excluding users with visual disabilities who rely on screen readers—limiting your potential customer base and exposure to accessibility lawsuits._

Page: https://jkprecisioncleaning.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH A11y: Elements should not have tabindex greater than zero — _Keyboard and screen reader users—including potential customers with disabilities—experience a frustrating navigation experience, which may cause them to leave your site and contact competitors instead._

Page: https://jkprecisioncleaning.com/

Effort: Quick win (< 30 min)

  1. [P1] A11y: <ul> and <ol> must only directly contain <li>, <script> or <template> elements

Page: https://jkprecisioncleaning.com/

  1. [P1] Journey failed: default: homepage → age gate → menu visible

Page: https://jkprecisioncleaning.com/

  1. [P2] 🟠 HIGH Missing meta description — _Potential customers searching for your special offers won't see a clear, keyword-relevant preview in search results, leading to lower click-through rates and lost service inquiries._

Page: https://jkprecisioncleaning.com/special-offers/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 33 image(s) missing alt text — _Missing alt text reduces your search visibility for image-based queries (like 'commercial cleaning before-and-after') and excludes visitors with vision disabilities — a legal risk under WCAG accessibility standards that increasingly apply to service businesses._

Page: https://jkprecisioncleaning.com/projects-weve-done/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH Missing meta description — _Lower click-through rates from search results; lost calls and inquiries because searchers can't quickly see your contact options before clicking._

Page: https://jkprecisioncleaning.com/contact-us/

Effort: Quick win (< 30 min)


Findings by Severity

P0 — 2 findings

1. Sensitive artifact exposed: /wp-config.php

What it means (plain English)

Your WordPress configuration file (wp-config.php) is publicly accessible on the internet. This file contains database credentials, security keys, and other sensitive settings that should never be visible to anyone outside your organization. An attacker could use this information to compromise your entire website and customer data.

Why it matters for your business: Exposed credentials could lead to unauthorized access to your website, data theft, ransomware deployment, or complete site takeover—any of which would halt business operations and damage client trust.

Technical root cause: WordPress core files are being served directly by your web server instead of being blocked at the server or firewall level. This typically happens when .htaccess rules (Apache) or nginx config rules are missing or misconfigured, or when the hosting environment allows direct HTTP access to files outside the public root.

Recommended fix — step by step

  1. Log in to your hosting control panel (cPanel, Plesk, etc.) and verify that wp-config.php is located OUTSIDE your public_html or www folder; if it's inside, ask your host to move it to the parent directory immediately.
  2. If you use Apache: add these lines to your .htaccess file in the root folder: <files wp-config.php> order allow,deny deny from all </files> — then test by visiting the URL again (should show 403 Forbidden).
  3. If you use nginx: ask your hosting provider or add this to your nginx server block: location ~ /wp-config.php { deny all; } then reload nginx.
  4. Verify the fix by visiting https://jkprecisioncleaning.com/wp-config.php in an incognito browser — you should see a 403 Forbidden error, not the file contents.
  5. Also block other sensitive WordPress files: /wp-settings.php, /wp-load.php, and /wp-includes/ using the same method.
  6. If unsure about your hosting environment, contact your hosting provider's support and ask them to: (1) confirm wp-config.php location, (2) implement .htaccess or nginx rules to deny access to wp-config.php, (3) confirm the block is working.

2. Sensitive artifact exposed: /wp-login.php

What it means (plain English)

Your WordPress login page (/wp-login.php) is publicly accessible and showing a response code of 200, meaning anyone on the internet can find and attempt to access it. While this is technically how WordPress works by default, leaving it open makes your site an easy target for automated attacks where bots try thousands of username and password combinations to break in.

Why it matters for your business: Exposed login pages are the #1 entry point for ransomware, data theft, and site defacement — all of which would shut down your ability to serve clients and destroy trust in your business.

Technical root cause: WordPress login pages are public by default. The site has no IP restrictions, password protection, or rate limiting in place to block brute-force login attempts at the web server or CDN level.

Recommended fix — step by step

  1. Install the 'Wordfence Security' plugin (free tier) from WordPress.org — go to Plugins → Add New → search 'Wordfence' → install and activate.
  2. Open Wordfence settings and enable 'Brute Force Protection' with aggressive lockout (e.g., 5 failed attempts = 1 hour block).
  3. In Wordfence, go to Tools → IP Blocking (Whitelist) and whitelist only your own IP address(es) if you have a static IP, or enable 'Two-Factor Authentication' for all admin accounts as a fallback.
  4. Optional but recommended: If your hosting supports .htaccess (most WordPress hosts do), ask your hosting provider to add a rule blocking access to /wp-login.php by geographic location or by default, allowing only your admin IP.
  5. Consider installing 'All In One WP Security & Firewall' as a secondary layer — it can rename /wp-login.php to a hidden URL and add CAPTCHA protection.
  6. Test the lockout: After setup, attempt 5+ failed logins from an incognito window to confirm brute-force protection is active.

P1 — 5 findings

1. A11y: Elements must meet minimum color contrast ratio thresholds

What it means (plain English)

A link on your homepage labeled 'Follow on Instagram' has white text (#ffffff) on a blue background (#408bd1) that creates a contrast ratio of only 3.6:1. Accessibility standards require at least 4.5:1 contrast for text this size so that people with low vision or color blindness can read it. This affects approximately 1 in 12 men and 1 in 200 women who experience color vision deficiency.

Why it matters for your business: Visitors with visual impairments cannot easily read or click your Instagram link, reducing engagement and potentially violating accessibility laws (ADA in the US) that apply to websites. This also signals to search engines that your site may not meet modern quality standards.

Technical root cause: The Instagram follow button uses a blue background (#408bd1) with white text that does not meet the WCAG 2 AA standard of 4.5:1 contrast ratio for body text or links. This is likely a theme or custom styling choice that was not tested for accessibility compliance.

Recommended fix — step by step

  1. Log into WordPress admin → Appearance → Customize (or Edit Site if using block editor)
  2. Locate the Instagram follow link/social media section in the theme customizer or page builder
  3. Open a contrast checker tool (e.g., webaim.org/resources/contrastchecker) and test your current colors
  4. Either: (A) Change the text color to white (#ffffff) and the background to a darker blue (e.g., #1a5a96), OR (B) change the background to a lighter color (e.g., #5fa3e0) and keep white text
  5. Test the new color combination in the contrast checker to confirm it meets 4.5:1 or higher
  6. Save the changes and preview on mobile and desktop to ensure legibility
  7. Use an accessibility scanner plugin like Accessibility Checker (free) to confirm the issue is resolved

2. A11y: Links must have discernible text (×26)

What it means (plain English)

Your website has 26 links that screen readers cannot identify. These are mostly icon buttons (like font size adjustment buttons) in your accessibility toolbar that lack text labels, aria-labels, or title attributes. Screen reader users will hear "link" with no context about what the link does.

Why it matters for your business: You're at legal risk under WCAG 2.1 AA (which many jurisdictions now enforce), and you're excluding users with visual disabilities who rely on screen readers—limiting your potential customer base and exposure to accessibility lawsuits.

Technical root cause: The Pojo accessibility toolbar plugin is inserting empty link elements with only CSS icon content. These have no visible text, aria-label, or title attribute to announce their purpose to assistive technology.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → search for 'Pojo'—identify and note the exact accessibility plugin/toolbar being used.
  2. Open the plugin settings (usually under Appearance or dedicated plugin settings) and look for options to add 'aria-label' or 'title' attributes to toolbar buttons.
  3. If the plugin settings don't expose label options, add a custom code snippet: in WordPress admin → Appearance → Theme File Editor (or child theme), add CSS/JS that targets .pojo-a11y-toolbar-link elements and injects aria-label values (e.g., 'aria-label="Increase Font Size"' for resize-plus).
  4. Test the fix with a free screen reader (NVDA on Windows or VoiceOver on Mac) by tabbing through the toolbar and confirming each button is announced with its purpose.
  5. If the plugin cannot be configured, contact the plugin author or consider replacing it with an alternative accessibility toolbar that includes proper ARIA labeling by default.

3. A11y: Elements should not have tabindex greater than zero

What it means (plain English)

A skip-to-content link on your site has a tabindex value of 1, which artificially elevates its position in the keyboard navigation order. This means keyboard users will reach this link before other important page elements, disrupting the logical flow of navigation. The skip link should either have tabindex="0" (or no tabindex attribute) to follow the natural document order.

Why it matters for your business: Keyboard and screen reader users—including potential customers with disabilities—experience a frustrating navigation experience, which may cause them to leave your site and contact competitors instead.

Technical root cause: The Elementor page builder (or a related accessibility plugin like 'Elementor' or 'WP Accessibility') inserted tabindex="1" on the skip-link element. Values greater than 0 manually override the document's natural tab order.

Recommended fix — step by step

  1. Log in to your WordPress admin dashboard → Appearance → Customize (or Pages/Edit with Elementor if this page uses Elementor).
  2. Locate the 'Skip to content' link element in the page editor or in your theme's header template.
  3. Remove the tabindex attribute entirely, or change its value to 0 (which is equivalent to letting the browser handle it naturally).
  4. If using a plugin like 'WP Accessibility' (Dashboard → Settings → WP Accessibility), check the 'Skip Links' section and ensure 'Skip Link Tab Index' is set to 0 or left blank.
  5. Save changes and test with a keyboard: press Tab repeatedly from the top of the page and verify the skip link appears in a logical position (typically 1st or 2nd).
  6. Run an accessibility checker (free: WAVE browser extension or axe DevTools) on the live site to confirm tabindex is removed.

4. A11y: <ul> and <ol> must only directly contain <li>, <script> or <template> elements

Detail

Ensure that lists are structured correctly

Impact: serious

WCAG: wcag2a, wcag131

Learn more: https://dequeuniversity.com/rules/axe/4.11/list?application=playwright

5. Journey failed: default: homepage → age gate → menu visible

Detail

Step 5: assertNotConsoleError: 1 console error(s): Failed to load resource: the server responded with a status of 403 (Forbidden)


P2 — 20 findings

1. Missing meta description

What it means (plain English)

The /special-offers/ page is missing a meta description—a 160-character summary that appears below the page title in Google search results. Without it, Google may auto-generate a less compelling snippet, reducing click-through rates from search results.

Why it matters for your business: Potential customers searching for your special offers won't see a clear, keyword-relevant preview in search results, leading to lower click-through rates and lost service inquiries.

Technical root cause: The WordPress page or post template is not configured with a meta description field, or the field was left blank during page creation.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → Special Offers (or Posts if it's a post type)
  2. Scroll to the Yoast SEO meta box at the bottom of the editor (or All in One SEO if that plugin is active)
  3. Enter a meta description: 'Discover JK Precision Cleaning's limited-time specials. Professional commercial and residential cleaning services at unbeatable rates. Schedule your free quote today.'
  4. Ensure the description is 150–160 characters and includes your primary keyword (e.g., 'special offers', 'cleaning deals')
  5. Click Update to save
  6. Wait 2–3 days for Google to recrawl and index the new description

2. 33 image(s) missing alt text

What it means (plain English)

Every image on your site should have alt text — a short text description that appears if the image doesn't load, and that screen readers use to describe images to visually impaired visitors. Your projects page has 33 images with no alt text at all. This blocks both accessibility (people using screen readers can't understand your portfolio) and search engine understanding of your work.

Why it matters for your business: Missing alt text reduces your search visibility for image-based queries (like 'commercial cleaning before-and-after') and excludes visitors with vision disabilities — a legal risk under WCAG accessibility standards that increasingly apply to service businesses.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field during upload or in the Media Library. WordPress does not auto-generate alt text; it must be added manually or via a plugin.

Recommended fix — step by step

  1. Log into WordPress Admin → Media Library → filter by 'Unattached' or browse the entire library
  2. For each image on the projects page, click it → click 'Edit' → scroll to 'Alt Text' field → write a clear, 1–2 sentence description (e.g., 'Before-and-after of commercial office floor waxing' or 'JK team performing high-rise window cleaning on downtown building')
  3. Install the free plugin 'Bulk Image Alt Text' (search WordPress plugin directory) → activate it → use it to batch-add alt text using AI suggestions as a starting point, then review and refine each one
  4. After adding alt text, use the Yoast SEO plugin → Site Audit → Image Analysis to verify all images now have alt text
  5. Prioritize images on the /projects-weve-done/ page first, then apply the same process to other pages (Services, Home, etc.)

3. Missing meta description

What it means (plain English)

Your Contact Us page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and fails to tell potential customers what they'll find.

Why it matters for your business: Lower click-through rates from search results; lost calls and inquiries because searchers can't quickly see your contact options before clicking.

Technical root cause: The page template or post settings don't include a meta description field, or the field was left blank during page creation.

Recommended fix — step by step

  1. Log into WordPress → Pages → Contact Us
  2. Scroll to the SEO section (usually Yoast SEO or All in One SEO metabox below the editor)
  3. Click 'Edit snippet' or the meta description field
  4. Write: 'Get in touch with JK Precision Cleaning. Call, email, or submit a contact form for commercial and residential cleaning services.' (keep under 160 characters)
  5. Save/Update the page
  6. Use this same process for all other pages currently missing descriptions (use the audit report to identify them)

4. 7 image(s) missing alt text

What it means (plain English)

Your About Us page has 7 images that lack alt text — descriptive labels that screen readers read aloud to visitors with visual impairments, and that search engines use to understand image content. Without alt text, those images are invisible to both assistive technology and search engines.

Why it matters for your business: Missing alt text reduces your SEO visibility (Google can't index image-based content about your cleaning services), excludes customers using screen readers, and creates legal accessibility risk under ADA/WCAG standards.

Technical root cause: Images were inserted into WordPress without filling the Alt Text field in the Media Library or image block settings, leaving the alt attribute empty or missing entirely.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library
  2. Find each of the 7 images used on /about-us/ (easiest: edit that page, click each image, note its filename or ID)
  3. For each image, click Media Library → search by filename → click to open → scroll to Alt Text field and write a 5–12 word description (e.g., 'JK Precision team in uniform standing in front of service van')
  4. Save changes
  5. Alternatively: edit the About Us page → click each image block → fill Alt Text field in the right sidebar → update
  6. Test: use a free browser extension like WAVE or axe to verify alt text now appears

5. No H1 on homepage

What it means (plain English)

Your homepage doesn't have an H1 heading tag — the main headline that tells search engines and visitors what the page is about. Search engines use this to understand your page's topic, and visitors scan for it to quickly grasp what you offer.

Why it matters for your business: Missing H1s reduce your homepage's clarity to Google, making it harder to rank for key cleaning service keywords and hurting your ability to attract local search traffic.

Technical root cause: The homepage likely uses a logo, image, or non-semantic text instead of a proper H1 HTML tag. WordPress themes sometimes rely on CSS styling alone without semantic heading structure.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → Home (or your homepage) → switch to Editor view
  2. Locate your main headline (e.g., 'JK Precision Cleaning' or your main service tagline)
  3. Highlight that text and click the paragraph/heading dropdown in the toolbar, then select 'Heading 1'
  4. If the headline is in a custom block or Elementor/Divi section, open that block's settings and change its HTML tag from 'div' or 'span' to 'h1'
  5. Save and check the front-end with a browser inspector (right-click → Inspect → search for '<h1>') to confirm it's present
  6. Verify only ONE H1 exists on the page (use a tool like Yoast SEO's free plugin → go to the homepage → check 'Keyphrase optimization' panel)

6. Missing security header: x-frame-options

What it means (plain English)

Your website is missing the X-Frame-Options security header, which tells browsers whether your pages can be embedded inside frames on other websites. Without this header, attackers could potentially embed your site in a malicious page (called clickjacking) to trick visitors into performing unwanted actions. This is a standard security control that protects your visitors and your site's reputation.

Why it matters for your business: A missing X-Frame-Options header leaves your cleaning service website vulnerable to clickjacking attacks, which could damage customer trust and expose your business to liability if visitors are tricked into clicking malicious content.

Technical root cause: Apache or WordPress is not configured to send the X-Frame-Options header in HTTP responses. This is typically controlled either at the web server level (.htaccess or Apache config) or via WordPress security plugins.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search for 'All In One WP Security & Firewall' → Install and Activate it (free tier includes header management)
  2. Once activated, navigate to All In One WP Security → Firewall → HTTP Headers
  3. Enable the toggle for 'X-Frame-Options Header' and set it to 'DENY' (most restrictive; blocks all framing)
  4. Click 'Save Settings' and verify the change by reloading your homepage, then opening browser DevTools (F12) → Network tab → click the first document request → look for 'x-frame-options: DENY' in the Response Headers section
  5. If you prefer server-level control instead, ask your hosting provider to add 'Header always set X-Frame-Options "DENY"' to your Apache .htaccess or vhost config, then test as above

7. Missing security header: content-security-policy

What it means (plain English)

Your website is missing a Content Security Policy (CSP) header—a security instruction that tells browsers which sources of content (scripts, images, styles) are trusted. Without it, your site is more vulnerable to code injection attacks where malicious actors could inject harmful scripts. This is particularly important for a service business that may collect customer information or payments.

Why it matters for your business: A CSP breach could expose customer data, damage your reputation, and potentially violate data protection obligations if you collect contact details or payment information.

Technical root cause: The Apache server is not configured to send the Content-Security-Policy HTTP header, and no plugin or WordPress code is generating it in the response.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → Add New → search 'WP Security Headers' or 'Wordfence' → install and activate the free version.
  2. In Wordfence settings (or equivalent plugin), navigate to Security Headers → Enable Content-Security-Policy.
  3. Start with a report-only CSP (Content-Security-Policy-Report-Only) to test without breaking functionality; use a permissive default like default-src 'self'; script-src 'self' 'unsafe-inline' cdn.example.com (adjust domains based on your actual third-party scripts).
  4. Monitor your site for 1–2 weeks using the CSP report-only mode to catch any blocked resources.
  5. Once confident, switch from report-only to enforced mode (Content-Security-Policy header) in the plugin settings.
  6. Alternatively, if you have hosting/server access, add the header in .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'"
  7. Test the header is present using curl -I https://jkprecisioncleaning.com/ in terminal and verify Content-Security-Policy appears in the response.

8. No SPF record on root domain

What it means (plain English)

Your domain (jkprecisioncleaning.com) doesn't have an SPF record—a simple text entry in your domain's DNS settings that tells email servers which services are allowed to send mail on your behalf. Without it, legitimate emails from your business (quotes, confirmations, newsletters) are flagged as suspicious and often land in spam folders or get rejected entirely.

Why it matters for your business: Prospect inquiries, service confirmations, and marketing emails fail to reach customers' inboxes, directly reducing lead capture and repeat business.

Technical root cause: SPF record is missing from the domain's DNS zone file. This is typically configured at your domain registrar or DNS host, separate from WordPress.

Recommended fix — step by step

  1. Log into your domain registrar (e.g., GoDaddy, Namecheap, Bluehost) and navigate to DNS / Domain Settings.
  2. Find the MX records or mail settings section to identify which mail service you use (Gmail, Office 365, your hosting provider's mail, etc.).
  3. Add a new TXT record with the name '@' or the root domain, and paste the SPF record provided by your mail provider (e.g., 'v=spf1 include:_spf.google.com ~all' for Gmail).
  4. Allow 24–48 hours for DNS propagation, then test using a free SPF checker tool (e.g., MXToolbox or Google Admin Toolbox).
  5. Once SPF passes, also add DMARC and DKIM records from your mail provider for maximum deliverability and security.

9. 38 tap targets under 44px at mobile-320

What it means (plain English)

Your website has 38 buttons, links, and clickable elements that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for people with limited dexterity or on small screens. Users will frequently misclick and tap the wrong link.

Why it matters for your business: Mobile visitors (often 50%+ of traffic for service businesses) experience frustration, abandon forms, and may call a competitor instead—directly reducing quote requests and bookings.

Technical root cause: CSS sizing rules (font-size, padding, width/height) on buttons, navigation links, and form inputs are set too small. Mobile-first padding/spacing was not applied, or touch targets inherit desktop dimensions.

Recommended fix — step by step

  1. Open WordPress admin → Customize (Appearance → Customize) and check the Mobile preview; identify which elements are cramped (likely: navigation menu items, 'Contact Us' buttons, phone/email links in footer, form submit buttons).
  2. Switch to a mobile-first viewport: in your theme's style.css or custom CSS, add a mobile media query (@media (max-width: 480px)) that sets minimum padding: 12px and minimum height: 44px on all buttons, links, and input fields.
  3. For navigation menu: if using WordPress menu, go to Appearance → Menus, then check if your theme has a 'Mobile Menu' setting; ensure menu items have padding: 16px 12px minimum.
  4. For footer links and contact buttons: edit the footer widget (Appearance → Widgets or Footer area in customizer) and add CSS: a { padding: 12px; display: inline-block; min-width: 44px; min-height: 44px; }
  5. For form submit buttons (Contact Form 7 or similar): if using Contact Form 7, go to the form editor and add CSS class 'large-touch' to buttons, then add to custom CSS: .large-touch { padding: 12px 20px; min-height: 44px; font-size: 16px; }
  6. Test on a real mobile device (or Chrome DevTools → Device Toolbar, set to iPhone SE 320px width) and tap each interactive element; confirm no element is smaller than 44px in either dimension.
  7. Run a second accessibility scan (WAVE, Axe DevTools, or Lighthouse) to confirm the fix before publishing.

10. A11y: The skip-link target should exist and be focusable

What it means (plain English)

The site has a 'Skip to content' link (a keyboard shortcut that lets visitors jump past the header and navigation), but the target area it points to—marked with id='content'—either doesn't exist or isn't properly set up to receive focus. This means keyboard-only users (including those with mobility disabilities) can't actually use the skip link to navigate efficiently.

Why it matters for your business: Inaccessible sites expose your business to ADA/WCAG compliance risk and exclude keyboard-dependent visitors; even if the traffic is small, a single accessibility lawsuit or complaint can be costly and damage reputation.

Technical root cause: The skip link's href='#content' points to an element ID that either isn't present in the DOM, or the target element lacks tabindex='-1' (which allows JavaScript focus without making it keyboard-focusable to all users). Pojo Accessibility plugin created the skip link but the theme doesn't have a properly configured landing zone.

Recommended fix — step by step

  1. Log into WordPress Admin → Inspect the homepage HTML (use browser DevTools → Elements tab) and search for an element with id='content' or id='main' to confirm it exists.
  2. If id='content' doesn't exist, go to Appearance → Customize → Home and check if a primary content area is defined; if the theme is custom, add id='content' tabindex='-1' to the main content wrapper in the theme's template file (likely wp-content/themes/[theme-name]/home.php or index.php).
  3. If id='content' exists but isn't focusable, add tabindex='-1' to that element so JavaScript can programmatically focus it when the skip link is clicked.
  4. Test: Press Tab to find the skip link, press Enter, and confirm keyboard focus jumps to the content area (you'll see a visible outline around it).
  5. Optional: Install and activate the Accessibility Checker plugin (free) to run recurring audits and catch similar issues before they escalate.

11. Missing meta description

What it means (plain English)

Your category archive page (for 'Uncategorized' posts) doesn't have a meta description — that's the 50-160 character summary that appears under your page title in Google search results. Without it, Google generates one automatically, which is often choppy and may not convince people to click your link.

Why it matters for your business: A missing meta description reduces click-through rate from search results; potential customers see a poor summary and choose a competitor's listing instead.

Technical root cause: WordPress category templates don't auto-generate meta descriptions by default. Yoast SEO or Rank Math can add them, but they must be manually written for each archive page, or a plugin rule must be configured.

Recommended fix — step by step

  1. Install Yoast SEO (free) if not already active: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install → Activate.
  2. Go to WordPress Admin → Yoast SEO → Search Appearance → Taxonomies → Category.
  3. In the 'Meta description template' field, enter something like: %%term_title%% services and solutions — browse our latest work in %%term_title%%.
  4. Save and test: visit the /category/uncategorized/ page, reload, and check that a description now appears in the page source (right-click → View Page Source, search for '<meta name="description"').
  5. Alternatively, if using Rank Math: WordPress Admin → Rank Math → Titles & Meta → Category, and set a template there instead.

12. 39 tap targets under 44px at mobile-414

What it means (plain English)

Your website has 39 buttons, links, and other clickable elements that are smaller than 44x44 pixels when viewed on mobile phones. This makes them difficult for users to tap accurately — especially people with limited dexterity, arthritis, or those on moving vehicles. WCAG 2.5.5 is a legal accessibility standard that applies to all public websites.

Why it matters for your business: Small tap targets frustrate mobile users, increase bounce rates, and expose you to accessibility lawsuits — particularly risky if your site collects leads or payments.

Technical root cause: Your theme or custom CSS likely uses font-size, padding, and margin values that work on desktop but compress below 44px on mobile due to responsive scaling or missing mobile-specific padding rules.

Recommended fix — step by step

  1. Open Chrome DevTools (F12) → toggle device toolbar → select 'Galaxy S23' or similar 414px width viewport.
  2. Use DevTools Inspector to identify the smallest buttons/links — note their CSS class names (e.g., '.nav-link', '.submit-btn').
  3. In WordPress, go to Appearance → Customize → Additional CSS, then add mobile padding rules: '@media (max-width: 600px) { .nav-link, .submit-btn { padding: 12px 16px !important; min-height: 44px; min-width: 44px; } }' — adjust selectors based on your classes.
  4. For social icons or very small elements, wrap them in a larger invisible touch area: add 'margin: 8px;' or use CSS to expand the clickable zone via ::before pseudo-element.
  5. Test the fix in Chrome DevTools mobile view — recheck all buttons with the cursor tool to confirm 44x44 min size.
  6. If buttons are still cramped, consider stacking them vertically on mobile or increasing overall font/padding site-wide for mobile (Customize → Spacing settings).
  7. Export a list of affected elements to a spreadsheet and assign them to your designer/dev for CSS refinement if many custom components exist.

13. Lighthouse bestPractices (mobile): 75/100

What it means (plain English)

Your mobile site scored 75/100 on Lighthouse Best Practices, falling short of the 90+ benchmark. Best Practices is a composite audit measuring browser security, code freshness, and user experience patterns — not a single broken feature, but several minor issues combining to drag the score down. The detailed HTML report shows which specific practices need attention.

Why it matters for your business: A sub-90 Best Practices score signals to search engines and potential clients that your site may have security or UX gaps, which can reduce trust and click-through rates in search results, especially on mobile where most cleaning service searches happen.

Technical root cause: WordPress or third-party plugins (likely tracking, analytics, or media plugins) are using outdated JavaScript libraries, missing security headers, or deprecated browser APIs that Lighthouse flags as risky or slow. Without seeing the full report, common culprits are unpatched plugins, old jQuery versions, or missing CSP (Content Security Policy) headers.

Recommended fix — step by step

  1. Download the full Lighthouse HTML report from the evidence path and open it in a browser to see the exact 'Best Practices' failures listed (e.g., 'Avoid deprecated APIs', 'Use HTTPS', 'No unminified JS').
  2. In WordPress admin, go to Plugins → Installed Plugins and note any with yellow/red update badges; update all plugins immediately.
  3. Use a WordPress security plugin like Wordfence (free) → Tools → Security Scan to detect outdated libraries and missing headers.
  4. If the report flags 'Missing CSP header' or 'No X-Frame-Options', install a security plugin like All In One WP Security & Firewall, go to Firewall Rules, and enable 'Add Security Headers' checkbox.
  5. Check if any third-party scripts (Google Analytics, Facebook Pixel, chat widgets) are loaded from outdated CDNs; if so, reinstall or update them via Settings → integrations or relevant plugin.
  6. Run Lighthouse again via Chrome DevTools (F12 → Lighthouse tab → Analyze page load) after changes to confirm score improvement.

14. A11y: Landmarks should have a unique role or role/label/title (i.e. accessible name) combination

What it means (plain English)

Your website has a navigation menu (the accessibility toolbar) that doesn't have a unique name to distinguish it from other navigation areas. Screen reader users navigate between landmarks—major page sections—by jumping from one to the next. If two navigation areas have the same generic label, a visually impaired user can't tell them apart and may get lost.

Why it matters for your business: Accessibility issues reduce your search ranking potential and exclude users with disabilities; this also creates legal liability under ADA Title III in the US.

Technical root cause: The Pojo accessibility toolbar has role='navigation' but lacks an aria-label or aria-labelledby attribute. Without a unique accessible name, it is indistinguishable from your main navigation landmark.

Recommended fix — step by step

  1. Log in to WordPress admin → Appearance → Theme File Editor (or use a child theme to be safer)
  2. Search the theme files for 'pojo-a11y-toolbar' or open the page with browser DevTools → Inspector and locate the <nav id='pojo-a11y-toolbar'> element
  3. Add aria-label='Accessibility options' to the nav tag, so it reads: <nav id='pojo-a11y-toolbar' class='pojo-a11y-toolbar-right pojo-a11y-' role='navigation' aria-label='Accessibility options'>
  4. Save and refresh the front-end page in an incognito browser to confirm the change persists
  5. Test with a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to verify the landmark is now unique

15. A11y: All page content should be contained by landmarks (×14)

What it means (plain English)

Your website has 14 sections of content that aren't wrapped in semantic landmarks — HTML structural containers like <main>, <nav>, <header>, or <aside> that tell screen readers where different parts of the page are. Right now, visitors using screen readers have to listen to all content linearly without knowing its purpose or role on the page. This makes the site harder to navigate for people with visual impairments.

Why it matters for your business: A cleaning service depends on local search visibility and customer trust; inaccessible sites rank lower in Google and exclude potential customers who use assistive technology, while also creating legal liability under ADA regulations.

Technical root cause: The WordPress theme or template is placing buttons and content blocks directly in the page body without wrapping them in semantic HTML5 landmark elements. The skip-link and call-to-action buttons are orphaned outside of <main>, <nav>, or other region containers.

Recommended fix — step by step

  1. Log in to WordPress admin → Appearance → Themes, and check the active theme name; note whether it is a custom theme or a commercial builder (Elementor, Divi, Beaver Builder, etc.).
  2. If using a page builder (Elementor/Divi/Beaver), edit the homepage and check each section: select a section → look for a 'Structure' or 'Settings' tab and verify it is wrapped in a <main> or <article> role (Elementor: Settings → Layout → set to 'Full Width' with a <main> wrapper; Divi: check 'Use as Homepage' section is inside Content Area).
  3. For the skip-link (#pojo-a11y-skip-content): ensure the target #content points to a <main id='content'> tag. In WordPress, this is usually added via theme customization or a child theme's functions.php file. If using a theme settings panel, search for 'Accessibility' or 'Landmarks' options.
  4. Wrap orphaned call-to-action buttons (Google Maps, Google Review links) inside a <section> or <article> landmark. If using a builder, place buttons inside a 'Section' or 'Container' block labeled 'Call to Action' or 'Contact'.
  5. Install the free plugin 'WP Accessibility' (wp-accessibility.com) and enable 'Skip Links' and 'Landmark Navigation' under Settings → WP Accessibility → Headings & Structure.
  6. Test the fix using a free screen reader (NVDA for Windows, built-in VoiceOver on Mac) or the axe DevTools Chrome extension to verify all content now appears under landmarks.
  7. If the theme is custom-coded, request the theme developer add proper landmark wrappers to the homepage template file (typically index.php or front-page.php) using <main role='main'>, <nav role='navigation'>, and <header role='banner'> tags.

16. Missing core schema types: LocalBusiness

Detail

Every site should emit Organization + LocalBusiness + WebSite JSON-LD.

17. No DMARC policy published

Detail

No v=DMARC1 record at _dmarc.jkprecisioncleaning.com. Without DMARC, spoofed email from your domain is harder to filter. Start with p=none for monitoring.

18. 38 tap targets under 44px at mobile-375

Detail

Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.

19. 41 tap targets under 44px at tablet-768

Detail

Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.

20. Lighthouse bestPractices (desktop): 74/100

Detail

Score 74 is below target 90. See HTML report for details.


P3 — 128 findings

1. 4 image(s) missing alt text

What it means (plain English)

Your homepage has 4 images that don't have alt text — descriptive labels that explain what each image shows. Screen readers (software that reads websites aloud to people with vision loss) can't describe these images, and search engines can't understand what they depict either.

Why it matters for your business: Missing alt text reduces your search ranking for image-related queries, blocks potential customers using accessibility tools, and may expose you to ADA compliance risk if a user files a complaint.

Technical root cause: Images were inserted into WordPress without filling in the 'Alt Text' field in the image properties, leaving that metadata blank.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library
  2. Click each image used on the homepage (4 total)
  3. In the right panel, find the 'Alt Text' field and write 1–2 sentences describing the image (e.g., 'Professional cleaning crew in blue uniforms spraying office windows' or 'Before-and-after comparison of spotless commercial restroom')
  4. Save each image
  5. Visit the homepage to confirm images still display correctly
  6. Use the WAVE browser extension (free; search 'WAVE accessibility tool') to re-scan the page and verify alt text now appears

2. 4 image(s) missing alt text

What it means (plain English)

Four images on your Buffalo service area page don't have alt text — descriptive labels that explain what each image shows. Without these labels, search engines can't understand what your images depict, and people using screen readers (vision-impaired customers) can't access that visual information.

Why it matters for your business: Missing alt text reduces your ranking for local search queries in Buffalo (where you're targeting customers) and excludes potential customers with disabilities from understanding your service quality through before/after photos.

Technical root cause: Images were uploaded to WordPress without filling in the Alt Text field in the media uploader, or the image blocks/elements were inserted without alt attributes populated.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → filter for images used on /service-area/buffalo-ny/
  2. Click each image and scroll to the Alt Text field; write a concise, descriptive label (e.g., 'Professional office carpet cleaning in Buffalo, NY' or 'Before and after bathroom tile cleaning')
  3. Alternatively, edit the Buffalo service page directly → click each image block → open the Image Settings panel on the right → fill in the Alt Text field with relevant keywords + description
  4. Save/update the page
  5. Test using WordPress SEO plugin (e.g., Yoast SEO → Page Analysis) to confirm alt text is recognized

3. 4 image(s) missing alt text

What it means (plain English)

Four images on your Industrial Precision Cleaning page do not have alt text — short descriptions that explain what each image shows. Screen readers (used by people with vision loss) cannot convey those images, and search engines cannot index their content. This limits both accessibility and SEO benefit.

Why it matters for your business: Missing alt text reduces your visibility in Google Images search results and makes the page less inclusive for disabled visitors, which can hurt both your search ranking and your reputation.

Technical root cause: Images were likely uploaded and inserted without manually adding alt text in WordPress. WordPress does not auto-populate alt fields; they must be filled in during upload or editing.

Recommended fix — step by step

  1. Log into WordPress Dashboard → Pages → Industrial Precision Cleaning (edit)
  2. Scroll to each image in the page editor and click it to select
  3. In the right sidebar (or media modal), locate the 'Alt Text' field
  4. Write a brief, descriptive phrase for each image (e.g., 'Industrial equipment being cleaned with precision tools' or 'Before-and-after of stainless steel surface cleaning')
  5. Keep alt text under 125 characters; describe what the image shows, not 'image of' or 'picture'
  6. Click 'Update' to save the page
  7. Optional: install Yoast SEO free plugin (Plugins → Add New → search 'Yoast') for an admin checklist reminder to fill alt text on future content

4. robots.txt does not reference sitemap

What it means (plain English)

Your robots.txt file (the file that tells search engines how to crawl your site) doesn't point to your XML sitemap. A sitemap is a map of all your pages that helps search engines find and index them faster. Without this pointer, Google and Bing have to discover pages on their own, which takes longer.

Why it matters for your business: Slower indexing of your service pages means potential customers searching for 'precision cleaning near me' or specific services may not find you as quickly in search results.

Technical root cause: The robots.txt file is missing a 'Sitemap:' line that should reference your XML sitemap URL. Most WordPress sites auto-generate a sitemap (usually at /sitemap.xml), but robots.txt needs to be told where it is.

Recommended fix — step by step

  1. Log in to WordPress admin → Settings → Reading and confirm 'Search engine visibility' is set to Allow search engines.
  2. Install Yoast SEO plugin (if not already active) → go to Yoast SEO → XML Sitemaps and turn on the toggle for 'XML sitemaps'.
  3. Visit https://jkprecisioncleaning.com/sitemap.xml in your browser to confirm the sitemap exists and returns a valid XML file.
  4. Go to WordPress admin → Tools → Editor (or use SFTP/File Manager in hosting control panel) and edit robots.txt.
  5. Add this line at the end of robots.txt: 'Sitemap: https://jkprecisioncleaning.com/sitemap.xml'
  6. Save the file and visit https://jkprecisioncleaning.com/robots.txt to verify the Sitemap line appears.
  7. Submit your sitemap to Google Search Console (Search Console → Sitemaps → paste https://jkprecisioncleaning.com/sitemap.xml and click Submit).

5. Title length 114 chars

What it means (plain English)

Your page title is 114 characters long, but search engines like Google typically display only 50–60 characters in search results before cutting off with an ellipsis. This means potential customers see a truncated, incomplete headline that may not include your key selling points or brand name.

Why it matters for your business: Truncated titles reduce click-through rates from search results because visitors can't see your full value proposition, leading to lost leads for your commercial cleaning services.

Technical root cause: The WordPress page title was written for readability rather than search engine display constraints. Most SEO best practices recommend 50–60 characters to ensure the full title appears on desktop and mobile search results.

Recommended fix — step by step

  1. Log into WordPress admin → go to the affected page (Local vs. National Cleaning post) → edit the SEO title field (usually in Yoast SEO or Rank Math plugin below the editor)
  2. Rewrite the title to 50–60 characters, prioritizing your location + service + keyword. Example: 'Local vs. National Cleaning | WNY Commercial Cleaners'
  3. Keep your brand name (J&K Precision Cleaning) only if space permits; consider shortening to 'J&K Precision' if needed
  4. Check 2–3 other high-traffic pages using the same plugin's 'Keyword Rank Tracker' or 'SEO Overview' to identify similar issues
  5. Update titles on all pages where length exceeds 60 characters, prioritizing pages that already rank in top 20 positions

6. Title length 76 chars

What it means (plain English)

Your page title is 76 characters long, but search engines like Google typically display only 50–60 characters on desktop and fewer on mobile. This means your title will be cut off in search results, making it less compelling and potentially hiding your business name or key message.

Why it matters for your business: When your title gets truncated in Google search results, potential customers see an incomplete message, which reduces click-through rates and visibility for your commercial cleaning services in Western New York.

Technical root cause: The title tag combines a descriptive phrase, location keyword, and full business name without prioritizing the most important elements. Search engines and browsers have character limits for display.

Recommended fix — step by step

  1. Log in to WordPress admin → go to the page 'Winter Commercial Floor Care WNY' → scroll to Yoast SEO or All in One SEO settings
  2. Find the 'SEO Title' field and shorten to 55–60 characters max
  3. Prioritize high-value terms: move your main keyword and business name forward (e.g., 'Winter Floor Care WNY | J&K Cleaning')
  4. Test the result at Google's SERP preview tool (search for 'Google SERP snippet generator') to confirm it displays fully
  5. Apply the same principle to other pages with long titles (check Yoast dashboard for 'Title too long' warnings)

7. 1 image(s) missing alt text

What it means (plain English)

One image on your winter floor care page doesn't have alt text—a short description that explains what the image shows. Search engines and screen readers (used by people with vision impairments) can't understand images without alt text, so they miss important content about your services.

Why it matters for your business: Missing alt text reduces your visibility in image search results and excludes potential customers using accessibility tools, while also signaling to Google that your page may not be fully optimized.

Technical root cause: The image element in the HTML is missing the 'alt' attribute, which tells search engines and assistive technology what the image depicts.

Recommended fix — step by step

  1. Log in to WordPress → Pages → find 'Winter Commercial Floor Care WNY'
  2. Click Edit and locate the image missing alt text in the content editor
  3. Click the image to select it, then click the edit/pencil icon
  4. In the Image Details panel, find the 'Alt Text' field and enter a clear, descriptive phrase (e.g., 'Professional commercial floor cleaning in progress at WNY facility')
  5. Click Update/Save and publish the page

8. 4 image(s) missing alt text

What it means (plain English)

This page has 4 images with no alt text — descriptive labels that tell search engines and screen readers (software used by people with vision loss) what each image shows. Without alt text, those images are invisible to search engines and inaccessible to disabled visitors.

Why it matters for your business: Missing alt text reduces your search visibility for image-based queries and excludes customers with disabilities, shrinking your potential audience and exposure.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the media editor, or the images are added via HTML/CSS without alt attributes.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → filter by 'Fredonia, NY' service page uploads
  2. For each of the 4 images, click to edit → scroll to 'Alt Text' field → write a clear, descriptive label (e.g., 'Professional office cleaning team sanitizing conference table' or 'Janitorial crew polishing commercial lobby floors')
  3. Click 'Update' to save each alt text
  4. Alternatively, if images are embedded in page content: edit the Fredonia, NY page → select each image block → open the image settings panel on the right → fill the 'Alt Text' field
  5. Save the page and republish
  6. Test using WAVE browser extension (free) to confirm alt text now appears

9. 4 image(s) missing alt text

What it means (plain English)

Four images on your Reviews page don't have alt text—descriptive labels that tell search engines and visually-impaired visitors what each image shows. This hurts both accessibility (people using screen readers can't understand the images) and SEO (Google can't index what's in those pictures to rank you for relevant searches).

Why it matters for your business: Missing alt text reduces your chances of ranking for image-based searches, makes your site less welcoming to disabled visitors, and can expose you to accessibility lawsuits under the ADA.

Technical root cause: Images were likely uploaded to WordPress without filling in the Alt Text field during media insertion, or were added via HTML without the alt attribute.

Recommended fix — step by step

  1. Log into WordPress admin → navigate to /reviews/ page and click Edit
  2. In the page editor, locate each image and click it to open the image settings panel
  3. For each image, find the Alt Text field and write a clear, concise description (e.g., 'Five-star customer review from Sarah Martinez' or 'Before and after office cleaning comparison')
  4. Ensure descriptions are 8–15 words and include relevant keywords where natural (e.g., 'commercial office cleaning' if that's what the image shows)
  5. Click Update to save changes to the page

10. 4 image(s) missing alt text

What it means (plain English)

Four images on your Dunkirk service page don't have alt text — descriptive text that explains what each image shows. Search engines and screen readers (used by people with vision impairments) can't understand images without it, so they miss important information about your cleaning services.

Why it matters for your business: Missing alt text reduces your visibility in Google Images search, hurts your SEO ranking for service pages, and makes your site inaccessible to customers using assistive technology — all of which shrink your potential customer base.

Technical root cause: Images were uploaded to WordPress without filling in the alt text field during upload or in the image settings, leaving that required metadata blank.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → search for images on the Dunkirk page
  2. For each image, click Edit and scroll to the Alt Text field
  3. Write descriptive alt text for each image (e.g., 'Professional cleaning team working in Dunkirk office building' or 'JK Precision truck at residential cleaning job')
  4. Click Update after each image
  5. Alternatively, edit the Dunkirk page directly: click the image → click the edit icon (pencil) in the toolbar → fill Alt Text field and Save
  6. After updating all 4 images, clear your site cache if you use a caching plugin (Settings → WP Super Cache → Delete Cache, or equivalent)

11. 4 image(s) missing alt text

What it means (plain English)

Four images on your service area page don't have alt text — descriptive labels that tell screen readers and search engines what each image shows. This makes the page harder for visually impaired customers to navigate and signals to Google that your images may be less relevant to your content.

Why it matters for your business: Search engines can't index the content of these images, which means you're missing keyword opportunities in local search results, and potential customers using screen readers won't understand what services those images represent.

Technical root cause: Images were uploaded to WordPress without filling in the Alt Text field in the media uploader, or the image blocks/galleries on that page were not configured with alt attributes when the page was built.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library → search for images used on the service area page.
  2. For each image, click Edit → scroll to Alt Text field → write a short, descriptive phrase (e.g., 'professional pressure washing of commercial storefront' or 'interior carpet cleaning in progress').
  3. Alternatively, go to the service area page in the editor → click each image block → in the right panel, locate the Alt Text field and fill it in with relevant description.
  4. Verify the changes saved by viewing the page in a browser and using a free tool like WAVE (wave.webaim.org) or axe DevTools (browser extension) to confirm alt text is now present.
  5. Repeat for any other pages with missing alt text (common on portfolio/gallery pages).

12. Title length 100 chars

What it means (plain English)

Your page title is 100 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with an ellipsis. The extra text won't be seen by potential customers and wastes valuable real estate that could contain your most important keywords.

Why it matters for your business: When someone searches for cleaning services in Western New York, they'll see a cut-off title in Google results, making your listing appear incomplete and less trustworthy compared to competitors with concise, full titles.

Technical root cause: The title tag was written to be descriptive but didn't account for display limitations in search results. WordPress doesn't enforce character limits by default.

Recommended fix — step by step

  1. Log in to WordPress admin and go to All Pages → find 'Western New York' page → Edit
  2. Look for the Yoast SEO metabox at the bottom of the editor (if installed); if not visible, install Yoast SEO plugin first
  3. In the Yoast SEO section, locate the 'SEO title' field
  4. Replace the current title with: 'Commercial Cleaning Services in Western New York' (54 characters)
  5. Verify the title preview in Yoast shows green (within optimal range)
  6. Click 'Update' to save the page

13. 4 image(s) missing alt text

What it means (plain English)

Four images on your Western New York service area page are missing alt text — descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand image content. Without these labels, both accessibility and search engine visibility suffer.

Why it matters for your business: Missing alt text reduces your page's ranking potential for image search and makes your site unusable for customers with visual impairments, shrinking your addressable market and risking legal exposure under accessibility standards.

Technical root cause: Images were inserted into the page without alt text attributes being populated in the WordPress media library or in the image block settings during page editing.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → find 'Western New York' page → click Edit
  2. Scroll through page and click each image to reveal the image block settings panel on the right
  3. In the 'Alt text' field under 'Advanced', write 1–2 sentences describing what the image shows (e.g., 'Professional cleaning crew in uniform at a Western NY commercial facility')
  4. Repeat for all 4 images on this page
  5. Click 'Update' to save changes
  6. Repeat this process for any other service area pages with missing alt text

14. Title length 80 chars

What it means (plain English)

Your page title is 80 characters long, but search engines (like Google) typically display only 50–60 characters in search results before cutting off with '…'. Your full title won't show to potential customers searching for cleaning services in Buffalo. Titles between 20–65 characters fit well in search results and are more likely to be fully read.

Why it matters for your business: Customers searching for 'commercial cleaning in Buffalo' may see a truncated title in Google results, losing the chance to convey your key message ('Trusted Partner') and reducing click-through rates from organic search.

Technical root cause: The page title element contains too many words. WordPress titles are often auto-generated by SEO plugins or theme settings that concatenate location, service, and brand name without character limits.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → find 'Buffalo, NY' service page
  2. Open the page editor and locate the SEO plugin panel (Yoast SEO, Rank Math, or All in One SEO, depending on what you use)
  3. Find the 'SEO Title' or 'Focus Keyword Title' field
  4. Replace with a 50–60 character title, e.g.: 'Commercial Cleaning in Buffalo, NY | J&K Precision'
  5. Preview in the SEO plugin to confirm Google preview shows the full title without truncation
  6. Repeat this process for other location-based service pages (e.g., 'Cleaning Services in [City]')

15. 4 image(s) missing alt text

What it means (plain English)

Four images on your manufacturing plant cleaning page don't have alt text — descriptions that explain what each image shows. Search engines can't read images, so they rely on alt text to understand your content. Screen reader users (people with vision impairments) also can't see images without these descriptions.

Why it matters for your business: Missing alt text reduces your page's visibility in Google Images and general search results, and makes your site inaccessible to customers using assistive technology — both hurt your ability to attract and serve potential clients.

Technical root cause: Images were likely added to WordPress without filling in the alt text field in the media upload dialog or image block settings.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → Manufacturing Plant Cleaning
  2. In the editor, click the first image to select it
  3. In the right-hand panel under 'Image' settings, find the 'Alt text' field and enter a clear, descriptive phrase (e.g., 'Industrial cleaning team power-washing a warehouse floor')
  4. Repeat for each of the remaining 3 images
  5. Click 'Update' to save the page
  6. Test: use a free tool like WAVE (wave.webaim.org) to verify alt text is now present

16. Title length 197 chars

What it means (plain English)

Your page title is 197 characters long, but search engines like Google typically display only 50-60 characters in search results before truncating with an ellipsis. The extra text is invisible to potential customers and wastes space that could be used for a clearer, more compelling message. This long title also dilutes keyword focus and makes the page appear less relevant to search algorithms.

Why it matters for your business: Potential customers searching for industrial floor cleaning services in your area will see a cut-off, confusing title in Google results, reducing click-through rates and losing leads to competitors with clearer listings.

Technical root cause: The title tag contains multiple location names and redundant business name variations stuffed together, likely created by a template or plugin that concatenates different fields without respecting character limits.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → find 'Industrial Floor Sweeping & Concrete Floor Scrubbing' page → scroll to 'Yoast SEO' settings (or similar SEO plugin section at bottom of editor)
  2. Click 'Edit snippet' in the SEO plugin preview panel to reveal the title field
  3. Replace the current 197-character title with: 'Industrial Floor Sweeping & Scrubbing | Buffalo NY' (54 chars) — this includes your primary service keyword, location, and brand
  4. Verify the snippet preview now shows the full title without truncation (green light in plugin)
  5. Click 'Update' or 'Publish' to save changes
  6. Repeat this process for any other pages with similarly long titles (check Yoast dashboard → Title & Meta Descriptions report for all pages over 65 chars)

17. 4 image(s) missing alt text

What it means (plain English)

Four images on your industrial floor sweeping page don't have alt text—descriptive labels that explain what the image shows. Without these labels, screen readers (used by visually impaired visitors) can't describe the images, and search engines can't understand what they depict. This hurts both accessibility and your ability to rank for image-based searches.

Why it matters for your business: Customers using screen readers or with visual impairments can't understand your service photos, reducing trust and potential leads. Search engines also rank pages with properly labeled images higher, so you're losing SEO visibility for 'industrial floor cleaning' image searches.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the media library or image block settings. WordPress doesn't auto-generate alt text.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and find the 4 images used on the industrial-floor-sweeping-scrubbing page
  2. Click each image and scroll to the 'Alt Text' field (not 'Title'—these are different)
  3. Write descriptive alt text for each: e.g., 'Industrial floor sweeper cleaning warehouse concrete with machine' or 'Before and after industrial floor scrubbing'—be specific about what's shown
  4. Save each image
  5. Go to Pages → Industrial Floor Sweeping & Scrubbing and verify the images are linked; if they're inserted via image blocks, check that alt text filled in there as well
  6. Save the page and clear any caching plugin (if you use WP Super Cache or similar)

18. Title length 179 chars

What it means (plain English)

Your page title is 179 characters long, but search engines display only the first 50–60 characters in results. The rest gets cut off, wasting space on keyword repetition and your business name. A concise title improves click-through rates because users see your most important message first.

Why it matters for your business: Truncated titles in search results reduce click-through rate and make your listing look unprofessional; potential customers in Western New York may not see your service area or location before deciding whether to click.

Technical root cause: The title tag is stuffed with location keywords and business name variations to game search ranking, but this backfires because Google truncates the display and users see an incomplete message.

Recommended fix — step by step

  1. In WordPress admin, open Pages → Heavy Machinery Degreasing page.
  2. Scroll to the bottom and open the Yoast SEO (or similar SEO plugin) meta box.
  3. Clear the existing title and replace with: 'Heavy Machinery Cleaning & Degreasing | Buffalo NY'
  4. Verify the preview shows 55–60 characters; if Yoast displays a green light, save.
  5. Test the page title in Google Search Console or a search preview tool (e.g., moz.com/learn/seo/title-tag) to confirm it displays fully in search results.

19. 4 image(s) missing alt text

What it means (plain English)

Your Heavy Machinery Degreasing page has 4 images that lack alt text—descriptive labels that tell search engines and screen readers what each image shows. Without these labels, people using assistive technology can't understand the images, and search engines can't index them properly for image search results.

Why it matters for your business: Missing alt text reduces your visibility in Google Images, limits accessibility for potential customers using screen readers, and signals to search engines that your content is lower quality—all of which can suppress rankings and conversions.

Technical root cause: Images were uploaded to WordPress without alt text filled in during the media upload or post editing process. WordPress allows alt text to be left blank, so it requires manual entry by the content editor.

Recommended fix — step by step

  1. Log in to WordPress admin → go to the Heavy Machinery Degreasing post → scroll to each image in the editor
  2. Click each image → in the right panel under 'Image Details', locate the 'Alt Text' field
  3. Write 1–2 sentence descriptions for each image (e.g., 'Industrial degreaser applied to heavy machinery parts' or 'Before-and-after of degreased engine block')
  4. Include your service keywords naturally where relevant (e.g., 'heavy machinery degreasing service in [city]')
  5. Click 'Update' to save the post
  6. Repeat for any other pages with multiple images (use WordPress admin → Media Library to bulk-check missing alt text if you have many images)

20. Title length 192 chars

What it means (plain English)

Your page title is 192 characters long, but search engines typically display only 50–65 characters in search results before truncating with '…'. The extra text is invisible to searchers and wastes space that could highlight your most important keywords. This particular title repeats your business name and location multiple times, diluting the message.

Why it matters for your business: Searchers see a truncated, repetitive title that doesn't clearly communicate what makes your industrial cleaning services special, reducing click-through rates from search results.

Technical root cause: The title was likely built by concatenating multiple keyword phrases and business name variations without considering search engine display limits and user experience.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → select 'Industrial Precision Cleaning' page
  2. Scroll to the Yoast SEO meta box (or All in One SEO / Rank Math, depending on your plugin) and locate the 'SEO Title' field
  3. Replace the current title with: 'Industrial Precision Cleaning | JK Precision | Western NY' (58 characters)
  4. Verify the preview shows your title in full without truncation
  5. Click 'Update' to save
  6. Repeat this process for other pages with excessively long titles (check Yoast's Site Audit for other instances)

21. Title length 208 chars

What it means (plain English)

Your page title is 208 characters long, but search engines like Google typically display only 50–60 characters in search results. The extra text gets cut off, making your listing less compelling to users scanning search results. This wastes valuable real estate where you could emphasize your key service and location.

Why it matters for your business: A truncated title in search results reduces click-through rate; potential clients in Buffalo or Jamestown see an incomplete message, harming lead generation from organic search.

Technical root cause: The title tag in your HTML (likely set in WordPress SEO plugin settings) exceeds best-practice length, possibly because it combines multiple service areas, business name variations, and location keywords without prioritization.

Recommended fix — step by step

  1. Log in to WordPress admin → go to the Cleanroom Cleaning Services page → scroll to the SEO plugin section (Yoast SEO or Rank Math, depending on your setup).
  2. Find the 'SEO Title' or 'Page Title' field and replace the current 208-character title with: 'Cleanroom Cleaning Services | JK Precision Cleaning Buffalo NY' (58 characters).
  3. Verify the new title is under 60 characters using a character counter (copy the title into https://www.charactercounttool.com).
  4. Save/publish the page.
  5. Repeat this audit on other high-traffic service pages (cleanroom, controlled environment, ISO-compliant) to ensure consistency.

22. 4 image(s) missing alt text

What it means (plain English)

Four images on your Cleanroom Cleaning Services page don't have alt text — alternative descriptions that explain what the image shows. Without alt text, screen readers (used by people with vision loss) can't describe the images, and search engines can't understand what they depict, which hurts both accessibility and SEO ranking.

Why it matters for your business: Missing alt text reduces your page's search visibility for cleaning-related keywords and excludes potential customers using assistive technology from fully understanding your services.

Technical root cause: Images were uploaded to WordPress without filling in the alt text field in the media library, or the alt attribute is empty in the image blocks.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and find each image from the cleanroom-cleaning-services page
  2. Click each image and scroll to the 'Alt Text' field; enter a descriptive phrase (e.g., 'Professional cleanroom technician wiping sterile workbench' or 'Sealed cleanroom with HEPA filtration system')
  3. Alternatively, open the cleanroom-cleaning-services page in the editor, click each image block, and fill the alt text field in the right sidebar
  4. Save/update the page
  5. Use a free accessibility checker like WAVE (wave.webaim.org) or your browser's Lighthouse tool to verify alt text is now present

23. Missing Twitter card

What it means (plain English)

Your homepage doesn't have a Twitter Card meta tag, which controls how your site appears when someone shares a link to your page on Twitter/X. Without it, social platforms show a generic preview instead of your chosen image, headline, and description.

Why it matters for your business: When potential cleaning service customers share your site or you promote it on social media, the preview looks unprofessional and may reduce click-through rates from social traffic.

Technical root cause: The <meta name="twitter:card"> tag and related Twitter Card meta tags (twitter:title, twitter:description, twitter:image) are missing from the page head. WordPress does not add these by default; they require either a plugin or manual addition to your theme.

Recommended fix — step by step

  1. Install and activate the 'Yoast SEO' or 'All in One SEO Pack' plugin from WordPress admin → Plugins → Add New (search 'Yoast SEO' or 'All in One SEO').
  2. Go to the plugin settings (Yoast: SEO → Social; All in One SEO: All in One SEO → Social Networks) and enable the Twitter option.
  3. Upload your business logo or a high-quality cleaning service photo (1200×630px recommended) as the default social image in the plugin settings.
  4. Fill in your Twitter handle (e.g., @YourBusiness) in the plugin's Twitter field so the card credits your account when shared.
  5. Save settings and verify the tag was added by visiting your homepage and using the Twitter Card Validator at https://cards-dev.twitter.com/validator (paste your URL and confirm the card displays correctly).

24. Missing Twitter card

What it means (plain English)

Your website is missing a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your content when someone shares a link to your site on Twitter. Without it, Twitter will use basic information and may not show your content in the most attractive format.

Why it matters for your business: When potential customers share your cleaning services on Twitter, your posts will appear less visually appealing and won't drive as many clicks back to your site, reducing organic social traffic and brand visibility.

Technical root cause: The Twitter Card meta tag (twitter:card, twitter:title, twitter:description, twitter:image) is not present in the page's HTML head section. WordPress doesn't add this by default; it requires a plugin or manual code addition.

Recommended fix — step by step

  1. Install the Yoast SEO or All in One SEO Pack plugin (both are free; Yoast is more popular).
  2. In WordPress admin, go to Plugins → Add New, search for 'Yoast SEO', click Install Now and Activate.
  3. Navigate to Yoast SEO → Social Profiles in the left menu and enter your Twitter handle.
  4. Go to Settings → Social within Yoast SEO and enable the 'Add Twitter Card Meta Tags' toggle.
  5. Edit the special-offers page in WordPress, scroll to the Yoast SEO box at the bottom, and set a custom meta title and description optimized for Twitter (under the 'Social' tab if available).
  6. Save the page and verify the Twitter Card is present by visiting https://cards-dev.twitter.com/validator and pasting your URL.

25. Missing Twitter card

What it means (plain English)

Your site is missing Twitter Card meta tags—special HTML snippets that control how your pages appear when shared on X (formerly Twitter). Without them, shared links show generic previews instead of your chosen image, title, and description. This is a cosmetic issue that doesn't block functionality or search ranking.

Why it matters for your business: When team members or satisfied customers share your pages on X, the preview will look unprofessional or generic, reducing click-through rates and brand recognition in social shares.

Technical root cause: The meta tags for twitter:card, twitter:title, twitter:description, and twitter:image are not present in the page's <head> section. WordPress themes often omit these unless a SEO plugin is configured to output them.

Recommended fix — step by step

  1. Install the free 'Yoast SEO' plugin if not already active: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install Now → Activate.
  2. Go to WordPress Admin → Yoast SEO → Social → Social profiles tab and enable 'X / Twitter' with your business handle.
  3. Go to WordPress Admin → Yoast SEO → Social → X (Twitter) tab, toggle 'Add Twitter Card meta tags' to ON.
  4. Edit the Privacy Policy page: WordPress Admin → Pages → Privacy Policy → Yoast SEO section → scroll to 'X/Twitter' → set Card type to 'Summary with Large Image' and upload a branded image.
  5. Repeat step 4 for your homepage and any other high-traffic pages (Services, About, Contact).
  6. Visit https://cards-dev.twitter.com/validator and paste your Privacy Policy URL to confirm the card now displays correctly.

26. Missing Twitter card

What it means (plain English)

Your website is missing Twitter Card tags, which are snippets of code that tell Twitter how to display your pages when someone shares a link on that platform. Without them, Twitter shows a plain, unattractive preview that may discourage clicks.

Why it matters for your business: When your service area pages are shared on Twitter or X, they'll display poorly formatted previews, reducing click-through rates and brand professionalism for a cleaning service that relies on local reputation and word-of-mouth.

Technical root cause: The page lacks the <meta name="twitter:card"> tag and associated Open Graph meta tags in the HTML head section, so Twitter's crawler cannot find instructions on how to format the preview.

Recommended fix — step by step

  1. Install and activate the Yoast SEO plugin if not already active (Plugins → Add New → search 'Yoast SEO' → Install Now → Activate)
  2. Go to Yoast SEO → Social → Twitter and enable Twitter card support
  3. Set a default Twitter username (your business @handle) in Yoast SEO → Social settings
  4. Edit the affected service area page (/service-area/fredonia-ny/) → scroll to Yoast SEO metabox → ensure 'Twitter title' and 'Twitter description' are populated (Yoast auto-fills these)
  5. Alternatively, manually add <meta name="twitter:card" content="summary_large_image"> in the page's head section if you prefer not to use a plugin
  6. Test the page at https://cards-dev.twitter.com/validator to confirm the card now displays correctly

27. Missing Twitter card

What it means (plain English)

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your page when someone shares a link to it on that platform. Without it, shared links show up bare and unformatted, making them less visually appealing and less likely to get clicks.

Why it matters for your business: When current or prospective cleaning clients share your reviews page on Twitter/X, it won't display with a branded image or formatted summary, reducing engagement and making your business look less professional compared to competitors who have this set up.

Technical root cause: The WordPress theme or site configuration has not included the Twitter Card meta tags in the page's HTML head section. This is typically a simple addition that most SEO plugins can handle automatically.

Recommended fix — step by step

  1. Install the free Yoast SEO plugin if you don't already have it: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate
  2. Go to Yoast SEO → Social → Twitter and enable the Twitter Card feature
  3. Upload or select a default social sharing image (1024×512px minimum) that will display when your pages are shared
  4. Set the Twitter Card type to 'Summary with Large Image' for better visual impact
  5. Enter your Twitter/X business handle in the Yoast settings so it gets attributed correctly
  6. Go to the Reviews page in the WordPress editor and ensure Yoast's preview shows the Twitter Card formatting correctly
  7. Test the fix by visiting https://cards-dev.twitter.com/validator and pasting your reviews page URL to confirm the card now displays

28. Missing Twitter card

What it means (plain English)

Your website doesn't include Twitter card metadata, which tells social platforms like Twitter/X how to display your content when someone shares a link. Without it, the platform shows a plain text preview instead of a formatted card with your image, headline, and description.

Why it matters for your business: When staff or satisfied clients share your project pages on Twitter/X, the preview looks unprofessional and fails to drive clicks back to your site—missing an easy referral channel.

Technical root cause: WordPress isn't automatically outputting the twitter:card meta tag in the page <head>. Most SEO plugins (Yoast, Rank Math, All in One SEO) include this, but it's either not installed, not enabled, or not configured.

Recommended fix — step by step

  1. Install Yoast SEO (free) via WordPress Admin → Plugins → Add New, search 'Yoast SEO', click Install & Activate.
  2. Go to Yoast SEO → Settings → Social → Twitter tab.
  3. Toggle 'Add Twitter card meta tags' to ON.
  4. Enter your Twitter handle (e.g., @YourBusiness) in the 'Twitter account name' field.
  5. Save settings.
  6. Visit https://jkprecisioncleaning.com/projects-weve-done/ and refresh; inspect the page source (Ctrl+U / Cmd+U) to confirm <meta name='twitter:card'...> now appears in the <head> section.

29. Missing Twitter card

What it means (plain English)

Your website doesn't include a Twitter Card meta tag, which tells Twitter how to display your page when someone shares a link to it on that platform. Without this tag, Twitter will use a generic preview instead of your custom title, description, and image—making shared links look unprofessional and less clickable.

Why it matters for your business: When customers or local partners share your service pages on Twitter/X, they won't display your logo, service images, or compelling descriptions, reducing click-through rates and brand recognition from social shares.

Technical root cause: The Open Graph and Twitter Card meta tags are missing from the page <head> section. WordPress doesn't add these automatically; they require either a plugin (like Yoast SEO, Rank Math, or All in One SEO) or manual addition to your theme's header template.

Recommended fix — step by step

  1. Install and activate a WordPress SEO plugin: go to Dashboard → Plugins → Add New, search 'Yoast SEO' (or 'Rank Math'), install, and activate.
  2. Open the plugin settings: Yoast SEO → Settings → Integration (or Rank Math → Settings → Social Media).
  3. Enable 'Add Open Graph meta tags' and 'Add Twitter Card meta tags' in the social settings.
  4. Upload your business logo/social image: Dashboard → Settings → Site Icon (minimum 200×200px; 1200×630px recommended for Twitter cards).
  5. Re-save the affected page: Pages → Service Area pages → Update each one to trigger meta tag regeneration.
  6. Verify the fix: visit https://cards-dev.twitter.com/validator and paste your service page URL to confirm the Twitter card now displays correctly.

30. Missing Twitter card

What it means (plain English)

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter how to display your page when someone shares a link to it. Without this, shared links appear as plain text with no image or formatted preview, making them less visually appealing and less likely to be clicked.

Why it matters for your business: Missed opportunity to increase click-through rates when your contact page or service pages are shared on Twitter/X; reduced brand visibility in social sharing.

Technical root cause: The twitter:card meta tag is not present in the page's HTML head section. This tag tells Twitter's crawler what type of card format to use (typically 'summary_large_image') when the page is shared.

Recommended fix — step by step

  1. Log into WordPress admin dashboard and install the free 'Yoast SEO' plugin if not already active
  2. Go to Yoast SEO → Social → X (Twitter) in the left sidebar
  3. Enable the X integration toggle and enter your Twitter/X business account handle
  4. Return to the affected page (Contact Us) and scroll to the Yoast SEO box at the bottom
  5. Click the 'Social' tab within Yoast and upload a recommended image (1200×630px) for the Twitter preview
  6. Ensure the meta description is filled in (Yoast will auto-generate if needed)
  7. Click 'Update' and verify using Twitter's Card Validator (cards-dev.twitter.com/validator) by pasting the URL

31. Missing Twitter card

What it means (plain English)

Your website is missing a Twitter card meta tag, which is a small snippet of code that tells Twitter how to display your page when someone shares it on that platform. Without it, Twitter shows a plain, unattractive preview instead of a formatted card with your image, headline, and description.

Why it matters for your business: When your service pages are shared on Twitter or X, they appear less professional and less clickable, reducing the chance that people will visit your site from social shares.

Technical root cause: The page header is missing the <meta name="twitter:card" content="summary_large_image"> tag and related Twitter meta properties (twitter:title, twitter:description, twitter:image). WordPress does not add these by default unless a plugin or custom code implements them.

Recommended fix — step by step

  1. Install the free Yoast SEO plugin (if not already active): go to WordPress admin → Plugins → Add New, search 'Yoast SEO', install and activate.
  2. Go to Yoast SEO → Social → set your site's Twitter/X handle under 'Twitter account name'.
  3. Edit the affected service area page (https://jkprecisioncleaning.com/service-area/western-new-york/) → scroll to Yoast SEO meta box → Social tab → add a Twitter preview image (1200×628px minimum).
  4. Repeat step 3 for all other service area pages to ensure consistent social sharing across the site.
  5. Test the fix using Twitter's Card Validator (https://cards-dev.twitter.com/validator) — paste the page URL and verify the card displays correctly.

32. Missing Twitter card

What it means (plain English)

Your website is missing Twitter card meta tags, which are special HTML instructions that tell Twitter (now X) how to display your pages when they're shared on that platform. Without them, shared links appear as plain text with no image or formatted preview, making them less engaging and less likely to be clicked.

Why it matters for your business: When your service pages are shared on Twitter/X, they won't display professional previews with images and descriptions, reducing click-through rates and making your cleaning services appear less trustworthy compared to competitors who do have card setup.

Technical root cause: The page is missing <meta name="twitter:card">, <meta name="twitter:title">, <meta name="twitter:description">, and <meta name="twitter:image"> tags in the HTML head section. WordPress doesn't add these automatically unless a plugin or custom code does so.

Recommended fix — step by step

  1. Install the free 'Yoast SEO' plugin: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install → Activate
  2. Go to Yoast SEO → Social → choose the 'X (Twitter)' tab
  3. Enable the Twitter card toggle and set Default Card Type to 'Summary with Large Image'
  4. Enter your Twitter/X account handle (e.g., @yourhandle) in the 'Twitter username' field
  5. Go to each service page (e.g., Buffalo NY) → Edit → Yoast SEO box at bottom → Social tab → preview how it will appear on Twitter
  6. Alternatively, if you prefer manual implementation: edit your theme's header.php and add the four meta tags listed above, pulling values from post title, excerpt, and featured image using WordPress template tags

33. Missing Twitter card

What it means (plain English)

Your pages are missing Twitter Card meta tags, which are snippets of code that tell Twitter how to display your content when someone shares a link to your site. Without these tags, shared links appear as plain text with no image or formatted preview, making them less engaging and less likely to be clicked.

Why it matters for your business: When satisfied clients or referral partners share your manufacturing plant cleaning services on Twitter/X, the post looks unprofessional and gets fewer clicks, reducing referral traffic and brand visibility.

Technical root cause: WordPress isn't automatically adding <meta name="twitter:card" content="summary_large_image"> and related Twitter meta tags to page headers. This typically happens when an SEO plugin isn't configured or is missing Twitter Card settings.

Recommended fix — step by step

  1. Install and activate Yoast SEO (free version) if not already active: WordPress Dashboard → Plugins → Add New, search 'Yoast SEO', click Install Now + Activate
  2. Go to Yoast SEO → Social → X (formerly Twitter) and toggle 'Add Twitter card meta tags' ON
  3. Upload or set a default social media image (1200×628px recommended) in Yoast SEO → Social → Image settings
  4. Edit the affected page (Manufacturing Plant Cleaning) and scroll to the Yoast SEO meta box at the bottom
  5. Click the X/Twitter tab and ensure 'Add to meta' is enabled; set a custom image if desired (or leave blank to use default)
  6. Click Update to save
  7. Repeat step 5 for your other service pages (any B2B industrial cleaning pages that might be shared)

34. Missing Twitter card

What it means (plain English)

Your website is missing Twitter Card metadata—a small code snippet that tells Twitter (now X) how to display your pages when someone shares a link. Without it, shared links show up as plain text instead of with your headline, description, and image, making them less visually compelling and less likely to get clicks.

Why it matters for your business: When satisfied clients or referrers share your industrial cleaning services on social media, your listings appear generic rather than professional, reducing click-through rates and brand impression from social traffic.

Technical root cause: The page's HTML head section lacks the twitter:card, twitter:title, twitter:description, and twitter:image meta tags that X/Twitter uses to format rich previews.

Recommended fix — step by step

  1. Install the free Yoast SEO plugin (or your existing SEO plugin) if not already active: go to WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate.
  2. In WordPress Admin, navigate to Yoast SEO → Social → X (Twitter) tab.
  3. Enter your X business account username (e.g., @YourCompany) in the 'Twitter account' field.
  4. Enable 'Add Twitter Card meta tags' toggle.
  5. Go to each service page (starting with industrial-floor-sweeping-scrubbing) → edit → scroll to Yoast SEO meta box → Social tab → confirm Twitter preview shows headline, description, and a relevant service image (update if blank).
  6. Save the page and clear any caching plugin cache (if using WP Super Cache or similar, go to Admin → Settings → WP Super Cache → Delete Cache).
  7. Test the fix using Twitter's Card Validator (cards-dev.twitter.com/validator) — paste your service page URL and verify the card preview renders correctly.

35. Missing Twitter card

What it means (plain English)

Your website is missing Twitter Card meta tags, which are small code snippets that tell Twitter (now X) how to display your content when someone shares a link to your site. Without these tags, shared links appear as plain text rather than as visually rich previews with your business name, description, and images.

Why it matters for your business: When cleaning service pages are shared on X/Twitter, they won't display professionally formatted previews, reducing click-through rates and making your industrial cleaning services less appealing to potential clients discovering you through social sharing.

Technical root cause: The page is missing <meta name="twitter:card" content="..." /> and related Twitter Card tags (title, description, image) in the HTML head section. WordPress doesn't add these by default unless a plugin like Yoast SEO, Rank Math, or All in One SEO is configured to do so.

Recommended fix — step by step

  1. Install and activate a WordPress SEO plugin if you don't have one: go to Plugins → Add New, search for 'Yoast SEO' (free tier sufficient), and click Install Now + Activate.
  2. If Yoast is installed: go to Yoast SEO → Social → X (Twitter) and enable 'Add Twitter Card tags' checkbox.
  3. Verify the setting is active by visiting https://jkprecisioncleaning.com/heavy-machinery-degreasing/ in your browser, right-clicking → View Page Source, and confirming you see <meta name="twitter:card" tags.
  4. Optional: test the preview by visiting https://cards-dev.twitter.com/validator and pasting your page URL to see how it will display.

36. Missing Twitter card

What it means (plain English)

Your website doesn't include Twitter Card markup, which is a snippet of code that tells Twitter how to display your pages when someone shares them. This means when your content is shared on Twitter/X, it will show a plain text link instead of an attractive preview with your title, description, and image. This is purely cosmetic—it won't affect your search rankings or site functionality.

Why it matters for your business: Missing Twitter Cards reduces click-through rates from social shares, making your industrial cleaning services less visually appealing when prospects share your work on Twitter/X.

Technical root cause: The page lacks the <meta name="twitter:card"> tag and related Twitter Open Graph meta tags in the HTML head section.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → search for 'Yoast SEO' or 'Rank Math' (if you have either installed); if not, install one now
  2. In Yoast SEO, go to Dashboard → Social → Twitter settings, enable Twitter Card, and set your Twitter handle (e.g., @YourBusiness)
  3. Alternatively, if using Rank Math, go to Rank Math → Social → Twitter and enable 'Twitter Card' with card type 'Summary with Large Image'
  4. Edit the affected page (Industrial Precision Cleaning) → scroll to the SEO plugin settings → verify Twitter Card is enabled with a featured image set
  5. Test the page at https://cards-dev.twitter.com/validator by pasting the page URL to confirm the card displays correctly
  6. Repeat this verification for your top 5 service pages to ensure Twitter Cards are active site-wide

37. Missing Twitter card

What it means (plain English)

Your pages don't include Twitter Card tags, which are special metadata that tell Twitter how to display your content when someone shares a link on that platform. Without these tags, Twitter shows a plain, unformatted preview instead of an attractive card with your image, headline, and description.

Why it matters for your business: When your cleaning service pages are shared on Twitter or X, they appear less professional and less clickable, reducing the chance that viewers will visit your site from social media referrals.

Technical root cause: WordPress isn't automatically generating Twitter Card meta tags in the page head. Most SEO plugins (Yoast, Rank Math) can add these, but they're either not installed or not configured to output twitter:card meta tags.

Recommended fix — step by step

  1. Install Yoast SEO plugin if not already active: go to WordPress Admin → Plugins → Add New, search 'Yoast SEO', install and activate
  2. Activate Yoast's Social Media features: Admin → Yoast SEO → Integrations → toggle 'Add social meta tags' to ON
  3. Set a default Twitter account: Admin → Yoast SEO → Social profiles → enter your Twitter/X handle in the Twitter field
  4. Edit the affected page (Cleanroom Cleaning Services): Admin → Pages → find page → scroll to Yoast SEO meta box → 'Social preview' tab → ensure 'Twitter' preview is visible (Yoast should now auto-generate twitter:card)
  5. Verify the tag appears: view page source (Ctrl+U on that page), search for 'twitter:card' to confirm the meta tag is present
  6. Repeat for other key service pages (any page you expect people to share on social media)

38. Missing Twitter card

Detail

No twitter:card meta tag.

39. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

40. Missing Twitter card

Detail

No twitter:card meta tag.

41. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

42. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

43. Missing Twitter card

Detail

No twitter:card meta tag.

44. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

45. Missing Twitter card

Detail

No twitter:card meta tag.

46. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

47. Missing Twitter card

Detail

No twitter:card meta tag.

48. Title length 190 chars

Detail

Title should be 20-65 chars. Got: "Manufacturing Plant Cleaning & Factory Sanitation | Industrial Cleaning for Production Facilities in WNY | Buffalo, Jamestown, Dunkirk & More | JK Precision Cleaning | J&K Precision Cleaning"

49. Title length 187 chars

Detail

Title should be 20-65 chars. Got: "Warehouse Cleaning & Logistics Sanitation | Industrial Floor Scrubbing & High-Bay Dusting for WNY | Buffalo, Jamestown, Cheektowaga & More | JK Precision Cleaning | J&K Precision Cleaning"

50. Missing Twitter card

Detail

No twitter:card meta tag.

51. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

52. Title length 207 chars

Detail

Title should be 20-65 chars. Got: "Post-Construction Cleanup & Final Job Site Cleaning | Commercial & Industrial Construction Cleaning for Western New York | Buffalo, Jamestown, Fredonia & More | JK Precision Cleaning | J&K Precision Cleaning"

53. Missing Twitter card

Detail

No twitter:card meta tag.

54. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

55. Missing Twitter card

Detail

No twitter:card meta tag.

56. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

57. Title length 67 chars

Detail

Title should be 20-65 chars. Got: "Warehouse Cleaning Services in Buffalo, NY | J&K Precision Cleaning"

58. Missing Twitter card

Detail

No twitter:card meta tag.

59. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

60. Title length 68 chars

Detail

Title should be 20-65 chars. Got: "Commercial Cleaning Services in Buffalo, NY | J&K Precision Cleaning"

61. Missing Twitter card

Detail

No twitter:card meta tag.

62. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

63. Title length 68 chars

Detail

Title should be 20-65 chars. Got: "Industrial Cleaning Services in Buffalo, NY | J&K Precision Cleaning"

64. Missing Twitter card

Detail

No twitter:card meta tag.

65. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

66. Missing Twitter card

Detail

No twitter:card meta tag.

67. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

68. Missing Twitter card

Detail

No twitter:card meta tag.

69. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

70. Missing Twitter card

Detail

No twitter:card meta tag.

71. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

72. Missing Twitter card

Detail

No twitter:card meta tag.

73. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

74. Missing Twitter card

Detail

No twitter:card meta tag.

75. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

76. Missing Twitter card

Detail

No twitter:card meta tag.

77. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

78. Missing Twitter card

Detail

No twitter:card meta tag.

79. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

80. Missing Twitter card

Detail

No twitter:card meta tag.

81. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

82. Missing Twitter card

Detail

No twitter:card meta tag.

83. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

84. Missing Twitter card

Detail

No twitter:card meta tag.

85. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

86. Title length 66 chars

Detail

Title should be 20-65 chars. Got: "Janitorial & Commercial Cleaning Services | J&K Precision Cleaning"

87. Missing Twitter card

Detail

No twitter:card meta tag.

88. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

89. Missing Twitter card

Detail

No twitter:card meta tag.

90. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

91. Missing Twitter card

Detail

No twitter:card meta tag.

92. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

93. Missing Twitter card

Detail

No twitter:card meta tag.

94. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

95. Missing Twitter card

Detail

No twitter:card meta tag.

96. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

97. Missing Twitter card

Detail

No twitter:card meta tag.

98. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

99. Missing Twitter card

Detail

No twitter:card meta tag.

100. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

101. Missing Twitter card

Detail

No twitter:card meta tag.

102. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

103. Missing Twitter card

Detail

No twitter:card meta tag.

104. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

105. Heavy JS payload (mobile): 2342KB

Detail

JavaScript transfer exceeds 250KB budget.

106. Heavy page weight (mobile): 4537KB

Detail

Total transfer exceeds 2500KB budget.

107. Heavy JS payload (desktop): 2342KB

Detail

JavaScript transfer exceeds 250KB budget.

108. Heavy page weight (desktop): 4537KB

Detail

Total transfer exceeds 2500KB budget.

109. Missing security header: x-content-type-options

Detail

x-content-type-options not present on homepage response. Affects fortress score and CSP posture.

110. Missing security header: referrer-policy

Detail

referrer-policy not present on homepage response. Affects fortress score and CSP posture.

111. Missing security header: permissions-policy

Detail

permissions-policy not present on homepage response. Affects fortress score and CSP posture.

112. SSL Labs grade: unknown

Detail

Qualys SSL Labs: SSL Labs HTTP 400. Aim for A+ via strong TLS 1.3, HSTS, CAA, and preload.

113. DNSSEC not enabled

Detail

DNSSEC adds cryptographic verification to DNS responses. Consider enabling via your registrar.

114. No CAA DNS records

Detail

CAA records restrict which CAs may issue certs for your domain, preventing rogue issuance. Add CAA for letsencrypt.org / digicert.com / etc.

115. No DKIM selectors found (standard selectors)

Detail

Tried selectors: google, default, selector1, selector2, s1, k1 — none matched at jkprecisioncleaning.com. DKIM improves deliverability + anti-spoofing.

116. Lighthouse a11y (mobile): 85/100

Detail

Score 85 is below target 95. See HTML report for details.

117. LH mobile: Reduce initial server response time (Root document took 980 ms)

Detail

Keep the server response time for the main document short because all other requests depend on it. https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/" target="_blank" rel="noreferrer">Learn more about the Time to First Byte metric.

118. LH mobile: Defer offscreen images (Est savings of 113 KiB)

Detail

Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/" target="_blank" rel="noreferrer">Learn how to defer offscreen images.

119. LH mobile: Eliminate render-blocking resources (Est savings of 600 ms)

Detail

Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/" target="_blank" rel="noreferrer">Learn how to eliminate render-blocking resources.

120. LH mobile: Minify JavaScript (Est savings of 5 KiB)

Detail

Minifying JavaScript files can reduce payload sizes and script parse time. https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/" target="_blank" rel="noreferrer">Learn how to minify JavaScript.

121. LH mobile: Reduce unused CSS (Est savings of 42 KiB)

Detail

Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/" target="_blank" rel="noreferrer">Learn how to reduce unused CSS.

122. Lighthouse a11y (desktop): 85/100

Detail

Score 85 is below target 95. See HTML report for details.

123. LH desktop: Reduce initial server response time (Root document took 850 ms)

Detail

Keep the server response time for the main document short because all other requests depend on it. https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/" target="_blank" rel="noreferrer">Learn more about the Time to First Byte metric.

124. LH desktop: Eliminate render-blocking resources (Est savings of 80 ms)

Detail

Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/" target="_blank" rel="noreferrer">Learn how to eliminate render-blocking resources.

125. LH desktop: Minify JavaScript (Est savings of 5 KiB)

Detail

Minifying JavaScript files can reduce payload sizes and script parse time. https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/" target="_blank" rel="noreferrer">Learn how to minify JavaScript.

126. LH desktop: Reduce unused CSS (Est savings of 41 KiB)

Detail

Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/" target="_blank" rel="noreferrer">Learn how to reduce unused CSS.

127. LH desktop: Reduce unused JavaScript (Est savings of 348 KiB)

Detail

Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/" target="_blank" rel="noreferrer">Learn how to reduce unused JavaScript.

128. A11y: Elements marked as presentational should be consistently ignored (×2)

Detail

Ensure elements marked as presentational do not have global ARIA or tabindex so that all screen readers ignore them

Impact: minor

WCAG:

Learn more: https://dequeuniversity.com/rules/axe/4.11/presentation-role-conflict?application=playwright


Findings by Page

Grouped by URL — useful when working through the site one page at a time.

https://jkprecisioncleaning.com/

_46 findings on this page_

A link on your homepage labeled 'Follow on Instagram' has white text (#ffffff) on a blue background (#408bd1) that creates a contrast ratio of only 3.6:1. Accessibility standards require at least 4.5:

Your website has 26 links that screen readers cannot identify. These are mostly icon buttons (like font size adjustment buttons) in your accessibility toolbar that lack text labels, aria-labels, or ti

A skip-to-content link on your site has a tabindex value of 1, which artificially elevates its position in the keyboard navigation order. This means keyboard users will reach this link before other im

Your homepage doesn't have an H1 heading tag — the main headline that tells search engines and visitors what the page is about. Search engines use this to understand your page's topic, and visitors sc

Your website is missing the X-Frame-Options security header, which tells browsers whether your pages can be embedded inside frames on other websites. Without this header, attackers could potentially e

Your website is missing a Content Security Policy (CSP) header—a security instruction that tells browsers which sources of content (scripts, images, styles) are trusted. Without it, your site is more

Your domain (jkprecisioncleaning.com) doesn't have an SPF record—a simple text entry in your domain's DNS settings that tells email servers which services are allowed to send mail on your behalf. With

Your website has 38 buttons, links, and clickable elements that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for people with limited dexterity or

Your website has 39 buttons, links, and other clickable elements that are smaller than 44x44 pixels when viewed on mobile phones. This makes them difficult for users to tap accurately — especially peo

Your mobile site scored 75/100 on Lighthouse Best Practices, falling short of the 90+ benchmark. Best Practices is a composite audit measuring browser security, code freshness, and user experience pat

Your website has a navigation menu (the accessibility toolbar) that doesn't have a unique name to distinguish it from other navigation areas. Screen reader users navigate between landmarks—major page

Your website has 14 sections of content that aren't wrapped in semantic landmarks — HTML structural containers like <main>, <nav>, <header>, or <aside> that tell screen readers where different parts o

The site has a 'Skip to content' link (a keyboard shortcut that lets visitors jump past the header and navigation), but the target area it points to—marked with id='content'—either doesn't exist or is

Your homepage doesn't have a Twitter Card meta tag, which controls how your site appears when someone shares a link to your page on Twitter/X. Without it, social platforms show a generic preview inste

Your homepage has 4 images that don't have alt text — descriptive labels that explain what each image shows. Screen readers (software that reads websites aloud to people with vision loss) can't descri

https://jkprecisioncleaning.com/local-vs-national-cleaning/

_3 findings on this page_

Your page title is 114 characters long, but search engines like Google typically display only 50–60 characters in search results before cutting off with an ellipsis. This means potential customers see

https://jkprecisioncleaning.com/winter-commercial-floor-care-wny/

_3 findings on this page_

Your page title is 76 characters long, but search engines like Google typically display only 50–60 characters on desktop and fewer on mobile. This means your title will be cut off in search results, m

One image on your winter floor care page doesn't have alt text—a short description that explains what the image shows. Search engines and screen readers (used by people with vision impairments) can't

https://jkprecisioncleaning.com/special-offers/

_3 findings on this page_

The /special-offers/ page is missing a meta description—a 160-character summary that appears below the page title in Google search results. Without it, Google may auto-generate a less compelling snipp

Your website is missing a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your content when someone shares a link to your site on Twitter. Without it, Twitter w

https://jkprecisioncleaning.com/contact-us/

_3 findings on this page_

Your Contact Us page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter how to display your page when someone shares a link to it. Without this, shared links appear as plain tex

https://jkprecisioncleaning.com/service-area/western-new-york/

_3 findings on this page_

Your page title is 100 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with an ellipsis. The extra text won't be seen by pot

Your website is missing a Twitter card meta tag, which is a small snippet of code that tells Twitter how to display your page when someone shares it on that platform. Without it, Twitter shows a plain

Four images on your Western New York service area page are missing alt text — descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use t

https://jkprecisioncleaning.com/service-area/buffalo-ny/

_3 findings on this page_

Your page title is 80 characters long, but search engines (like Google) typically display only 50–60 characters in search results before cutting off with '…'. Your full title won't show to potential c

Your website is missing Twitter card meta tags, which are special HTML instructions that tell Twitter (now X) how to display your pages when they're shared on that platform. Without them, shared links

Four images on your Buffalo service area page don't have alt text — descriptive labels that explain what each image shows. Without these labels, search engines can't understand what your images depict

https://jkprecisioncleaning.com/manufacturing-plant-cleaning/

_3 findings on this page_

Your pages are missing Twitter Card meta tags, which are snippets of code that tell Twitter how to display your content when someone shares a link to your site. Without these tags, shared links appear

Four images on your manufacturing plant cleaning page don't have alt text — descriptions that explain what each image shows. Search engines can't read images, so they rely on alt text to understand yo

https://jkprecisioncleaning.com/industrial-floor-sweeping-scrubbing/

_3 findings on this page_

Your page title is 197 characters long, but search engines like Google typically display only 50-60 characters in search results before truncating with an ellipsis. The extra text is invisible to pote

Your website is missing Twitter Card metadata—a small code snippet that tells Twitter (now X) how to display your pages when someone shares a link. Without it, shared links show up as plain text inste

Four images on your industrial floor sweeping page don't have alt text—descriptive labels that explain what the image shows. Without these labels, screen readers (used by visually impaired visitors) c

https://jkprecisioncleaning.com/heavy-machinery-degreasing/

_3 findings on this page_

Your page title is 179 characters long, but search engines display only the first 50–60 characters in results. The rest gets cut off, wasting space on keyword repetition and your business name. A conc

Your website is missing Twitter Card meta tags, which are small code snippets that tell Twitter (now X) how to display your content when someone shares a link to your site. Without these tags, shared

Your Heavy Machinery Degreasing page has 4 images that lack alt text—descriptive labels that tell search engines and screen readers what each image shows. Without these labels, people using assistive

https://jkprecisioncleaning.com/industrial-precision-cleaning/

_3 findings on this page_

Your page title is 192 characters long, but search engines typically display only 50–65 characters in search results before truncating with '…'. The extra text is invisible to searchers and wastes spa

Your website doesn't include Twitter Card markup, which is a snippet of code that tells Twitter how to display your pages when someone shares them. This means when your content is shared on Twitter/X,

Four images on your Industrial Precision Cleaning page do not have alt text — short descriptions that explain what each image shows. Screen readers (used by people with vision loss) cannot convey thos

https://jkprecisioncleaning.com/cleanroom-cleaning-services/

_3 findings on this page_

Your page title is 208 characters long, but search engines like Google typically display only 50–60 characters in search results. The extra text gets cut off, making your listing less compelling to us

Your pages don't include Twitter Card tags, which are special metadata that tell Twitter how to display your content when someone shares a link on that platform. Without these tags, Twitter shows a pl

Four images on your Cleanroom Cleaning Services page don't have alt text — alternative descriptions that explain what the image shows. Without alt text, screen readers (used by people with vision loss

https://jkprecisioncleaning.com/warehouse-logistics-cleaning/

_3 findings on this page_

https://jkprecisioncleaning.com/post-construction-cleanup/

_3 findings on this page_

https://jkprecisioncleaning.com/service-area/buffalo-ny/warehouse-cleaning/

_3 findings on this page_

https://jkprecisioncleaning.com/service-area/buffalo-ny/commercial-cleaning/

_3 findings on this page_

https://jkprecisioncleaning.com/service-area/buffalo-ny/industrial-cleaning/

_3 findings on this page_

https://jkprecisioncleaning.com/janitorial-commercial-cleaning-services/

_3 findings on this page_

https://jkprecisioncleaning.com/category/uncategorized/

_3 findings on this page_

Your category archive page (for 'Uncategorized' posts) doesn't have a meta description — that's the 50-160 character summary that appears under your page title in Google search results. Without it, Go

https://jkprecisioncleaning.com/privacy-policy/

_2 findings on this page_

Your site is missing Twitter Card meta tags—special HTML snippets that control how your pages appear when shared on X (formerly Twitter). Without them, shared links show generic previews instead of yo

https://jkprecisioncleaning.com/service-area/fredonia-ny/

_2 findings on this page_

Your website is missing Twitter Card tags, which are snippets of code that tell Twitter how to display your pages when someone shares a link on that platform. Without them, Twitter shows a plain, unat

This page has 4 images with no alt text — descriptive labels that tell search engines and screen readers (software used by people with vision loss) what each image shows. Without alt text, those image

https://jkprecisioncleaning.com/reviews/

_2 findings on this page_

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your page when someone shares a link to it on that platform. Without it, shared li

Four images on your Reviews page don't have alt text—descriptive labels that tell search engines and visually-impaired visitors what each image shows. This hurts both accessibility (people using scree

https://jkprecisioncleaning.com/service-area/dunkirk-ny/

_2 findings on this page_

Four images on your Dunkirk service page don't have alt text — descriptive text that explains what each image shows. Search engines and screen readers (used by people with vision impairments) can't un

https://jkprecisioncleaning.com/projects-weve-done/

_2 findings on this page_

Every image on your site should have alt text — a short text description that appears if the image doesn't load, and that screen readers use to describe images to visually impaired visitors. Your proj

Your website doesn't include Twitter card metadata, which tells social platforms like Twitter/X how to display your content when someone shares a link. Without it, the platform shows a plain text prev

https://jkprecisioncleaning.com/service-area/brocton-ny/

_2 findings on this page_

Your website doesn't include a Twitter Card meta tag, which tells Twitter how to display your page when someone shares a link to it on that platform. Without this tag, Twitter will use a generic previ

https://jkprecisioncleaning.com/service-area/

_2 findings on this page_

Four images on your service area page don't have alt text — descriptive labels that tell screen readers and search engines what each image shows. This makes the page harder for visually impaired custo

https://jkprecisioncleaning.com/about-us/

_2 findings on this page_

Your About Us page has 7 images that lack alt text — descriptive labels that screen readers read aloud to visitors with visual impairments, and that search engines use to understand image content. Wit

https://jkprecisioncleaning.com/service-area/buffalo-ny/office-cleaning/

_2 findings on this page_

https://jkprecisioncleaning.com/carpet-cleaning/

_2 findings on this page_

https://jkprecisioncleaning.com/tile-grout-cleaning/

_2 findings on this page_

https://jkprecisioncleaning.com/upholstery-cleaning/

_2 findings on this page_

https://jkprecisioncleaning.com/vct-strip-wax/

_2 findings on this page_

https://jkprecisioncleaning.com/emergency-carpet-cleaning/

_2 findings on this page_

https://jkprecisioncleaning.com/trauma-scene-clean-up/

_2 findings on this page_

https://jkprecisioncleaning.com/flood-damage-cleanup/

_2 findings on this page_

https://jkprecisioncleaning.com/power-washing-service/

_2 findings on this page_

https://jkprecisioncleaning.com/epoxy-floors-countertops/

_2 findings on this page_

https://jkprecisioncleaning.com/air-duct-dryer-vent/

_2 findings on this page_

https://jkprecisioncleaning.com/coupon/10-veterans-discount/

_2 findings on this page_

https://jkprecisioncleaning.com/coupon/10-service-member-discount/

_2 findings on this page_

https://jkprecisioncleaning.com/review/dustin-r/

_2 findings on this page_

https://jkprecisioncleaning.com/review/lyane-l/

_2 findings on this page_

https://jkprecisioncleaning.com/review/sara-p/

_2 findings on this page_

https://jkprecisioncleaning.com/review/roselle-a/

_2 findings on this page_

https://jkprecisioncleaning.com/review/cathy-c/

_2 findings on this page_

https://jkprecisioncleaning.com/robots.txt

_1 finding on this page_

Your robots.txt file (the file that tells search engines how to crawl your site) doesn't point to your XML sitemap. A sitemap is a map of all your pages that helps search engines find and index them f

https://jkprecisioncleaning.com/wp-config.php

_1 finding on this page_

Your WordPress configuration file (wp-config.php) is publicly accessible on the internet. This file contains database credentials, security keys, and other sensitive settings that should never be visi

https://jkprecisioncleaning.com/wp-login.php

_1 finding on this page_

Your WordPress login page (/wp-login.php) is publicly accessible and showing a response code of 200, meaning anyone on the internet can find and attempt to access it. While this is technically how Wor


_Generated by Apex Sentinel Monthly Audit · 2026-04-19T07:26:22.741Z · Powered by Bud Authority._


Generated by Apex Sentinel · © 2026 Bud Authority