SEO & LLM Case Study
How I Optimized a Small App Site for Google, and for the LLMs That Now Answer Instead of It
The exact technical setup behind parentsareok.app: what's in the HTML, why each piece is there, and how the same structure serves both search crawlers and AI assistants.
Here is the first thing Google sees on my homepage:
<title>Parents Are OK: Inactivity Alerts for Elderly Parents</title>
<h1>Inactivity alert for elderly parents without
invading their privacy</h1>
No "Welcome to our website." No brand-only title. The title tag and the H1 are two slightly different phrasings of the same search intent, inactivity alert for elderly parents, because that's the query a worried adult child actually types. Everything else on the site follows the same logic: every technical element exists to match a real question with a direct answer.
Parents are OK is a senior safety app in a niche crowded with big AgeTech players. I can't outspend them, so the site has to out-structure them. This is a walkthrough of what that structure looks like: the crawl layer, the on-page architecture, the FAQ system, the content cluster, and the parts aimed specifically at LLMs.
1. The crawl layer: let everything in, tell it where to go
The robots.txt is deliberately boring:
User-agent: *
Disallow:
Sitemap: https://parentsareok.app/sitemap_index.xml
Every crawler (Googlebot, Bingbot, and the AI crawlers that feed ChatGPT, Claude, and Perplexity) gets full access. That's a choice. A lot of sites block AI bots reflexively. For a small app whose growth depends on being recommended, being readable by answer engines is distribution, not theft.
The sitemap is a Yoast-generated index that splits into six child sitemaps (posts, pages, categories, tags, block patterns, authors), each carrying real last-modified dates. When I update an article, the lastmod changes, and crawlers get a fresh signal without me doing anything.
The meta robots directive goes one step further than the default:
<meta name="robots" content="index, follow,
max-image-preview:large, max-snippet:-1,
max-video-preview:-1">
The detail most people miss: max-snippet:-1 tells Google it may quote as much of the page as it wants. Snippet limits were designed to protect publishers' content. But if your goal is to be the cited answer in a featured snippet or an AI Overview, capping your snippet length works against you. Unlimited snippets, large image previews: take all of it.
Each page also declares a canonical URL pointing to itself, so WordPress's habit of generating parameter variants and archive duplicates never splits ranking signals across copies of the same content.
2. On-page structure: headings that are secretly objections
Look at the homepage H2s in sequence:
- "How does our elderly monitoring app work?"
- "You will know if something seems unusual"
- "You will not become a surveillance-heavy helicopter child"
- "You do not need to call every day just to check basic activity"
- "The app is simple enough to set up once and forget"
- "It is cheaper and lighter than full monitoring systems"
That reads less like a feature list and more like the buyer's internal monologue, one objection per heading. Each H2 does double duty: it handles a sales objection for the human reader, and it's a self-contained, quotable statement for a machine. When an LLM chunks this page for retrieval, every section has a heading that summarizes its own answer. There's no section titled "Features" that a model has to guess the contents of.
The supporting metadata follows the same one-idea discipline. The meta description is a compressed version of the whole pitch, covering what the app does and the three things it doesn't do:
"Parents Are OK is a non-invasive senior safety app that
alerts family if an elderly parent's phone shows no
activity for too long. No GPS, camera, or daily
check-in button."
One sentence of definition, one sentence of differentiation. That's also, not coincidentally, exactly the shape of text an AI assistant lifts when someone asks it "what is Parents are OK?"
3. The FAQ block: ten questions written the way people actually ask them
The homepage carries a ten-question FAQ, each question an H3, each phrased as a real query rather than marketing-speak:
- "Does Parents are OK track my parent's location?"
- "Does the app use the camera or microphone?"
- "Can I check on an elderly parent living alone without calling every day?"
- "What happens if my parent's phone is inactive for 24 hours?"
- "Does my parent need to press a daily check-in button?"
- "Can more than one family member receive alerts?"
This block is the hardest-working section on the site, because it serves three consumers at once. Google can pull individual Q&A pairs into featured snippets and People Also Ask boxes. LLMs get clean question and answer pairs in exactly the format they're trained to reproduce. When a user asks an assistant "is there an app that alerts me if my mom's phone isn't used?", the FAQ has already answered that question in almost those words. And the anxious visitor at 11pm gets their specific worry addressed without emailing support.
The principle: long-tail queries and LLM prompts have converged. "Can I check on an elderly parent living alone without calling every day" is simultaneously a Google search, a ChatGPT prompt, and an H3 on my homepage. Write the heading once, rank in both places.
4. The content cluster: eight articles, one topic, real internal links
The blog isn't a stream of loosely related posts. It's a deliberate cluster around one topic, safety for elderly parents living alone:
- A four-part series: health & physical safety, home & daily living, confusion & transportation, social & financial safety
- Emotional-intent pieces: "The daily anxiety of not knowing if elderly parents are OK," "Caring for elderly parents while living apart"
- Positioning pieces: "Why non-invasive elderly monitoring matters," "Why we created Parents are OK"
Each article runs around 1,200 words, carries its own keyword-matched title tag and meta description, links laterally to sibling articles in the cluster, and ends with a related-articles section. The four-part series is the classic hub structure: it tells Google the site has topical depth on senior safety, not just a landing page with an app store link.
Every post also carries the trust metadata Google's quality systems look for: a named author with a bio and photo, a visible publish date, and, importantly, a modified date that updates when content is refreshed. A June article updated a week later shows both dates. That's E-E-A-T housekeeping: small, boring, and cumulative.
5. The LLM layer specifically
Most of what helps LLMs is the same structure that helps Google, but a few choices target answer engines directly:
Entity consistency. The app is defined the same way everywhere: site name, og:site_name, meta description, FAQ answers, article boilerplate. "Parents are OK is a non-invasive senior safety app that alerts family if a parent's phone shows no activity." When a model encounters the same entity defined the same way across a dozen pages, that definition hardens into what the model "knows." If the positioning is inconsistent, retrieval gets confused right along with the customers.
Answer-first writing. Sections open with the answer, then elaborate. No suspense, no "read on to find out." A model quoting the first two sentences of any section gets a complete, accurate claim.
Open access + unlimited snippets. As covered above: no AI crawlers blocked in robots.txt, max-snippet:-1 in meta robots. The site opts into being quoted at length.
Clean semantic HTML. Proper heading hierarchy, real lists, no content trapped in JavaScript. What a crawler parses is what a reader sees.
6. The unglamorous layer: speed and social
The site runs WP Rocket for caching and minification, serves size-optimized image assets, and keeps the page light. These are the page-experience basics that stop good content from being dragged down by a slow server.
Social sharing is fully specified rather than left to chance: complete Open Graph tags (title, description, type, URL, site name, locale), a dedicated pre-optimized share image, and summary_large_image Twitter cards. When a caregiver forum or a Reddit thread links the site, the preview card looks the way I want it to instead of whatever the scraper happened to grab.
What actually transfers to your site
Strip away the specifics and five decisions carry the weight:
- Make the title tag and H1 a real query, not a slogan. If nobody would type your H1 into a search box or an AI chat, rewrite it.
- Set
max-snippet:-1and let AI crawlers in. If your business wins by being cited and recommended, restricting quoting works against you. - Turn your objections into headings. Every "but what about..." your buyers have is a section heading waiting to rank.
- Write FAQs in the user's words, one H3 per question, answer in the first sentence. It's the single highest-leverage block for snippets and LLM answers alike.
- Define your product identically everywhere. One sentence, repeated across every page and meta tag, until machines and humans both give the same answer to "what is this?"
None of this required a big budget or custom engineering: a WordPress site, an SEO plugin doing the mechanical work, and a lot of discipline about matching structure to intent. The competitive advantage doesn't come from any single tag. It comes from every layer, robots.txt down to the last FAQ answer, pointing at the same set of questions.