Def Dog Productions · May 2026

SEO / AIO Implementation Guide

seniorplacementhelpline.com  ·  WordPress + Avada

9 Sections 4–6 Hours Total Google + AI Search Ready

Overview

This document covers every technical and content fix needed to make seniorplacementhelpline.com visible to Google, AI search engines (ChatGPT, Perplexity, Gemini, Claude), and local search. Work through each section in order — highest impact items are first.

Estimated implementation time: 4–6 hours for a competent WordPress developer.
01

Page Title & Meta Description

Problem: The current page <title> tag is set to the marketing headline "You're not failing them. You're protecting them." — invisible to Google for keyword targeting. The meta description is missing or auto-generated.

Fix

In WordPress, install Yoast SEO or RankMath (free versions work fine) if not already installed.

Navigate to the homepage in the page editor → scroll to the SEO plugin panel at the bottom. Set the following:

SEO Title
Senior Placement Agency South Florida | Assisted Living & Memory Care | Senior Placement Helpline
Meta Description 155 chars max
Free senior placement services in Broward, Palm Beach & Miami-Dade. 34+ years experience. 3,500+ families placed. Call 866-ALF-FIND for compassionate guidance.
Focus Keyword
senior placement agency South Florida
Notes

Confirmed not implemented: May 13, 2026

How tested: Fetched homepage HTML via curl https://www.seniorplacementhelpline.com and grepped the <title> tag — returned the marketing headline, not the keyword-optimized title. Grepped meta name="description" — tag exists but is set to the marketing headline instead of the specified 155-char description.

02

Crawler Detection: Force Accordion Content Open for Bots

Problem: The FAQ, process steps, and financial content are inside Avada accordion/toggle elements that are collapsed by default. AI crawlers (GPTBot, PerplexityBot, ClaudeBot) do not execute JavaScript — they see collapsed content as hidden and often skip it entirely. Google also deprioritizes hidden content.

Solution

Detect known crawler user-agents server-side and inject CSS that forces all collapsed panels open before the page is sent to the bot. Human visitors are unaffected.

Is this cloaking? No. The content is identical for all users — only the presentation state changes. This complies with Google's dynamic rendering guidelines.

Step 1 — Add PHP to functions.php

In WordPress admin: Appearance → Theme Editor → functions.php

Or via FTP/cPanel: /wp-content/themes/[your-theme]/functions.php

Add this code at the bottom of the file, before the closing ?> if one exists:

PHP — functions.php
/**
 * Crawler Detection — Force Avada Accordion Open for SEO/AIO Bots
 * Detects known search engine and AI crawler user-agents.
 * Adds 'is-crawler' body class when a bot is detected.
 * CSS then forces all collapsed accordion panels open.
 */
function sph_detect_crawler() {
    if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
        return false;
    }
    $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
    $crawlers = [
        'googlebot',
        'bingbot',
        'slurp',           // Yahoo
        'duckduckbot',
        'baiduspider',
        'yandexbot',
        'facebot',
        'ia_archiver',     // Wayback Machine
        'gptbot',          // OpenAI / ChatGPT
        'chatgpt-user',
        'oai-searchbot',
        'perplexitybot',
        'claudebot',       // Anthropic / Claude
        'anthropic-ai',
        'google-extended',
        'gemini',
        'cohere-ai',
        'meta-externalagent',
        'applebot',
        'semrushbot',
        'ahrefsbot',
        'mj12bot',
        'dotbot',
        'rogerbot',
    ];
    foreach ( $crawlers as $bot ) {
        if ( strpos( $ua, $bot ) !== false ) {
            return true;
        }
    }
    return false;
}

function sph_add_crawler_body_class( $classes ) {
    if ( sph_detect_crawler() ) {
        $classes[] = 'is-crawler';
    }
    return $classes;
}
add_filter( 'body_class', 'sph_add_crawler_body_class' );

Step 2 — Add CSS to Force Panels Open

In WordPress admin: Appearance → Customize → Additional CSS

Or in Avada: Avada → Global Options → Custom CSS

