Technical SEO Audit · Document № 2026-0616 ← HomePro Contractors audit

Site Inspection
Report. SEO Edition

https://myeagleusa.com

Client — Eagle Environmental Solutions, LLC Inspected — June 16, 2026 Platform — WordPress · Elementor Pages crawled — 14
ACTION
REQUIRED
4 critical · 6 high

The plumbing works; the site looks unfinished to Google. The technical foundation is fine — AIOSEO is installed, meta descriptions are unique, canonicals and redirects are clean, GA4 fires. But the build was never finished out: the structured data still calls the site "Just Deploy It!", a real abatement article is published at the default /hello-world/ URL, almost no page has an H1, and the page-builder's template parts are indexable. These are config-level fixes — none require new content — but together they tell search engines the site isn't ready.

IndexabilityPartial

Elementor template parts & a /hello-world/ post are publicly indexed.

On-PageFail

No H1 on any page but home; ALL-CAPS title; builder leftover in schema.

Local SEOPartial

Org schema has phone & logo but no address, geo, or LocalBusiness type.

ContentThin

Service pages run 226–283 words — the pages meant to rank & convert.

FINDINGS 01–04

Critical

Critical

Four leftovers from an unfinished build are actively telling Google the site isn't done. None require writing new content — they're slugs, settings, and schema fields that were never cleaned up after launch.

The site calls itself "Just Deploy It!" in its structured data

JSON-LD · WebSite schema · sitewide

The WebSite schema block — which Google reads to understand the brand — is named "Just Deploy It!", a leftover from the host/starter template. Google may use this as the site name in search results and the knowledge panel instead of "Eagle Environmental Solutions."

Fix

Set the site title correctly in AIOSEO → Search Appearance (and WordPress Settings → General). One field, sitewide effect.

A real abatement article lives at the default /hello-world/ URL

/hello-world/ · 557 words

The default WordPress sample post was edited into a genuine article — "Asbestos, Lead, and Silica Abatement: Protecting Your Health" — but its URL slug was never changed. So a 557-word piece of real content is published at myeagleusa.com/hello-world/. To a searcher and to Google, that slug reads as an abandoned, never-configured site.

Fix

Rename the slug to something keyword-rich (e.g. /asbestos-lead-silica-abatement-guide/) and 301-redirect /hello-world/ to it.

No H1 heading on any page except the homepage

All service pages & blog posts

Every service page (Mold Remediation, Asbestos Abatement, Lead & Silica, Environmental Services) and every blog post renders with zero H1 tags. The H1 is the single strongest on-page signal of what a page is about — without it, Google has to guess each page's topic from body text alone.

Fix

Add one keyworded H1 per page in Elementor (e.g. "Mold Remediation in Southern Maryland"). The homepage's H1 also uses an animated-text widget that renders incompletely to crawlers — worth replacing with a plain H1.

Elementor template parts are indexable and in the sitemap

/elementor-hf/elementor-45/ · /elementor-hf/elementor-19/

The page-builder's header/footer template parts are live at public URLs, return 200, and are listed in the XML sitemap. Each one duplicates the homepage's content and metadata (their canonical correctly points home, which limits the damage — but they shouldn't be crawlable at all).

Fix

Set the elementor-hf / library post type to noindex in AIOSEO and exclude it from the sitemap.

FINDINGS 05–10

High Impact

High

Service pages are too thin to rank

/mold-remediation/ · /asbestos-abatement/ · /lead-and-silica-abatment/ · /environmental-services/

These are the money pages — the ones that should rank for "asbestos abatement Maryland" and convert visitors — yet they run just 226–283 words each. That's well below what's competitive for commercial service queries. The blog posts (550–730 words) are actually the meatiest content on the site.

Fix

Build each service page to 600–900 words: what the service covers, the process, certifications/compliance (EPA, state licensing), service area, and FAQs. The expertise clearly exists — it just isn't on the page yet.

Spelling error in a URL and the navigation

/lead-and-silica-abatment/

The Lead & Silica page URL — and its label in the main navigation — reads "Abatment," missing the second "e" in "Abatement." It's visible to every visitor in the menu and baked into the indexed URL, which undercuts the credibility of a safety-compliance company.

Fix

Correct the nav menu label now (zero risk); rename the slug to /lead-and-silica-abatement/ with a 301 from the old URL.

Homepage and service pages declare og:type = "article"

Open Graph · home + service pages

The homepage and service pages are marked up as article in their Open Graph tags. These are evergreen pages, not articles — the type should be website. Minor, but it signals the same "default settings, never configured" pattern as the other findings.

Fix

Set Open Graph object type to Website for pages in AIOSEO's Social Networks settings; reserve Article for blog posts.

Homepage title is ALL CAPS with no keywords or geography

/ · <title>EAGLE ENVIRONMENTAL SOLUTIONS</title>

The homepage title tag is just the brand name in all caps — no services, no location. Someone searching "asbestos removal Calvert County" or "mold remediation Prince Frederick" has nothing here to match. The brand name also isn't a term anyone searches for yet.

Fix

Rewrite to a keyword + geo + brand format, e.g. "Asbestos, Mold & Lead Abatement in Southern Maryland | Eagle Environmental." Drop the all-caps.

No address or LocalBusiness schema

JSON-LD · Organization

The Organization schema includes a phone number (443-975-0000) and logo, but no street address, no geo coordinates, and no LocalBusiness type. For a service business tied to Maryland jurisdictions and licensing, the full NAP is what powers local-pack rankings. A "MD 20678" reference appears in the page text but isn't structured anywhere.

Fix

Switch the schema to a LocalBusiness type with full street address, postal code, geo, hours, and service area; mirror the same NAP in the site footer and on a working Contact page. Claim/verify the Google Business Profile.

Two overlapping "services" entries in the navigation

Main nav · /service/ & /environmental-services/

The menu has both "Services" (/service/) and "Environmental Services" (/environmental-services/) as separate top-level items. Visitors can't tell which is the real services hub, and the two pages compete with each other for the same queries.

Fix

Pick one as the services hub, fold the other's content in, 301 the loser, and use a dropdown that lists the individual service pages beneath it.

FINDINGS 11–14

Medium Priority

Medium

Almost no image alt text

/ · 14 of 15 images

14 of the 15 homepage images have empty or missing alt attributes — an accessibility gap and a missed chance to describe abatement work to image search.

Images aren't served as WebP

Performance · sitewide

Images ship as JPG/PNG with no WebP. Lazy-loading and srcset are already in place (good), so adding a WebP conversion plugin is the easy remaining win for page speed.

A security rule is blocking plain crawlers

/contact-us/ · WAF / bot rule

The site serves a 403 to requests with a generic Mozilla/5.0 user-agent (it loads fine in a real browser). A firewall rule is over-blocking — harmless for humans, but it can stop legitimate SEO crawlers, monitoring tools, and some link/preview bots from reading the site.

Fix

Loosen the WAF/bot rule (host or security plugin) so it challenges rather than hard-blocks non-browser agents, and confirm Googlebot/Bingbot are allowlisted.

Thin blog index & default category

/blog/ (153 words) · /category/our-blog/

The blog landing page is nearly empty (153 words), and posts live under a generic "our-blog" category. With only three articles published (one at the /hello-world/ slug), the blog reads as barely started despite the content being solid.

VERIFIED

What's Already Sound

Pass
REMEDIATION

Order of Attack

  1. Clear the "unfinished build" signalsFix the "Just Deploy It!" site name, rename /hello-world/, noindex the Elementor template parts.~1 hr · Critical
  2. Add an H1 to every pageOne keyworded H1 each; replace the animated-heading widget on the homepage.~1 hr · Critical
  3. Fix the "Abatment" typoCorrect the nav label now; rename the slug + 301 redirect.~20 min · High
  4. Rewrite titles & og:typeKeyword+geo homepage title, drop all-caps, set og:type to website.~45 min · High
  5. Complete the local schema & NAPLocalBusiness type, full address, footer NAP, working Contact page, GBP.~1.5 hrs · High
  6. Consolidate the services navigationOne services hub; 301 the duplicate; dropdown to individual services.~1 hr · High
  7. Build out the service pages600–900 words each: process, compliance, service area, FAQs.Ongoing · Growth
  8. HousekeepingImage alt text, WebP conversion, loosen the WAF rule.~1 hr · Medium
STRUCTURE

Page Restructure

Plan

The page count is small, but it's muddled — two competing "services" hubs, blog posts that shadow service pages, and a service they offer with no page at all. Consolidate the duplicates and fill the one gap.

Pages Today12

+2 hidden Elementor template parts to noindex

After Cleanup~8

Merge hubs, fold blog into services, fix slugs

Core Marketing8

Home · hub · 4 services · about · contact

Service Gap1

Fire & smoke — offered, but no service page

ActionPagesWhy
Merge the two service hubs/service/ + /environmental-services/Two top-level "services" pages compete for the same intent; visitors can't tell which is real
Fold blog into its service page…mold-remediation-restoring… → /mold-remediation/The post duplicates the service page's topic exactly
Fold + fix the default slug/hello-world/ → /asbestos-abatement/ & lead-silicaA real article stuck at the WordPress default URL
Promote, don't cut…smoke-damage… → new Fire & Smoke service pageA service they offer with no service page — a gap, not a duplicate
Elementor template parts (/elementor-hf/*) are noindexed and removed from the public count entirely.

Real core: 8 pages. Home (1) · one Services hub (1) · four service pages (Asbestos Abatement, Lead & Silica Abatement, Mold Remediation, Fire & Smoke Restoration) · About + Contact (2). After folding, the blog is an empty shell — either seed it with genuinely new topics or pull it from the nav until there's real volume. Three overlapping posts isn't a blog yet.

Growth play (net-new, not consolidation): Eagle has zero location pages despite serving the same Southern Maryland jurisdictions as its sister roofing company. Once the core 8 are solid, county/city pages are the biggest organic lever available.

APPENDIX A

Crawl Record

All URLs from the AIOSEO sitemaps, fetched June 16, 2026. T = title length, D = description length, W = approximate visible word count.

URLStatusTDH1W
/200291411*446
/service/200393620724
/environmental-services/200543880281
/asbestos-abatement/200503530283
/lead-and-silica-abatment/ (typo)200563420226
/mold-remediation/200483040233
/about-us/200403690391
/contact-us/403*
/blog/200363610153
/mold-remediation-restoring-your-home-and-health/200803380732
/hello-world/ (default slug)2001013860557
/smoke-damage-cleaning-and-odor-elimination…/2001083340619
/elementor-hf/elementor-45/ (template)20029141446
/elementor-hf/elementor-19/ (template)20029141446
* Homepage H1 uses an animated-text widget that renders incompletely to crawlers. * /contact-us/ returns 403 to generic crawler user-agents but loads in a real browser (WAF over-blocking).