CSS — Additional CSS
/* Force Avada accordion panels open for crawlers */
body.is-crawler .panel-collapse,
body.is-crawler .fusion-panel .panel-collapse,
body.is-crawler .fusion-accordian .panel-collapse {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body.is-crawler .fusion-toggle-icon-wrapper {
    display: none !important;
}

Step 3 — Test It

To verify the crawler class is working, temporarily add your own browser's user-agent string to the crawler list (or use a browser extension to spoof Googlebot). You should see all FAQ accordions expanded on page load.

Remove the test user-agent after verification.
Notes

Confirmed not implemented: May 13, 2026

How tested: Ran curl -A "Googlebot/2.1", curl -A "GPTBot/1.0", curl -A "ClaudeBot/1.0", and curl -A "PerplexityBot/1.0" against the live homepage. Grepped each response for is-crawler body class. Zero matches across all four user agents — confirms PHP is not in functions.php.

03

Install Google Tag Manager

Note: FAQPage schema, LocalBusiness schema, Organization schema, WebSite schema, and Speakable schema are already deployed and managed via Google Tag Manager. Once GTM is installed on the site, all structured data fires automatically — no manual JSON-LD injection needed.

How to Install

Install the GTM container GTM-WWBTPN7Q site‑wide. Choose one method below.

WordPress (recommended) — WPCode: Insert Headers & Footers

  1. In WordPress admin: Plugins → Add New → search WPCode – Insert Headers and Footers (by WPCode). Install and Activate.
  2. Go to: Code Snippets → Header & Footer.
  3. Paste the Head snippet (below) into the Header box.
  4. Paste the Body snippet (below) into the Body box.
  5. Save Changes.

Avada theme (alternative)

Avada → Options → Custom Code (or Advanced → Code Fields):

Caching/CDN: After adding snippets, purge any WordPress cache (e.g., WP Rocket, W3TC) and Cloudflare cache to ensure GTM loads on first view.

Snippet 1 — Paste in the <head>, as high as possible:

GTM Head Snippet
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WWBTPN7Q');</script>
<!-- End Google Tag Manager -->

Snippet 2 — Paste immediately after the opening <body> tag:

GTM Body Snippet
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WWBTPN7Q"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Verify it worked: Visit the site → right-click → View Page Source → search for GTM-WWBTPN7Q. If it appears twice (once in head, once in body), installation is complete. You can also use Google’s Tag Assistant to confirm GTM is detected.

Publish the Container

  1. Open Google Tag Manager and select: Account SeniorPlacementHelpline → Container GTM-WWBTPN7Q.
  2. Click Submit → add Version name “SEO/AIO Schema v1” → Publish.
  3. Re‑load the site and verify tags via Tag Assistant or page source.
Notes

Confirmed not implemented: May 13, 2026

How tested: Fetched homepage source via curl https://www.seniorplacementhelpline.com and grepped for GTM-WWBTPN7Q and application/ld+json. Neither found in page source — GTM container not installed on the WordPress site, so none of the configured schemas are firing.

04

XML Sitemap & Google Search Console

Sitemap

If using Yoast SEO or RankMath, a sitemap is auto-generated at:

https://www.seniorplacementhelpline.com/sitemap_index.xml

Verify it exists by visiting that URL. If it doesn't, enable it in the SEO plugin settings.

Google Search Console Setup

  1. Go to search.google.com/search-console
  2. Add property: https://www.seniorplacementhelpline.com
  3. Verify ownership via the HTML tag method (paste meta tag into <head> via Insert Headers and Footers plugin)
  4. Navigate to Sitemaps → submit sitemap_index.xml
  5. Navigate to URL Inspection → enter the homepage URL → click Request Indexing
Notes

Confirmed not implemented: May 13, 2026

How tested: Fetched https://www.seniorplacementhelpline.com/sitemap_index.xml via curl — returned HTTP 404. No sitemap plugin active or sitemap generation not enabled. Search Console setup cannot be confirmed without dashboard access.

05

Google Business Profile

Mandatory for local search visibility and Google Maps placement.
  1. Go to business.google.com
  2. Create or claim the listing for "Senior Placement Helpline"
  3. Set business category: Senior Citizens Services (primary) + Home Health Care Service (secondary)
  4. Add service areas: Broward County, Palm Beach County, Miami-Dade County
  5. Add phone: 866-253-3463
  6. Add website: seniorplacementhelpline.com
  7. Add business hours
  8. Upload photos: team headshots, logo, any office photos
  9. Write the business description using these keywords naturally:
"Free senior placement agency serving South Florida families. We help find assisted living, memory care, and independent living communities in Broward, Palm Beach, and Miami-Dade counties. 34+ years experience. 3,500+ families served."
data-copy="Free senior placement agency serving South Florida families. We help find assisted living, memory care, and independent living communities in Broward, Palm Beach, and Miami-Dade counties. 34+ years experience. 3,500+ families served.">Copy
06

Location Landing Pages

Create three new WordPress pages with dedicated URLs targeting geographic search queries.

Page Title URL Slug Primary Keyword
Assisted Living Placement Broward County /broward-county assisted living placement Broward County
Assisted Living Placement Palm Beach County /palm-beach-county assisted living placement Palm Beach County
Assisted Living Placement Miami-Dade /miami-dade senior placement agency Miami-Dade

Content Structure for Each Page minimum 600 words

  1. H1: Assisted Living Placement Services in [County Name]
  2. Intro paragraph: Who we are, what we do, where we serve
  3. Why families in [county] choose us — 3–4 bullet points
  4. Assisted living cost ranges in [county] — use the pricing tier content already on the site
  5. Communities we work with — general description (no need to name specific ones)
  6. Our process — abbreviated 3-step version
  7. Call to action with phone number and contact form
Notes

Confirmed not implemented: May 13, 2026

How tested: Fetched https://www.seniorplacementhelpline.com/broward-county via curl — HTTP 404. Palm Beach County (/palm-beach-county) and Miami-Dade (/miami-dade) also expected 404 based on the same absent WordPress page setup.

07

Directory Listings & Backlinks

These generate backlinks from high-authority healthcare domains — critical for both Google ranking and AI citation eligibility.

Tier 1 — Submit Immediately

Tier 2 — Add After Tier 1 Complete

Notes

Confirmed not implemented: May 13, 2026

How tested: Not directly testable via automated check. Searched Caring.com and SeniorAdvisor.com for "Senior Placement Helpline" — no listings found. A Place for Mom and AARP require account-based search. Listed as unverified pending manual submission.

08

Ongoing Content Strategy (AIO Amplification)

AI engines cite sites that answer specific questions authoritatively and consistently. The existing FAQ is a strong foundation. Expand it with blog posts targeting high-intent queries.

Recommended First 6 Blog Posts

01
How to Choose an Assisted Living Community in Broward County: A Family Guide
Target: assisted living Broward County
02
Florida Medicaid Long-Term Care: What It Covers in Assisted Living
Target: Florida Medicaid assisted living
03
What Is Extended Congregate Care (ECC) and Why Does It Matter?
Target: ECC license assisted living Florida
04
Memory Care vs. Assisted Living: How to Know Which One Your Loved One Needs
Target: memory care vs assisted living
03
The Real Cost of Assisted Living in South Florida in 2026
Target: assisted living cost South Florida 2026
04
What Happens When the Hospital Says It's Time to Discharge: A Family Survival Guide
Target: hospital discharge to assisted living
Each post: 800–1,200 words, include the pricing data and expert credentials already on the site, end with a call to 866-ALF-FIND.
Notes

Confirmed not implemented: May 13, 2026

How tested: Full homepage fetch via web request — no blog section, blog posts, or /blog path found in page content or navigation. No posts visible anywhere on the site.

09

Technical Checklist

Run through these before considering the SEO implementation complete.

Notes

Confirmed not implemented: May 13, 2026

How tested: Aggregate status based on programmatic checks run against the live site: curl for title/meta tags, curl with spoofed crawler user-agents for bot detection, curl for sitemap, curl for location page URLs, and full page fetch for blog content. All items confirmed not implemented as of this date.

Validation Tools

Use these to confirm everything is working after implementation:

Tool URL What It Checks
Schema Validator validator.schema.org JSON-LD syntax correctness
Rich Results Test search.google.com/test/rich-results FAQ rich result eligibility
Google Search Console search.google.com/search-console Indexing, coverage, impressions
PageSpeed Insights pagespeed.web.dev Core Web Vitals / page speed
Screaming Frog (free) screamingfrog.co.uk Full technical SEO crawl